ノートPCを買ったのでGentooをインストールしてみた
Gentooをインストールしました。
— 鳩 (@cc_shirai_cc) 2019年6月28日
きっかけ
今まで使っていたノートPCが
- たまに誤動作がおきて作業が止まる
- Gnomeを使っていたが入れたくないソフトウェアが入っていた (依存関係の解消ができるか不明だった)
- 512GBのストレージでは足りなかった
- 8GBのメモリも足りなかった
構成
Gnomeもいいがいらないパッケージが結構入ってアップデートがめんどくさくなるので軽量なウインドウマネージャを使いたい。 xmonadを使ったことがあったのでまたxmonadにしようと思う。今回のノート PCはタッチペンが使えてタブレットとしても操作できるらしいので少なくともタッチスクリーンは使えるようにする。
ハードウェア
HP Spectre x360 13 https://jp.ext.hp.com/notebooks/personal/spectre_x360_13_ap/
気に入ったところ
- メモリとSSDの容量が大きい
- 解像度が高い
気に入らないところ
- キー配列
- JIS配列
- Aの左隣がCaps lock
キー配列は設定を変えたり別のキーボードを使うつもりだったので気に入らないが妥協した。
OS
ストレージとかの関係でWindowsは消した。 もしかしたらVMでWindowsを入れるかもしれない。
デスクトップ環境
- lightdm
- 最初gdmを入れたけどいらないやつがどんどん入ってきて辛くなってきたのでlightdmにした。
- xmonad
wayland新しさに惹かれた
swayタイル型ウインドウマネージャi3っぽいやつ
swayだと常時CPUを70~100%使用してて気になったり、ブラウザを開くとたまにカクつくのでアップデートして治るのを待とうかなと思ってます。xmonadはwaylandを使わないのでwaylandもなし。 今まで使っていたxmonadにします。
日本語入力
ibus, mozcを使う。
今までibus, mozcを使っていたので今回もこれを使うことにした。
/etc/portage/make.conf
のUSEフラグにibus -fcitx4
を追加してibus
, mozc
をそれぞれインストールする。
工夫としてはibusで英語/日本語切り替えをすると入力中のフォームからフォーカスが外れてしまうのでibusではmozcのみ使用し、mozc内でIMEの切り替えをしている。
参考: http://gaobin.hatenablog.com/entry/2014/07/23/010558
その他
`` initはsystemdで動かしていて思ったよりスムーズにインストールできた。 ネットワークへの接続はwpa_supplicant。必要になったらNetworkManagerを使うようにする。
各種設定
ハードウェア
タッチパッド
デフォルトでは改善点がそこそこあり、 タップしてクリックできるようにしたり、macosみたくスワイプしてワークスペース変えたり(変えられたっけ?)したい。
タップの有効化
sway (XWayland)上で使っていたため、swaymsg -t get_inputs
から入力デバイス名を取得して
~/.config/sway/config
に
input "2:7:SynPS/2_Synaptics_TouchPad" { dwt enabled tap enabled natural_scroll enabled middle_emulation enabled }
を追加してタップを有効にする。
Xorg
xmonadなどXorg上で動作するものは以下のの設定をxorg.conf.d
以下のにおいておくだけで十分(libinputは不要かもしれない)
Section "InputClass" Identifier "libinput touchpad catchall" MatchIsTouchpad "on" MatchDevicePath "/dev/input/event*" Option "Tapping" "on" Option "NaturalScrolling" "true" Driver "libinput" EndSection
タッチスクリーン
タッチペンがついてて操作でき、ディスプレイが360度回転してタブレットな代わりになったりもしてくれる。 Linuxではデフォルトで対応してないのでいろいろドライバを入れて頑張る。 ちなみにUbuntuでは最初から対応しているのでlsmodの出力を読んだりすると参考になるかもしれない。
設定前の状態ではタッチスクリーンはELANTech製だがxinputやswaymsg -t get_inputs
から確認できなかったが特別なファームウェア等を入れる必要はない。カーネルのコンフィグを適当に選択すると認識してくれた。
試行錯誤
- タッチスクリーンが正常に動くubuntu(live usb)から
lsmod
,dmesg
の出力を読んだ。 - カーネルのビルド時にi2c_hidやGPIOからのデバッグ出力を有効にした
- 手当たり次第カーネルモジュールを追加してdmesgの出力を確認しタッチスクリーンっぽいデバイスのエラーらしき出力(実際にはエラーではない)を読んで関係ありそうな項目を追加で設定する。
自分のlsmodの結果 https://pastebin.com/zeyezzmC
dmesgの結果 https://pastebin.com/m0LEYh5t
kernelのコンフィグ https://pastebin.com/yURcVBiE
タッチスクリーンのの設定を終えたのでひとまず終了
ひとまず終了
— 鳩 (@cc_shirai_cc) 2019年7月7日
1週間と少しかかってしまいました😇#gentooinstallbattle
感想
過去にGentooをインストールしたことがあったこともあり、Gentoo wikiに書いてあることは理解してインストールできたと思う。 ただ、ハードウェア特有の問題についてうまく対象できなかった。ドライバ関連で検索してもわからなかったときはubuntuのlive cd (usb)を使っていたどのカーネルモジュールか入っているのかとかdmesgの出力を比べなから何が入っていないのかを推測しなから設定した。かなり苦労した 今回の苦労を気にUbuntuに対する好感度もかなり上がったし機会があればUbuntuを使おうと思った。