LoginSignup
0
0

Milk-V Duoをアクセスポイントにする

Last updated at Posted at 2024-06-30

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を編集。

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を編集。
以下を追記しておきます。

dnsmasq.conf
interface=wlan0
dhcp-range=192.168.32.2,192.168.32.100,255.255.255.0,12h

rootfs/etc/dhcpd.confを編集。
以下を追記しておきます。

dhcpd.conf
interface wlan0
static ip_address=192.168.32.1/24

rootfs/etc/network/interfacesを編集。
以下を追記しておきます。

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@192.168.32.1
[root@milkv-duo]~# cat /proc/cpuinfo
processor	: 0
hart		: 0
isa		: rv64imafdvcsu
mmu		: sv39

[root@milkv-duo]~#

これはなかなか応用が効きそうですね。カメラ付きロボットとか。

0
0
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
0
0