ManjaroをSurface Goへインストールした際のトラブルと解決策

WSLでトラブったことをきっかけに家のPC環境を本格的にWindowsからLinuxへ移行することにした。 その流れでSurface GoにもLinux(Manjaro)を入れることにした。

始めに

先に結論

Installer 結果(詳細は後述)
manjaro-kde-20.1.2-201019-linux58.iso インストール後に起動しない
manjaro-kde-19.0.2-200311-linux54.iso インストールできる
manjaro-architect-20.0.3-200607-linux56.iso インストール自体ができない

使ったもの

トラブル1: 有線LANが検出できない(Manjaro Architect Installerでの起動時)

Manjaro linuxにはインストーラーが4種類ある。そのうちGnome, KDE, XFCE版については(おそらく)デスクトップ環境が違うだけなのだが、Architectは単にデスクトップ環境がないというだけではなく、インストールにネットが必須となっている。(あとから知った)

当初デスクトップ環境を決めかねていたということもあり、とりあえずArchitectでインストールして様子を見ようと試したのだが、なぜかSurface Goだと有線LANを認識しなかった。3 別のデスクトップPCでManjaro Architectをインストールした際はは有線LANを自動設定できたので、ドライバーの問題だろうか。

先に述べたようにArchitect Installerはネット接続が必須なため、ここで手詰まりである。

解決策

ダメ元でKDE版のインストーラーを入れたところ普通に有線LANを認識した。試したわけではないが、おそらく他のデスクトップ入のインストーラーでも同様に問題ないかと思われる。

トラブル2: インストールが完了しても起動しない

(KDE版で)インストールが無事に終わっても再起動するとbiosのロゴから先に進まなくなった。

解決策

Linuxのカーネルには一部にLTSという長期サポートのバージョンがあり、最新版よりも安定している傾向があるらしい。

Manjaroの(公式サイトから直接リンクがはられている)デフォルトのインストーラーはカーネルが最新(2020年11月時点で5.8)のものだったが、LTS(の中で最新、2020年11月時点で5.4)のものも用意されていたので、こちらを試したら問題なく起動するようになった。

公式から飛んだダウンローダー 公式のダウンロードから直接とぶとこの最新のカーネルのページに行き着き自動でダウンロードが始まるが、キャンセルして左上のファイルからインストーラの一覧へ飛べる。

トラブル3: Wifiがつながらない

無事にインストールしてもWifiがそのままだとつながらない。(Surface Go のWifiモジュール自体の不具合らしい。)

解決策

以下のページに解決策が乗っている Surface Go · linux-surface/linux-surface Wiki

平たく言えばちゃんと動く無線のファームウェアをよそからダウンロードして差し替えればいい

1.ファームウェアを用意する

自分は上記のページとおり以下のリンク先から取得したが、これの正当性を自分は担保できないのでやるなら自己責任でお願いします。 http://www.killernetworking.com/support/K1535_Debian/board.bin

