ArchLinuxをRaspberry Pi 3にインストールしました。インストール後、Raspberry Pi 3に標準装備されている無線LANから、SSH(Secure Shell)とSFTP(SSH File Transfer Protocol)を利用できるように設定しました。
ArchLinuxをRaspberry Pi 3にインストール
準備
ArchLinuxのSDカードを作成するために、「Raspbian Jessie with PIXEL」がインストールされたRaspberry Pi 3を使用します。このRaspberry Pi 3にUSB接続のSDカードリーダを接続しArchLinuxを書き込むマイクロSDカードを挿入します。SDカードリーダは「Raspberry Pi 3のマイクロSDカード、プロトタイプボード、公式ケース」で示すTranscend USB 3.0 Super Speed カードリーダーを使用します。
以降に示す操作はすべてroot権限で操作します。
1.SDカードリーダに挿入したマイクロSDカードのデバイス名を次のコマンドにより確認します。「Disk /dev/mmcblk0: 29.5 GiB, 31657558016 bytes, 61831168 sectors」がRaspberry Pi 3に挿入されたマイクロSDカード、「Disk /dev/sda: 14.9 GiB, 15931539456 bytes, 31116288 sectors」がSDカードリーダに挿入されたマイクロSDカードを示し、マイクロSDカードデバイス名は「/dev/sda」になっています。
「/dev/sda1 8192 31116287 31108096 14.9G c W95 FAT32 (LBA)」の「/dev/sda1 」をマイクロSDカードデバイス名にしてパーティションを行うと、Wコマンドを実行した時点で「Re-reading the partition table failed.: Invalid argument」のエラーメッセージが表示されます。
# fdisk -l Disk /dev/ram0: 4 MiB, 4194304 bytes, 8192 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk /dev/ram1: 4 MiB, 4194304 bytes, 8192 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes ・・・ ・・・ Disk /dev/ram15: 4 MiB, 4194304 bytes, 8192 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk /dev/mmcblk0: 29.5 GiB, 31657558016 bytes, 61831168 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x6e25767f Device Boot Start End Sectors Size Id Type /dev/mmcblk0p1 8192 137215 129024 63M c W95 FAT32 (LBA) /dev/mmcblk0p2 137216 31116287 30979072 14.8G 83 Linux Disk /dev/sda: 14.9 GiB, 15931539456 bytes, 31116288 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x00000000 Device Boot Start End Sectors Size Id Type /dev/sda1 8192 31116287 31108096 14.9G c W95 FAT32 (LBA)
2.マイクロSDカードデバイス名「/dev/sda」を使って、次のようにマイクロSDカードのパーテーション操作を行います。コマンドプロンプト「Command (m for help):」が表示されるので、次の表示に従ってキーを押していきます。
# fdisk /dev/sda Welcome to fdisk (util-linux 2.25.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): o Created a new DOS disklabel with disk identifier 0x901a1230. Command (m for help): p Disk /dev/sda: 14.9 GiB, 15931539456 bytes, 31116288 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x901a1230 Command (m for help): n Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p): p Partition number (1-4, default 1): First sector (2048-31116287, default 2048): Last sector, +sectors or +size{K,M,G,T,P} (2048-31116287, default 31116287): +100M Created a new partition 1 of type 'Linux' and of size 100 MiB. Command (m for help): t Selected partition 1 Hex code (type L to list all codes): c If you have created or modified any DOS 6.x partitions, please see the fdisk documentation for additional information. Changed type of partition 'Linux' to 'W95 FAT32 (LBA)'. Command (m for help): n Partition type p primary (1 primary, 0 extended, 3 free) e extended (container for logical partitions) Select (default p): p Partition number (2-4, default 2): First sector (206848-31116287, default 206848): Last sector, +sectors or +size{K,M,G,T,P} (206848-31116287, default 31116287): Created a new partition 2 of type 'Linux' and of size 14.8 GiB. Command (m for help): w The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks.
3.マイクロSDカードをフォーマットしてマウントします。
# mkfs.vfat /dev/sda1 mkfs.fat 3.0.27 (2014-11-12) # mkdir boot # mount /dev/sda1 boot # mkfs.ext4 /dev/sda2 mke2fs 1.43.3 (04-Sep-2016) Creating filesystem with 3863680 4k blocks and 966656 inodes Filesystem UUID: 92cc35b6-c518-49bd-a430-abdfa952e2e1 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208 Allocating group tables: done Writing inode tables: done Creating journal (16384 blocks): done Writing superblocks and filesystem accounting information: done # mkdir root (すでにrootディレクトリがあれば飛ばす ) # mount /dev/sda2 root
4.ファイルシステムをダウンロードします。
# wget http://os.archlinuxarm.org/os/ArchLinuxARM-rpi-3-latest.tar.gz --2017-11-26 00:57:32-- http://os.archlinuxarm.org/os/ArchLinuxARM-rpi-3-latest.tar.gz Resolving os.archlinuxarm.org (os.archlinuxarm.org)... 50.116.36.110 Connecting to os.archlinuxarm.org (os.archlinuxarm.org)|50.116.36.110|:80... connected. HTTP request sent, awaiting response... 302 Found Location: http://sg.mirror.archlinuxarm.org/os/ArchLinuxARM-rpi-3-latest.tar.gz [following] --2017-11-26 00:57:32-- http://sg.mirror.archlinuxarm.org/os/ArchLinuxARM-rpi-3-latest.tar.gz Resolving sg.mirror.archlinuxarm.org (sg.mirror.archlinuxarm.org)... 210.23.25.77 Connecting to sg.mirror.archlinuxarm.org (sg.mirror.archlinuxarm.org)|210.23.25.77|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 386455111 (369M) [application/octet-stream] Saving to: ‘ArchLinuxARM-rpi-3-latest.tar.gz’ ArchLinuxARM-rpi-3-latest.tar. 100%[====================================================>] 368.55M 297KB/s in 21m 15ss 2017-11-26 01:18:47 (296 KB/s) - ‘ArchLinuxARM-rpi-3-latest.tar.gz’ saved [386455111/386455111]
5.ファイルシステムを書き込みます。
最初に次のコマンドで「bsdtar」をインストールします。
# apt-get install bsdtar
次のコマンドでファイルシステムを書き込みます。ワーニング・エラーが表示されましたが無視しました。
# bsdtar -xpf ArchLinuxARM-rpi-3-latest.tar.gz -C root bsdtar: Ignoring malformed pax extended attribute bsdtar: Ignoring malformed pax extended attribute bsdtar: Ignoring malformed pax extended attribute bsdtar: Ignoring malformed pax extended attribute bsdtar: Error exit delayed from previous errors. # sync # mv root/boot/* boot
6.次のコマンドでアンマウントします。
# umount boot root
7.マイクロSDカードリーダからマイクロSDカードを取出し、Raspberry Pi 3に挿入してrebootします。
8.次のログイン画面が表示されます。
Aexh Linuz 4.13.10-1-ARCH(tty1) alarm login:
あらかじめ設定されるアカウントを次に示します。
- userID: root / password : root
- userID: alarm / password: alarm
ArchLinuxのネットワーク関連の環境設定
ArchLinuxのインストール直後は、LANケーブルを接続するだけでDHCPによりネットワークに接続できます。Raspberry Pi 3に標準装備されている無線LANから、SSHとSFTPを利用できるように設定します。
初回ログインとユーザーの追加
初回は root でログインすることになりますが、次のコマンドでユーザを追加します。
# useradd -m -g wheel [user] # ユーザを追加して wheel グループに入れる # passwd [user] # ユーザのパスワードを設定
次のコマンドでsudo もできるようにします。sudo の設定ファイルは /etc/sudoers です。このファイルはどんなときでも visudo コマンドを使って編集します。
# pacman -S sudo # sudo をインストール # visudo # /etc/sudoersを編集します。編集内容については下記参照
visudo では 次の行のコメントを外します。
- Defaults env_keep += “HOME”
- sudo したときユーザの $HOME を参照できるようにする
- %wheel ALL=(ALL) ALL
- wheel グループのユーザに sudo する権限を与える。
ここでいったんログアウトして、今作ったユーザでサイドログインします。
有線LAN
デバイス名「eth0」のNICに対しては、次のように固定IPアドレスを割り当てます。DHCPは「false」にします。
# vi /etc/systemd/network/eth0.network [Match] Name=eth0 [Network] DHCP=false Address=192.168.1.41/24 Gateway=192.168.1.1 DNS=192.168.1.1
無線LAN
次のコマンドを入力し、GUIに表示されたアクセスポイントからSSIDを選択し、セキュリティキーを入力します。
# wifi-menu -o
GUIを抜けると/etc/netctl/上に接続先のprofileが作成され、無線LANとの接続が行われます。次のコマンドを入力して、起動時に自動的に無線LANとの接続します。
# netctl enable xxxx # netctl start xxxx xxx:wifi-menuで作成されたprofile
エラーメッセージ「Please install ‘dialog’ to use wifi-menu」が表示された場合、次のコマンドで無線 LAN デバイスが認識していることを確認します。
# ip link
ここでデバイス名が「wlan0」と表示されていれば、無線 LAN を認識できているので、無線LANにWPA/WPA2で接続するために、次のコマンドでwpa_supplicantをインストールします。。
# $ sudo pacman -S wpa_supplicant
次のコマンドで接続用のプロファイルのサンプルをコピーして、専用プロファイル「wlan0-aterm-xxxx」を作成します。専用プロファイルのファイル名は任意の名称が付けられます。
$ sudo cp /etc/netctl/examples/wireless-wpa /etc/netctl/wlan0-aterm-xxxx
パスワード等の部分を変更するため、にテキストエディタで専用プロファイル「wlan0-aterm-xxxx」を開くと、次のように設定ファイルの内容が表示されます。この設定ファイルの「ESSID」をSSID、「Key」にパスワードをそれぞれ記述します。
Description='A simple WPA encrypted wireless connection' Interface=wlan0 Connection=wireless Security=wpa IP=dhcp ESSID='xxxxx' # Prepend hexadecimal keys with \" # If your key starts with ", write it as '""<key>"' # See also: the section on special quoting rules in netctl.profile(5) Key='yyyy' # Uncomment this if your ssid is hidden #Hidden=yes # Set a priority for automatic profile selection #Priority=10
SSH(Secure Shell)
ArchLinuxのインストール直後は、SSHのサービスが起動していないため、次のコマンドで起動時に自動的に待ち受けが始まるよう設定します。
# systemctl start sshd.service # systemctl enable sshd.service
SFTP(SSH File Transfer Protocol)
SFTPのためにvsftpdをインストールします。vsftpdを次のコマンドでインストールします。
# pacman -Sy –noconfirm vsftpd
次のコマンドでvsftpdを有効にして再起動します。なおvsftpdの設定ファイルは「/etc/vsftpd.conf」になります。
# systemctl start vsftpd # systemctl enable vsftpd