タイトルの通りです。発掘してみました。
発掘した目的は、debian系で動くボードマイコンを用意したかった。それだけです。Armbianが動くと簡単でよかったのですが、残念ながらBeagleBoneはArmbianはなさそうです。
公式ページからAM3358 Debian 10.3 2020-04-06 4GB SD IoTをダウンロードしてディスクイメージライタで書き込みます。本当は、内蔵eMMCに書き込みをするAM3358 Debian 10.3 2020-04-06 4GB eMMC IoT Flasherを書き込みたかったのだけど、古いBeagleBone Blackでは容量が足りなくて途中でエラーで落ちてしまいます。
MicroSDスロット脇にあるBootボタンを押しながら電源投入します。そうしないと内蔵のeMMCから起動してしまいます。
avahi.daemonが有効になっているようなので、しばらく待って同じネットワーク上から
$ ssh debian@beaglebone.local
Debian GNU/Linux 10
BeagleBoard.org Debian Buster IoT Image 2020-04-06
Support: http://elinux.org/Beagleboard:BeagleBoneBlack_Debian
default username:password is [debian:temppwd]
debian@beaglebone.local's password:
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
debian@beaglebone:~$
でログインします。ログインしたら、とりあえずパスワード変更して更新します。
debian@beaglebone:~$ sudo apt update
debian@beaglebone:~$ sudo apt upgrade
使った余り物のMicroSDが遅かったか。時間がかかります。また、ディスク空き容量をみたら、MicroSDを全部は使ってなくて、4GBしか使っていません。ですので、
debian@beaglebone:~$ sudo /opt/scripts/tools/grow_partition.sh
として拡張します。次に、オンボードeMMCを確認してブートローダを最新に更新します。
debian@beaglebone:~$ cd /opt/scripts/tools/
debian@beaglebone:/opt/scripts/tools$ git pull
debian@beaglebone:/opt/scripts/tools$ sudo ./version.sh | grep bootloader
debian@beaglebone:/opt/scripts/tools$ cd /opt/scripts/tools/developers/
debian@beaglebone:/opt/scripts/tools/developers$ sudo ./update_bootloader.sh
debian@beaglebone:/opt/scripts/tools/developers$ sudo reboot
引き続き設定をしていきます。まずは、公開鍵認証ログインを設定するため、鍵ペアを作ります。今回はbeaglebone側で作りました。
debian@beaglebone:~$ mkdir .ssh
debian@beaglebone:~$ chmod 700 .ssh
debian@beaglebone:~$ cd .ssh
debian@beaglebone:~/.ssh$ ssh-keygen -t rsa -b 4096 -f debian@beaglebone
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in debian@beaglebone.
Your public key has been saved in debian@beaglebone.pub.
The key fingerprint is:
SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx debian@beaglebone
The key's randomart image is:
+---[RSA 4096]----+
| . |
| . . o |
| o + o |
| . . * = |
| ..S o B = |
| ..=.= o = .|
| ooEO.= o |
| . +=oO.+ |
| +o+OOXo. |
+----[SHA256]-----+
debian@beaglebone:~/.ssh$ ls -la
total 16
drwx------ 2 debian debian 4096 Dec 4 21:00 .
drwxr-xr-x 5 debian debian 4096 Dec 4 20:59 ..
-rw------- 1 debian debian 3381 Dec 4 21:00 debian@beaglebone
-rw-r--r-- 1 debian debian 743 Dec 4 21:00 debian@beaglebone.pub
debian@beaglebone:~/.ssh$ cat debian@beaglebone.pub >> authorized_keys
debian@beaglebone:~/.ssh$
秘密鍵をローカルにコピーして、リモートログインができることを確認します。確認したらbeaglebone側の秘密鍵は削除します。
LOCAL:~$ cd .ssh
LOCAL:~/.ssh$ scp debian@beaglebone.local:/home/debian/.ssh/debian@beaglebone .
Debian GNU/Linux 10
BeagleBoard.org Debian Buster IoT Image 2020-04-06
Support: http://elinux.org/Beagleboard:BeagleBoneBlack_Debian
default username:password is [debian:temppwd]
debian@beaglebone.local's password:
debian@beaglebone 100% 3381 1.0MB/s 00:00
LOCAL:~/.ssh$ ssh debian@beaglebone.local -i debian@beaglebone
Debian GNU/Linux 10
BeagleBoard.org Debian Buster IoT Image 2020-04-06
Support: http://elinux.org/Beagleboard:BeagleBoneBlack_Debian
default username:password is [debian:temppwd]
debian@beaglebone.local's password:
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Fri Dec 4 20:51:55 2020 from 10.89.105.60
debian@beaglebone:~$
接続を簡単にするため、~/.ssh/config に以下のエントリを作成します。
Host beagle
Hostname beaglebone.local
User debian
IdentityFile ~/.ssh/debian@beaglebone
これで再度ログインテストしてみます。
LOCAL:~$ ssh beagle
Debian GNU/Linux 10
BeagleBoard.org Debian Buster IoT Image 2020-04-06
Support: http://elinux.org/Beagleboard:BeagleBoneBlack_Debian
default username:password is [debian:temppwd]
Last login: Fri Dec 4 21:27:17 2020 from 10.89.105.60
LOCAL:~$
rootのパスワードを削除します。
debian@beaglebone:~$ sudo su -
[sudo] password for debian:
root@beaglebone:~# root_password=$(cat /etc/shadow | grep root | awk -F ':' '{print $2}')
root@beaglebone:~# sed -i -e 's/'$root_password'//g' /etc/shadow
空パスワードでのリモートログインとrootのリモートログインを禁止します。
debian@beaglebone:~$ sudo su -
[sudo] password for debian:
root@beaglebone:~# sed -i -e 's:PermitEmptyPasswords no:PermitEmptyPasswords yes:g' /etc/ssh/sshd_config
root@beaglebone:~# sed -i -e 's:UsePAM yes:UsePAM no:g' /etc/ssh/sshd_config
root@beaglebone:~# sed -i -e 's:PermitRootLogin without-password:PermitRootLogin yes:g' /etc/ssh/sshd_config
root@beaglebone:~# systemctl restart ssh
root@beaglebone:~#
sudo でパスワードを要求されないようにします。
root@beaglebone:~# echo "debian ALL=NOPASSWD: ALL" >>/etc/sudoers
とりあえず、Debianで動くようになりました。