今年買ってよかったもの 2023年版

MacBook Air 11-inch Early 2015にArchLinuxを導入する 2023年5月版


 

前回記事で戦線復帰させたMacBook Airに、早速ArchLinuxを入れました。macOSとのデュアルブートです。
基本的にはArchLinuxのwikiのインストールガイドの手順に従えば問題ありません。
Macの項目も参照しながら進めます。
自分は普段使いのArch Linuxさんの記事も参考にしてユーザー設定を行っています。
いくつかハマったポイントもあったので、自分用に軽くメモ。
備忘録的なものなので、いつもよりは雑な書き方です。

・前提
en_US.UTF-8のUS英語環境でインストールして、デスクトップ環境は英語、日本語入力等は後から構築していきます。
1TBのSSDを分割して、300GB程をmacOSに、残りをArchLinuxに割り当てています。
最初にmacOSだけの状態からパーティションを分割する際は、必ずmacOS上のディスクユーティリティで行ってください(APFSやHFS+等のApple製ファイルシステムは、macOS上で操作する方が原則良いため)。
分割してmacOS外の領域を生成した後は、ArchLinuxのインストーラーでパーティション分割を行ったりして大丈夫です。

・インストール時に用意しておくもの
USB接続でインターネットに接続できるアダプタが必要です。通常のインストールメディアでは、カーネルに無線LANドライバが含まれていない(後述)ため、パッケージの取得が行えません。
自分はAndroidスマートフォンからUSBテザリングを行って作業しました。この状態でデスクトップ環境まで入れるのは、通信量を考えるとやめたほうがよいです。最低限CLIで立ち上がる範囲までのインストールに留め、MacBook側のWiFiを使えるようにした後にデスクトップ環境を入れるとよいと思います。

・パーティションとフォーマット
/bootはFAT32、root等はお好きなLinux向けファイルシステムで大丈夫です。
自分は単一rootパーティションで、ext4を採用しました。

・pacstrapでインストールしておくべきパッケージ
基本部分のbase linux linux-firmwareはもちろんですが、他にも入れておくと後々スムーズなパッケージがあるのでメモ。

nano
初期状態だとテキストエディタが何も無いので、とりあえずGNU nanoを入れました。
他に使っているCLIエディタがあれば、それを入れておきましょう。

vi sudo
ArchLinuxはsudoのインストールも任意なので、一般ユーザーを使う場合(大抵はそうだと思いますが)はここで入れておくとよいと思います。viは、visudoの初期値がviなので、とりあえずwheelグループの設定を有効にするためにも入れておくと面倒が少ないです。

intel-ucode
Intel Macの場合はマイクロコード更新があった時のために、こちらを入れておいてブート時にロードする一覧に書き加えておくといいです。

linux-headers broadcom_wl_dkms
無線LANを使うのに必須です。詳細はBroadcom ワイヤレスの項目にあります。この機種のWiFiチップは、Broadcomがリリースしたオープンソースドライバーでは相変わらずサポートされていません。
broadcom_wlもありますが、_dmks付にしておくとカーネルのアップデートの度に入れ直さずに、自動で組み込んでくれるのでおすすめです。DKMSを使うには、linux-headersが無いとビルドに失敗します。

networkmanager
無線LANを利用するためのクライアントはいくつかありますが、NetworkManagerを入れておくと、デスクトップ環境を入れた場合も大抵の場合は対応しているので、CLIで設定した内容をそのまま引き継ぐことが可能です。
NetworkManagerはパッケージ名は全小文字ですが、サービス名等はNetworkManagerと大文字が含まれるので、設定時には注意です。

・ブートローダーについて
MacBookのEFIローダーは他と比べて特殊らしく、ちょっと面倒な設定を要求されがちですが、とりあえずsystemd-bootを使用すればaltキー起動で選択、次回以降は勝手に読みこんでくれるので便利です(macOSを動かす時はaltキー起動から選択すればOK)。
ブートローダーの設定はMacのブートローダーの項目に詳しいので、こちらも参照して導入しましょう。
systemd-bootは設定ファイルを記述しないとブートエントリにArchLinuxが表示されないので、忘れずに行いましょう。

・キーボードの設定
hid_appleの設定を変更する事で、よく使われる配列にキーを入れ替えたりする事ができます。
Apple Keyboardに書かれている内容で対応可能ですが、英語版にしか情報が無かったものもあるので改めてメモ。

1. ファンクションキーのデフォルトをメディアキーから切り替える (情報元)
一時的な対応は、
# echo 2 > /sys/module/hid_apple/parameters/fnmode
を行うと、そのセッション中は有効です(要root、sudoでは不可)。
永続的な対応は、/etc/modprobe.d/hid_apple.conf に、
options hid_apple fnmode=2
を記述し、mkinitcpioでブートイメージの再作成を行う(忘れがち)と適用されます。
基本的な状態では、
mkinitcpio -P
で大丈夫です。

