如何讓Linux識別未識別的觸控板?

如何讓Linux識別未識別的觸控板?

Lenovo Yoga 720 的觸控板顯示在 lsusb 中,匯流排 ID 為 06cb:0081。 06cb 是 Synaptics 的供應商 ID。在 Google 上快速搜尋該字串沒有得到任何結果,除了其他人試圖讓觸控板在 720 上正常工作之外。

這讓我相信這是一個新設備。這台機器幾個月前才問世,可能沒有列在 libinput 或其他驅動程式用於將裝置與其功能進行匹配的任何裝置 ID 表中。我認為通用滑鼠模組會提供一些功能,但事實並非如此。

是否有地方可以告訴 Linux 將總線 ID 與觸控板驅動程式相匹配?從我對此所做的閱讀來看,觸控板驅動程式通常是在核心層級之外透過 X 伺服器並使用 uinput 透過 libinput 完成的。

因此,如果有人有任何想法或建議,請分享。

其他一些細節:

唯一與觸控板相關的地方似乎出現是lsusb

 Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 13d3:5621 IMC Networks 
Bus 001 Device 004: ID 06cb:0081 Synaptics, Inc. 
Bus 001 Device 003: ID 0cf3:e300 Qualcomm Atheros Communications 
Bus 001 Device 007: ID 046d:c245 Logitech, Inc. G400 Optical Mouse
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

xinput --list 的輸出是:

⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Wacom HID 50F8 Finger                     id=12   [slave  pointer  (2)]
⎜   ↳ Logitech Gaming Mouse G400                id=15   [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)]
   ↳ Video Bus                                 id=7    [slave  keyboard (3)]
   ↳ Video Bus                                 id=8    [slave  keyboard (3)]
   ↳ Power Button                              id=9    [slave  keyboard (3)]
   ↳ EasyCamera                                id=10   [slave  keyboard (3)]
   ↳ Wacom HID 50F8 Pen                        id=11   [slave  keyboard (3)]
   ↳ Ideapad extra buttons                     id=13   [slave  keyboard (3)]
   ↳ AT Translated Set 2 keyboard              id=14   [slave  keyboard (3)]

cat /proc/bus/input/devices 的輸出是

I: Bus=0011 Vendor=0001 Product=0001 Version=ab41
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
S: Sysfs=/devices/platform/i8042/serio0/input/input0
U: Uniq=
H: Handlers=sysrq kbd leds event0  
B: PROP=0
B: EV=120013
B: KEY=402000000 3803078f800d001 feffffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=7

I: Bus=0019 Vendor=0000 Product=0005 Version=0000
N: Name="Lid Switch"
P: Phys=PNP0C0D/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:17/PNP0C0D:00/input/input1
U: Uniq=
H: Handlers=event1  
B: PROP=0
B: EV=21
B: SW=1

I: Bus=0019 Vendor=0000 Product=0001 Version=0000
N: Name="Power Button"
P: Phys=PNP0C0C/button/input0                                                                  
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input2                              
U: Uniq=                                                                                       
H: Handlers=kbd event2                                                                         
B: PROP=0                                                                                      
B: EV=3                                                                                        
B: KEY=10000000000000 0                                                                        

I: Bus=0019 Vendor=0000 Product=0001 Version=0000                                              
N: Name="Power Button"                                                                         
P: Phys=LNXPWRBN/button/input0                                                                 
S: Sysfs=/devices/LNXSYSTM:00/LNXPWRBN:00/input/input3
U: Uniq=
H: Handlers=kbd event3  
B: PROP=0
B: EV=3
B: KEY=10000000000000 0

I: Bus=0019 Vendor=0000 Product=0000 Version=0000
N: Name="Ideapad extra buttons"
P: Phys=ideapad/input0
S: Sysfs=/devices/pci0000:00/0000:00:1f.0/PNP0C09:00/VPC2004:00/input/input4
U: Uniq=
H: Handlers=kbd rfkill event4  
B: PROP=0
B: EV=13
B: KEY=101400800100c03 400000000300000 0 2
B: MSC=10

