Touchpad not detecting in Linux

Bug #1825718 reported by DIPIN P JOSEPH on 2019-04-21
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Undecided
Unassigned
Disco
Undecided
Unassigned

Bug Description

This issue was observed in laptop -"iBall-Aer3" which has a touch-pad with integrated fingerprint scanner. Both works very well in Windows 10, but not in Linux.
Please Check.
Any help is highly appreciated.

ProblemType: Bug
DistroRelease: Ubuntu 19.04
Package: linux-image-5.0.0-13-generic 5.0.0-13.14
ProcVersionSignature: Ubuntu 5.0.0-13.14-generic 5.0.6
Uname: Linux 5.0.0-13-generic x86_64
ApportVersion: 2.20.10-0ubuntu27
Architecture: amd64
AudioDevicesInUse:
 USER PID ACCESS COMMAND
 /dev/snd/controlC0: dipin 1204 F.... pulseaudio
 /dev/snd/controlC1: dipin 1204 F.... pulseaudio
CurrentDesktop: ubuntu:GNOME
Date: Sun Apr 21 18:12:35 2019
InstallationDate: Installed on 2019-04-21 (0 days ago)
InstallationMedia: Ubuntu 19.04 "Disco Dingo" - Release amd64 (20190416)
MachineType: iBall Aer3
ProcFB: 0 inteldrmfb
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-5.0.0-13-generic root=UUID=53642f8a-ea5c-46e8-bde2-b1744102311b ro quiet splash vt.handoff=1
RelatedPackageVersions:
 linux-restricted-modules-5.0.0-13-generic N/A
 linux-backports-modules-5.0.0-13-generic N/A
 linux-firmware 1.178
SourcePackage: linux
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 07/26/2017
dmi.bios.vendor: American Megatrends Inc.
dmi.bios.version: YZ-BI-13.3-S133AR110-A55H-040-G
dmi.board.asset.tag: Default string
dmi.board.name: Aer3
dmi.board.vendor: iBall
dmi.board.version: Default string
dmi.chassis.asset.tag: Default string
dmi.chassis.type: 9
dmi.chassis.vendor: Default string
dmi.chassis.version: Default string
dmi.modalias: dmi:bvnAmericanMegatrendsInc.:bvrYZ-BI-13.3-S133AR110-A55H-040-G:bd07/26/2017:svniBall:pnAer3:pvrDefaultstring:rvniBall:rnAer3:rvrDefaultstring:cvnDefaultstring:ct9:cvrDefaultstring:
dmi.product.family: Default string
dmi.product.name: Aer3
dmi.product.sku: Default string
dmi.product.version: Default string
dmi.sys.vendor: iBall

DIPIN P JOSEPH (dipinpjoseph) wrote :

This change was made by a bot.

Changed in linux (Ubuntu):
status: New → Confirmed
Hui Wang (hui.wang) wrote :

Please add psmouse.dyndbg=+p to the bootargs, boot the kernel, then upload the dmesg.

After that, add psmouse.proto=bare to the booargs, boot the kernel test if the touchpad can work or not.

DIPIN P JOSEPH (dipinpjoseph) wrote :

Hi Hui Wang,

Thanks for the quick reply. I'm new to this place and i believe changes has to be done in "/etc/default/grub"

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash psmouse.dyndbg=+p"

One observation after boot-up;

dmesg | grep "i2c_hid"
[ 3.016774] i2c_hid i2c-SYNA3602:00: i2c-SYNA3602:00 supply vdd not found, using dummy regulator
[ 3.016799] i2c_hid i2c-SYNA3602:00: Linked as a consumer to regulator.0
[ 3.016800] i2c_hid i2c-SYNA3602:00: i2c-SYNA3602:00 supply vddl not found, using dummy regulator
[ 3.017997] i2c_hid i2c-SYNA3602:00: unexpected HID descriptor bcdVersion (0x00ff)

Attached latest dmesg.

