QuaStation用のArchlinuxイメージを作成する

こんにちは。u-haruです。最近友人がQuaStationを買っていじり始めました。私も別の友人に勧められていじり始めたので、このままミームみたいに広がっていって欲しいなぁ…

ってことで、そのためにも引き続きQuaStationをいじっていきます。

今回は、QuaStationで動かす用のlinuxを用意します。タイトルの通り、ArchLinuxを使います。と言ってもarm用の非公式版ですが…

今回USBメモリが必要になります(2GBくらいで十分)。

USBのパーティション分け&フォーマット

まずはUSBを2つのパーティションに分けます。cfdiskとかで100MBとそれ以外に分ければ大丈夫です。最初の100MBには前回作ったkernelとかを入れます。後の領域にはOSが入ります。

フォーマットは

# mkfs.vfat /dev/sdx1
# mkfs.ext4 /dev/sdx2

みたいな感じでvfatとext4にします。これでUSB側の用意は終わったので、パーティション1の方にkernelとdtbを入れておきましょう。

あと、後々必要になるのでsdx2の方のパーティションUUIDをメモっておいて下さい

# blkid

カーネル&dtbのコピー

# mount /dev/sdx1 /mnt
# cp bpi-w2.dtb /mnt
# cp uImage /mnt
# umount /mnt

以上でコピー完了です

ArchLinuxのインストール

次にOSのイメージを作成します。 archlinuxarm.orgにはそのままブート可能なメディアがあるのですが、これだとNetworkManagerとか使えなくて不便なので自作します。USB-Ethernetのアダプタとか持ってるなら公式のイメージ使っても大丈夫です。

やることは/以下のファイルをUSBのパーティション2に作成するだけです。公式のイメージを使うなら 手順のmountpointを変えるだけで、この後の手順は飛ばしても大丈夫です。

それでは、イメージをダウンロードします。リンクは

http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/iso/2021.01.01/archlinux-bootstrap-2021.01.01-x86_64.tar.gz

です。どんどんバージョンアップとかでリンク変わるので、http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/iso/以下は状況に応じて変えてください。

ダウンロードしたら、それをどこか適当な場所に展開します。root.x86_64みたいなフォルダができてれば大丈夫です。

次に、pacmanの設定を行います。

まずは、root.x86_64/etc/pacman.conf内にあるArchitecture = autoArchitecture = aarch64にします。そして、CheckSpaceの行をコメントアウトします。じゃないとエラー出ます。最後に、coreリポジトリの署名をすべて信用するように、SigLevel = TrustAllを足します。

/root.x86_64/etc/pacman.conf

#CleanMethod = KeepInstalled
Architecture = aarch64   ##変更する

略

#TotalDownload
#CheckSpace   ##コメントアウトする
#VerbosePkgLists

略

[core]
Include = /etc/pacman.d/mirrorlist
SigLevel = TrustAll   ##追加する

そして、/root.x86_64/etc/pacman.d/mirrorlistの一番上にServer = http://tw.mirror.archlinuxarm.org/$arch/$repo/を書き加えます。Server = http://sg.mirror.archlinuxarm.org/$arch/$repo/もその下に入れておくと安心です。

そしたら、

# mount /dev/sdx2 root.x86_64/mnt
# root.x86_64/bin/arch-chroot root.x86_64/

と実行してUSBをマウントし、インストーラ環境に入ります。

次に、以下のようにしてpacmanの初期化を行います。ここからはインストーラ環境なので注意してください。

# pacman-key --init
# pacman -S archlinuxarm-keyring
# pacman-key --populate archlinuxarm

これでインストーラの用意は完了しました。厳格に行くなら最初の方に書いたSigLevel = TrustAllを削除しておいてください(しなくてもいいです)。後はpacstrapで色々入れていきます。とりあえず必要そうなのはNetworkManager、sudoくらいですかね…?

# pacstrap /mnt base networkmanager sudo
# echo "QuaStation" > /mnt/etc/hostname

最後に、rootのパスワードを一旦消しておきます。(passwdは使えず、このままではログイン出来ないため)
/mnt/etc/passwd

root:​x:0:0:root:/root:/bin/bash
↓
root::0:0:root:/root:/bin/bash

これでArchLinuxのインストールは完了です。インストーラ環境を抜けてください。

最後に、前回作成したQuaStation用のモジュールを/lib/modules/以下にコピーします。/lib/modules/4.9.119-BPI-W2-Kernel/となるようにしましょう。

これでUSBメモリ作成が完了しました。unmountして取り出しましょう。

# umount root.x86_64/mnt

終わり

これでイメージの作成は完了です。USBのパーティション1にbpi-w2.dtbとuImage、パーティション2にLinuxのルート環境が出来上がっていれば成功です。

ホントはこれを使ってQuaStationからブートするとこまで書く予定だったのですが、QuaStationのシリアル線出すところから書くとだいぶ長くなってしまうのでここで一旦区切らせてもらいます。もう少しお待ち下さい…

U-haru
U-haru
Student at NITMC

ただの学生

関連項目