(2023-01-08 初稿 - 2023-01-11 修正)
はじめに
巷では、Raspberry Pi 5の国内版も出まわろうという時期、わが家でも古いRaspberry Pi(以下、ラズパイ)が余って来ている。
貧乏性の筆者はなんとか有効利用できないかと、軽量のLinuxのインストールを試みて活用方法を検討している。
このページでは、軽量のLinuxである Arch Linuxをインストールして、X環境のないコンソールの設定までを記述する。
なお、本ページの内容は、Arch Linuxを利用して、まだ数日の筆者が記述していることもあり、間違いや更に良い方法があるかと思うので、ご理解願う。
なぜ Arch Linuxか
まだ数日しか触っていないが、かねてからArch LinuxのWikiの充実ぶりは目を見張るものがある。筆者は、普段Debianを利用しているが、ArchのWikiのドキュメントには何度も助けられている。
また、実感としてはないが、常にパッケージが更新されており、〇〇版というリリースがなく、ローリング・リリースということで、常に最新版になるらしい。
他の軽量linuxというと、Alpine Linuxがあげられるが、ライブ環境ならとても簡単だが、メディアにインストール(sys インストール)するのは、少し厄介そうだったので、時間があるときに再挑戦してみるつもりである。
インストールメディア(SDカード)の作成
Arch Linuxには、インストーラーがないので、手動で行う必要がある。これが第一関門になる。
ただし、Arch Linuxには、Raspberry Pi 3用のページを用意してくれてあるので、基本、このとおり実施すればよい。
以下に筆者の行ったことを記述する。
ホストPC(Debian)でのインストール
Raspberry Pi用のSDカードを、筆者の場合は、Debian のホストに挿入する。このとき、SDカードをマウントしないこと。
SDカードのデバイス番号は以下で知ることができる。
sudo fdisk -l
未利用のSDカードであれば、/dev/mmcblk0 あたりのデバイス番号が返ってくる。
以降は、/dev/mmcblk0を対象として、インストールを実施する。
$ sudo fdisk /dev/mmcblk0 o をタイプ。古いパーティションを削除して新しい1つのパーティションに p をタイプ。パーティションの確認。何も残ってなければよい。 n の後 p をタイプ。新しいプライマリーパーティションを作成。 続けて、Enter を押して、最初のセクターを選択した後、 +200M とタイプして領域を確保。 t の後 c をタイプ。W95 FAT32を設定 n の後 p をタイプして、2番めのパーティションを作成。 続けて、Enterを2回押して、デフォルトの最初のセクターと最後のセクターを選択。 wをタイプ。 パーティションを書き込み、終了。
FATファイルシステムを作成して、mount $ sudo mkfs.vfat /dev/mmcblk0p1 $ mkdir boot $ sudo mount /dev/mmcblk0p1 boot
ext4ファイルシステムを作成して、mount $ sudo mkfs.ext4 /dev/mmcblk0p2 $ mkdir root $ sudo mount /dev/mmcblk0p2 root
次のステップで bsdtar を用いるが、筆者の環境ではインストールされていなかったため、まずは以下のとおりインストールした。
$ sudo apt install libarchive-tools
sudoではなく、rootユーザになって以下を実行。
$ su # wget http://os.archlinuxarm.org/os/ArchLinuxARM-rpi-armv7-latest.tar.gz # bsdtar -xpf ArchLinuxARM-rpi-armv7-latest.tar.gz -C root ※筆者の環境では、ダウンロードと解凍はかなり時間が掛かったので、気長に待って。 # sync # mv root/boot/* boot # unmount boot root
以上で、ホスト側で実施する作業は終わり。
Raspberry Pi 3B+でのインストール
作成したSDカードをラズパイに挿して、起動。
一般ユーザは alarm、パスワードも alarm。rootのパスワードは、root。
alarmでログインした後、rootになって、以下を実行。
pacman-key --init pacman-key --populate archlinuxarm
以上で、Arch Linuxに書いてある内容は全て実行した。
ネットワークの設定
筆者は、Raspberry Piを有線ケーブルで接続して利用しているが、インストール直後は、ネットワークに繋がっていなかった。
以下のサイトを参考に、systemd-netorkdを起動する。
# systemctl enable systemd-networkd # systemctl start systemd-networkd
DHCPで接続するときには、上記のコマンドで接続できるはず。
しかし、筆者は固定IPで使っているので、以下のサイトを参考にファイルを修正して再起動して使っている。
# vi /etc/systemd/network/np.network [Match] Name=en* [Network] Address=192.168.xxx.xxx/24 Gateway=192.168.xxx.xxx DNS=192.168.xxx.xxx DNSSEQ=no
# systemctl daemon-reload # systemctl restart systemd-networkd
xxxの部分は、ネットワーク環境に応じて変更する。
ip a コマンドを入力して、2: enxxxxxxx: の部分の3行目に、 inet 192.168.xxx.xxx/24と出力されれば、設定は成功。
ここで、早速、pacmanでパッケージの更新を行いたいところだが、デフォルトのサイトが遠方で、更新に非常に時間が掛かるので、キーボードの設定、rootユーザのパスワードの設定、pacmanのミラーの選択をするまで待って欲しい。
(2024-01-11追記)
以下の記事に、無線LAN(Wi-Fi)につなぐ記事を書いた。無線が良い方は、以下をどうぞ。
(追記終了)
キーボードの設定
かなり昔のことだが、キーボードの設定を行う前にパスワードの変更を行い、その後、キーボードの設定を行ったため、ログインできなくて困ったことがあった。そのため、パスワードの変更の前に、キーボードの設定を済ましておくようにしている。
キーボーの設定は、以下を参考に行った。
キーボードの一時的な変更
# loadkeys jp106 #一時的
キーボードの永続的な変更
# localectl set-keymap jp106
rootのパスワード変更
前述のとおり、デフォルトのrootパスワードはrootであるが、以下のとおり自分の設定に変更しておく。
$ su # passwd
mirrorサイトの選択
デフォルトのサイトが激重なので、日本のミラーサイトに変更して、パッケージのアップデートを行う。
上記サイトにあるように、/etc/pacman.d/mirrorlist を開いて、日本在住の方は日本のミラーサイトの先頭#を削除して有効にする。
また、有効にしたサイトをmirrorlistに記述があるサイトの一番最初になるように移動する。
どうも、上から順番にサイトを使っているようなので、サイトの一番最初になるように設定することがとても重要。
上記の設定後、以下を実行して、パッケージのアップデート、アップグレードを実行する。
# pacman -Syyu
もう少し後でもいいが、ついでに/etc/pacman.confの「#Misc Options」を編集して、以下のオプションを有効にしておく。
# Misc options Color CheckSpace ParallelDownloads = 5
ホスト名の変更
ホスト名は、以下のように自分の好きな名前に変更する。例では、archとする。
# vi /etc/hostname arch
ユーザの追加、削除
デフォルトのユーザは、alarm。以下のサイトを参考に希望するユーザ名 hoge に変更したかったが、うまくできなかったので、新たにユーザを追加して、alarmを削除した。
# useradd -m hoge # passwd hoge
hogeで、ログイン、確認後、rootになって、以下のとおりalarmを削除。
# userdel -r alarm
sudoの追加
sudoを追加して、rootでの作業を便利にする。まずは、ユーザhogeをwheelグループに追加する。
# usermod -aG wheel hoge
続いて、sudoをインストールして、visudoで%wheelグループのsudoを有効に変更。
# pacman -S sudo # visudo %wheel ALL=(ALL:ALL) ALL
ローカルタイムの設定
ローカルタイムをAsia/Tokyoに変更。
sudo ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
ロケールの設定
以下のサイトを参考に、ロケールを以下のとおりに変更。
$ sudo vi /etc/locale.gen # 以下の2つを有効に en_US.UTF-8 UTF-8 ja_JP.UTF-8 UTF-8
$ sudo locale-gen $ locale -a C POSIX en_US.utf8 ja_JP.utf8
locateのインストールと設定
筆者は、新しいLinuxを使い始めるときは、ファイルの場所を探すためにlocateをインストールしている。
$ sudo pacman -S mlocate $ sudo updatedb
$ locate pacman.conf $ locate pacman.conf /etc/pacman.conf (中略) /usr/share/man/man5/pacman.conf.5.gz
時刻の設定
以下のサイトを参考に時刻の設定を行った。
$ sudo timedatectl set-ntp true
コンソールのフォント設定
$ sudo pacman -S terminus-font $ sudo vim /etc/vconsole.conf FONT=ter-128n
おわりに
ここまでで、英語環境でコンソールを使う、sshでログインして利用することができるようになった。
今後は、fbtermをインストールして、日本語の表示・入力ができるようにしていく予定。