openbouffalo / buildroot_bouffalo

Linux Image for the BL808 CPU by Bouffalo Lab
124 stars 33 forks source link

Wifi Support #32

Open Fishwaldo opened 1 year ago

Fishwaldo commented 1 year ago

Pending release of blobs or documentation from bouffalo.
See https://github.com/bouffalolab/bl_mcu_sdk/issues/85

MartinEssink commented 1 year ago

The SDK has been updated and from a quick glance seems to include blobs. https://github.com/bouffalolab/bouffalo_sdk/tree/e6e8da79a50aeb4fcb67ac380c3bd8885cd56faf/components/wireless

gamelaster commented 1 year ago

@MartinEssink that blobs are only for BL61X

WestonSkeans commented 10 months ago

The official bl808 linux has recently added wifi support: https://github.com/bouffalolab/bl808_linux

Via this project: https://github.com/bouffalolab/blwnet_xram

Maybe this can be used to expedite the effort to get Wifi support in OpenBouffalo?

gamelaster commented 10 months ago

@WestonSkeans someone tried it and it works OK, it is just not implemented into openbouffalo's buildroot image.

WestonSkeans commented 10 months ago

Wifi support (at least as described in the bl docs) doesn't appear to be implemented in the latest Release image of openbouffalo.

DMBCT commented 7 months ago

How can I make an image with https://github.com/bouffalolab/blwnet_xram included?

gamelaster commented 7 months ago

@DMBCT current branch already supports blwnet_xram

svmhdvn commented 3 months ago

I can confirm after building HEAD and flashing the firmware from output/images along with the sdcard.img, wifi works correctly. I am able to scan for a 2.4GHz wifi network with WPA2-PSK security, connect to it, get an IPv4 address with udhcpc, and ping github.com:

# ping github.com
PING github.com (140.82.114.4): 56 data bytes
64 bytes from 140.82.114.4: seq=0 ttl=52 time=119.819 ms
64 bytes from 140.82.114.4: seq=1 ttl=52 time=91.381 ms
64 bytes from 140.82.114.4: seq=8 ttl=52 time=48.317 ms
64 bytes from 140.82.114.4: seq=9 ttl=52 time=31.403 ms

There is some packet loss sometimes, but it is minimal.

astrolemonade commented 3 months ago

So, if I understand correctly, they released the Wifi source code as open source?

illantalex commented 1 month ago

I am trying to build the wifi driver on a separately cross compiled 6.2.0 kernel, but I am getting such errors when tring to install the module. Can anyone help me compile it in a right way?

# insmod blwnet.ko 
[   20.066757] blwnet: loading out-of-tree module taints kernel.
[   20.068680] blwnet: Unknown symbol _raw_spin_lock (err -2)
[   20.069079] blwnet: Unknown symbol __raw_spin_lock_init (err -2)
[   20.069542] blwnet: Unknown symbol _raw_spin_lock_irq (err -2)
[   20.069987] blwnet: Unknown symbol _raw_spin_unlock_irq (err -2)
[   20.070506] blwnet: Unknown symbol _raw_spin_unlock (err -2)
insmod: ERROR: could not insert module blwnet.ko: Unknown symbol in module
# ./bl
blctl      blwnet.ko
# ./blctl 
./blctl: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
illantalex commented 1 month ago

I managed to install this driver by just building buildroot from scratch, but when trying to connect to my network I'm getting error -1

# blctl wifi_scan
# blctl wifi_scan_results
# blctl connect_ap myssid mypassw
error: ret -1

This is the dmesg part, where the driver was failed to register

[    3.038671] blwnet: loading out-of-tree module taints kernel.
[    3.041839] Registering blwnet version XRAM-20230817R1
[    3.176729] blwnet soc:ipc: error -ENXIO: IRQ index 0 not found
[    3.177135] blwnet: probe of soc:ipc failed with error -22
illantalex commented 1 month ago

I managed to install this driver by just building buildroot from scratch, but when trying to connect to my network I'm getting error -1

# blctl wifi_scan
# blctl wifi_scan_results
# blctl connect_ap myssid mypassw
error: ret -1

This is the dmesg part, where the driver was failed to register

[    3.038671] blwnet: loading out-of-tree module taints kernel.
[    3.041839] Registering blwnet version XRAM-20230817R1
[    3.176729] blwnet soc:ipc: error -ENXIO: IRQ index 0 not found
[    3.177135] blwnet: probe of soc:ipc failed with error -22

Sorry for bothering you guys, I just forgot to flash a proper firmware image, now it's working like intended

# ping google.com
PING google.com (142.250.185.174) 56(84) bytes of data.
64 bytes from fra16s51-in-f14.1e100.net (142.250.185.174): icmp_seq=1 ttl=119 time=16.1 ms
64 bytes from fra16s51-in-f14.1e100.net (142.250.185.174): icmp_seq=2 ttl=119 time=17.2 ms
64 bytes from fra16s51-in-f14.1e100.net (142.250.185.174): icmp_seq=3 ttl=119 time=15.8 ms
64 bytes from fra16s51-in-f14.1e100.net (142.250.185.174): icmp_seq=4 ttl=119 time=16.3 ms
^C
--- google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 15.781/16.349/17.231/0.544 ms