2024年12月9日月曜日

Luckfox Pico Mini BでUSB LANを使ってみた。

 USB WiFiドングルをホットプラグ対応にして自動でWiFiにつなげるようにしたのでLANケーブルを取り外してしまったんだけど、たまーに有線LANが欲しくなるのでUSBで接続できるようにしてみた。
ピンヘッダを付けてもいいんだけど端面スルーホールに端子をつけるのは折れそうで怖いし…

USBドングルはだいぶ前に購入したUSB208B NO.:8150ってやつがあったのでとりあえずこれを動かせるようにしてみようかなと。

見るからに怪しいし、8150って書いてあるのにVID PIDは0bda:8050で中身のチップはRTL8152Bという。とりあえずチップに合わせてrtl8152のカーネルモジュールをビルドしてみる。

Ubuntu上のLuckfoxのSDKで

cd $HOME/luckfox-pico/sysdrv/source/kernel
cp ./arch/arm/configs/luckfox_rv1106_linux_defconfig .config
make ARCH=arm menuconfig

RTL8152/RTL8153を選択してSave

make ARCH=arm savedefconfig
cp defconfig ./arch/arm/configs/luckfox_rv1106_linux_defconfig
cd $HOME/luckfox-pico
./build.sh driver

そんでもって、ドライバだけをビルドする。

cd $HOME/luckfox-pico/sysdrv/out/kernel_drv_ko

の中にカーネルモジュールが出来上がるのでこの中のrtl8150.koを保存しておく。
これでUbuntu上の作業は終了。

次にLuckfox Pico Mini Bを起動して今回はWinSCPでファイルを転送することにした。

/oem/usr/ko

の中に先ほど保存したrtl8150.koを転送する。
次に

/lib/udev/rules.d

の中にある61-usbdevice.rulesを開いて下の2行を追加。

ACTION=="add", ATTR{idVendor}=="0bda", ATTR{idProduct}=="8050", RUN+="/sbin/insmod /oem/usr/ko/r8152.ko"
SUBSYSTEM=="net", ACTION=="add", ENV{INTERFACE}=="eth*", RUN+="/sbin/udhcpc -i %E{INTERFACE}"

あとは

udevadm control --reload-rules

すれば完了。

自動でeth1が上がってくるためにこうしたけどなにか間違ってるかもしれない?
たまに繋がらないことがあるのはアダプタが悪いのか設定が悪いのか…

これでWiFi関連をいじくるときにしくじってログオンできないことが無くなりそうなのでとりあえずいいかな。

0 件のコメント:

コメントを投稿