Armbianを使ってみようと思ったきっかけ
前回、ASUS tinker board SにはtinkerOSをインストールしましたが、他のOSを入れてみようと思いました。 きっかけはtinkerOSの安定版では、最新のブラウザーが使えなかったためです。
現行のtinkerOSはDebian stretchベースになっていて、GCCはバージョン6が利用できます。stretchでメンテナンスされているGCC6にARM由来の問題があって、このGCCでビルドしたChromiumが起動できないようです。じゃあ、Firefoxを使えばいいじゃないかと思いますが、どうやらFirefoxも同じバージョンのGCCでビルドするとうまく起動できないようです。そもそも古いバージョンのOSに固執する理由もありませんから、他のOSを触ってみようと思いました。
インストールできるOSは次のtinker board フォーラムのスレッドにまとめられていました。
普段使い慣れているDebianベースであるArmbianが良さそうです。
ダウンロードとイメージ書き込み
こちらからイメージをダウンロードします。
「Armbian Bionic」と「Armbian Buster」の、2つのイメージがダウンロードできるようです。今回はKernelが新しい「Armbian Buster」の方を選びました。
ダウンロードしたイメージは7z圧縮されているので、展開します。わたしは普段macOSを使っているので、 brew install p7zip
で7z形式のアーカイブの圧縮展開に必要なツールをインストールして、これで展開しました。
tinker board SをMacと接続して、eMMCのストレージをマウントします。SD Card Fomatterでフォーマットして、belenaEtcherで展開したイメージを書き込みます。
Armbianの起動
tinker board Sをキーボードと電源をつないで起動します。イメージ書き込みが問題なければArmbianは起動します。ユーザーとして「root」、パスワードとして「1234」を入力するとパスワードの再設定に切り替わるので、今のパスワードとして「1234」を入力し、新しいパスワードを入力します。これでOKです。
Armbianにデスクトップ環境をインストールする
次を実行してLXDEでも入れましょう。
sudo apt update && sudo apt install tasksel sudo tasksel
ArmbianのネットワークマネージャーをWicdからNetwork Managerに切り替える
ArmbianのデフォルトのネットワークマネージャーはWicdが使われているようです。 なんか不安定だし、「Wicdはドライバーによっては不安定になるかも?」みたいな情報もあるので、NetworkManagerに切り替えることにしました。 念のため、この作業をするときは有線接続もしておきます。
sudo apt remove wicd sudo apt install network-manager-gnome sudo reboot
設定ツールをインストールする
raspi-config
みたいなツールはArmbianにも用意されているようです。次のように実行してインストールしました。
sudo armbian-config
で実行できます。
sudo apt update && sudo apt install armbian-config
Armbianでk3sを動かしてみる
Armbianでk3sを動かしてみようと思いました。cgroupの設定をおこなうため、sudo armbian-config
を実行します。最初の画面で「System」を選択したあと、次の画面で「Boot env」を選択します。
このあとの画面で「cgroup_memory=1」「cgroup_enable=memory」を入力して「Save」ボタンを押します。ツールを終了して、Armbianを再起動します。
再起動後、公式サイトの手順に従って、コマンドを実行するだけです。
どうやらTraefikを使ったType LoadBalancerも使えそうですね。
root@tinkerboard:~# kubectl get no NAME STATUS ROLES AGE VERSION tinkerboard Ready master 12m v1.16.3-k3s.2 root@tinkerboard:~# kubectl get svc --all-namespaces NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE default kubernetes ClusterIP 10.43.0.1 <none> 443/TCP 116m kube-system kube-dns ClusterIP 10.43.0.10 <none> 53/UDP,53/TCP,9153/TCP 116m kube-system metrics-server ClusterIP 10.43.169.13 <none> 443/TCP 116m kube-system traefik LoadBalancer 10.43.133.144 192.168.1.140 80:31157/TCP,443:30731/TCP,8080:32684/TCP 115m