Submit
Path:
~
/
/
usr
/
share
/
apport
/
package-hooks
/
File Content:
source_mtdev.py
# Multitouch device related problems # Author: Ara Pulido <ara@ubuntu.com> # (C) 2010 Canonical Ltd. # License: GPL v2 or later. from glob import glob from subprocess import Popen, PIPE import sys import apport.hookutils import time import os # See linux/input.h ABS_MT_POSITION_X = 0x35 # scan-for-mt-devices written by Marc Tardif, # based on a script by Henrik Rydberg class Input(object): def __init__(self, path): self.path = path @property def device(self): base = os.path.basename(self.path) return os.path.join("/dev", "input", base) @property def name(self): path = os.path.join(self.path, "device", "name") return read_line(path) def get_capabilities(self): path = os.path.join(self.path, "device", "capabilities", "abs") line = read_line(path) capabilities = [] long_bit = getconf("LONG_BIT") for i, word in enumerate(line.split(" ")): word = int(word, 16) subcapabilities = [bool(word & 1<<i) for i in range(long_bit)] capabilities[:0] = subcapabilities return capabilities def has_capability(self, capability): capabilities = self.get_capabilities() return len(capabilities) > capability and capabilities[capability] def getconf(var): output = Popen(["getconf", var], stdout=PIPE).communicate()[0] return int(output) def get_inputs(path): event_glob = os.path.join(path, "event*") for event_path in glob(event_glob): yield Input(event_path) def read_line(path): f = open(path) try: return f.readline().strip() finally: f.close() def scan_for_mt_devices(report): capability = ABS_MT_POSITION_X input = "/sys/class/input" inputs = get_inputs(input) inputs = [i for i in inputs if i.has_capability(capability)] report['MtDevices'] = '' if inputs: for input in inputs: report['MtDevices'] += "%s: %s\n" % (input.name, input.device) return 0 else: report['MtDevices'] += "No capable devices found..." return 1 ################################## description = 'Multitouch device problem' RELATED_PACKAGES = ['xserver-xorg', 'xserver-xorg-video-intel', 'xserver-xorg-video-ati', 'libmtdev1', 'libutouch-grail1', 'libutouch-geis1'] def add_info(report, ui): report.setdefault('Tags', '') report['Tags'] += ' hci touch' # Capture hardware apport.hookutils.attach_hardware(report) report['PciDisplay'] = apport.hookutils.pci_devices(apport.hookutils.PCI_DISPLAY) # Attach the results of scan mt devices scan_for_mt_devices(report) # Only collect the following data if X11 is available if os.environ.get('DISPLAY'): # For resolution/multi-head bugs report['Xrandr'] = apport.hookutils.command_output(['xrandr', '--verbose']) apport.hookutils.attach_file_if_exists(report, os.path.expanduser('~/.config/monitors.xml'), 'monitors.xml') # Attach the Xorg logs and config apport.hookutils.attach_file_if_exists(report, '/etc/X11/xorg.conf', 'XorgConf') apport.hookutils.attach_file(report, '/var/log/Xorg.0.log', 'XorgLog') apport.hookutils.attach_file_if_exists(report, '/var/log/Xorg.0.log.old', 'XorgLogOld') apport.hookutils.attach_file_if_exists(report, '/var/log/gdm/:0.log', 'GdmLog') apport.hookutils.attach_file_if_exists(report, '/var/log/gdm/:0.log.1', 'GdmLogOld') # Attach the output of xinput report['XInput'] = apport.hookutils.command_output(['xinput', 'input']) # Attach the output of lsinput report['LsInput'] = apport.hookutils.root_command_output(["lsinput"]) # Attach descriptors attach_descriptors(report) apport.hookutils.attach_related_packages(report, RELATED_PACKAGES) def attach_descriptors(report): path = '/sys/kernel/debug/hid/*/rdesc' for desc in glob(path): name = desc.split('/')[5] name = name.replace(":", "").replace(".", "") report[name] = apport.hookutils.root_command_output(["cat", desc])
Submit
FILE
FOLDER
Name
Size
Permission
Action
source_linux-aws-6.8.py
---
0
source_linux-aws.py
---
0
source_linux-azure-6.8.py
---
0
source_linux-azure-fde.py
---
0
source_linux-azure.py
---
0
source_linux-gcp-6.8.py
---
0
source_linux-gcp.py
---
0
source_linux-gke.py
---
0
source_linux-gkeop.py
---
0
source_linux-hwe-6.8.py
---
0
source_linux-ibm-6.8.py
---
0
source_linux-ibm.py
---
0
source_linux-intel-iotg.py
---
0
source_linux-kvm.py
---
0
source_linux-lowlatency-hwe-6.8.py
---
0
source_linux-lowlatency.py
---
0
source_linux-meta-aws-6.8.py
---
0
source_linux-meta-aws.py
---
0
source_linux-meta-azure-6.8.py
---
0
source_linux-meta-azure-fde.py
---
0
source_linux-meta-azure.py
---
0
source_linux-meta-gcp-6.8.py
---
0
source_linux-meta-gcp.py
---
0
source_linux-meta-gke.py
---
0
source_linux-meta-gkeop.py
---
0
source_linux-meta-hwe-6.8.py
---
0
source_linux-meta-ibm-6.8.py
---
0
source_linux-meta-ibm.py
---
0
source_linux-meta-intel-iotg.py
---
0
source_linux-meta-kvm.py
---
0
source_linux-meta-lowlatency-hwe-6.8.py
---
0
source_linux-meta-lowlatency.py
---
0
source_linux-meta-nvidia-6.8.py
---
0
source_linux-meta-nvidia-tegra-igx.py
---
0
source_linux-meta-nvidia-tegra.py
---
0
source_linux-meta-nvidia.py
---
0
source_linux-meta-oracle-6.8.py
---
0
source_linux-meta-oracle.py
---
0
source_linux-meta-realtime.py
---
0
source_linux-meta-riscv-6.8.py
---
0
source_linux-meta-xilinx-zynqmp.py
---
0
source_linux-nvidia-6.8.py
---
0
source_linux-nvidia-tegra-igx.py
---
0
source_linux-nvidia-tegra.py
---
0
source_linux-nvidia.py
---
0
source_linux-oracle-6.8.py
---
0
source_linux-oracle.py
---
0
source_linux-raspi.py
---
0
source_linux-realtime.py
---
0
source_linux-restricted-modules-aws-6.8.py
---
0
source_linux-restricted-modules-aws.py
---
0
source_linux-restricted-modules-azure-6.8.py
---
0
source_linux-restricted-modules-azure.py
---
0
source_linux-restricted-modules-gcp-6.8.py
---
0
source_linux-restricted-modules-gcp.py
---
0
source_linux-restricted-modules-hwe-6.8.py
---
0
source_linux-restricted-modules-ibm-6.8.py
---
0
source_linux-restricted-modules-intel-iotg.py
---
0
source_linux-restricted-modules-lowlatency-hwe-6.8.py
---
0
source_linux-restricted-modules-lowlatency.py
---
0
source_linux-restricted-modules-nvidia-6.8.py
---
0
source_linux-restricted-modules-nvidia-tegra-igx.py
---
0
source_linux-restricted-modules-nvidia.py
---
0
source_linux-restricted-modules-oracle-6.8.py
---
0
source_linux-restricted-modules-oracle.py
---
0
source_linux-restricted-modules.py
---
0
source_linux-riscv-6.8.py
---
0
source_linux-signed-aws-6.8.py
---
0
source_linux-signed-aws.py
---
0
source_linux-signed-azure-6.8.py
---
0
source_linux-signed-azure-fde.py
---
0
source_linux-signed-azure.py
---
0
source_linux-signed-gcp-6.8.py
---
0
source_linux-signed-gcp.py
---
0
source_linux-signed-gke.py
---
0
source_linux-signed-gkeop.py
---
0
source_linux-signed-hwe-6.8.py
---
0
source_linux-signed-ibm-6.8.py
---
0
source_linux-signed-ibm.py
---
0
source_linux-signed-intel-iotg.py
---
0
source_linux-signed-kvm.py
---
0
source_linux-signed-lowlatency-hwe-6.8.py
---
0
source_linux-signed-lowlatency.py
---
0
source_linux-signed-nvidia-6.8.py
---
0
source_linux-signed-nvidia-tegra-igx.py
---
0
source_linux-signed-nvidia-tegra.py
---
0
source_linux-signed-nvidia.py
---
0
source_linux-signed-oracle-6.8.py
---
0
source_linux-signed-oracle.py
---
0
source_linux-signed-realtime.py
---
0
source_linux-xilinx-zynqmp.py
---
0
apache2.py
1816 bytes
0644
cryptsetup.py
1082 bytes
0644
dkms_packages.py
4050 bytes
0755
isc-dhcp-client.py
1796 bytes
0644
openssh-client.py
1213 bytes
0644
openssh-server.py
1004 bytes
0644
postfix.py
2743 bytes
0644
source_apparmor.py
2790 bytes
0644
source_byobu.py
339 bytes
0644
source_console-setup.py
374 bytes
0644
source_fontconfig.py
162 bytes
0644
source_grub2.py
3879 bytes
0644
source_libdmx.py
24506 bytes
0755
source_libdrm.py
24506 bytes
0755
source_libfontenc.py
24506 bytes
0755
source_libfs.py
24506 bytes
0755
source_libglvnd.py
24506 bytes
0755
source_libice.py
24506 bytes
0755
source_libinput.py
24506 bytes
0755
source_libpciaccess.py
24506 bytes
0755
source_libsm.py
24506 bytes
0755
source_libvdpau.py
24506 bytes
0755
source_libwacom.py
24506 bytes
0755
source_libx11.py
24506 bytes
0755
source_libxau.py
24506 bytes
0755
source_libxaw.py
24506 bytes
0755
source_libxcb.py
24506 bytes
0755
source_libxcomposite.py
24506 bytes
0755
source_libxcursor.py
24506 bytes
0755
source_libxdamage.py
24506 bytes
0755
source_libxdmcp.py
24506 bytes
0755
source_libxext.py
24506 bytes
0755
source_libxfixes.py
24506 bytes
0755
source_libxfont.py
24506 bytes
0755
source_libxfontcache.py
24506 bytes
0755
source_libxft.py
24506 bytes
0755
source_libxi.py
24506 bytes
0755
source_libxinerama.py
24506 bytes
0755
source_libxkbcommon.py
24506 bytes
0755
source_libxkbfile.py
24506 bytes
0755
source_libxkbui.py
24506 bytes
0755
source_libxmu.py
24506 bytes
0755
source_libxpm.py
24506 bytes
0755
source_libxrandr.py
24506 bytes
0755
source_libxrender.py
24506 bytes
0755
source_libxres.py
24506 bytes
0755
source_libxss.py
24506 bytes
0755
source_libxt.py
24506 bytes
0755
source_libxtst.py
24506 bytes
0755
source_libxv.py
24506 bytes
0755
source_libxvmc.py
24506 bytes
0755
source_libxxf86dga.py
24506 bytes
0755
source_libxxf86vm.py
24506 bytes
0755
source_linux-aws-6.8.py
bytes
0
source_linux-aws.py
bytes
0
source_linux-azure-6.8.py
bytes
0
source_linux-azure-fde.py
bytes
0
source_linux-azure.py
bytes
0
source_linux-gcp-6.8.py
bytes
0
source_linux-gcp.py
bytes
0
source_linux-gke.py
bytes
0
source_linux-gkeop.py
bytes
0
source_linux-hwe-6.8.py
bytes
0
source_linux-ibm-6.8.py
bytes
0
source_linux-ibm.py
bytes
0
source_linux-intel-iotg.py
bytes
0
source_linux-kvm.py
bytes
0
source_linux-lowlatency-hwe-6.8.py
bytes
0
source_linux-lowlatency.py
bytes
0
source_linux-meta-aws-6.8.py
bytes
0
source_linux-meta-aws.py
bytes
0
source_linux-meta-azure-6.8.py
bytes
0
source_linux-meta-azure-fde.py
bytes
0
source_linux-meta-azure.py
bytes
0
source_linux-meta-gcp-6.8.py
bytes
0
source_linux-meta-gcp.py
bytes
0
source_linux-meta-gke.py
bytes
0
source_linux-meta-gkeop.py
bytes
0
source_linux-meta-hwe-6.8.py
bytes
0
source_linux-meta-ibm-6.8.py
bytes
0
source_linux-meta-ibm.py
bytes
0
source_linux-meta-intel-iotg.py
bytes
0
source_linux-meta-kvm.py
bytes
0
source_linux-meta-lowlatency-hwe-6.8.py
bytes
0
source_linux-meta-lowlatency.py
bytes
0
source_linux-meta-nvidia-6.8.py
bytes
0
source_linux-meta-nvidia-tegra-igx.py
bytes
0
source_linux-meta-nvidia-tegra.py
bytes
0
source_linux-meta-nvidia.py
bytes
0
source_linux-meta-oracle-6.8.py
bytes
0
source_linux-meta-oracle.py
bytes
0
source_linux-meta-realtime.py
bytes
0
source_linux-meta-riscv-6.8.py
bytes
0
source_linux-meta-xilinx-zynqmp.py
bytes
0
source_linux-nvidia-6.8.py
bytes
0
source_linux-nvidia-tegra-igx.py
bytes
0
source_linux-nvidia-tegra.py
bytes
0
source_linux-nvidia.py
bytes
0
source_linux-oracle-6.8.py
bytes
0
source_linux-oracle.py
bytes
0
source_linux-raspi.py
bytes
0
source_linux-realtime.py
bytes
0
source_linux-restricted-modules-aws-6.8.py
bytes
0
source_linux-restricted-modules-aws.py
bytes
0
source_linux-restricted-modules-azure-6.8.py
bytes
0
source_linux-restricted-modules-azure.py
bytes
0
source_linux-restricted-modules-gcp-6.8.py
bytes
0
source_linux-restricted-modules-gcp.py
bytes
0
source_linux-restricted-modules-hwe-6.8.py
bytes
0
source_linux-restricted-modules-ibm-6.8.py
bytes
0
source_linux-restricted-modules-intel-iotg.py
bytes
0
source_linux-restricted-modules-lowlatency-hwe-6.8.py
bytes
0
source_linux-restricted-modules-lowlatency.py
bytes
0
source_linux-restricted-modules-nvidia-6.8.py
bytes
0
source_linux-restricted-modules-nvidia-tegra-igx.py
bytes
0
source_linux-restricted-modules-nvidia.py
bytes
0
source_linux-restricted-modules-oracle-6.8.py
bytes
0
source_linux-restricted-modules-oracle.py
bytes
0
source_linux-restricted-modules.py
bytes
0
source_linux-riscv-6.8.py
bytes
0
source_linux-signed-aws-6.8.py
bytes
0
source_linux-signed-aws.py
bytes
0
source_linux-signed-azure-6.8.py
bytes
0
source_linux-signed-azure-fde.py
bytes
0
source_linux-signed-azure.py
bytes
0
source_linux-signed-gcp-6.8.py
bytes
0
source_linux-signed-gcp.py
bytes
0
source_linux-signed-gke.py
bytes
0
source_linux-signed-gkeop.py
bytes
0
source_linux-signed-hwe-6.8.py
bytes
0
source_linux-signed-ibm-6.8.py
bytes
0
source_linux-signed-ibm.py
bytes
0
source_linux-signed-intel-iotg.py
bytes
0
source_linux-signed-kvm.py
bytes
0
source_linux-signed-lowlatency-hwe-6.8.py
bytes
0
source_linux-signed-lowlatency.py
bytes
0
source_linux-signed-nvidia-6.8.py
bytes
0
source_linux-signed-nvidia-tegra-igx.py
bytes
0
source_linux-signed-nvidia-tegra.py
bytes
0
source_linux-signed-nvidia.py
bytes
0
source_linux-signed-oracle-6.8.py
bytes
0
source_linux-signed-oracle.py
bytes
0
source_linux-signed-realtime.py
bytes
0
source_linux-xilinx-zynqmp.py
bytes
0
source_mdadm.py
2252 bytes
0644
source_mesa-demos.py
24506 bytes
0755
source_mesa.py
24506 bytes
0755
source_mtdev.py
4168 bytes
0644
source_nfs-utils.py
1194 bytes
0644
source_nginx.py
647 bytes
0644
source_ntp.py
484 bytes
0644
source_openjdk-8.py
1739 bytes
0644
source_pixman.py
24506 bytes
0755
source_plymouth.py
1474 bytes
0644
source_radeontool.py
24506 bytes
0755
source_shadow.py
720 bytes
0644
source_shim-signed.py
2000 bytes
0644
source_shim.py
2000 bytes
0644
source_sudo.py
1160 bytes
0644
source_ubuntu-advantage-tools.py
1246 bytes
0644
source_ubuntu-release-upgrader.py
2684 bytes
0644
source_unattended-upgrades.py
705 bytes
0644
source_update-manager.py
2444 bytes
0644
source_wayland.py
24506 bytes
0755
source_weston.py
24506 bytes
0755
source_x-kit.py
24506 bytes
0755
source_x11-apps.py
24506 bytes
0755
source_x11-session-utils.py
24506 bytes
0755
source_x11-utils.py
24506 bytes
0755
source_x11-xfs-utils.py
24506 bytes
0755
source_x11-xkb-utils.py
24506 bytes
0755
source_x11-xserver-utils.py
24506 bytes
0755
source_xauth.py
24506 bytes
0755
source_xbitmaps.py
24506 bytes
0755
source_xcb-proto.py
24506 bytes
0755
source_xcompmgr.py
24506 bytes
0755
source_xcursor-themes.py
24506 bytes
0755
source_xdm.py
24506 bytes
0755
source_xf86-input-evtouch.py
24506 bytes
0755
source_xf86-input-mtrack.py
24506 bytes
0755
source_xf86-input-wacom.py
24506 bytes
0755
source_xfonts-core.py
24506 bytes
0755
source_xfonts-utils.py
24506 bytes
0755
source_xfs.py
24506 bytes
0755
source_xft.py
24506 bytes
0755
source_xinit.py
24506 bytes
0755
source_xinput-calibrator.py
24506 bytes
0755
source_xinput.py
24506 bytes
0755
source_xkeyboard-config.py
24506 bytes
0755
source_xorg-docs.py
24506 bytes
0755
source_xorg-options-editor-gtk.py
24506 bytes
0755
source_xorg-server.py
24506 bytes
0755
source_xorg-sgml-doctools.py
24506 bytes
0755
source_xorg.py
24506 bytes
0755
source_xorgproto.py
24506 bytes
0755
source_xrandr.py
24506 bytes
0755
source_xrestop.py
24506 bytes
0755
source_xserver-xorg-input-evdev.py
24506 bytes
0755
source_xserver-xorg-input-joystick.py
24506 bytes
0755
source_xserver-xorg-input-libinput.py
24506 bytes
0755
source_xserver-xorg-input-mouse.py
24506 bytes
0755
source_xserver-xorg-input-synaptics.py
24506 bytes
0755
source_xserver-xorg-input-vmmouse.py
24506 bytes
0755
source_xserver-xorg-input-wacom.py
24506 bytes
0755
source_xserver-xorg-video-amdgpu.py
24506 bytes
0755
source_xserver-xorg-video-ati.py
24506 bytes
0755
source_xserver-xorg-video-dummy.py
24506 bytes
0755
source_xserver-xorg-video-fbdev.py
24506 bytes
0755
source_xserver-xorg-video-intel.py
24506 bytes
0755
source_xserver-xorg-video-mga.py
24506 bytes
0755
source_xserver-xorg-video-nouveau.py
24506 bytes
0755
source_xserver-xorg-video-openchrome.py
24506 bytes
0755
source_xserver-xorg-video-qxl.py
24506 bytes
0755
source_xserver-xorg-video-vesa.py
24506 bytes
0755
source_xserver-xorg-video-vmware.py
24506 bytes
0755
source_xterm.py
24506 bytes
0755
source_xtrace.py
24506 bytes
0755
source_xtrans.py
24506 bytes
0755
source_xutils-dev.py
24506 bytes
0755
systemd.py
871 bytes
0644
udev.py
455 bytes
0644
xserver-xorg-core.py
24506 bytes
0755
N4ST4R_ID | Naxtarrr