Linuxでタッチパッドが機能しないAsusGL503VDがあります。
Arch、Debian、Ubuntu 16/17/18、Sabayon、Pop_OS、Fedoraなどのさまざまなディストリビューションを試しました。それらのどれもタッチパッドを機能させなかったので、私はUbuntu 18.04に落ち着き、自分でデバッグすることにしました。
まず、このラップトップはかなり新しいので、acpi = force GRUBパラメーターなしでは起動しません。次に、モジュールi2c-hidのロードが許可されている場合、黒い画面で起動します。 (したがって、i2c-hidをブラックリストに登録する必要がありました)i2c-hidがタッチパッドを処理するドライバーであると確信しているので、これはおそらく調べる価値のある問題です。モジュールのロードが許可されたときに、 ctrl + alt + f *コンボで端末に到達することすらできません。それはただの黒で、何もありません。
私のWindowsパーティションから、タッチパッドはELAN1200(elantechではない)であることがわかりました。モジュールhid-elanをロードしようとしましたが、成功しませんでした。必死になって、私もシナプティクスモジュールを試してみました。さまざまなx.org.conf.d構成を試しましたが、ラップトップがGnomeDEに到達するのを妨げるだけでした。無駄に、libinputを使用してみました。
I8042.nomux = 1、i8042.noloop、i8042.nopnp、i8042.kdbreset = 1、i8042.resetを試しました。それらのどれもうまくいきませんでした。 (私が収集したものから、私のタッチパッド/キーボードコンボはi8042チップによって管理されている可能性がありますが、xinput出力からは、ITE8910がコンボを管理しているように見えます。)
Xinput出力は、タッチパッドがタッチパッド/キーボードコンボの一部である可能性があることを示しています。タッチパッドとキーボードは1つのデバイスだと思います:ITE8910
xinput出力:
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ MOSART Semi. USB Device id=12 [slave pointer (2)]
⎜ ↳ ITE Tech. Inc. ITE Device(8910) id=14 [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)]
↳ Video Bus id=9 [slave keyboard (3)]
↳ Power Button id=10 [slave keyboard (3)]
↳ Sleep Button id=11 [slave keyboard (3)]
↳ USB2.0 HD UVC WebCam: USB2.0 HD id=13 [slave keyboard (3)]
↳ Asus WMI hotkeys id=15 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=16 [slave keyboard (3)]
↳ ITE Tech. Inc. ITE Device(8910) id=17 [slave keyboard (3)]
Dmesgの出力は、デバイスがUSB経由で接続されていることを示しています。
[ 2.408602] usb 1-8: new full-speed USB device number 5 using xhci_hcd
[ 2.562105] usb 1-8: New USB device found, idVendor=0b05, idProduct=1869
[ 2.562106] usb 1-8: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 2.562107] usb 1-8: Product: ITE Device(8910)
[ 2.562108] usb 1-8: Manufacturer: ITE Tech. Inc.
Lsusbの場合、ベンダーIDと製品IDを持つ適切なデバイスが表示されます。
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 0b05:1869 ASUSTek Computer, Inc.
Bus 001 Device 004: ID 13d3:5666 IMC Networks
Bus 001 Device 003: ID 8087:0a2b Intel Corp.
Bus 001 Device 002: ID 062a:410c Creative Labs
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
注:CreativeLabsデバイスは外部マウスです。
Lsusb -vd 0b05:1869の場合、キーボード関連の記述子のみが表示されます。
Bus 001 Device 005: ID 0b05:1869 ASUSTek Computer, Inc.
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x0b05 ASUSTek Computer, Inc.
idProduct 0x1869
bcdDevice 0.03
iManufacturer 1 ITE Tech. Inc.
iProduct 2 ITE Device(8910)
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 34
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 1 Boot Interface Subclass
bInterfaceProtocol 1 Keyboard
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.10
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 263
Report Descriptor: (length is 263)
Item(Global): Usage Page, data= [ 0x89 0xff ] 65417
(null)
Item(Local ): Usage, data= [ 0x10 ] 16
(null)
Item(Main ): Collection, data= [ 0x01 ] 1
Application
Item(Global): Report ID, data= [ 0xa5 ] 165
Item(Local ): Usage, data= [ 0x01 ] 1
(null)
Item(Global): Logical Minimum, data= [ 0x00 ] 0
Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
Item(Global): Report Size, data= [ 0x08 ] 8
Item(Global): Report Count, data= [ 0x10 ] 16
Item(Main ): Feature, data= [ 0x00 ] 0
Data Array Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Main ): End Collection, data=none
Item(Global): Usage Page, data= [ 0x89 0xff ] 65417
(null)
Item(Local ): Usage, data= [ 0x0f 0xff ] 65295
(null)
Item(Main ): Collection, data= [ 0x01 ] 1
Application
Item(Global): Report ID, data= [ 0x05 ] 5
Item(Local ): Usage Minimum, data= [ 0x00 ] 0
(null)
Item(Local ): Usage Maximum, data= [ 0xff ] 255
(null)
Item(Global): Logical Minimum, data= [ 0x00 ] 0
Item(Global): Logical Maximum, data= [ 0xff ] 255
Item(Global): Report Count, data= [ 0x08 ] 8
Item(Global): Report Size, data= [ 0x01 ] 1
Item(Main ): Input, data= [ 0x06 ] 6
Data Variable Relative No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Main ): End Collection, data=none
Item(Global): Usage Page, data= [ 0x01 ] 1
Generic Desktop Controls
Item(Local ): Usage, data= [ 0x06 ] 6
Keyboard
Item(Main ): Collection, data= [ 0x01 ] 1
Application
Item(Global): Report ID, data= [ 0x01 ] 1
Item(Global): Report Size, data= [ 0x01 ] 1
Item(Global): Report Count, data= [ 0x08 ] 8
Item(Global): Usage Page, data= [ 0x07 ] 7
Keyboard
Item(Local ): Usage Minimum, data= [ 0xe0 ] 224
Control Left
Item(Local ): Usage Maximum, data= [ 0xe7 ] 231
GUI Right
Item(Global): Logical Minimum, data= [ 0x00 ] 0
Item(Global): Logical Maximum, data= [ 0x01 ] 1
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report Count, data= [ 0x01 ] 1
Item(Global): Report Size, data= [ 0x08 ] 8
Item(Main ): Input, data= [ 0x03 ] 3
Constant Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report Count, data= [ 0x05 ] 5
Item(Global): Report Size, data= [ 0x01 ] 1
Item(Global): Usage Page, data= [ 0x08 ] 8
LEDs
Item(Local ): Usage Minimum, data= [ 0x01 ] 1
NumLock
Item(Local ): Usage Maximum, data= [ 0x05 ] 5
Kana
Item(Main ): Output, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Report Count, data= [ 0x01 ] 1
Item(Global): Report Size, data= [ 0x03 ] 3
Item(Main ): Output, data= [ 0x03 ] 3
Constant Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Usage Page, data= [ 0x07 ] 7
Keyboard
Item(Local ): Usage Minimum, data= [ 0x00 ] 0
No Event
Item(Local ): Usage Maximum, data= [ 0xff 0x00 ] 255
(null)
Item(Global): Logical Minimum, data= [ 0x00 ] 0
Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
Item(Global): Report Count, data= [ 0x06 ] 6
Item(Global): Report Size, data= [ 0x08 ] 8
Item(Main ): Input, data= [ 0x00 ] 0
Data Array Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Global): Usage Page, data= [ 0x07 ] 7
Keyboard
Item(Local ): Usage Minimum, data= [ 0x00 ] 0
No Event
Item(Local ): Usage Maximum, data= [ 0xdf ] 223
(null)
Item(Global): Logical Minimum, data= [ 0x00 ] 0
Item(Global): Logical Maximum, data= [ 0x01 ] 1
Item(Global): Report Count, data= [ 0xe0 ] 224
Item(Global): Report Size, data= [ 0x01 ] 1
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Main ): End Collection, data=none
Item(Global): Usage Page, data= [ 0x31 0xff ] 65329
(null)
Item(Local ): Usage, data= [ 0x76 ] 118
(null)
Item(Main ): Collection, data= [ 0x01 ] 1
Application
Item(Global): Report ID, data= [ 0x5a ] 90
Item(Local ): Usage Minimum, data= [ 0x00 ] 0
(null)
Item(Local ): Usage Maximum, data= [ 0xff 0x00 ] 255
(null)
Item(Global): Logical Minimum, data= [ 0x00 ] 0
Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
Item(Global): Report Size, data= [ 0x08 ] 8
Item(Global): Report Count, data= [ 0x01 ] 1
Item(Main ): Input, data= [ 0x00 ] 0
Data Array Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage Minimum, data= [ 0x00 ] 0
(null)
Item(Local ): Usage Maximum, data= [ 0xff 0x00 ] 255
(null)
Item(Global): Logical Minimum, data= [ 0x00 ] 0
Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
Item(Global): Report Size, data= [ 0x08 ] 8
Item(Global): Report Count, data= [ 0x10 ] 16
Item(Main ): Feature, data= [ 0x00 ] 0
Data Array Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Main ): End Collection, data=none
Item(Global): Usage Page, data= [ 0x31 0xff ] 65329
(null)
Item(Local ): Usage, data= [ 0x79 ] 121
(null)
Item(Main ): Collection, data= [ 0x01 ] 1
Application
Item(Global): Report ID, data= [ 0x5d ] 93
Item(Local ): Usage Minimum, data= [ 0x00 ] 0
(null)
Item(Local ): Usage Maximum, data= [ 0xff 0x00 ] 255
(null)
Item(Global): Logical Minimum, data= [ 0x00 ] 0
Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
Item(Global): Report Size, data= [ 0x08 ] 8
Item(Global): Report Count, data= [ 0x05 ] 5
Item(Main ): Input, data= [ 0x00 ] 0
Data Array Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Local ): Usage Minimum, data= [ 0x00 ] 0
(null)
Item(Local ): Usage Maximum, data= [ 0xff 0x00 ] 255
(null)
Item(Global): Logical Minimum, data= [ 0x00 ] 0
Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
Item(Global): Report Size, data= [ 0x08 ] 8
Item(Global): Report Count, data= [ 0x10 ] 16
Item(Main ): Feature, data= [ 0x00 ] 0
Data Array Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Main ): End Collection, data=none
Item(Global): Usage Page, data= [ 0x0c ] 12
Consumer
Item(Local ): Usage, data= [ 0x01 ] 1
Consumer Control
Item(Main ): Collection, data= [ 0x01 ] 1
Application
Item(Global): Report ID, data= [ 0x02 ] 2
Item(Local ): Usage Minimum, data= [ 0x00 ] 0
Unassigned
Item(Local ): Usage Maximum, data= [ 0x3c 0x02 ] 572
AC Format
Item(Global): Logical Minimum, data= [ 0x00 ] 0
Item(Global): Logical Maximum, data= [ 0x3c 0x02 ] 572
Item(Global): Report Size, data= [ 0x10 ] 16
Item(Global): Report Count, data= [ 0x01 ] 1
Item(Main ): Input, data= [ 0x00 ] 0
Data Array Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Main ): End Collection, data=none
Item(Global): Usage Page, data= [ 0x01 ] 1
Generic Desktop Controls
Item(Local ): Usage, data= [ 0x80 ] 128
System Control
Item(Main ): Collection, data= [ 0x01 ] 1
Application
Item(Global): Report ID, data= [ 0x04 ] 4
Item(Local ): Usage Minimum, data= [ 0x81 ] 129
System Power Down
Item(Local ): Usage Maximum, data= [ 0x83 ] 131
System Wake Up
Item(Global): Logical Minimum, data= [ 0x00 ] 0
Item(Global): Logical Maximum, data= [ 0x01 ] 1
Item(Global): Report Count, data= [ 0x08 ] 8
Item(Global): Report Size, data= [ 0x01 ] 1
Item(Main ): Input, data= [ 0x02 ] 2
Data Variable Absolute No_Wrap Linear
Preferred_State No_Null_Position Non_Volatile Bitfield
Item(Main ): End Collection, data=none
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 4
Device Status: 0x0001
Self Powered
これは、タッチパッド側が現在利用できないことを示しています。見えない。
だからここに私の質問があります:なぜタッチパッドが見えないのですか?それを見つけてそのドライバーのリバースエンジニアリングを開始するにはどうすればよいですか?
askubuntuにも同様のスレッドがあります:
https://askubuntu.com/questions/1038602/18-04-ite-8910-touchpad-on-asus-strix-gl703ge-not-working
ITEとASUSでデータシート、マニュアル、プロトコル仕様を尋ねましたが、今のところ運がありませんでしたが、両方のチケットはまだ開いています。
残念ながら、私はVogons(ASUS First Level Support)では運がないと思います
彼らはどこかにドキュメントを持っている必要があります。そうでなければ、ラップトップを設計できず、Windowsドライバーも作成できませんでしたが、Lady Vogonは、ソフトウェアまたはLinuxをサポートしておらず、ハードウェアメーカーであると私に言いました。通常、データシートはハードウェアのものであると私が言ったとき、彼女はまだ答えていませんでした。
Windows Tocuhpadドライバーのi2cをスニッフィングして、init-sequenceを見つけ、それがどのように機能するかを調べるのはどうですか。
次に、同じタッチパッドを備えているようで、DebianでもUbuntuでも動作しないGL703GEの場合、ASUS WebサイトのWindowsドライバーが壊れているため、動作するWindowsドライバーをダウンロードできるリンクが送られてきました。
このバージョンを試してください http://dlcdnet.asus.com/pub/ASUS/GamingNB/GL703GS/Pricision_TouchPad_V110021.Zip またはこのバージョン: http://dlcdnet.asus.com/pub /ASUS/GamingNB/GL703VD/Touchpad_Win10_64_VER11022.Zip