DIPIN P JOSEPH (dipinpjoseph) wrote :

Added psmouse.proto=bare to "/etc/default/grub" and rebooted.
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash psmouse.dyndbg=+p psmouse.proto=bare"

Still not working.

Hui Wang (hui.wang) wrote :

Oh, your touchpad is i2c-hid, so it has nothing to do with psmouse.

Please add "i2c-hid.debug=1" and "hid.debug=1" to the bootargs, then upload the dmesg.

thx.

DIPIN P JOSEPH (dipinpjoseph) wrote :

Please check the latest dmesg.

Kai-Heng Feng (kaihengfeng) wrote :

Please test this kernel:
https://people.canonical.com/~khfeng/lp1825718/

Use the descriptor in i2c-hid-dmi-quirks.c.

DIPIN P JOSEPH (dipinpjoseph) wrote :

Hi Kai-Heng Feng,

The patch is working fine. Thank you so much. The touchpad now lists in xinput,

 xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ SYNA3602:00 0911:5288 Touchpad id=13 [slave pointer (2)]
⎜ ↳ Goodix Capacitive TouchScreen id=14 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
    ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
    ↳ Video Bus id=6 [slave keyboard (3)]
    ↳ Power Button id=7 [slave keyboard (3)]
    ↳ USB 2.0 PC Camera: PC Camera id=12 [slave keyboard (3)]
    ↳ Intel HID events id=15 [slave keyboard (3)]
    ↳ Intel HID 5 button array id=16 [slave keyboard (3)]
    ↳ AT Translated Set 2 keyboard id=17 [slave keyboard (3)]
    ↳ Goodix Capacitive TouchScreen id=19 [slave keyboard (3)]

When will this patch gets integrated to main stream kernel?

Thank you.

DIPIN P JOSEPH (dipinpjoseph) wrote :

Okay..thank you

Kai-Heng Feng (kaihengfeng) wrote :

Can you please test this kernel:
https://people.canonical.com/~khfeng/lp1835040-2/

We may have found a real fix to the issue.

Andan Daran (andandaran) wrote :

Hi Kai-Heng Feng,

I have a laptop with the same problem. It's a SCHNEIDER SCL142ALM.

I have compiled the ubuntu kernel modifying the "i2c_hid_dmi_desc_override_table" to add:
 {
  .ident = "SCHNEIDER SCL142ALM",
  .matches = {
   DMI_EXACT_MATCH(DMI_SYS_VENDOR, "SCHNEIDER"),
   DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "SCL142ALM"),
  },
  .driver_data = (void *)&sipodev_desc
 },

And it's working fine.

Probably I could ask to include it in the next kernel version, but I think that it's not a good option to modify the kernel for every new vendor and model that decides to use this device.

It would be possible to add some parameter in the bootargs like for example psmouse.proto=sipodev and then use the i2c-hid-dmi-quirks?

In the meanwhile, please can you add the SCHNEIDER SCL142ALM to the override list?

Than you.

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-disco' to 'verification-done-disco'. If the problem still exists, change the tag 'verification-needed-disco' to 'verification-failed-disco'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-disco
Changed in linux (Ubuntu Disco):
status: New → Fix Committed
Kai-Heng Feng (kaihengfeng) wrote :

Andan,
Can you please test latest mainline kernel? I think this commit can fix your issue:
commit 670784fb4ebe54434e263837390e358405031d9e
Author: Kai-Heng Feng <email address hidden>
Date: Tue Apr 30 16:37:53 2019 +0800

    pinctrl: intel: Clear interrupt status in mask/unmask callback

    Commit a939bb57cd47 ("pinctrl: intel: implement gpio_irq_enable") was
    added because clearing interrupt status bit is required to avoid
    unexpected behavior.

    Turns out the unmask callback also needs the fix, which can solve weird
    IRQ triggering issues on I2C touchpad ELAN1200.

    Signed-off-by: Kai-Heng Feng <email address hidden>
    Signed-off-by: Andy Shevchenko <email address hidden>

