XPS13 (9343)にArchLinuxをインストールする –ISOイメージ作成編–

2015年の春に買ったNew XPS13 (9343)(もうNewでも何でもない)にWindows10をクリーンインストールした。そのときついでにArchLinuxをインストールし直したので、そのときのメモ。
作業直後に書くつもりだったが大分時間が経ってしまったため、怪しいところがあるかもしれない。
本当はインストール作業まで全部書く予定だったが、力尽きたので続きはまたいつか書く。

要点

  • 通常のArchLinuxのISOイメージにはXPS13用の無線LANアダプタのドライバが入ってないので、このISOではインストールが難しい
  • 必要なドライバは broadcom-wl-dkms
  • ArchLinuxのISOイメージは Archiso でカスタマイズできる

ArchLinuxをインストールしたPCを用意する

何を言っているのかわからないかもしれないが、XPS13にArchLinuxをインストールするためには、ArchLinuxをインストールしたPCが必要。なぜなら通常のArchLinuxのISOイメージにはXPS13の無線LANのドライバが入っていないため(ここ参照)、そのままインストールしようとしてもネットに接続できず詰む。 broadcom-wl-dkmsというドライバを含むようカスタマイズしたISOイメージを作る作業をしなければならない。
ただし、XPS13の内蔵無線LANアダプタを使わずに、たとえばUSB接続の有線LANアダプタを使う場合などはこの作業は必要ないはず。そのときもドライバなかったら詰む。
なお、PCを別に用意しなくとも、XPS13のWindowsでArchLinuxの仮想マシンを作って以下の作業をしてもいい。

ArchLinuxのISOイメージを作成する

普通はArchLinuxのダウンロードサイト一覧からISOイメージを持ってきて、USBメモリに dd すればいい。
そのはずなのにドライバが足りてないため、以下のようになる。ここに感謝。

  1. Archisoの環境作り

    これはArchLinuxのISOイメージを自作するためのツール。以下では ~/archlive 以下に作業ディレクトリを作ることにする。

    sudo pacman -S archiso
    mkdir ~/archlive
    sudo cp -r /usr/share/archiso/configs/releng ~/archlive
    cd ~/archlive/releng
    
  2. yaourtを使うための設定

    broadcom-wl-dkmsはAURというリポジトリにある。AURにあるパッケージはyaourtというツールを使うと操作しやすい。

    まず ~/archlive/releng/pacman.conf の最後に以下を追記して archlinuxfr リポジトリを使えるようにする。

    [archlinuxfr]
    SigLevel = Never
    Server = http://repo.archlinux.fr/$arch
    

    そして ~/archlive/releng/package.both の最後に以下を追記。

    yaourt
    
  3. broadcom-wl-dkms のための設定

    上で編集した ~/archlive/releng/package.both にさらに以下を追記。これでbroadcom-wl-dkmsをビルドする環境が整う。

    linux-headers
    dkms
    fakeroot
    

    さてここから詰まった。2015年にArchlinuxを入れたときは ~/archlive/releng/airootfs/root/customize_airootfs.sh

    sudo -u arch yaourt --noconfirm -S broadcom-wl-dkms
    

    を追記すれば問題なくビルドできた(…はず)。これをする理由は、yaourtはrootでは実行できないため。sudoでarchというユーザに切り替えてyaourtを実行し、broadcom-wl-dkmsをインストールしているわけ。ところがなぜか今回はarchというユーザがいなくなっていたようだ。
    仕方ないので、あまりうまくないやり方だが他に思いつかないので次のようにやる。 ~/archlive/releng/airootfs/root/customize_airootfs.sh の最後に追記する内容を以下のように変える。

    useradd arch # archユーザを追加
    echo "root:hoge" | chpasswd # こうすればrootのパスワードをhogeに変えられる
    sudo -u arch yaourt --noconfirm -S broadcom-wl-dkms
    

    ここではarchというユーザを追加したが、既にシステムに存在するユーザでないなら何でもいい。パスワードを上のように切り替える方法はここで知った。

  4. ビルド

    cd ~/archlive/releng
    sudo ./build.sh -v
    

    ビルドの際にrootのパスワードを聞かれるので、上で設定した通りhogeと入れる。そうすれば実行ユーザが一般ユーザarchに切り替わり、yaourtが進む。

    1回のビルドでうまくいかずやり直すときは

    sudo rm -v ~/archlive/releng/work/build_make_*
    

    でリセットしてからまたビルドする。

    ビルドすればISOイメージが ~/archlive/releng/out/ 下にできているはず。

  5. USBメモリにISOイメージを書き込む

    ここに書いてある通り。
    lsblk でデバイス一覧が見れるので、どのデバイスファイルがUSBメモリなのかを 注意深く確認するここで不適切なデバイスファイルを指定すると重要なデータを意図せず消してしまう恐れがあるので気を付ける 。 もしマウントしているようなら umount でアンマウントしておく。
    /dev/sdx がUSBメモリだとして

    sudo dd bs=4M if=~/archlive/releng/out/archlinux-2016.09.11-dual.iso of=/dev/sdx
    

    のようにやればいい。ファイル名は例。

参考