tl;dr

Asahi Linuxの公式インストーラーとArch Wikiを見ればインストールはできる。 ただし、パッケージが使い物にならない。

前提

Apple SilliconでLinuxを動かすプロジェクトとしてAsahi Linuxがあるが、 その公式ディストリビューションはFedoraである。 以前はArch Linux ARMだったが、Fedoraに変わった。 個人的に最も慣れてるディストリビューションがArch Linuxで、かついくつかのAURパッケージを管理してもいる1ので、できれば統一したかった。

インストール

ttyまで

インストーラーはホームページに載ってる。 ただ、Arch Linux ARM(以下、ALARM)はexpert専用になってる(data/installer_data.json)ので、 そのまま実行してもALARMのオプションが表示されない。

今回は面倒なので、インストーラーのシェルスクリプトをいじって、sedinstaller_data.jsonexpertを書き換えるようにした。 すると普通にオプションで出てくるので、指示に従えばok。 注意点として、デフォルトのブート先を指定する際にMacOSのユーザー名とパスワードを入力する必要があるので覚えておく(1敗2)。

GRUBが起動して最終的にttyに入れない。

Arch Wikiのインストールガイド相当まで

インストールガイド - Arch Wiki

なんと設定した覚えのないユーザー名とパスワードを聞かれるのでttyに入れない。 忘れてしまったrootパスワードをリセットするのbashをinitとする方法でrootのパスワードを設定した。 これでttyに入れる。

ここからはインストールガイドでやり残していたところをやる。 キーボードはUSだったので特に設定してない。 WiFiはiwctlで設定できた。

mirrorlistはAsahiのぶんもあるので設定する(一部繋がらなかった)。 ついでにpacman.confやmakepkg.confも設定した。

ロケールの設定もする。 これでtmuxが使えるようになる。

ここまででインストールガイドの内容はできたはずなので、次は一般的な推奨事項に書かれていることをやる。

Arch Wikiの一般的な推奨事項相当(完全にはやっていない)

root以外を追加する。

次にGUI環境を設定した。 Hyprlandを入れようとしたが、ここからALARMの良くないところで何度も躓いた。 まず、GPU関連のエラーでクラッシュする。 なんとバージョンが9月のものでとても古い。 ということでAURのhyprland-gitを入れようとするが、今度はCコンパイラが古いためC++23のFormatが使えなくてコンパイルエラー。 あまりCコンパイラーのことを知らないのと、makepkgでのCフラグの設定がわからないので断念した。

次にswayを試した。 swayは普通に動いた。 fcitx5とmozcも(Wikiの通りに適切に環境変数を設定すると)動いた。 firefoxも動いた(ブラーが重いのでハードウェアアクセラレーションが効いてないかもしれないが)。

動いてないところ

  • ハードウェア関連
    • 音が出ない(Fedoraだと動いていたので設定不足)
    • キーバックライト(Fedoraだとry))
    • 輝度調整(Fedoraだとry))
  • ノッチはLinux的に非対応

結果

Arch Linux ARMを使うことを諦めた。 理由はrootがリポジトリになかった為。 かつ本家Arch Linuxで使われてるPKGBUILDはarchがx86しか書かれていなかったため。 nixpkgsにはあったのでnixで入れようともしたが、libcあたりのバージョンがあっていなくてpacmanでインストールしたnixが動かなかった。 Hyprlandのところで詰まったようにパッケージが古くて辛そうだった。 ローリングリリースなのでパッケージでバージョン制約を考える必要が無いというメリットが、逆にパッケージの更新が滞っている為パッケージマネージャーではどうすることもできずに動かないという問題を引き起こしてしまっている。 ALARMのドキュメントもどこにあるのかよくわからないので調べるのも大変。 Arch Linuxが好きなので残念。

次はWikiにリストがあったNixOSを試してみる予定。 nixpkgsにはarm64のrootもあったので。


  1. https://aur.archlinux.org/account/qwjyh 他にjuiseexdbmがgitlabにある。 ↩︎

  2. 別にMacOSを起動して確認して戻ってくればなんの問題もない。 ↩︎