目的
最大の目的はVSCodeのRemote SSHが使えるようにすること。リモート側の必要条件としては以下のようになっている1。
requires kernel >= 3.10
glibc >=2.17
libstdc++ >= 3.4.18
配布時にもらった個体には2013年ぐらいのÅngströmが入っていて上記のライブラリを入れるのがめんどくさかった。
ちまちま更新してもいいけど競合してもめんどくさいしこの際OSごと更新してしまうことにした。
使用機材
- Beagle Bone Black Rev.C
方法
1.BBB用のイメージのダウンロード
BeagleBoneにLinuxをインストールする - memorandum
こちらの記事をもとにありがたくインストールさせていただく。
BeagleBoard.org Latest Firmware Images
ここからAM3358 Debian 10.3 2020-04-06 4GB SD IoT
を選択してダウンロードする。
2.SDカードにイメージを焼きこむ
Raspberry Piなどでも使われているEtcherが使える。Electronを使ったリッチなUIですごい。容量も書き込みツールのわりにすごい。
左端でダウンロードしてきたイメージを選択し、中央で書き込み先、右端が書き込み開始ボタン。
3.BBBのeMMC上にDebianを書き込み
BBBにSDカードを差し込み、SDカード付近にあるボタンを押しながら起動する。
LANポート近くの4つのLEDが点灯するまで押し続けること。
適当な時間放置したあと(LEDのちかちかが控えめになったら)SSHでBBBに接続する。
ユーザー名はdebian, パスワードはtemppwd。
ログインしたら1.で紹介したありがたい記事に
/boot/uEnv.txt
を以下のように修正して保存します。
##enable BBB: eMMC Flasher: cmdline=init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh
とあるように修正しておく。
その後SDカードを抜かずsudo reboot sudo shutdown -h now
を実行して、再起動する。
eMMCの書き込みには20分ぐらいかかるのでしばらく放置する。
LEDのちかちかが控えめになったらSSHでアクセスしてみるとうまくいった。
4.環境作成
ここからはbeagle bone black上にC/C++コンパイル環境を作成する。
ここまでやっておいてあれだがクロスコンパイルのほうが効率いいかも
また、今回BBBは完全にネットワークから切り離された組み込みボードとして使用するので常にrootユーザでログインしておいても問題ないはずだ。というわけでrootユーザにパスワードを設定して使用できるようにしておく。パスを設定しないとrootユーザは使用可能にならない模様。なぜでしょうね?Linuxのユーザー関係についてよく理解していない。
これは必須ではないが楽をするためにやっている。
-
sudo passwd root
でパスワードを設定する。 -
次にrootでsshログインできるようにする。初期設定ではできないためだ。
/etc/ssh/sshd_config
の
#PermitRootLogin without-password
のようになっているのを
#PermitRootLogin yes
とする。
そしてsudo service sshd restart
を実行してsshdを再起動する。 -
sshでrootログインできるようになった。
次に各種ライブラリ・ツールをインストールする。
apt install build-essential
apt install gdb
ここまでやればあとは手前みその記事にあるようにすればVSCodeを用いてデバッグ・コンパイルできる。
感想
特に詰まらずにデバッグできるようになったのには軽く感動を覚えた。
今後は多数ファイルのプロジェクトをCMakeとNinjaでビルドできるようになりたい。
参考文献
BeagleBoneにLinuxをインストールする - memorandum
-
Developing on Remote Machines using SSH and Visual Studio Code - Visual Studio Code ↩