しばらく放っておいてどうセットアップしたか忘れたので、https://www.armbian.com/nanopi-neo-2/ armbian を改めて入れてみる。
FriendlyARM のイメージも結構更新されていそうだけど、どっちがいいか不明。しかし FriendlyARM のイメージはいまいちデキが良い感じがしなかったので、armbian Bionic server (Ubuntu系) を入れてみる。
SDカード書きこみ
Etcher で焼くだけ
初回起動
ping 192.168.0.255 とかして arp -a して 02:01:a9 からはじまる Mac アドレスがそれ。
https://docs.armbian.com によると、デフォルトで ssh が起動しており、root 、 1234 で入れるらしい。
ssh root@192.168.0.xx
すると、初回設定としてパスワード変更とユーザ追加をさせられる。やったら一回 logout して、作ったユーザーでログインしなおす。
前後して
ssh-copy-id cho45@192.168.0.17
とかやっておく。
初回設定
sudo armbian-config
して Personal -> Timezone の設定と、 System -> Hardware -> i2c0 にチェックを入れて再起動。
NanoHat OLED
i2c
検出できるか確認しとく。
$ sudo apt install i2c-tools $ sudo i2cdetect -y 0 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- 3c -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --
i2c グループに自分を追加しておく
$ sudo usermod -a -G i2c # 一回ログアウトすること $ i2cdetect -y 0
gpio
armbian もデフォルトでは root にしか gpio へのアクセス権限がなく、gpio グループなども設定されていない。ので自分でやる必要がある.
sudo groupadd gpio sudo usermod -aG gpio cho45
$ sudo vim /etc/udev/rules.d/80-gpio.rules SUBSYSTEM=="gpio", PROGRAM="/bin/sh -c '/bin/chown -R root:gpio /sys/devices/platform/soc/*pinctrl/gpio*'" SUBSYSTEM=="gpio", PROGRAM="/bin/sh -c '/bin/chmod -R ug+rw /sys/devices/platform/soc/*pinctrl/gpio*'" SUBSYSTEM=="gpio", PROGRAM="/bin/sh -c '/bin/chown -R root:gpio /sys/class/gpio'" SUBSYSTEM=="gpio", PROGRAM="/bin/sh -c '/bin/chmod -R ug+rw /sys/class/gpio'"
sudo udevadm control --reload-rules sudo udevadm test --action=change /sys/devices/platform/soc/1c20800.pinctrl/gpiochip1/gpio/gpio0
$ ls -altr /sys/class/gpio/ total 0 -rw-rw---- 1 root gpio 4096 Sep 15 15:45 export drwxrwxr-x 2 root gpio 0 Sep 15 15:45 . drwxr-xr-x 51 root root 0 Sep 15 15:45 .. lrwxrwxrwx 1 root gpio 0 Sep 15 15:45 gpio0 -> ../../devices/platform/soc/1c20800.pinctrl/gpiochip1/gpio/gpio0 -rw-rw---- 1 root gpio 4096 Sep 15 15:45 unexport lrwxrwxrwx 1 root gpio 0 Sep 15 15:45 gpio3 -> ../../devices/platform/soc/1c20800.pinctrl/gpiochip1/gpio/gpio3 lrwxrwxrwx 1 root gpio 0 Sep 15 15:45 gpiochip352 -> ../../devices/platform/soc/1f02c00.pinctrl/gpio/gpiochip352 lrwxrwxrwx 1 root gpio 0 Sep 15 15:45 gpiochip0 -> ../../devices/platform/soc/1c20800.pinctrl/gpio/gpiochip0 lrwxrwxrwx 1 root gpio 0 Sep 15 15:45 gpio2 -> ../../devices/platform/soc/1c20800.pinctrl/gpiochip1/gpio/gpio2
node
nodejs をいれる。apt でいれると気持ちわるいことになるので公式パッケージをいれるほうがよい。
$ cd ~/ $ mkdir app $ cd app $ wget https://nodejs.org/dist/v10.16.3/node-v10.16.3-linux-arm64.tar.xz $ tar xvf node-v10.16.3-linux-arm64.tar.xz $ ln -s node-v10.16.3-linux-arm64 node $ cd ~/bin $ ln -s ~/node/bin/* .
$ sudo apt install pkg-config libcairo2-dev $ git clone git@github.com:cho45/nanohat-oled-nodejs.git $ cd nanohat-oled-nodejs $ npm install
動作確認
$ node index.js
systemd 化
$ ./install.sh
備考: ssh ログイン時のメッセージ
$ ls /etc/update-motd.d
にある。/etc/update-motd.d/30-armbian-sysinfo が特に有用