killerとか物騒な単語が入っているから一応調べたところここ自体は普通にNetworkインターフェース作ってるインテル配下の会社?ブランド?らしい(ソースはWikipediaので、純正のドライバーなのかもしれない。

2. ファームウェアの差し替え

手をつけるファームウェアは以下

パス 変更内容
/usr/lib/firmware/ath10k/QCA6174/hw2.1/board.bin 差し替え
/usr/lib/firmware/ath10k/QCA6174/hw2.1/board-2.bin 削除
/usr/lib/firmware/ath10k/QCA6174/hw3.0/board.bin 差し替え
/usr/lib/firmware/ath10k/QCA6174/hw3.0/board-2.bin 削除

ちなみに差し替えるファイルは同じでいい。

一応バックアップしておく

$ sudo mv /usr/lib/firmware/ath10k/QCA6174/{hw2.1,hw3.0}/board*.bin /path/to/backup/

board-2.binの削除

$ sudo rm /usr/lib/firmware/ath10k/QCA6174/{hw2.1,hw3.0}/board-2.bin

board.binの差し替え

$ sudo mv /path/to/new/board.bin /usr/lib/firmware/ath10k/QCA6174/hw2.1/
$ sudo mv /path/to/new/board.bin /usr/lib/firmware/ath10k/QCA6174/hw3.0/

3 カーネルモジュールの設定

/etc/modprobe.d/ath10k.confに以下の内容のファイルを作成する

options ath10k_core skip_otp=y

これでつながるようになった。

トラブル4: Stylus で右クリックが使えない

認識はしているのだが、ボタンには中クリックが割り当てられている模様。右クリックがないと不便なので入れ替えたい。4

対策

スタイラスの認識

一般的なwacomタブレットではxsetwacom --list devicesでデバイスの取得ができるらしい。が、できなかった。

更に探してみたところ、wacomドライバのsurface用というそれらしいものがあったので linux-surface/libwacom-surface: Patches to support Microsoft Surface Devices with libwacom.

AURでインストールした

$ git clone https://aur.archlinux.org/libwacom-surface.git
$ makepkg -si

改めて実行すると、ちゃんと検出できた。

$ xsetwacom --list devices                                   
ELAN9038:00 04F3:261A touch             id: 12  type: TOUCH     
ELAN9038:00 04F3:261A stylus            id: 13  type: STYLUS    
ELAN9038:00 04F3:261A eraser            id: 18  type: ERASER 

ボタン設定

Stylusのボタンは1が右クリック、2が中クリック、3が右クリックに割り当てられているらしい。 xsetwacom --setで別のボタンを割り当てられる

$ xsetwacom --get "ELAN9038:00 04F3:261A stylus" Button 2    
button +2 
$ xsetwacom --set "ELAN9038:00 04F3:261A stylus" Button 2 3

これで右クリックにできた

これだと再起動するたびにリセットされてしまうので永続化には何かしら対策が必要。 InputDeviceの設定なので本来は/etc/X11/xorg.confに設定するのが正しそうではあるが、書き方がよくわからないので今回は割愛。bashで起動時に実行するのが一番手軽だろうか

KDEであればkcm-wacomtabletをインストールするとGUIでかんたんに設定できる。

参考

null-i.net - Linux/wacomでペンタブを使う Wacom tablet - ArchWiki

トラブル5: Bluetoothが繋がらなくなる

スリープから復帰した際にbluetoothが接続できなくなる

解決策

bluetoothのデバイスをリセットする必要があるらしい。

リセットには以下のコマンドを使う usb_modeswitch -T -v "ベンダーID" -p "プロダクトID"

ベンダーIDとプロダクトIDはlsusbで確認できる。

$ sudo lsusb                                                           
[中略]
Bus 001 Device 002: ID 0cf3:e302 Qualcomm Atheros Communications 
[中略]

この場合0cf3がベンダーID、e302がプロダクトIDになるので

$ sudo usb_modeswitch -R -v 0cf3 -p e302                               
Look for default devices ...
 Found devices in default mode (1)
Access device 002 on bus 001
Get the current device configuration ...
Current configuration number is 1
Use interface number 0
 with class 224
Warning: no switching method given. See documentation
Reset USB device .
 Device was reset
-> Run lsusb to note any changes. Bye!
$ sudo systemctl start  bluetooth

これで復旧できた。

参考

Bluetooth - ArchWiki

残る課題


  1. 最近はほとんどベッドで使っているということもあって、残る問題を対処するモチベーションがなくなってしまったので更新未定。 ↩︎

  2. うろおぼえなので断言できないが、KDEならネットに繋げなくてもインストールできるじゃないか、Dockいらないじゃん、とショックを受けた覚えがあるので多分できたはず ↩︎

  3. デスクトップでArchitectからインストールした際は普通に認識していたのでArchitectだから有線も手動で設定しなければいけないというわけではない模様。KDEはminimamでも容量2倍あるし、GUI以外にもArchitectには含まれていないドライバがあるのかもしれない。GUIなし≒サーバー向けと考えるとノート用のドライバーが省かれていてもおかしくはないか。 ↩︎

  4. 今思えばASUS TP203にxubuntuを入れたときもボタンが中クリック扱いで困ってた覚えがある。なぜ右クリックでは中クリックなのかと思うが、そもそも純正ドライバであれば自由に割り当てられるので、使い勝手を考えず、単純にボタン123と割り振っているだけなのかもしれない。 ↩︎