0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

M5Stack CoreMP135にさわる(その1:BuildrootのBuild)

Posted at

M5Stack CoreMP135にてBuildrootをBuild(WiFiドングル付き)

スイッチサイエンス社から購入した、「M5Stack CoreMP135」にて、WiFiドングル含めてBuildrootをBuild(&動作)したときの記録。

情報

URL

初めは、スイッチサイエンス社サイトから辿れる、次の2つの情報を元にトライしたが、Buildはできるものの、小生の環境(Ubuntu 22.04.4 LTS )で作成したイメージは動作しなかった。

で、本家サイトを探していたところ、下記情報によりBuildを行い、作製したイメージを動作させることができた。

WiFiドングル

用いたWiFiドングルは下記バッファロー製のもの。

最初のBuild:WiFiドングル使えず

上記動作することができたサイトの情報に従いBuild。

$ git clone https://github.com/m5stack/CoreMP135_buildroot.git
$ git clone https://github.com/m5stack/CoreMP135_buildroot-external-st.git
$ cd CoreMP135_buildroot
$
$ make BR2_EXTERNAL=../CoreMP135_buildroot-external-st/ m5stack_coremp135_defconfig
$ make -j4
$
$ sudo dd if=./output/images/sdcard.img of=/dev/sdc bs=4M

sdカードを本体に入れて動作はした。

# uname -a
Linux CoreMP135 5.15.118 #1 SMP PREEMPT Sat Aug 24 15:04:31 JST 2024 armv7l GNU/Linux

# cat /etc/issue 
#     #  #######   #####   #######     #      #####   #    # 
##   ##  #        #     #     #       # #    #     #  #   #  
# # # #  #        #           #      #   #   #        #  #   
#  #  #  ######    #####      #     #     #  #        ###    
#     #        #        #     #     #######  #        #  #   
#     #  #     #  #     #     #     #     #  #     #  #   #  
#     #   #####    #####      #     #     #   #####   #    # 
Welcome to CoreMP135, Powered by M5Stack.

が、WiFiドングル動作せず。dmesgによるログは下記。

[ 3182.218377] usb 2-1.3: new high-speed USB device number 5 using ehci-platform
[ 3182.678439] usb 2-1.3: reset high-speed USB device number 5 using ehci-platform
[ 3182.837993] ieee80211 phy0: rt2x00_set_rt: Info - RT chipset 3070, rev 0201 detected
[ 3182.867596] ieee80211 phy0: rt2x00_set_rf: Info - RF chipset 0005 detected
[ 3182.868077] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
[ 3182.879171] usbcore: registered new interface driver rt2800usb
[ 3182.987830] ieee80211 phy0: rt2x00lib_request_firmware: Info - Loading firmware file 'rt2870.bin'
[ 3182.988000] rt2800usb 2-1.3:1.0: Direct firmware load for rt2870.bin failed with error -2
[ 3182.988032] ieee80211 phy0: rt2x00lib_request_firmware: Error - Failed to request Firmw

WiFiドングルをハードウェア的に認識するものの、「rt2870.bin」が足りていないらしい。

Buildオプションの探索

正直時間がかかった(苦闘した)。

$ make ARCH=arm menuconfig

menuconfigにより、組み込む機能(Buildオプション)を選択できそうなことはわかったでいたが、menuconfigにより表示されるメニューや選択肢の階層が深く、どこに「rt2870.bin」があるのかすぐには分からずであった。シローとなりに調べると、「Config.in」と「*.mk」あたりが、Buildオプション選択に関連しそうなことがわかる。

オプション選択:最終的なBuild

$ make ARCH=arm menuconfig

rt2870.bin

「Target Packages > Hardware handling > Firmware > linux-firmware > Wifi firmware」に見つかる。
TargetPackages_Hardware_Firmware_WiFi.png

WiFi Supplicant

調べた結果、WiFi SupplicantなどWiFiツール関連を組み込んだ方が良さそうであった。「Target Packages > Networking applications」にある関連しそうなものを組み込む。
wifi追加2.png
上記は一例。下記のものを選択。

  • wpa_supplicant
  • wireless tools
  • Install wpa_cli binary
  • Install wpa_client shared library
  • Install wpa_passphrase binary
  • iw
  • iwd

Network Manager(不要かもしれない)

何かと便利かと思い、Network Managerも組み込むことにした。同じく「Target Packages > Networking applications」から選ぼうとしたが、
networkmanagerインストール不可.png
udev及びglibcを先に組み込む必要があるらしい。「System Configuraiton」に見つかる。
SystemConfiguration-eudev.png
これを選択後、下記となる。
NetworkManagerあり.png

Build

$ make -j4
$
$ sudo dd if=./output/images/sdcard.img of=/dev/sdc bs=4M

検証

起動

起動後のKernelログ。

[    5.515887] usb 2-1.3: reset high-speed USB device number 3 using ehci-platform
[    5.675526] ieee80211 phy0: rt2x00_set_rt: Info - RT chipset 3070, rev 0201 detected
[    5.705376] ieee80211 phy0: rt2x00_set_rf: Info - RF chipset 0005 detected
[    5.706240] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
[    5.715908] usbcore: registered new interface driver rt2800usb
[    7.028360] ieee80211 phy0: rt2x00lib_request_firmware: Info - Loading firmware file 'rt2870.bin'
[    7.045835] ieee80211 phy0: rt2x00lib_request_firmware: Info - Firmware detected - version: 0.36

ハードウェア検出後、rt2870.binロードされている。

Supplicant設定及び起動。

/etc/wpa_supplicant.confにSSID及びパスワードの設定を行う。

# cat /etc/wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant
ap_scan=1

network={
	ssid="SSID_ABC"
	psk="Himitsu" 
}

起動させる。

# wpa_supplicant -B -D nl80211 -i wlan0 -c /etc/wpa_supplicant.conf
Successfully initialized wpa_supplicant
nl80211: kernel reports: Match already configured
nl80211: kernel reports: Match already configured
nl80211: kernel reports: Match already configured
nl80211: kernel reports: Match already configured
nl80211: kernel reports: Match already configured

この時のKernelログは下記となる。

[  116.441587] wlan0: authenticate with 82:22:a7:XX:YY:ZZ
[  116.489488] wlan0: send auth to 82:22:a7:XX:YY:ZZ (try 1/3)
[  116.491278] wlan0: authenticated
[  116.496259] wlan0: associate with 82:22:a7:XX:YY:ZZ (try 1/3)
[  116.539283] wlan0: RX AssocResp from 82:22:a7:XX:YY:ZZ (capab=0x1431 status=0 aid=3)
[  116.551145] wlan0: associated
[  116.721358] cryptd: max_cpu_qlen set to 1000
[  116.878509] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready

動作

WiFiインターフェース(wlan0)にて、DHCPによりIPアドレスを取得させる。

# udhcpc -i wlan0
udhcpc: started, v1.36.0
udhcpc: broadcasting discover
udhcpc: broadcasting discover
udhcpc: broadcasting select for 192.168.10.105, server 192.168.10.1
udhcpc: lease of 192.168.10.105 obtained from 192.168.10.1, lease time 86400
deleting routers
adding dns 192.168.10.1

成功。

# ifconfig

wlan0     Link encap:Ethernet  HWaddr 6A:F1:49:XX:UU:DD  
          inet addr:192.168.10.105  Bcast:192.168.10.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:43 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:3572 (3.4 KiB)  TX bytes:1374 (1.3 KiB)

WiFiインターフェースにIPアドレスが割り振られていることが確認できる。

EOF

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?