| 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にカードリーダーをつないで作業を行いました。

ArchLinux Raspberry Pi

一連の流れはこんな感じ

  1. マイクロSDカードの確認:本体にディスクが一つ、外部に何もつないでいなければほとんどのケースで、/dev/sdaになります。
  2. マイクロSDカードのパーテーション操作。
  3. マイクロSDカードのフォーマット+マウント
  4. ファイルシステムをダウンロード
    途中でSSHの接続が切れてやり直しました。その様な時は、オプションの-c -b をつけて再実行かつバックグラウンドで実行します。(c: continue, b: backgroundだと)経過はログに書き込まれます。
  5. bsdtarは別途インストールの必要がありました。
  6. bsdtarにて落としたファイルを解凍:以下の作業は、suではなく、rootとして行ってください(公式ウィキより)。
  7. 解凍時にエラー: bsdtar: Failed to set default localeが出ます、しかし、そのまま継続で大丈夫です。
  8. ファイルシステムの書き込み、同期
  9. マウントを解除し、マイクロ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

ユーザーを作る。

今の状態だと、アカウントは、rootalarmしかありません。 自分のアカウントを作ります。

[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をインストールするもののエラーで上がらず。。。心が折れそう、、さてさて。。。

See Also

🏝 tipping

🌷 sat ⚡️ goozenlab@getalby.com
🌻 bitcoin : bc1qnjhnsxgqah050995dkdveav4y3t3d7uxyme4ud

If you do send a tip, Please email me so that I can say thank you.