| tags:raspberry pi Arch categories:server
ArchLinuxをRaspberry Pi B3にインストール
そこはかとなく、うまくいく。。。と言っていいのか。。(もう一枚、マイクロSDカードを買いに行かなくては。)
ラズベリアンにダイエット・パイをちょっと弄って、今回はArchLinux.arm64を導入してみたいと思います。
https://archlinuxarm.org/platforms/armv8/broadcom/raspberry-pi-3
色々と比較検討をしていて、折角ラズベリーパイ3Bは64bit対応であるにもかかわらず、 現在、販売されている、ラズベリーパイは規格が、arm6, arm7, arm8と32bitと64bitのチップが混在してるため下位互換を保つ為の理由で32bitにて動いてます。
パイ・ゼロで動いて、パイ3で不具合があったり、その逆だったりがあるのは、その辺に問題があるのではないかという人もいるのを、ネット上で見ました。
真偽のほどはよくわからないけれど、それならば、自分でソースコードからビルドできる環境にするのが一番効率が良いように思えて、それがスムーズに可能なのはGentooとArchなのかなと、、。
ということもあって、Archに白羽の矢が立ちました。 本来はサーバー用途で使うので、安定環境を第一に考えたいのですが、 動かしたいソフトがうまく動かなかったりして、動いてもバージョンが古く不都合があったり、 気になっていたディストリビューションでもあったので、ちと、期待を込めて、頑張ってみました。
準備:起動ディスクを作成
さて、まずはインストール用のマイクロSDカードを作成します。インストール用というかそのまま起動用のディスクになります。インストールの作業については非常によくまとまったWikiがあるので、詳細は割愛します。
ArchLinux鬼門のインストール。公式ページのインストラクションが!本当に!良いです。 個人の方々のブログも参考にしつつ作業を行いました。
https://wiki.archlinux.jp/index.php/Raspberry_Pi
2017年くらいから、インストールをSSH経由でできる様になっているので、モニターとキーボードを繋げないで作業ができるのは、非常にありがたいです。
しかし、作業にLinuxの端末が必要なのが、ちょっと。作業・検証機のPiZeroWにカードリーダーをつないで作業を行いました。
一連の流れはこんな感じ
- マイクロSDカードの確認:本体にディスクが一つ、外部に何もつないでいなければほとんどのケースで、/dev/sdaになります。
- マイクロSDカードのパーテーション操作。
- マイクロSDカードのフォーマット+マウント
- ファイルシステムをダウンロード
途中でSSHの接続が切れてやり直しました。その様な時は、オプションの-c -b
をつけて再実行かつバックグラウンドで実行します。(c: continue, b: backgroundだと)経過はログに書き込まれます。 bsdtar
は別途インストールの必要がありました。bsdtar
にて落としたファイルを解凍:以下の作業は、su
ではなく、root
として行ってください(公式ウィキより)。- 解凍時にエラー: bsdtar: Failed to set default localeが出ます、しかし、そのまま継続で大丈夫です。
- ファイルシステムの書き込み、同期
- マウントを解除し、マイクロSDカードを取り出す
半分終了
Archをインストーする端末での作業
取り出したマイクロSDカードをRaspberry Pi 3に挿入して電源を入れます。ネットワークランプがピカピカ着いたら無事起動中と言うメッセージです。SSHのサービスは起動時に有効化されます。
同じネットワーク内の端末のターミナルより接続します。 あらかじめ設定されているアカウントは二つありますが、ルートでの接続は禁止されているので、 alarmアカウントでログインします。
- userID: alarm / password: alarm
- userID: root / password: root
接続先はalarm.local
では見つからなかったので、ルーターよりIP番号を調べてssh alarm@<<IP NUMBER>>
で接続します。
gallo:~ jin$ ssh alarm@alarm.local
gallo:~ jin$ ssh alarm@<<IP NUMBER>>
[alarm@alarm ~]$ su root
Password: root
[root@alarm alarm]$
pacman-keyの鍵の初期化と登録をします。
[root@alarm alarm]$ pacman-key --init
gpg: /etc/pacman.d/gnupg/trustdb.gpg: trustdb created
gpg: Generating pacman keyring master key...
....
gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u
[root@alarm alarm]$ pacman-key --populate archlinuxarm
==> Appending keys from archlinuxarm.gpg...
gpg: depth: 1 valid: 3 signed: 1 trust: 0-, 0q, 0n, 3m, 0f, 0u
gpg: depth: 2 valid: 1 signed: 0 trust: 1-, 0q, 0n, 0m, 0f, 0u
[root@alarm alarm]$
パスワードの変更
そして、セキュリティー上、ルートのパスワードを変更しましょう。
[root@alarm alarm]$ passwd
New password:
Retype new password:
passwd: password updated successfully
ユーザーを作る。
今の状態だと、アカウントは、root
とalarm
しかありません。
自分のアカウントを作ります。
[root@alarm alarm]$ useradd -m -g wheel <<USER>>
[root@alarm alarm]$ passwd <<USER>>
sudo
ユーザーアカウントでsudo
をインストールして使えるようにします。
[root@alarm alarm]$ pacman -S sudo
[root@alarm alarm]$ visudo
以下の2項目を探し、コメントを除きます。
Defaults env_keep += "HOME"`
# sudo したときユーザの $HOME を参照できるようにする
%wheel ALL=(ALL) ALL
# wheel グループのユーザに sudo する権限を与える。
タイムゾーン
タイムゾーンを設定する
[root@alarm alarm]$ timedatectl status
Local time: Tue 2019-03-12 22:47:05 UTC
Universal time: Tue 2019-03-12 22:47:05 UTC
Time zone: UTC (UTC, +0000)
System clock synchronized: yes
NTP service: active
[root@alarm alarm]$ timedatectl set-timezone Asia/Bangkok
[root@alarm alarm]$ timedatectl status
Local time: Wed 2019-03-13 05:47:59 +07
Universal time: Tue 2019-03-12 22:47:59 UTC
Time zone: Asia/Bangkok (+07, +0700)
[root@alarm alarm]#
locale
localeの設定も行う
[root@alarm alarm]$ vi /etc/locale.gen
[root@alarm alarm]$ locale-gen
Generating locales...
en_US.UTF-8... done
ja_JP.EUC-JP... done
Generation complete.
アップデート
インストール用のOSイメージは、最新のパッケージと時差があるので、アップデートされているソフトウェアがあります。システム全体をアップデートします。 -Syyと-Syuuはapt updateとapt upgradeのような関係です。
割とイメージファイルが作られたのが、十日前くらいなので、そんなに更新するパッケージの量は多くありませんでした、しかし、回線が遅く途中で嫌われたりしましたが、とりあえず無事に完了。
[root@alarm alarm]$ pacman -Syy
[root@alarm alarm]$ pacman -Syuu
pacmanの使い方は公式ドキュメントにて。pacman - ArchWiki ArchのWikiはすごく充実してます。
disk speed
ここでちょっと脱線、以前行った読み込みテストを忘れないうちにここで行う。結果は爆速、290 MB/s と出る。64bit化の恩恵化?ほんまかいなと疑いぶかい結果となる。使ったマイクロSDカードはサムソンのEvoPlus 32GB (180B: ¥650)。(ちょっと方法を変えるかな。) ちなみに、RPi0WでのSDカードは同じ規格のもので、Lexer 16GBdでの結果は17.3MB。1/17のスピードって、何が起こった?。
[root@alarm alarm]$ dd if=/dev/zero of=/tmp/output conv=fdatasync bs=384k count=1k; rm -f /tmp/output
1024+0 records in
1024+0 records out
402653184 bytes (403 MB, 384 MiB) copied, 1.3863 s, 290 MB/s
[root@alarm alarm]#
Hostname
最後にホストネーム/etc/hostname
を変えます。私の命名規則:ルーターは雲、小型サーバーは鳥の名前、ラップトップはビール名、Pi0Wサーバー:つまみ名、でやっとります。とりあえず一服、ひと段落。
# vi /etc/hosts
127.0.0.1 localhost iska
::1 localhost iska
(つづく)
で、Dockerをインストールするもののエラーで上がらず。。。心が折れそう、、さてさて。。。