I: Bus=0019 Vendor=0000 Product=0006 Version=0000
N: Name="Video Bus"
P: Phys=LNXVIDEO/video/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:00/LNXVIDEO:00/input/input5
U: Uniq=
H: Handlers=kbd event5  
B: PROP=0
B: EV=3
B: KEY=3e000b00000000 0 0 0

I: Bus=0019 Vendor=0000 Product=0006 Version=0000
N: Name="Video Bus"
P: Phys=LNXVIDEO/video/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:01/input/input6
U: Uniq=
H: Handlers=kbd event6  
B: PROP=0
B: EV=3
B: KEY=3e000b00000000 0 0 0

I: Bus=0010 Vendor=001f Product=0001 Version=0100
N: Name="PC Speaker"
P: Phys=isa0061/input0
S: Sysfs=/devices/platform/pcspkr/input/input7
U: Uniq=
H: Handlers=kbd event7  
B: PROP=0
B: EV=40001
B: SND=6

I: Bus=0018 Vendor=056a Product=50f8 Version=0100
N: Name="Wacom HID 50F8 Pen"
P: Phys=i2c-WCOM50F8:00
S: Sysfs=/devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-21/i2c-WCOM50F8:00/0018:056A:50
F8.0002/input/input8
U: Uniq=
H: Handlers=event8 mouse0  
B: PROP=2
B: EV=1b
B: KEY=1c03 0 0 0 0 0
B: ABS=1000003
B: MSC=1

I: Bus=0018 Vendor=056a Product=50f8 Version=0100
N: Name="Wacom HID 50F8 Finger"
P: Phys=i2c-WCOM50F8:00
S: Sysfs=/devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-21/i2c-WCOM50F8:00/0018:056A:50
F8.0002/input/input9
U: Uniq=
H: Handlers=event9 mouse1  
B: PROP=2
B: EV=b
B: KEY=400 0 0 0 0 0
B: ABS=260800000000003

I: Bus=0003 Vendor=13d3 Product=5621 Version=1611
N: Name="EasyCamera"
P: Phys=usb-0000:00:14.0-8/button
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.0/input/input11
U: Uniq=
H: Handlers=kbd event10  
B: PROP=0
B: EV=3
B: KEY=100000 0 0 0

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH Mic"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input12
U: Uniq=
H: Handlers=event11  
B: PROP=0
B: EV=21
B: SW=10

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH Headphone"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input13
U: Uniq=
H: Handlers=event12  
B: PROP=0
B: EV=21
B: SW=4

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH HDMI/DP,pcm=3"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input14
U: Uniq=
H: Handlers=event13  
B: PROP=0
B: EV=21
B: SW=140

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH HDMI/DP,pcm=7"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input15
U: Uniq=
H: Handlers=event14  
B: PROP=0
B: EV=21
B: SW=140

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH HDMI/DP,pcm=8"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input16
U: Uniq=
H: Handlers=event15  
B: PROP=0
B: EV=21
B: SW=140

答案1

我有同樣的機器,觸控板實際上是一個ELAN651設備,透過I2C匯流排連接。您看到的 USB ID 就是指紋辨識器的 USB ID。

最近,在 4.14 左右,內核中添加了對該觸控板的支持,請參閱相關線程:https://www.reddit.com/r/Lenovo/comments/6ebgbc/with_the_yoga_720_15_touchpad_not_working_on_linux/。使用正確的核心版本,它應該可以開箱即用。

答案2

如果它是 synaptics 觸控板,您可以給 synaptics 驅動程式一個機會。安裝它:

$ sudo pacman -S xf86-input-synaptics

然後,您可以複製預設設定檔以使用它:

$ cp /usr/share/X11/xorg.conf.d/70-synaptics.conf /etc/X11/xorg.conf.d/70-synaptics.conf

這在類似的案例中對我有幫助。來源:Arch Linux 維基

這部分觸控板裝置不位於 /dev/input/*也幫助了我。

相關內容