2. fnキーとcontrolキーを入れ替える (情報元)
一時的な対応は、
# echo "1" > /sys/module/hid_apple/parameters/swap_fn_leftctrl
を行うと、そのセッション中は有効です(要root、sudoでは不可)。
永続的な対応は、/etc/modprobe.d/hid_apple.conf に、
options hid_apple swap_fn_leftctrl=1
を記述し、mkinitcpioでブートイメージの再作成を行う(忘れがち)と適用されます。
基本的な状態では、
mkinitcpio -P
で大丈夫です。

両方を適用する場合は、多分
options hid_apple fnmode=2 swap_fn_leftctrl=1
と一行で書くのも可だと思われますが、自分はmkinitcpioでの再作成を忘れてハマった際に
options hid_apple fnmode=2
options hid_apple swap_fn_leftctrl=1
と二行書きにしてしまいましたが、この状態でmkinitcpioでの再作成を行っても、問題なく動作しているのでそのままにしています。

余談ですが、上の1の方はmacOSの標準機能にもありますが、2の方は見当たらないですね。ちょっと調べたら、carabina-elements辺りで変更するのが主流の様子でした。

・インストール後に入れるもの
MacBook本体側のWiFiの有効化後でも決して遅くないが、入れておくとよいと考えているものを列挙。

tlp
Mac電源管理の項目にもある省電力パッケージです。wikiはちょっと情報が古いので旧名のpowerdownの名前でリンクが書かれていますが、遷移先はtlpになっています。深い設定は行っていませんが、とりあえず導入しておくとよいと思います。

noto-fonts noto-fonts-cjk noto-fonts-emoji
Google開発のUnicodeを一通り網羅するフォントプロジェクトです。標準では日本語フォントがないため、ブラウザ等で日本語文字を表示すると、完全に化けます。
とりあえずこれを入れておくとfallback的に読み込まれるようになるので、便利です。

デスクトップ環境
自分はGNOMEを導入しました。実はCinnamonと結構迷いました。好きなものを使いましょう。
ちなみに、GNOME 44のインストール・起動直後のRAM消費量は1.5GB程度でした。
macOS Montreyはもっと消費していたので、GNOMEは軽量級でないにしてもmacOSよりは軽い様子です。
デスクトップ環境のインストールはwikiのデスクトップ環境のページから、導入したい環境の項目に飛んで、よく読んで導入しましょう。

日本語入力メソッド
インプットメソッドの項目から、自分の環境に合うものを入れましょう。GNOMEはibusなので、自分は当初ibus-mozcを使おうとAURからビルドして導入したものの、mozcのアイコンがGNOME 44では化けてしまったので、ibus-anthyにしました。
ibus-anthyの入力モード切替はデフォルトではCtrl+Jなので、Ctrl+`に変更しました。
ただ、GNOME ShellのSuper+`(ウインドウリスト表示)に干渉するので、そちらを変更するか、使用しないなら無効化するかしないと動作しませんでした。

paru
AURヘルパーです。昔はpackerを使っていたのですが、かなり前に開発も終わってしまった様子なので、現行で一番良さそうだなと思ったこちらを導入しました。名前も何だかかわいいですよね。ぱる。
上流のGithubのREADME.mdに書かれている内容でインストール可能です。
他の候補としてはyayが有力そうです。paruはyayの開発者が分離して立ち上げたものだそうです。

好きなツール類
あとは好きなツール類を好みで入れていきましょう。自分の場合は
pacmanからはVLC Reaper Audacity code (vscodeのOSS版) Lutris Wine mGBA DeSmuMe
AURからはOpenMPT Sameboy Renoise
なんかをとりあえず入れておきました。昔触っていた頃はReaperはAURだったので、いつの間にやら昇格していて驚きがありました。
この状態だとまだ高度なオーディオ管理ツール類が不足しているので、後々導入する予定です。
Renoiseのパッケージ生成には、ローカルにDL済みのアーカイブを読ませる必要があるので、AURヘルパーから導入する場合は注意です。自分はややこしいと感じたので、これに関してはAURヘルパーを使わずにパッケージ生成を行いました。
Wineの導入にはmultilibリポジトリを有効化する必要があります。
更に自分の場合は、devkitproによる非公式リポジトリを追加して、
dev-gba dev-nds
を導入しておきました(いじくる予定があるため)。
こちらの導入方法はdevkitproのwikiに書いてあるので、こちらに従って作業しましょう。
最初の環境変数の追加は、.bashrc辺りにexportをそれぞれ頭に付けて記述でもしておけば大丈夫です。
devkitproはWin用環境でもMsys2にpacmanの組み合わせで導入されますが、pacmanを標準搭載しているArchLinuxだとそのまま導入できるんですね。便利です。

・未解決の問題
1. macOSのブートエントリがsystemd-boot上に表示されてしまう
ここからmacOSを起動しようとするとフリーズするので、macOSを起動する場合はalt起動でMacBookのブートメニューから選択します。
systemd-bootには何のエントリーも書いていないので、何故表示されているのか今の所不明。

2. 起動中にローディングアイコンが表示されてしまう
MacBookのEFIローダー側のものと思われる読み込み中アニメーションアイコンが、起動中の一定の段階まで表示され続けてしまいます。(Linux起動時 - systemd-bootメニューまで、macOS起動時 - 林檎ロゴのロード中の途中まで)
消し方のあてが今の所ないです。

コメント