opamp_sando's blog

クソザコが割りと適当なことを書くためにある備忘録です。あとたまに普通の日記も書きます

MacBook AirにArchLinuxをインストールしたその後

雑なメモだったが前回ArchLinuxをうちのMacBook Airにインストールした。
インストール直後の状態としては、無線LAN NICが読み込まれなかったりサスペンド復帰時に画面の輝度がおかしくなるため実質的にサスペンドができなかったりトラックパッドの感度が良すぎたりと悩まされたが地道に解決して大体使える環境になったのでメモ。
大体ArchWikiの通りにするとうまくいった。さすがArchWikiおかげで書くことないや。

無線LANドライバ

こちらは以前のインストールメモの記事の末尾に書いたとおりAURから"broadcom-wl"をインストールし、カーネルにロードすることで解決可能。
種類によってはカーネル標準のドライバで対応しているかもしれないが、その場合はいきなり問題なくNICが認識されるはず。
カーネルにモジュールをロードさせるには/etc/modules-load.dに適当な名前(wl.confなど)のファイルを作成して

wl

という記述だけをして保存する。

無線LANへの接続設定はnetctlを使って行うことができ、/etc/netctlにプロファイルを設定するとよい。
場所によって接続する無線LANを自動切り替えするにはnetctl-autoというサービスを動かす必要があるが、こいつが読み込むのは/etc/netctl/examples/wireless-wpa-configsectionに示されるような形式で記述されたprofileのみなので注意。
WPA-PSKなネットワークに接続するならwpa_passphraseコマンドも有効に使える。

オーディオ関係

サウンドの設定に関しては以前に記事を書いた。

MacBookAirのArchLinuxでサウンドの設定 - opamp_sando's blog

ArchWikiによるとオーディオドライバは自動で読み込まれミュートを解除するだけで音がでるとあるが、音が出ない場合は上の記事のようにスピーカーのデバイスがデフォルトになっていないためと考えられるので、上の記事の解決策のようにして解決できる。
解決後ミュートを解除することで音がでるようになる。

$ amixer sset Master on

するとミュートが解除できるはず。

トラックパッド

トラックパッドはデフォルトである程度動くが、Macと比べるとあまりにも実用性に欠けるくらいには使いにくい。
ちょっと触れただけでクリックしたという判定になるため、まともにタイピングができない。
これを解決するには

https://wiki.archlinux.org/index.php/Touchpad_Synaptics

ここを参考にしながら、Synapticsドライバを設定していく。

$ (sudo) pacman -S xf86-input-synaptics

としてドライバをインストールすると、/etc/X11/xorg.conf.d以下に50-synaptics.confというファイルが自動で生成されるためこれを編集することで設定を行う。
設定を行う時はsynclientというコマンドを用いると良い。

$ synclient -l

とすることで現在の設定の状態を確認できる。
例えば、手のひらの検出を行うには

$ synclient PalmDetect=1

として、PalmDetectを1にしてみる。これで設定が反映されるので実際に動かして試してみて、大丈夫そうなら、先ほど生成された設定ファイルに実際に記述していくと良い。

ファンクションキーの設定

Macならファンクションキーを押すと画面の明るさや音量を調節できたりする。
KDEなどならデフォルトでこの機能がONになるという噂を耳にしたが、i3などを使っていると当然デフォルトでは動作しないので設定してみる。
ターミナルから音量やバックライトを操作することもできるので、必要ないならしなくても良い設定な気がするが、音量くらいは簡単に調整したいと思うもの。

$ xbacklight -set 20

などとすると画面のバックライトの明るさが調節できる。MacBookAirなら0~100までで設定できる。
キーボードバックライトはkbdlightというパッケージが必要になる。

$ kbdlight set 10

などとできる。両方とも/sys以下にある特定ファイルを書き換えて直接設定もできる。 オーディオの調整は

$ amixer sset Master 5%+

などで音量を5%上げるという操作ができる。マイナスにすればマイナスする。

これをファンクションキーが押された時に実行するようにする。
実際には、xbindkeysというツールを使って実現できる。

$ xbindkeys -k

とするとWindowが開くので、そこで設定したいキーを押すと、例えばF3を押したなら

"(Scheme function)"
    m:0x0 + c:128
    XF86LaunchA

という出力が得られる。これを~/.xbindkeysファイルにコピーして、ダブルクォートで囲まれている部分を実際に実行したいコマンドに書き換えることで、実際にそのキーが押された時にそのコマンドを実行するようにできる。
また、xbindkeysコマンドをログイン時に自動実行するように設定しなければならないので、適当なシェルの設定ファイルなどに"xbindkeys"を記述する。

キーボードのバックライト、ディスプレイのバックライト、音量の調整を割り当てたらこんな感じ

"/usr/bin/kbdlight down"
   m:0x0 + c:237
   XF86KbdBrightnessDown

"/usr/bin/kbdlight up"
   m:0x0 + c:238
   XF86KbdBrightnessUp

"/usr/bin/xbacklight -dec 10"
   m:0x0 + c:232
   XF86MonBrightnessDown

"/usr/bin/xbacklight -inc 10"
   m:0x0 + c:233
   XF86MonBrightnessUp

"/usr/local/bin/master-mute-toggle"
   m:0x0 + c:121
   XF86AudioMute

"/usr/bin/amixer sset Master 5%-"
   m:0x0 + c:122
   XF86AudioLowerVolume

"/usr/bin/amixer sset Master 5%+"
   m:0x0 + c:123
   XF86AudioRaiseVolume

ミュートのトグルスクリプトはついさっきPOSTした記事に貼ってある。

サスペンド

初期の状態でもサスペンドできるが、カーネルのドライバのバグなのかは知らないが復帰時に画面輝度がおかしくなる。
具体的には真っ暗になって明るさを90%以上に設定しなければ画面が明るくならないという謎現象。
ArchWikiに地味に回復方法が書いていた。

AUR (en) - mba6x_bl-dkms

このパッケージをインストールすることで解決した(moduleは自動でロードされる模様)。
ただ、PKGBUILDのsourceの記述がgitから取得するようになっているのが良いが、sshを使う設定になっているのでhttpsにしないと取得できずにエラーになるので書き換えが必要。

Hibernate

ハイバーネートは別になくても生きていけるが設定したときのことをちょっと思い出してメモ。

Suspend and hibernate - ArchWiki

大体ここのとおりにすれば良いのだが、カーネルのオプションを設定するときGRUB_CMDLINE_LINUX_DEFAULTに

resume=/dev/disk/by-uuid/019cd394-35fd-4f0c-a0c5-e15b45ce7317 resume_offset=291327

などと設定するが、このuuidの値はswapfileの場合はswapfileが存在するドライブのuuidを設定する。

終わり

とりあえずこれだけやればそれなりに使えるようになるはず。
ほとんどの情報はそのままArchWikiに書いているので詳しくはそちらを参照。ここではちょっと迷ったり私の知識が足りてないせいで記述不足に感じたところの補足などをしている(つもり)。
それと、MacBookAirならSSDだと思うのでTRIMやIOスケジューラの設定をするのを忘れないようにしたほうがいいかな。

Firefox ブラウザ無料ダウンロード