ZeroPi と Armbianの初期設定


今回ZeroPiの設定をしていきます。
1GbpsLAN搭載 小型なSBC

# 環境
無線LANルータ: NEC WG2600HP3
PC : MacBook Air 2018

# 用意するもの
ZeroPi x1
MicroSD x1 (16GB以上を推奨)
MicroSDライター (MicroSDが書き込めればなくてもいい)
LANケーブル (無線機能は無いため)
USB電源ケーブル Type-microB (Raspberry Pi3B+と同じ形,Pi4とは違う)


今回はArmbian Focalでの設定をしていきます。
ちなみに`Focal`と`Buster`の違いは
`Ubuntu` と `Debian` の違いだと思っています。
まずは公式サイト
https://www.armbian.com/zero-pi/
![スクリーンショット 2021-01-13 11.27.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363815/925c8f63-f6a2-9d46-7ce6-7a58ecad84ff.png)
今回は`Direct download`からダウンロード
VPNなどで回線を`United States`にしダウンロードすることをおすすめします(すぐにDLがおわる)

Raspberry Pi Imager などでMicroSDに書き込みます。
`Use custom`で焼きました。
![スクリーンショット 2021-01-13 12.10.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363815/23b13e26-4661-380d-c6c6-a8b919f6f6c1.png)

書き込みが終わったらLANケーブルを付け電源オン
LANケーブルは無線LANのルータの余っているポートに挿しました。

sshで設定していくのでZeroPiのIPを検索しましょう
macの方は`arp-scan`コマンドを使い、macをWi-Fiで接続してるなら使用しているインターフェイス`en0`を指定し検索できます。

    sudo arp-scan -l --interface en0

![スクリーンショット 2021-01-13 12.24.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363815/6fefe2ad-5b78-fa30-dea9-63f05d8225fc.png)

オレンジで囲った部分がベンダー名になりますがそこに一つ
`(Unknown: locally administered)`
となっているものが見えます。私はこれがZeroPiでした。人によっては違ったものが表示されているかもしれませんがその場合は頑張ってください。

