HP folio G1でubuntu 16.04を使う
約1年前に中古でFolio G1を購入してUbuntu 16.04をインストールした。
そのままだといろいろ不具合があって四苦八苦。
・起動直後はそれなにに動くが、一旦サスペンドするとキーボードが反応しなくなる。
この不具合は、BIOSのPower Management OptionsでConnected Standby Supportedのチェックをはずすと治った。(どういうメカニズムかはよく理解していないが。。)
・画面の明るさを変更するキーが全く効かず、スキャンコードもおかしい。
こちらは、最新のアップデートを全部適用したらキーが効くようになった。
・タッチパッドの不具合。
ハードウエアドライバが複数競合していてわけがわからない状態で、設定をいじくり回していろいろ試した。もう詳しく覚えていないが、以下のような不具合があった。
・キータイプ時にタッチパッドが反応してポインタが飛ぶ。
・サスペンド前と後でドライバが入れ替わり、挙動が変わる。
・サスペンド後にタッチパッドが反応しなくなる。
・左クリックしたままドラッグ動作でテキスト選択すると、ポインタがとんでもないところに飛ぶ。などなど。
関係するドライバはpsmouse、i2c_desinware_core、i2c_designware_platform、i2c_hidといろいろある模様。何もしないとi2c_designware_platformが使われているようで、この場合、手のひら検知ができないが、ドラッグでポインタが飛ぶことはないので、しばらくこの状態で使っていたが、キータイプでポインタが飛んでストレスがたまる。
最近もういちどいろいろ試し、以下の設定でいい感じになった(ように思う)。
/etc/default/grubを編集してカーネルパラメータmodprobe.blacklist=i2c_hidを追加。
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash modprobe.blacklist=i2c_hid"
update-grubの実行を忘れずに。
/etc/modprobe.d/blacklist.confにblacklist i2c_hidを追記しても効果がなかったので上記の設定。
この状態でxinputを実行すると次のように表示された。
⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ AlpsPS/2 ALPS GlidePoint id=13 [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)] ↳ Sleep Button id=8 [slave keyboard (3)] ↳ HP HD Camera: HP HD Camera id=9 [slave keyboard (3)] ↳ Intel HID events id=11 [slave keyboard (3)] ↳ AT Translated Set 2 keyboard id=12 [slave keyboard (3)] ↳ HP Wireless hotkeys id=14 [slave keyboard (3)] ↳ HP WMI hotkeys id=15 [slave keyboard (3)]
設定前は、
⎜ ↳ ALP000F:00 044E:120C id=10 [slave pointer (2)]
というのがあった。
次にlibinputをインストール
sudo apt install xserver-xorg-input-libinput
あとは、/etc/X11/xorg.conf.d/にlibinputの設定を書き、2本指の垂直・水平のスクロールなどができるようになった。手のひら検知はできているのか不明(できていない気がする)。
sudo libinput-debug-eventsでポインタの認識状態を確認できる。
event5 POINTER_MOTION +3.29s 0.30/ 0.79 event5 POINTER_MOTION +3.32s 0.30/ 0.00 libinput error: kernel bug: Touch jump detected and discarded. See https://wayland.freedesktop.org/libinput/doc/1.6.3/touchpad_jumping_cursor.html for details event5 POINTER_BUTTON +3.63s BTN_LEFT (272) released, seat count: 0
ドラッグ動作のバグが回避されているのがわかる。
2本指で横スクロールした時の出力
event5 POINTER_AXIS +2.56s vert 0.00 horiz 0.91* (finger) event5 POINTER_AXIS +2.57s vert 0.00 horiz 0.15* (finger) event5 POINTER_AXIS +2.58s vert 0.00 horiz 0.15* (finger) event5 POINTER_AXIS +2.63s vert 0.00 horiz 2.73* (finger) event5 POINTER_AXIS +2.64s vert 0.00 horiz 0.61* (finger)
horizの値がちゃんと出ている。
ということで、タッチパッドがすこしマシに使えるようになった。
手のひら検知は要確認。以前はデバイスが
⎜ ↳ AlpsPS/2 ALPS DualPoint TouchPad id=10 [slave pointer (2)] ⎜ ↳ AlpsPS/2 ALPS DualPoint Stick id=13 [slave pointer (2)]
と認識されていたこともあるので今の状態ではダメかも。