You are not logged in.
Pages: 1
Hello all!
I've changed my laptop recently and my touchpad doesn't work in Linux.
dmesg message on boot:
[ 3.444103] i2c_hid i2c-ELAN1205:00: supply vdd not found, using dummy regulator
[ 3.444123] i2c_hid i2c-ELAN1205:00: supply vddl not found, using dummy regulator
# cat /sys/bus/i2c/devices/i2c-ELAN1205:00/*
acpi:ELAN1205:PNP0C50:
ELAN1205:00
cat: '/sys/bus/i2c/devices/i2c-ELAN1205:00/power': Is a directory
cat: '/sys/bus/i2c/devices/i2c-ELAN1205:00/subsystem': Is a directory
MODALIAS=acpi:ELAN1205:PNP0C50:
I've noticed that the elan_i2c driver does not have alias for 1205.
# modinfo elan_i2c
filename: /lib/modules/5.7.2-arch1-1/kernel/drivers/input/mouse/elan_i2c.ko.xz
license: GPL
description: Elan I2C/SMBus Touchpad driver
author: Duson Lin <dusonlin@emc.com.tw>
srcversion: DDE1D80DD39B77B633A1F89
alias: i2c:elan_i2c
alias: acpi*:ELAN1000:*
alias: acpi*:ELAN0632:*
alias: acpi*:ELAN0631:*
alias: acpi*:ELAN062D:*
alias: acpi*:ELAN062C:*
alias: acpi*:ELAN062B:*
alias: acpi*:ELAN062A:*
alias: acpi*:ELAN0629:*
alias: acpi*:ELAN0628:*
alias: acpi*:ELAN0627:*
alias: acpi*:ELAN0626:*
alias: acpi*:ELAN0625:*
alias: acpi*:ELAN0624:*
alias: acpi*:ELAN0623:*
alias: acpi*:ELAN0622:*
alias: acpi*:ELAN0621:*
alias: acpi*:ELAN0620:*
alias: acpi*:ELAN061F:*
alias: acpi*:ELAN061E:*
alias: acpi*:ELAN061D:*
alias: acpi*:ELAN061C:*
alias: acpi*:ELAN061A:*
alias: acpi*:ELAN0619:*
alias: acpi*:ELAN0618:*
alias: acpi*:ELAN0617:*
alias: acpi*:ELAN0616:*
alias: acpi*:ELAN0615:*
alias: acpi*:ELAN0612:*
alias: acpi*:ELAN0611:*
alias: acpi*:ELAN0610:*
alias: acpi*:ELAN060F:*
alias: acpi*:ELAN060C:*
alias: acpi*:ELAN060B:*
alias: acpi*:ELAN0609:*
alias: acpi*:ELAN0608:*
alias: acpi*:ELAN0607:*
alias: acpi*:ELAN0606:*
alias: acpi*:ELAN0605:*
alias: acpi*:ELAN0604:*
alias: acpi*:ELAN0603:*
alias: acpi*:ELAN0602:*
alias: acpi*:ELAN0601:*
alias: acpi*:ELAN0600:*
alias: acpi*:ELAN0100:*
alias: acpi*:ELAN0000:*
alias: of:N*T*Celan,ekth3000C*
alias: of:N*T*Celan,ekth3000
depends:
retpoline: Y
name: elan_i2c
vermagic: 5.7.2-arch1-1 SMP preempt mod_unload
So, I tried to use different live cd distros to check if it will work somewhere because the list of aliases for acpi name is different for some distros. No luck here.
I've updated the BIOS to the latest version - didn't change anything.
I did include the name to the
./include/linux/input/elan-i2c-ids.h
file, compiled the driver for my kernel and inserted it. Now modinfo looks like this:
# modinfo elan_i2c
filename: /lib/modules/5.7.2-arch1-1/kernel/drivers/input/mouse/elan_i2c.ko.xz
license: GPL
description: Elan I2C/SMBus Touchpad driver
author: Duson Lin <dusonlin@emc.com.tw>
srcversion: DDE1D80DD39B77B633A1F89
alias: i2c:elan_i2c
alias: acpi*:ELAN1205:*
alias: acpi*:ELAN1000:*
alias: acpi*:ELAN0632:*
alias: acpi*:ELAN0631:*
alias: acpi*:ELAN062D:*
alias: acpi*:ELAN062C:*
alias: acpi*:ELAN062B:*
alias: acpi*:ELAN062A:*
alias: acpi*:ELAN0629:*
alias: acpi*:ELAN0628:*
alias: acpi*:ELAN0627:*
alias: acpi*:ELAN0626:*
alias: acpi*:ELAN0625:*
alias: acpi*:ELAN0624:*
alias: acpi*:ELAN0623:*
alias: acpi*:ELAN0622:*
alias: acpi*:ELAN0621:*
alias: acpi*:ELAN0620:*
alias: acpi*:ELAN061F:*
alias: acpi*:ELAN061E:*
alias: acpi*:ELAN061D:*
alias: acpi*:ELAN061C:*
alias: acpi*:ELAN061A:*
alias: acpi*:ELAN0619:*
alias: acpi*:ELAN0618:*
alias: acpi*:ELAN0617:*
alias: acpi*:ELAN0616:*
alias: acpi*:ELAN0615:*
alias: acpi*:ELAN0612:*
alias: acpi*:ELAN0611:*
alias: acpi*:ELAN0610:*
alias: acpi*:ELAN060F:*
alias: acpi*:ELAN060C:*
alias: acpi*:ELAN060B:*
alias: acpi*:ELAN0609:*
alias: acpi*:ELAN0608:*
alias: acpi*:ELAN0607:*
alias: acpi*:ELAN0606:*
alias: acpi*:ELAN0605:*
alias: acpi*:ELAN0604:*
alias: acpi*:ELAN0603:*
alias: acpi*:ELAN0602:*
alias: acpi*:ELAN0601:*
alias: acpi*:ELAN0600:*
alias: acpi*:ELAN0100:*
alias: acpi*:ELAN0000:*
alias: of:N*T*Celan,ekth3000C*
alias: of:N*T*Celan,ekth3000
depends:
retpoline: Y
name: elan_i2c
vermagic: 5.7.2-arch1-1 SMP preempt mod_unload
But dmesg still shows the error on modprobe:
[20498.653459] elan_i2c i2c-ELAN1205:00: supply vcc not found, using dummy regulator
I don't have enough knowledge to understand Linux kernel driver logic - how it searches for vcc (I guess it is voltage control) and what I need to provide for the driver to work.
Will appreciate any help.
Thanks!
Last edited by eth0:1 (2020-06-17 07:30:33)
Offline
try
sudo rmmod i2c_hid
sudo modprobe i2c_hid
I have a different touchpad, but also have messages and it do not interfere with the work.
[ 16.449868] i2c_hid i2c-ELAN0501:00: i2c-ELAN0501:00 supply vdd not found, using dummy regulator
[ 16.449896] i2c_hid i2c-ELAN0501:00: i2c-ELAN0501:00 supply vddl not found, using dummy regulator
check i2c_hid, hid_generic modules.
Offline
Thank you for a hint!
I did try to do rmmod\modeprobe trick on 'elan_i2c, i2c_hid, hid_generic, i2c_multitouch' with no success so far.
Kernel just recognizes that this is i2c device and does nothing with it.
xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ ASUSTeK Computer Inc. N-KEY Device Consumer Control id=16 [slave pointer (2)]
⎜ ↳ Wings Tech Gaming Mouse Consumer Control id=12 [slave pointer (2)]
⎜ ↳ Wings Tech Gaming Mouse id=17 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Asus Wireless Radio Control id=7 [slave keyboard (3)]
↳ Video Bus id=8 [slave keyboard (3)]
↳ Power Button id=9 [slave keyboard (3)]
↳ Sleep Button id=10 [slave keyboard (3)]
↳ ASUSTeK Computer Inc. N-KEY Device id=14 [slave keyboard (3)]
↳ ASUSTeK Computer Inc. N-KEY Device id=15 [slave keyboard (3)]
↳ ASUSTeK Computer Inc. N-KEY Device Consumer Control id=18 [slave keyboard (3)]
↳ Wings Tech Gaming Mouse id=11 [slave keyboard (3)]
↳ Wings Tech Gaming Mouse Consumer Control id=13 [slave keyboard (3)]
Offline
What's the output of "lsmod"?
Offline
Module Size Used by
i2c_hid 32768 0
fuse 139264 5
nf_conntrack_netbios_ns 16384 1
nf_conntrack_broadcast 16384 1 nf_conntrack_netbios_ns
wireguard 98304 0
curve25519_x86_64 36864 1 wireguard
libchacha20poly1305 16384 1 wireguard
chacha_x86_64 28672 1 libchacha20poly1305
poly1305_x86_64 28672 1 libchacha20poly1305
libblake2s 16384 1 wireguard
blake2s_x86_64 20480 1 libblake2s
ip6_udp_tunnel 16384 1 wireguard
udp_tunnel 16384 1 wireguard
libcurve25519_generic 49152 2 curve25519_x86_64,wireguard
libchacha 16384 1 chacha_x86_64
libblake2s_generic 20480 1 blake2s_x86_64
tun 57344 0
ccm 20480 9
rfcomm 90112 4
nf_nat_tftp 16384 0
nft_masq 16384 2
nft_objref 16384 2
nf_conntrack_tftp 20480 3 nf_nat_tftp
nft_fib_inet 16384 1
nft_fib_ipv4 16384 2 nft_fib_inet
nft_fib_ipv6 16384 1 nft_fib_inet
nft_fib 16384 3 nft_fib_ipv6,nft_fib_ipv4,nft_fib_inet
nft_reject_inet 16384 7
nf_reject_ipv4 16384 1 nft_reject_inet
nf_reject_ipv6 20480 1 nft_reject_inet
nft_reject 16384 1 nft_reject_inet
nft_ct 20480 28
nft_chain_nat 16384 4
nf_tables 237568 421 nft_ct,nft_reject_inet,nft_fib_ipv6,nft_objref,nft_fib_ipv4,nft_masq,nft_chain_nat,nft_reject,nft_fib,nft_fib_inet
ebtable_nat 16384 0
ebtable_broute 16384 0
ip6table_nat 16384 0
ip6table_mangle 16384 0
ip6table_raw 16384 0
ip6table_security 16384 0
iptable_nat 16384 0
nf_nat 53248 5 ip6table_nat,nf_nat_tftp,nft_masq,nft_chain_nat,iptable_nat
nf_conntrack 172032 7 nf_nat,nf_conntrack_tftp,nft_ct,nf_conntrack_netbios_ns,nf_nat_tftp,nf_conntrack_broadcast,nft_masq
nf_defrag_ipv6 24576 1 nf_conntrack
nf_defrag_ipv4 16384 1 nf_conntrack
iptable_mangle 16384 0
iptable_raw 16384 0
iptable_security 16384 0
ip_set 57344 0
nfnetlink 16384 3 nf_tables,ip_set
ebtable_filter 16384 0
ebtables 40960 3 ebtable_nat,ebtable_filter,ebtable_broute
ip6table_filter 16384 0
ip6_tables 36864 5 ip6table_filter,ip6table_raw,ip6table_nat,ip6table_mangle,ip6table_security
iptable_filter 16384 0
zram 36864 15
cmac 16384 2
algif_hash 16384 1
algif_skcipher 16384 1
af_alg 32768 6 algif_hash,algif_skcipher
bnep 28672 2
dm_crypt 53248 1
btusb 65536 0
btrtl 24576 1 btusb
btbcm 20480 1 btusb
btintel 32768 1 btusb
bluetooth 712704 27 btrtl,btintel,btbcm,bnep,btusb,rfcomm
ecdh_generic 16384 1 bluetooth
ecc 36864 1 ecdh_generic
mousedev 24576 0
joydev 28672 0
input_leds 16384 0
crc16 16384 1 bluetooth
edac_mce_amd 32768 0
kvm_amd 114688 0
kvm 835584 1 kvm_amd
ucsi_ccg 24576 0
iwlmvm 462848 0
snd_hda_codec_realtek 135168 1
snd_hda_codec_generic 98304 1 snd_hda_codec_realtek
irqbypass 16384 1 kvm
wmi_bmof 16384 0
serio 28672 0
ledtrig_audio 16384 2 snd_hda_codec_generic,snd_hda_codec_realtek
snd_hda_codec_hdmi 73728 2
crct10dif_pclmul 16384 1
mac80211 1040384 1 iwlmvm
snd_hda_intel 53248 13
crc32_pclmul 16384 0
snd_intel_dspcfg 28672 1 snd_hda_intel
ghash_clmulni_intel 16384 0
snd_hda_codec 167936 4 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_realtek
libarc4 16384 1 mac80211
snd_hda_core 106496 5 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek
snd_hwdep 16384 1 snd_hda_codec
nls_iso8859_1 16384 1
iwlwifi 393216 1 iwlmvm
r8169 98304 0
nls_cp437 20480 1
aesni_intel 368640 11
snd_pcm 147456 5 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_core
amdgpu 5738496 36
vfat 24576 1
snd_timer 45056 2 snd_pcm
realtek 24576 1
crypto_simd 16384 1 aesni_intel
fat 86016 1 vfat
cfg80211 897024 3 iwlmvm,iwlwifi,mac80211
cryptd 24576 4 crypto_simd,ghash_clmulni_intel
ucsi_acpi 16384 0
sp5100_tco 20480 0
gpu_sched 40960 1 amdgpu
dm_mod 163840 3 dm_crypt
glue_helper 16384 1 aesni_intel
pcspkr 16384 0
snd 114688 32 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek,snd_timer,snd_pcm
typec_ucsi 36864 2 ucsi_ccg,ucsi_acpi
ccp 118784 1 kvm_amd
snd_pci_acp3x 20480 0
libphy 147456 2 r8169,realtek
rfkill 28672 8 bluetooth,cfg80211
i2c_piix4 28672 0
soundcore 16384 1 snd
ttm 118784 1 amdgpu
i2c_nvidia_gpu 16384 0
typec 53248 1 typec_ucsi
wmi 36864 1 wmi_bmof
battery 20480 0
ac 16384 0
tpm_crb 20480 0
tpm_tis 16384 0
tpm_tis_core 32768 1 tpm_tis
tpm 77824 3 tpm_tis,tpm_crb,tpm_tis_core
rng_core 16384 2 ccp,tpm
acpi_cpufreq 28672 0
asus_wireless 20480 0
evdev 28672 46
pinctrl_amd 32768 0
mac_hid 16384 0
sg 40960 0
crypto_user 16384 0
ip_tables 36864 5 iptable_filter,iptable_security,iptable_raw,iptable_nat,iptable_mangle
x_tables 53248 11 ebtables,ip6table_filter,ip6table_raw,iptable_filter,iptable_security,ip6_tables,iptable_raw,ip_tables,ip6table_mangle,ip6table_security,iptable_mangle
btrfs 1519616 2
blake2b_generic 20480 0
libcrc32c 16384 3 nf_conntrack,nf_nat,btrfs
crc32c_generic 16384 0
xor 24576 1 btrfs
hid_generic 16384 0
usbhid 65536 0
hid 143360 3 i2c_hid,usbhid,hid_generic
raid6_pq 122880 1 btrfs
crc32c_intel 24576 3
xhci_pci 20480 0
xhci_hcd 286720 1 xhci_pci
nvidia_drm 53248 0
nvidia_uvm 1118208 0
nvidia_modeset 1118208 1 nvidia_drm
nvidia 20512768 8 nvidia_uvm,nvidia_modeset
ipmi_devintf 20480 0
ipmi_msghandler 73728 2 ipmi_devintf,nvidia
i915 2617344 0
intel_gtt 24576 1 i915
i2c_algo_bit 16384 2 amdgpu,i915
drm_kms_helper 258048 3 amdgpu,nvidia_drm,i915
syscopyarea 16384 1 drm_kms_helper
sysfillrect 16384 1 drm_kms_helper
sysimgblt 16384 1 drm_kms_helper
fb_sys_fops 16384 1 drm_kms_helper
cec 65536 2 drm_kms_helper,i915
rc_core 61440 1 cec
drm 581632 16 gpu_sched,drm_kms_helper,amdgpu,nvidia_drm,i915,ttm
agpgart 53248 3 intel_gtt,ttm,drm
Offline
No elantech module is loaded, neither are synaptics or psmouse. Nor a vendor specific WMI.
=> What notebook model is this exactly?
(It's not the case here, but one of my synaptics TPs simply starts deactivated, so I either have to use the HW switch or pass it a gently kick w/ synclient)
Do you have a parallel windows installation? (See link in my signature)
Can you toggle the TP in the BIOS settings?
Offline
Yeah, I can load the elan_i2c manually but it is not in use by anything.
This is ASUS Zephyrus G15 GA502IV notebook
This is not a HW switch case here. No hardware deactivation. It works perfectly in Windows (have dual boot).
I did disable Fast boot and secure boot in BIOS, I did play with some BIOS configurations also. But It lacks TP switch.
It looks like Linux still does not have a driver for this device.
Offline
Lots of similar posts here regarding elantech touchpad:-
https://forum.kaosx.us/d/2563-touchpad- … recognized
Offline
Lots of similar posts here regarding elantech touchpad:-
https://forum.kaosx.us/d/2563-touchpad- … recognized
Thank you! Found something new there.
The options that I didn't try before was
elantech_smbus=0 synaptics_intertouch=0
kernel options.
I added those options to
5.7.2-arch1-1
kernel. Didn't change anything.
I did compile
5.7.3-rc1-1
kernel. For now release candidate kernel does not boot X server but dmesg shows the same error. Can't check xinput there.
Adding kernel options didn't change anything.
Offline
elantech_smbus=0 synaptics_intertouch=0
The psmouse module isn't used (was my initial hope, thus the inquery for lsmod)
You can try "libinput debug-events" - but why does X11 fail? Nvidia driver?
Offline
libinput debug-events
doesn't show any input from the touchpad itself.
I'm not sure why release candidate kernel can't start X11. It shows that systemd-timesyncd.service is performing some heavy task using 3 of 16 CPU threads according to htop. journalctl just informs that it tries to start user's services in the infinite loop. While user's services fail to start - I can login as root in any other virtual console and check the dmesg. According to the logs - it fails to recognize the device too
Offline
Found out why kernel 5.7.3 doesn't boot X11:
https://bugzilla.kernel.org/show_bug.cgi?id=208221
Regression didn't find a way to ArchLinux's kernel.
Offline
Update:
Kernel 5.7.4 ArchLinux stable didn't solve the problem with the touchpad
Reinsatalled BIOS - also nothing.
Disabled KVM virtualisation in BIOS and some other options.
Updated to 5.7.5-rc1 kernel - touchpad is not recognized.
found an old topic: https://bbs.archlinux.org/viewtopic.php?id=233792 with what looks like the same issue (also have AMD CPU Ryzen 7 4800).
# zcat /proc/config.gz| grep CONFIG_PINCTRL_AMD
CONFIG_PINCTRL_AMD=y
recompiled Kernel with this option. Didn't help.
Tried all the kernel options in the topic above - changed nothing.
recompiled kernel with build in ELAN_I2C driver and some other I2C drivers that looked promising. Nothing.
Did notice that touchpad doesn't work in BIOS too. Neither does the USB mouse. May be it is by design and it should not work there. Contacted ASUS support asking if touchpad should work in BIOS and received "reflash BIOS" instructions.
Offline
Have you tried linux-5.8-rc5 available from Unofficial_user_repositories#miffe or linux-mainline?
Have you contacted the kernel developers about the issue? If it is not a packaging issue and there is no patch available https://bugs.archlinux.org/task/67262 can not solve the issue.
Offline
Have you tried linux-5.8-rc5 available from Unofficial_user_repositories#miffe or linux-mainline?
Have you contacted the kernel developers about the issue? If it is not a packaging issue and there is no patch available https://bugs.archlinux.org/task/67262 can not solve the issue.
Thank you! I will give a mainline kernel a try.
There is a reason why I think it is packaging-related issue. I found a person that has the same laptop as me, but he uses fedora (on fedora bug tracker, reporting issue with the touchpad), but after some manipulation with i2c_hid and with the latest fedora release he was able to make it work. I did contact him via email to check if he has a fedora kernel with no custom patches or configuration options and he has a stock latest kernel for a fedora workstation. I did try Fedora Live CD that didn't solve the issue for me, but the reason is - because it doesn't have a latest kernel (5.3?) in the live image. To update it to the latest - I need to install it but this is my main laptop now and this Arch installation dates back years with fine-tuning and custom configuration.
May be I was to quick in the decision that it is Arch's kernel problem. But I was hoping to receive help or may be any new directions that I didn't try before.
Thank you
Offline
https://src.fedoraproject.org/rpms/kernel -> pick a kernel version -> kernel-core-xxxx.xxxx.x86-64.rpm will contain config, the .config used for building that kernel. kernel-xxxx.xxxx.src.rpm will contain the patches.
So you could build the fedora kernel locally using the Arch build system.
Offline
Thank you for the idea. I did try to compile a Fedora kernel using Arch build system few times with compilation error.
But! I found an old usb external HDD drive and installed Fedora Linux there. No success. Touchpad is not working even with the latest fedora updates and kernel.
I did open a bug report in the upstream https://bugzilla.kernel.org/show_bug.cgi?id=208547
Offline
Pages: 1