BeagleBone Blackに久しぶりに火を入れた

タイトルの通りです。発掘してみました。
発掘した目的は、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で動くようになりました。

情報源: https://elinux.org/Beagleboard:BeagleBoneBlack_Debian

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)