Milk-V DuoをWiFiアクセスポイントモードで動作させてみました。
Milk-V Duoは超小型のLinuxシングルボードコンピュータです
を参照
また、Milk-V DuoでWiFiを使うと一部同じ手順があります。というかほぼ同じです。
ちなみに今回はIPアドレスをAPを192.168.32.1で、DHCPは192.168.32.2起点で192.168.32.100までを払い出すようにしています。
機材
筆者が使用した機材は以下のとおりです。お使いの機材やソフトウェアに合わせて読み替えてください。
名前 | URL | 備考 |
---|---|---|
Ubuntu 22.04 LTS | ビルドするPCのOS | |
Milk-V Duo 64MB | https://milkv.io/duo | |
IO Board | https://milkv.io/docs/duo/io-board/usb-ethernet-iob | |
TP-Link TL-W725N | https://www.tp-link.com/jp/home-networking/adapter/tl-wn725n/ | 内蔵チップはRTL8188EU。他のRTL8188EU搭載ドングルでも同一ドライバで問題なく動作。 |
ソフトウェアの準備
Buildroot SDKの準備
公式のgithubリポジトリからBuildroot SDKをクローンします。(この辺は、公式のドキュメントでも説明されています)
を参照の上、hostapdとdnsmasqを導入しておきMicroSDカードに書き込んでおきます。
Wi-Fiドライバの準備
https://github.com/ivanovborislav/rtl8188eu
筆者はこのドライバを使いました。
クローンして、そのディレクトリに入ります。
makeでビルドします。
make ARCH=riscv CROSS_COMPILE=/path/to/sdk/duo-buildroot-sdk/host-tools/gcc/riscv64-linux-musl-x86_64/bin/riscv64-unknown-linux-musl- KSRC=/path/to/sdk/duo-buildroot-sdk/linux_5.10/build/cv1800b_milkv_duo_sd -j$(nproc)
成功するとドライバのディレクトリに8188eu.koとその他複数のファイルが生成されます。
OS側の準備
Buildrootを書き込んだSDカードをPCに挿入します。
rootfsをマウントし、その下のmnt/system/koにさっき生み出した8188eu.koをコピーします。
ネットワーク情報の記述
rootfs/etc/hostapd.confを編集。
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
interface=wlan0
driver=nl80211
country_code=JP #居住国に合わせて変更
ssid=設定したいSSID
hw_mode=g
channel=11
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2 #セキュリティを設定しない場合この行は消す
wpa_key_mgmt=WPA-PSK #セキュリティを設定しない場合この行は消す
rsn_pairwise=CCMP #セキュリティを設定しない場合この行は消す
wpa_passphrase=設定したいパスワード #セキュリティを設定しない場合この行は消す
rootfs/etc/dnsmasq.confを編集。
以下を追記しておきます。
interface=wlan0
dhcp-range=192.168.32.2,192.168.32.100,255.255.255.0,12h
rootfs/etc/dhcpd.confを編集。
以下を追記しておきます。
interface wlan0
static ip_address=192.168.32.1/24
rootfs/etc/network/interfacesを編集。
以下を追記しておきます。
iface wlan0 inet static
address 192.168.32.1/24
gateway 192.168.32.1
この辺の設定はあくまで一例です。希望の設定になるように変更してください。
自動起動の設定
ドライバの自動挿入
/mnt/system/ko/loadsystemko.sh上方に以下を追記
insmod /mnt/system/ko/8188eu.ko
hostapdの自動起動
/mnt/system/auto.shとして自動起動に使用できるスクリプトがBuildroot側で用意されているので、有り難く使わせてもらいましょう。以下を追記
hostapd -B -iwlan0 /etc/hostapd.conf
MicroSDカードをアンマウントし、Duoに挿入して起動します。
うまく行けばDuoがWiFiアクセスポイントとして他のWiFi対応機器のscanで見つかるはずです。
(おまけ)繋いでみた
$ssh root@192.168.32.1
The authenticity of host '192.168.32.1 (192.168.32.1)' can't be established.
ED25519 key fingerprint is SHA256:1fuCsLqAyGYQgdq57kBuYbaWvIOhw5StKqqLoJ351Hc.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.32.1' (ED25519) to the list of known hosts.
ためしにcpuinfo。
[root@milkv-duo]~# cat /proc/cpuinfo
processor : 0
hart : 0
isa : rv64imafdvcsu
mmu : sv39
[root@milkv-duo]~#
これはなかなか応用が効きそうですね。カメラ付きロボットとか。