LoginSignup
1
0

Milk-V DuoをWiFiに繋げてみました。

Milk-V Duoは超小型のLinuxシングルボードコンピュータです

を参照

背景

進めているプロジェクトの中で、Milk-V DuoをWiFiに接続する必要がありました。
Milk-V DuoはWiFiモジュールを持たず、独力では無線LANにアクセスできないので、外付けのドングルとそのドライバを用意する必要がありました。

機材

筆者が使用した機材は以下のとおりです。お使いの機材やソフトウェアに合わせて読み替えてください。

名前 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をクローンします。(この辺は、公式のドキュメントでも説明されています)
公式のドキュメントに従ってビルドしておき、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/wpa_supplicant.confを編集します。

wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant
update_config=1
country=JP #居住国に合わせて変更
network={
    ssid="APのSSID"
    psk="APのパスワード" #パスワードなしのAPの場合は明示的にクオートなしでNONEと記述
    key_mgmt=WPA-PSK #同様にパスワードなしのAPの場合は明示的にクオートなしでNONEと記述
}

自動起動の設定

ドライバの自動挿入
/mnt/system/ko/loadsystemko.sh上方に以下を追記

insmod /mnt/system/ko/8188eu.ko

WPA Supplicantの自動起動

/mnt/system/auto.shとして自動起動に使用できるスクリプトがBuildroot側で用意されているので、有り難く使わせてもらいましょう。以下を追記

wpa_supplicant -Dn80211 -iwlan0 -c/etc/wpa_supplicant.conf -B

MicroSDカードをアンマウントし、Duoに挿入して起動します。

うまく行けばDuoがWiFiに接続され、認識されるはずです。
BuildrootはApacheとかも入れられるようなので、小型ウェブ鯖みたいなのもアリ?

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