4
2

More than 1 year has passed since last update.

秋月謎SoC基板用の buildroot_am3352_aki をカスタマイズしてsshログインしてみる

Posted at

はじめに

秋月謎SoC基板へsshログインできるよう、カスタマイズしてみる話です。

秋月謎SoC基板用の buildroot_am3352_aki をビルドしてみる(AWS EC2編)
あるいは
秋月謎SoC基板用の buildroot_am3352_aki をビルドしてみる(WSL2編)
の続きです。

設定

make したときのディレクトリで、make menuconfig を実行します

menuconfig.png

以下、変更項目を挙げていきます。スクショなしですいません。
(メニュー順に挙げます)

  System configuration  --->
   () Root password

パスワードが設定されていない場合、sshでつながった直後に切られてしまうので、なんかしらパスワードを設定します。

akizuki とでもしておきましょうか。

  System configuration  --->
   () Network interface to configure through DHCP

起動時にDHCPで設定させるインターフェース名を指定します。
ここでは eth0 を指定します。

Target packages  --->  
  Networking applications  ---> 
     [*] avahi
     [*]   IPv4LL network address configuration daemon
     [*]   mDNS/DNS-SD daemon
     [*]   libdns_sd compatibility (Bonjour)
     [*]   install default service definitions

外部からホスト名で接続できるようにするため、avahi を選択します。avahi を選択すると下の項目が増えます。とりあえず全部選択しておきす。

Target packages  --->  
  Networking applications  ---> 
     [*] dropbear
     [*]   client programs
     [*]   disable reverse DNS lookups
     [*]   optimize for size

sshデーモンの軽量版、dropbear を選択します。
disable reverse DNS lookups は、ログに吐くときにホスト名を調べるのをサボって、コネクション時の引っ掛かり感をなくす設定と思います。

なお、dropbear でなく openssh を選んだらログインできませんでした。opensshを使うには何らかの設定が必要と思います。(セキュリティレベルを落とすとか、ちゃんと鍵ファイルを置くとか、そんな感じの設定が必要なのかな?)

ビルド

ここで make ・・・したらドハマリしました。

make clean してから、make してください。

ここで make clean をしない場合、/etc/network/interfaces が書き換えられず、起動後に eth0 が上がってきません。

make が終わったら、念のため /etc/network/interfaceseth0 の記述があることを確認しましょう。(デフォルトでは lo の記述だけでした)
イメージファイル内のファイルシステムを作る元となるファイルはoutput/target/配下にあります。

$ cat output/target/etc/network/interfaces
# interface file auto-generated by buildroot

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp
  pre-up /etc/network/nfs_check
  wait-delay 15
  hostname $(hostname)

正しく設定できていれば関係ない話ですが、起動後に eth0 が上がってきてない場合にコマンドから固定IPを振るには以下のようにします。

# ip link set eth0 up
# ip addr add 192.168.0.xxx/24 dev eth0
# ip route add default via 192.168.0.1

一行目は寝ているインターフェースを起こすものです。整った環境ではまず必要のないコマンドなので知らずにドハマリしました。これを打たずに ip addr add ~ するとコマンドは正常に通っているように見えるものの、ping で内部ネットワークにも届かないという症状になります。

ssh 接続

makeが終わったら、./output/images/sdcard.img microSDに書き込み、謎基板に挿して起動してみましょう。

ホスト名は、変更していなければ buildroot となっているので、sshの接続先の名前は buildroot.local です。(ポートは当然 22 です。)

書くまでもないですが、ユーザー名は root パスワードは先に設定したakizukiです。

おまけ

Lチカ

led1 ~ led4 が定義されています。

led1 はmicroSDと電源LED(緑) との間。
led2 ~ led4 はmicroSDを挟んで反対側にあります。

LED1 ON

# echo 1 > /sys/class/leds/led1/brightness

LED1 OFF

# echo 0 > /sys/class/leds/led1/brightness

温度センサー

温度センサーのADC生値取得

# cat /sys/bus/iio/devices/iio:device0/in_voltage6_raw

おわりに

ドハマリした時間を供養するために記事を書きましたが、成功する手順だけ書くとかなりアッサリした記事になってしまいました。

なかなかルートイメージを作る機会はないと思いますが、この基板との出会いをきっかけに、buildrootの世界に触れてみてはいかがでしょうか。私もその一人です。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2