# SSH接続
早速つないでいきたいんですがSSHするためのユーザ名とパスワードがわかりません。
[公式サイト]
(https://www.armbian.com/zero-pi/)を見てみると
![スクリーンショット 2021-01-13 11.27.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363815/53e25bf4-c7c8-8b95-7f50-69b34d3397a6.png)
`Document`とあるのでここを覗いてみる
![スクリーンショット 2021-01-13 12.57.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363815/2a21b0bd-86e1-fc3e-9bed-dd0d03b2703e.png)
良さげなページに飛びましたね。

>#Common features
- Armbian Linux is available as Debian and Ubuntu based images, compiled from scratch
- Images are reduced to actual data size and automatically expand across the SDcard at first boot
- Root password is "<font color="Red">1234</font>". You are forced to change this password and (optional) create a normal user at first login
- Ethernet adapter with DHCP and SSH server ready on default port (22)
- Wireless adapter with DHCP ready (if present) but disabled. You can use "<font color="Red">armbian-config</font>" to connect to your router or create an access point
- NAND, SATA, eMMC and USB install script is included ("<font color="Red">nand-sata-install</font>")
- Upgrades are done via standard "<font color="Red">apt upgrade</font>" method
- Login script shows: board name with large text, distribution base, kernel version, system load, uptime, memory usage, IP address, CPU and drive temperature, ambient temperature from Temper if exits, SD card usage, battery conditions and number of updates to install 

ここを見る限り初期Rootパスワードは`1234` なので
最初のrootユーザでのログイン時にこのパスワードを変更し通常のユーザーを作成する流れのようです。
早速loginしていきましょう。IPは初めの方で見つけた`Unknow`ベンダーのIPを使ってみます。

    ssh root@192.168.0.213

![スクリーンショット 2021-01-13 13.29.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363815/d69ee1c3-a000-6918-6f98-ee0059830bb5.png)

入れましたね。
新しいroot パスワードを設定したら`timezone`と`locales`,`keyboard layout`の設定が自動でされました。
`Choose default system command shell`の箇所で`bash`か`zsh`か選べって言われますが,macはデフォルト設定で`zsh`が使われるようになったので今回私は`zsh`を選択しました。各個人のお好みです。

ここまでできたら使用するユーザとパスワードの設定をしていきましょう。
今回は適当にユーザ名を`yuu`にしました。本当は`you`と打ちたかったんですがtypoです...おはずかしい。

`real name`は打たなくても良かったと記憶してるので空白で登録しました。（適当です）
これでユーザ`root`での作業は終わりです。最後の方に`please logout and login!`とあるので早速ログアウトし作成したユーザでログインしていきましょう。

    ssh yuu@192.168.0.213

![スクリーンショット 2021-01-13 13.46.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363815/b678d67e-b83c-a415-d83b-7c7ddfb2f909.png)

おっと、何やらエラーがでて弾かれました。
`WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!`
これは主に
`接続先サーバのホストキー情報が変更された`ときや
`接続先のサーバがそもそも違うものに変更された`ときに出ます。(多分)
その時の状況次第ですが、今回は改ざんされたとかそういったものではないので、速やかにエラーの出たIPアドレスの鍵情報を消してあげれば問題有りません。ここでは`ssh-keygen`コマンドを使用し`-R`オプションでknown_hostsファイルから、ホスト名、IPアドレス、公開鍵を削除します。
今回は別のユーザでログインしただけなんですが、ん〜。
詳しくは["Web記事:【SSHをはじめて触る人へ】Linuxのホスト間認証とは？"](https://eng-entrance.com/linux-ssh-host)を参考にしてみてください。

    ssh-keygen -R 192.168.0.213

`ssh-keygen`コマンド詳細については[ssh-keygenコマンドの使い方@qiita](https://qiita.com/hana_shin/items/2003698873a5782b7efd)を参考にしてみてください。
これでログインできるようになりました。ログインできたのはいいんですがなぜか`shell`にユーザ名が表示されていません。再起動してみましたが特に変わらず。なぜ。
>+-追記--2021/01/13---------+
`apt upgrade`を実行し再起動したら無事`shell`にユーザ名が表示されるようになりました。

![スクリーンショット 2021-01-13 14.53.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363815/7be6c2d2-ea27-e501-07bb-a6354f1a4499.png)
# apt更新
あとは`apt`の更新をすれば終わりです。
ミラーサーバなど探してみましたが2021/01/13日現在は`Asia/China`のみのようです。
[Armbian公式ドキュメント@choosing-an-apt-mirror](https://docs.armbian.com/User-Guide_Fine-Tuning/#choosing-an-apt-mirror)
[Armbianフォーラム@Regional Armbian Apt mirrors](https://forum.armbian.com/topic/16208-regional-armbian-apt-mirrors/)

    sudo apt update
    sudo apt upgrade -y
    sudo apt autoremove -y

# IPアドレスの固定化
固定化については["Web記事:armbianで固定IPアドレスを設定するには@日記というほどでも"](https://denor.jp/armbian%E3%81%A7%E5%9B%BA%E5%AE%9Aip%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF)こちらを参考に拝借させていただきました。このように追記するようです

```vim:/etc/network/interfaces
# eth0 static
auto eth0
allow-hotplug eth0
iface eth0 inet static
address <IPアドレス>
netmask 255.255.255.0
gateway <ゲートウェイアドレス>
dns-nameservers <DNSアドレス>
```
できるだけコピペで終わらせたいので下のコマンドを`sudo su -`コマンドで実行しました。

    sudo su -
    
    echo 'IP固定化の設定' && \
    echo '# eth0 static' | tee -a /etc/network/interfaces && \
    echo 'auto eth0' | tee -a /etc/network/interfaces && \
    echo 'allow-hotplug eth0' | tee -a /etc/network/interfaces && \
    echo 'iface eth0 inet static' | tee -a /etc/network/interfaces && \
    echo 'address 192.168.0.10/24' | tee -a /etc/network/interfaces && \
    echo 'netmask 255.255.255.0' | tee -a /etc/network/interfaces && \
    echo 'gateway 192.168.0.1' | tee -a /etc/network/interfaces && \
    echo 'dns-nameservers 192.168.0.1 8.8.8.8 ' | tee -a /etc/network/interfaces && \
    echo 'IPアドレスを 192.168.0.10 に設定しました' && \
    echo '再起動します' && \
    sudo reboot

![スクリーンショット 2021-01-13 17.46.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363815/206962b6-d50f-825b-75e4-6321ee81e21c.png)
私はちゃっかりシャットダウンコマンドを打ち込んでてそれに気が付かず全く復帰しないので焦りました()　起動させると無事固定IPが振られていました。
# hostname設定
hostnameでの解決には少し設定が必要なようです。
まだ情報をまとめきれていませんが [Armbianチートシート@qiita](https://qiita.com/miminashi/items/99bc03751330cd7ef6e4#mdns%E3%81%A7%E5%90%8D%E5%89%8D%E8%A7%A3%E6%B1%BA%E3%81%97%E3%81%9F%E3%81%84)こちらから拝借しました。

    sudo apt install avahi-daemon libnss-mdns libnss-mymachines
あとは2つのファイルのhostneme部分を任意のhostnameに編集すればいいようです。
`/etc/hostname`
`/etc/hosts`
# 終わりに
お疲れさまでした。今回ZeroPiについてニッチ&持ってる人にとっては当たり前すぎるせいか、あまり記事がなかったので書きました。
まだまだLinuxについて知らないことばかりなのでちょっとずつ馴染んでいけたらな、と思います。
自分自身が初心者なので初心者向けの記事が多くなりますがどうぞこれからも宜しくおねがいします。
ちなみにですが`GitHub`のアカウントを持っている方はGitHubのユーザ名でGitに登録してある公開鍵をサーバへ登録できるので便利です。便利&セキュリティ的にもGoodなのでほぼ毎回使ってます。


    sudo apt install ssh-import-id -y
    ssh-import-id gh:GitHubのユーザ名
![スクリーンショット 2021-01-13 18.00.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/363815/17c63110-bab0-1aac-3402-ac0fa4e01a6f.png)