ひゃまだのblog

ひゃまだ(id:hymd3a)の趣味のブログ

Raspberry Pi 3B+ に Arch Linuxをインストールしてみた(コンソール編)

(2023-01-08 初稿 - 2023-01-11 修正)

はじめに

巷では、Raspberry Pi 5の国内版も出まわろうという時期、わが家でも古いRaspberry Pi(以下、ラズパイ)が余って来ている。

貧乏性の筆者はなんとか有効利用できないかと、軽量のLinuxのインストールを試みて活用方法を検討している。

このページでは、軽量のLinuxである Arch Linuxをインストールして、X環境のないコンソールの設定までを記述する。

なお、本ページの内容は、Arch Linuxを利用して、まだ数日の筆者が記述していることもあり、間違いや更に良い方法があるかと思うので、ご理解願う。

なぜ Arch Linux

まだ数日しか触っていないが、かねてからArch LinuxWikiの充実ぶりは目を見張るものがある。筆者は、普段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をインストールして、日本語の表示・入力ができるようにしていく予定。

関連ページ