Launchpad Janitor (janitor) wrote :
Download full text (126.4 KiB)

This bug was fixed in the package linux - 5.0.0-31.33

---------------
linux (5.0.0-31.33) disco; urgency=medium

  * disco/linux: 5.0.0-31.33 -proposed tracker (LP: #1846026)

  * Packaging resync (LP: #1786013)
    - [Packaging] update helper scripts

  * /proc/self/maps paths missing on live session (was vlc won't start; eoan
    19.10 & bionic 18.04 ubuntu/lubuntu/kubuntu/xubuntu/ubuntu-mate dailies)
    (LP: #1842382)
    - SAUCE: Revert "UBUNTU: SAUCE: shiftfs: enable overlayfs on shiftfs"

linux (5.0.0-30.32) disco; urgency=medium

  * disco/linux: 5.0.0-30.32 -proposed tracker (LP: #1844362)

  * Disco update: upstream stable patchset 2019-08-20 (LP: #1840846)
    - Revert "e1000e: fix cyclic resets at link up with active tx"
    - e1000e: start network tx queue only when link is up
    - Input: synaptics - enable SMBUS on T480 thinkpad trackpad
    - nilfs2: do not use unexported cpu_to_le32()/le32_to_cpu() in uapi header
    - drivers: base: cacheinfo: Ensure cpu hotplug work is done before Intel RDT
    - firmware: improve LSM/IMA security behaviour
    - irqchip/gic-v3-its: Fix command queue pointer comparison bug
    - clk: ti: clkctrl: Fix returning uninitialized data
    - efi/bgrt: Drop BGRT status field reserved bits check
    - perf/core: Fix perf_sample_regs_user() mm check
    - ARM: dts: gemini Fix up DNS-313 compatible string
    - ARM: omap2: remove incorrect __init annotation
    - afs: Fix uninitialised spinlock afs_volume::cb_break_lock
    - x86/apic: Fix integer overflow on 10 bit left shift of cpu_khz
    - be2net: fix link failure after ethtool offline test
    - ppp: mppe: Add softdep to arc4
    - sis900: fix TX completion
    - ARM: dts: imx6ul: fix PWM[1-4] interrupts
    - pinctrl: mcp23s08: Fix add_data and irqchip_add_nested call order
    - dm table: don't copy from a NULL pointer in realloc_argv()
    - dm verity: use message limit for data block corruption message
    - x86/boot/64: Fix crash if kernel image crosses page table boundary
    - x86/boot/64: Add missing fixup_pointer() for next_early_pgt access
    - HID: chicony: add another quirk for PixArt mouse
    - pinctrl: mediatek: Ignore interrupts that are wake only during resume
    - cpu/hotplug: Fix out-of-bounds read when setting fail state
    - pinctrl: mediatek: Update cur_mask in mask/mask ops
    - linux/kernel.h: fix overflow for DIV_ROUND_UP_ULL
    - genirq: Delay deactivation in free_irq()
    - genirq: Fix misleading synchronize_irq() documentation
    - genirq: Add optional hardware synchronization for shutdown
    - x86/ioapic: Implement irq_get_irqchip_state() callback
    - x86/irq: Handle spurious interrupt after shutdown gracefully
    - x86/irq: Seperate unused system vectors from spurious entry again
    - ARC: hide unused function unw_hdr_alloc
    - s390: fix stfle zero padding
    - s390/qdio: (re-)initialize tiqdio list entries
    - s390/qdio: don't touch the dsci in tiqdio_add_input_queues()
    - crypto: talitos - move struct talitos_edesc into talitos.h
    - crypto: talitos - fix hash on SEC1.
    - crypto/NX: Set receive window credits to max number of CRBs in RxFIFO
    - drm/udl: introduce a macro to convert dev t...

Changed in linux (Ubuntu Disco):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers