Reconfiguring wifi on beagle bone black 5.10.168-ti-r8

Looking for advice on how best to reconfigure wifi ssid and password. Reading the notes I am not sure which is better to use: wpa_cli commands (reconfigure) or reload/reconfigure.

With a working wifi connection, where on power up, it is connecting to router and IP addressed is assigned to wlan0 (so SSID and psk is valid).

If I execute command sequence below (one at a time) then lease is lost and ip a shows wlan0 but state shows as DOWN.

sudo systemctl reload wpa_supplicant@wlan0
sudo networkctl reconfigure wlan0

Executing sudo networkctl status gives

Jul 31 16:13:08 BeagleBone systemd-networkd[542]: wlan0: Re-configuring with /etc/systemd/network/wlan0.network
Jul 31 16:13:08 BeagleBone systemd-networkd[542]: wlan0: DHCPv6 lease lost

I have also tried sudo networkctl up wlan0 to no avail.

For much older kernel the only way I could get changes to wifi to reliably work was to modify wpa_supplicant.conf and reboot which is not ideal and causes lots of frustrations with clients as they have to wait for reboot and in many instances find they made a typo in entering details.

Appreciate some feedback and nudge in right direction.

I’d also be interested in contracting someone to assist this task if it’s okay to ask this here.

Some more info.

sudo journalctl -u systemd-networkd --no-pager -n 20 gives:

Jul 31 16:30:32 BeagleBone systemd[1]: Started Network Service.

Jul 31 16:30:32 BeagleBone systemd-networkd[1050]: wlan0: Connected WiFi access point: OFHR21 (00:00:00:00:00:00)

Jul 31 16:30:34 BeagleBone systemd-networkd[1050]: eth0: DHCPv4 address 192.168.1.125/24 via 192.168.1.1

Could it be connecting but not getting IP address assigned?

Hey @Colin_Bester ,

I am not sure about the image you are referring to currently but…

# iwdctl

iwctl device list

iwctl station wlan0 scan

iwctl station wlan0 get-networks

iwctl --passphrase "BeagleBone" station wlan0 connect "BeagleBone"

iwctl station wlan0 show

iwctl station wlan0 get-networks

Does any of those commands help you at all or is iwctl not in play here?

I do remember the wpa_supplicant.conf file from a couple or few years ago. I will look through some more notes.

Seth

Edit

The wpa_supplicant file is located in /etc/wpa_supplicant/ and it is called wpa_supplicant.conf I think. Bullseye or Bookworm here?

Can you run sudo beagle-version and provide the output?

@silver2row this is with Bullseye and iwctl is not in play - I am reluctant to install more utilities unless I know they won’t clash with what is installed.

@jkridner here is output:

Note this is the minimal image.

debian@BeagleBone:~$ sudo beagle-version
eeprom:[A335BNLT00C02125SBB13845]
model:[TI_AM335x_BeagleBone_Black]
dogtag:[BeagleBoard.org Debian Bullseye Minimal Image 2023-10-07]
bootloader:[microSD-(push-button)]:[/dev/mmcblk0]:[U-Boot SPL 2022.04-ge0d31da5 (Aug 04 2023 - 18:48:26 +0000)]:[location: dd MBR]
bootloader:[eMMC-(default)]:[/dev/mmcblk1]:[U-Boot SPL 2019.04 (Jun 30 2025 - 23:39:51 +0000)]:[location: dd MBR]
bootloader:[eMMC-(default)]:[/dev/mmcblk1]:[U-Boot 2019.04]:[location: dd MBR]
UBOOT: Booted Device-Tree:[am335x-boneblack-uboot-univ.dts]
UBOOT: Loaded Overlay:[BB-ADC-00A0.kernel]
UBOOT: Loaded Overlay:[BB-BONE-eMMC1-01-00A0.kernel]
UBOOT: Loaded Overlay:[BB-HDMI-TDA998x-00A0.kernel]
kernel:[5.10.168-ti-r82]
/boot/uEnv.txt Settings:
uboot_overlay_options:[enable_uboot_overlays=1]
uboot_overlay_options:[enable_uboot_cape_universal=1]
pkg check: to individually upgrade run: [sudo apt install --only-upgrade <pkg>]
pkg:[bb-cape-overlays]:[4.14.20210821.0-0~bullseye+20210821]
pkg:[bb-customizations]:[1.20240119.0-0~bullseye+20240119]
pkg:[bb-usb-gadgets]:[1.20250523.1-0~bullseye+20250527]
pkg:[bb-wl18xx-firmware]:[1.20230703.0-0~bullseye+20240703]
pkg:[kmod]:[28-1]
WARNING:pkg:[librobotcontrol]:[NOT_INSTALLED]
pkg:[firmware-ti-connectivity]:[20210315-3]
groups:[debian : debian adm kmem dialout cdrom floppy audio dip video plugdev users systemd-journal input render netdev bluetooth gpio admin i2c tisdk weston-launch cloud9ide]
cmdline:[console=ttyS0,115200n8 bone_capemgr.uboot_capemgr_enabled=1 root=/dev/mmcblk0p1 ro rootfstype=ext4 rootwait coherent_pool=1M net.ifnames=0 lpj=1990656 rng_core.default_quality=100 quiet]
dmesg | grep remote
[   11.165777] remoteproc remoteproc0: wkup_m3 is available
[   37.307717] remoteproc remoteproc0: powering up wkup_m3
[   37.307756] remoteproc remoteproc0: Booting fw image am335x-pm-firmware.elf, size 217148
[   37.308058] remoteproc remoteproc0: remote processor wkup_m3 is now up
[   52.729482] remoteproc remoteproc1: 4a334000.pru is available
[   52.757419] remoteproc remoteproc2: 4a338000.pru is available
dmesg | grep pru
[   52.729482] remoteproc remoteproc1: 4a334000.pru is available
[   52.757419] remoteproc remoteproc2: 4a338000.pru is available
[ 3780.094125] Modules linked in: pru_rproc irq_pruss_intc snd_soc_simple_card snd_soc_simple_card_utils pm33xx pruss ti_eqep counter 8821cu(O) c_can_platform c_can can_dev cfg80211 snd_soc_davinci_mcasp snd_soc_ti_udma snd_soc_ti_edma snd_soc_ti_sdma snd_soc_hdmi_codec snd_soc_core evdev snd_pcm_dmaengine snd_pcm snd_timer snd soundcore wkup_m3_ipc uio_pdrv_genirq uio cpufreq_dt
[ 3826.158434] Modules linked in: pru_rproc irq_pruss_intc snd_soc_simple_card snd_soc_simple_card_utils pm33xx pruss ti_eqep counter 8821cu(O) c_can_platform c_can can_dev cfg80211 snd_soc_davinci_mcasp snd_soc_ti_udma snd_soc_ti_edma snd_soc_ti_sdma snd_soc_hdmi_codec snd_soc_core evdev snd_pcm_dmaengine snd_pcm snd_timer snd soundcore wkup_m3_ipc uio_pdrv_genirq uio cpufreq_dt
[ 3886.994118] Modules linked in: pru_rproc irq_pruss_intc snd_soc_simple_card snd_soc_simple_card_utils pm33xx pruss ti_eqep counter 8821cu(O) c_can_platform c_can can_dev cfg80211 snd_soc_davinci_mcasp snd_soc_ti_udma snd_soc_ti_edma snd_soc_ti_sdma snd_soc_hdmi_codec snd_soc_core evdev snd_pcm_dmaengine snd_pcm snd_timer snd soundcore wkup_m3_ipc uio_pdrv_genirq uio cpufreq_dt
[ 3978.217320] Modules linked in: pru_rproc irq_pruss_intc snd_soc_simple_card snd_soc_simple_card_utils pm33xx pruss ti_eqep counter 8821cu(O) c_can_platform c_can can_dev cfg80211 snd_soc_davinci_mcasp snd_soc_ti_udma snd_soc_ti_edma snd_soc_ti_sdma snd_soc_hdmi_codec snd_soc_core evdev snd_pcm_dmaengine snd_pcm snd_timer snd soundcore wkup_m3_ipc uio_pdrv_genirq uio cpufreq_dt
[ 4039.091506] Modules linked in: pru_rproc irq_pruss_intc snd_soc_simple_card snd_soc_simple_card_utils pm33xx pruss ti_eqep counter 8821cu(O) c_can_platform c_can can_dev cfg80211 snd_soc_davinci_mcasp snd_soc_ti_udma snd_soc_ti_edma snd_soc_ti_sdma snd_soc_hdmi_codec snd_soc_core evdev snd_pcm_dmaengine snd_pcm snd_timer snd soundcore wkup_m3_ipc uio_pdrv_genirq uio cpufreq_dt
dmesg | grep pinctrl-single
[   10.613247] pinctrl-single 44e10800.pinmux: 142 pins, size 568
dmesg | grep gpio-of-helper
[   10.615067] gpio-of-helper ocp:cape-universal: Failed to get gpio property of 'P8_03'
[   10.615099] gpio-of-helper ocp:cape-universal: Failed to create gpio entry
[   11.422162] gpio-of-helper ocp:cape-universal: Allocated GPIO id=0 name='P8_03'
[   11.422403] gpio-of-helper ocp:cape-universal: Allocated GPIO id=1 name='P8_04'
[   11.422615] gpio-of-helper ocp:cape-universal: Allocated GPIO id=2 name='P8_05'
[   11.422822] gpio-of-helper ocp:cape-universal: Allocated GPIO id=3 name='P8_06'
[   11.423329] gpio-of-helper ocp:cape-universal: Allocated GPIO id=4 name='P8_07'
[   11.423687] gpio-of-helper ocp:cape-universal: Allocated GPIO id=5 name='P8_08'
[   11.423916] gpio-of-helper ocp:cape-universal: Allocated GPIO id=6 name='P8_09'
[   11.424137] gpio-of-helper ocp:cape-universal: Allocated GPIO id=7 name='P8_10'
[   11.424336] gpio-of-helper ocp:cape-universal: Allocated GPIO id=8 name='P8_11'
[   11.424537] gpio-of-helper ocp:cape-universal: Allocated GPIO id=9 name='P8_12'
[   11.424834] gpio-of-helper ocp:cape-universal: Allocated GPIO id=10 name='P8_13'
[   11.425045] gpio-of-helper ocp:cape-universal: Allocated GPIO id=11 name='P8_14'
[   11.425280] gpio-of-helper ocp:cape-universal: Allocated GPIO id=12 name='P8_15'
[   11.425481] gpio-of-helper ocp:cape-universal: Allocated GPIO id=13 name='P8_16'
[   11.425683] gpio-of-helper ocp:cape-universal: Allocated GPIO id=14 name='P8_17'
[   11.425883] gpio-of-helper ocp:cape-universal: Allocated GPIO id=15 name='P8_18'
[   11.426078] gpio-of-helper ocp:cape-universal: Allocated GPIO id=16 name='P8_19'
[   11.426300] gpio-of-helper ocp:cape-universal: Allocated GPIO id=17 name='P8_20'
[   11.426504] gpio-of-helper ocp:cape-universal: Allocated GPIO id=18 name='P8_21'
[   11.426699] gpio-of-helper ocp:cape-universal: Allocated GPIO id=19 name='P8_22'
[   11.426910] gpio-of-helper ocp:cape-universal: Allocated GPIO id=20 name='P8_23'
[   11.427148] gpio-of-helper ocp:cape-universal: Allocated GPIO id=21 name='P8_24'
[   11.427360] gpio-of-helper ocp:cape-universal: Allocated GPIO id=22 name='P8_25'
[   11.427703] gpio-of-helper ocp:cape-universal: Allocated GPIO id=23 name='P8_26'
[   11.427922] gpio-of-helper ocp:cape-universal: Allocated GPIO id=24 name='P8_27'
[   11.428138] gpio-of-helper ocp:cape-universal: Allocated GPIO id=25 name='P8_28'
[   11.428330] gpio-of-helper ocp:cape-universal: Allocated GPIO id=26 name='P8_29'
[   11.428538] gpio-of-helper ocp:cape-universal: Allocated GPIO id=27 name='P8_30'
[   11.428752] gpio-of-helper ocp:cape-universal: Allocated GPIO id=28 name='P8_31'
[   11.428946] gpio-of-helper ocp:cape-universal: Allocated GPIO id=29 name='P8_32'
[   11.429165] gpio-of-helper ocp:cape-universal: Allocated GPIO id=30 name='P8_33'
[   11.429357] gpio-of-helper ocp:cape-universal: Allocated GPIO id=31 name='P8_34'
[   11.429569] gpio-of-helper ocp:cape-universal: Allocated GPIO id=32 name='P8_35'
[   11.429776] gpio-of-helper ocp:cape-universal: Allocated GPIO id=33 name='P8_36'
[   11.429970] gpio-of-helper ocp:cape-universal: Allocated GPIO id=34 name='P8_37'
[   11.430178] gpio-of-helper ocp:cape-universal: Allocated GPIO id=35 name='P8_38'
[   11.430380] gpio-of-helper ocp:cape-universal: Allocated GPIO id=36 name='P8_39'
[   11.430573] gpio-of-helper ocp:cape-universal: Allocated GPIO id=37 name='P8_40'
[   11.430782] gpio-of-helper ocp:cape-universal: Allocated GPIO id=38 name='P8_41'
[   11.430990] gpio-of-helper ocp:cape-universal: Allocated GPIO id=39 name='P8_42'
[   11.431193] gpio-of-helper ocp:cape-universal: Allocated GPIO id=40 name='P8_43'
[   11.431390] gpio-of-helper ocp:cape-universal: Allocated GPIO id=41 name='P8_44'
[   11.431679] gpio-of-helper ocp:cape-universal: Allocated GPIO id=42 name='P8_45'
[   11.431915] gpio-of-helper ocp:cape-universal: Allocated GPIO id=43 name='P8_46'
[   11.432119] gpio-of-helper ocp:cape-universal: Allocated GPIO id=44 name='P9_11'
[   11.432348] gpio-of-helper ocp:cape-universal: Allocated GPIO id=45 name='P9_12'
[   11.432564] gpio-of-helper ocp:cape-universal: Allocated GPIO id=46 name='P9_13'
[   11.432777] gpio-of-helper ocp:cape-universal: Allocated GPIO id=47 name='P9_14'
[   11.432983] gpio-of-helper ocp:cape-universal: Allocated GPIO id=48 name='P9_15'
[   11.433187] gpio-of-helper ocp:cape-universal: Allocated GPIO id=49 name='P9_16'
[   11.433391] gpio-of-helper ocp:cape-universal: Allocated GPIO id=50 name='P9_17'
[   11.433594] gpio-of-helper ocp:cape-universal: Allocated GPIO id=51 name='P9_18'
[   11.433793] gpio-of-helper ocp:cape-universal: Allocated GPIO id=52 name='P9_19'
[   11.434012] gpio-of-helper ocp:cape-universal: Allocated GPIO id=53 name='P9_20'
[   11.434212] gpio-of-helper ocp:cape-universal: Allocated GPIO id=54 name='P9_21'
[   11.434443] gpio-of-helper ocp:cape-universal: Allocated GPIO id=55 name='P9_22'
[   11.434650] gpio-of-helper ocp:cape-universal: Allocated GPIO id=56 name='P9_23'
[   11.434845] gpio-of-helper ocp:cape-universal: Allocated GPIO id=57 name='P9_24'
[   11.435381] gpio-of-helper ocp:cape-universal: Allocated GPIO id=58 name='P9_25'
[   11.435737] gpio-of-helper ocp:cape-universal: Allocated GPIO id=59 name='P9_26'
[   11.435960] gpio-of-helper ocp:cape-universal: Allocated GPIO id=60 name='P9_27'
[   11.436176] gpio-of-helper ocp:cape-universal: Allocated GPIO id=61 name='P9_28'
[   11.436380] gpio-of-helper ocp:cape-universal: Allocated GPIO id=62 name='P9_29'
[   11.436586] gpio-of-helper ocp:cape-universal: Allocated GPIO id=63 name='P9_30'
[   11.436801] gpio-of-helper ocp:cape-universal: Allocated GPIO id=64 name='P9_31'
[   11.436999] gpio-of-helper ocp:cape-universal: Allocated GPIO id=65 name='P9_41'
[   11.437209] gpio-of-helper ocp:cape-universal: Allocated GPIO id=66 name='P9_91'
[   11.437420] gpio-of-helper ocp:cape-universal: Allocated GPIO id=67 name='P9_42'
[   11.437643] gpio-of-helper ocp:cape-universal: Allocated GPIO id=68 name='P9_92'
[   11.437656] gpio-of-helper ocp:cape-universal: ready
dmesg | grep wlcore
lsusb
Bus 001 Device 002: ID 0bda:c811 Realtek Semiconductor Corp. 802.11ac NIC
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
END

If I remember correctly, and this is from your output, two separate u-boot versions is a error waiting to happen.

I think making both micro SD Card for testing and eMMC u-boot versions should provide a better way forward. I also remember that making the images identical is a better way forward, i.e. on eMMC and micro SD Card.

I think after a reboot on specific images, this happens with different updates/upgrades, the board firmware and utilities are changed.

What I would have expected on your image is that the micro SD Card image would have taken over the eMMC if flashed with a command.

Seth

P.S. I am not a wifi person per se. I see that in about a year, the LTS will end. Anyway, hopefully others can jump in to see what is going on.

I thought all would be okay if on startup one held down the boot push button so was not expecting any issues. As kernel is loaded from SD card (with boot button pushed) even if kernel image on BBB’s internal eMMC is different kernel how would that impact system once booted? I am more than happy to not have internal eMMC but haven’t had much joy with booting directly to SD card so just stuck with what I have.

I will flash BBB with the minimal version to bypass booting with SD card (which I find convenient when creating setup/scripts to deploy new system to BBB) and see if that makes any difference.

Honestly I was really hoping someone had been through this as it’s been nearly a week of battling now with mixed success - weird thing is yesterday it seemed to be working…

So many changes over different versions and not being totally in the know on the topic doesn’t help - for example, do I keep service wpa_supplicant.service AND wpa_supplicant@wlan0.service or do I only enable wpa_supplicant@wlan0.service and disabled wpa_supplicant.service - so many variables…

I was saying “u-boot about the same/different on Bullseye” for the eMMC/micro SD Card was because of memory. My memory.

I may have not made myself too clearly stated. I think u-boot “firmware” in Bullseye called for the same on eMMC/micro SD Card because of u-boot and the developers at the time.

I can probably never reproduce your image and kernel issues as of now.

But…

  1. When in doubt:
  • try it
  1. Rinse and repeat:
  • exchange out in trial and error however

I firmly believe that during the age of Bullseye at the beginning, u-boot devs. had some ideas and the kernel devs. also had ideas. BeagleBoard.org had their own ideas and most of what beagleboard.org did do was add support for the am335x from what I understand into the kernel/u-boot.

But that was after -r8. I just installed a debian image on a BBG. It is of Bullseye (Debian 11). I will put the same image on the am335x supported BBBW to find what I can…

Other ideas

I am not using a transceiver for WiFi. I gave in to testing which type of wifi dongle was working and when. I will try on the BBBW and report back. And…yes. I can be quoted on the u-boot version in Bullseye towards the beginning of Bullseye. I recall. Off to test.

Okay…this is what I got:

5.10.168-ti-r82 on Bullseye IoT Image 2023-09-02.

Hmm. I am totally incorrect. I have separate u-boot versions too. Now, I am wondering why I boot to micro SD Card without the S2 button.

Firmware booted: (Rev 8.9.0.0.83) for wifi

Seth

P.S. Off to research some manpages.

Update…

Do you have other files in /etc/wpa_supplicant/ or just wpa_supplicant-wlan0.conf?

bb-config

wpa_cli -i wlan0 reconfigure # when live in the terminal or far away

rtl8821CU is a guess on your wifi module from realtek. Dr. Molloy had a book where he teaches how to update and change drivers for realtek wifi dongles.

debian@ebb:~$ sudo apt update
debian@ebb:~$ apt-cache search RTL8188
firmware-realtek - Binary firmware for Realtek wired/wifi/BT adapters
debian@ebb:~$ sudo apt install firmware-realtek

Molloy, Derek. Exploring BeagleBone: Tools and Techniques for Building with Embedded Linux (p. 565). Wiley. Kindle Edition. 

The apt-cache search is a predated tool. It may still work. Good luck, sir.

Thanks for assistance. I am more than happy to assist where I can.

I have gone back to IOT version (for now) just to make sure I wasn’t missing anything and redid SD card to make sure it was free of any of my changes - so far I am seeing same with IOT and minimal (with 8821cu driver added).

I also zapped my beaglebone eMMC so now booting straight to SD Card

Contents of /etc/wpa_supplicant

debian@BeagleBone:$ ls /etc/wpa_supplicant/

action_wpa.sh functions.sh ifupdown.sh wpa_supplicant-wlan0.conf

beagle-version - I didn’t expect to bootloader:[microSD-(push-button)] not sure if this is to be read as push-button or microSD but either way it is booting straight to SD without boot button.

debian@BeagleBone:~$ sudo beagle-version
[sudo] password for debian: 
eeprom:[A335BNLT00C02125SBB13845]
model:[TI_AM335x_BeagleBone_Black]
dogtag:[BeagleBoard.org Debian Bullseye IoT Image 2023-09-02]
bootloader:[microSD-(push-button)]:[/dev/mmcblk0]:[U-Boot SPL 2022.04-ge0d31da5 (Aug 04 2023 - 18:48:26 +0000)]:[location: dd MBR]
UBOOT: Booted Device-Tree:[am335x-boneblack-uboot-univ.dts]
UBOOT: Loaded Overlay:[BB-ADC-00A0.kernel]
UBOOT: Loaded Overlay:[BB-BONE-eMMC1-01-00A0.kernel]
UBOOT: Loaded Overlay:[BB-HDMI-TDA998x-00A0.kernel]
kernel:[5.10.168-ti-r71]
nodejs:[v12.22.12]
/boot/uEnv.txt Settings:
uboot_overlay_options:[enable_uboot_overlays=1]
uboot_overlay_options:[enable_uboot_cape_universal=1]
pkg check: to individually upgrade run: [sudo apt install --only-upgrade <pkg>]
pkg:[bb-cape-overlays]:[4.14.20210821.0-0~bullseye+20210821]
pkg:[bb-customizations]:[1.20230720.1-0~bullseye+20230720]
pkg:[bb-usb-gadgets]:[1.20230414.0-0~bullseye+20230414]
pkg:[bb-wl18xx-firmware]:[1.20230414.0-0~bullseye+20230414]
pkg:[kmod]:[28-1]
WARNING:pkg:[librobotcontrol]:[NOT_INSTALLED]
pkg:[firmware-ti-connectivity]:[20210315-3]
groups:[debian : debian adm kmem dialout cdrom floppy audio dip video plugdev users systemd-journal input render bluetooth netdev i2c gpio admin tisdk weston-launch cloud9ide]
cmdline:[console=ttyS0,115200n8 bone_capemgr.uboot_capemgr_enabled=1 root=/dev/mmcblk0p1 ro rootfstype=ext4 rootwait coherent_pool=1M net.ifnames=0 lpj=1990656 rng_core.default_quality=100 quiet]
dmesg | grep remote
[    8.854267] remoteproc remoteproc0: wkup_m3 is available
[   40.891052] remoteproc remoteproc0: powering up wkup_m3
[   40.891089] remoteproc remoteproc0: Booting fw image am335x-pm-firmware.elf, size 217148
[   40.891374] remoteproc remoteproc0: remote processor wkup_m3 is now up
[   54.279566] remoteproc remoteproc1: 4a334000.pru is available
[   54.308589] remoteproc remoteproc2: 4a338000.pru is available
dmesg | grep pru
[   54.279566] remoteproc remoteproc1: 4a334000.pru is available
[   54.308589] remoteproc remoteproc2: 4a338000.pru is available
dmesg | grep pinctrl-single
[    8.392926] pinctrl-single 44e10800.pinmux: 142 pins, size 568
dmesg | grep gpio-of-helper
[    8.394361] gpio-of-helper ocp:cape-universal: Failed to get gpio property of 'P8_03'
[    8.394392] gpio-of-helper ocp:cape-universal: Failed to create gpio entry
[    9.057353] gpio-of-helper ocp:cape-universal: Allocated GPIO id=0 name='P8_03'
[    9.057580] gpio-of-helper ocp:cape-universal: Allocated GPIO id=1 name='P8_04'
[    9.057756] gpio-of-helper ocp:cape-universal: Allocated GPIO id=2 name='P8_05'
[    9.057917] gpio-of-helper ocp:cape-universal: Allocated GPIO id=3 name='P8_06'
[    9.058381] gpio-of-helper ocp:cape-universal: Allocated GPIO id=4 name='P8_07'
[    9.058581] gpio-of-helper ocp:cape-universal: Allocated GPIO id=5 name='P8_08'
[    9.058881] gpio-of-helper ocp:cape-universal: Allocated GPIO id=6 name='P8_09'
[    9.059062] gpio-of-helper ocp:cape-universal: Allocated GPIO id=7 name='P8_10'
[    9.059228] gpio-of-helper ocp:cape-universal: Allocated GPIO id=8 name='P8_11'
[    9.059398] gpio-of-helper ocp:cape-universal: Allocated GPIO id=9 name='P8_12'
[    9.059683] gpio-of-helper ocp:cape-universal: Allocated GPIO id=10 name='P8_13'
[    9.059862] gpio-of-helper ocp:cape-universal: Allocated GPIO id=11 name='P8_14'
[    9.060034] gpio-of-helper ocp:cape-universal: Allocated GPIO id=12 name='P8_15'
[    9.060205] gpio-of-helper ocp:cape-universal: Allocated GPIO id=13 name='P8_16'
[    9.060382] gpio-of-helper ocp:cape-universal: Allocated GPIO id=14 name='P8_17'
[    9.060555] gpio-of-helper ocp:cape-universal: Allocated GPIO id=15 name='P8_18'
[    9.060714] gpio-of-helper ocp:cape-universal: Allocated GPIO id=16 name='P8_19'
[    9.060884] gpio-of-helper ocp:cape-universal: Allocated GPIO id=17 name='P8_20'
[    9.061041] gpio-of-helper ocp:cape-universal: Allocated GPIO id=18 name='P8_21'
[    9.061220] gpio-of-helper ocp:cape-universal: Allocated GPIO id=19 name='P8_22'
[    9.061385] gpio-of-helper ocp:cape-universal: Allocated GPIO id=20 name='P8_23'
[    9.061549] gpio-of-helper ocp:cape-universal: Allocated GPIO id=21 name='P8_24'
[    9.061752] gpio-of-helper ocp:cape-universal: Allocated GPIO id=22 name='P8_25'
[    9.061920] gpio-of-helper ocp:cape-universal: Allocated GPIO id=23 name='P8_26'
[    9.062087] gpio-of-helper ocp:cape-universal: Allocated GPIO id=24 name='P8_27'
[    9.062257] gpio-of-helper ocp:cape-universal: Allocated GPIO id=25 name='P8_28'
[    9.062412] gpio-of-helper ocp:cape-universal: Allocated GPIO id=26 name='P8_29'
[    9.062584] gpio-of-helper ocp:cape-universal: Allocated GPIO id=27 name='P8_30'
[    9.062877] gpio-of-helper ocp:cape-universal: Allocated GPIO id=28 name='P8_31'
[    9.063048] gpio-of-helper ocp:cape-universal: Allocated GPIO id=29 name='P8_32'
[    9.063228] gpio-of-helper ocp:cape-universal: Allocated GPIO id=30 name='P8_33'
[    9.063389] gpio-of-helper ocp:cape-universal: Allocated GPIO id=31 name='P8_34'
[    9.063569] gpio-of-helper ocp:cape-universal: Allocated GPIO id=32 name='P8_35'
[    9.063748] gpio-of-helper ocp:cape-universal: Allocated GPIO id=33 name='P8_36'
[    9.063910] gpio-of-helper ocp:cape-universal: Allocated GPIO id=34 name='P8_37'
[    9.064079] gpio-of-helper ocp:cape-universal: Allocated GPIO id=35 name='P8_38'
[    9.064237] gpio-of-helper ocp:cape-universal: Allocated GPIO id=36 name='P8_39'
[    9.064429] gpio-of-helper ocp:cape-universal: Allocated GPIO id=37 name='P8_40'
[    9.064604] gpio-of-helper ocp:cape-universal: Allocated GPIO id=38 name='P8_41'
[    9.064764] gpio-of-helper ocp:cape-universal: Allocated GPIO id=39 name='P8_42'
[    9.064932] gpio-of-helper ocp:cape-universal: Allocated GPIO id=40 name='P8_43'
[    9.065089] gpio-of-helper ocp:cape-universal: Allocated GPIO id=41 name='P8_44'
[    9.065274] gpio-of-helper ocp:cape-universal: Allocated GPIO id=42 name='P8_45'
[    9.065454] gpio-of-helper ocp:cape-universal: Allocated GPIO id=43 name='P8_46'
[    9.065616] gpio-of-helper ocp:cape-universal: Allocated GPIO id=44 name='P9_11'
[    9.065794] gpio-of-helper ocp:cape-universal: Allocated GPIO id=45 name='P9_12'
[    9.065989] gpio-of-helper ocp:cape-universal: Allocated GPIO id=46 name='P9_13'
[    9.066152] gpio-of-helper ocp:cape-universal: Allocated GPIO id=47 name='P9_14'
[    9.066322] gpio-of-helper ocp:cape-universal: Allocated GPIO id=48 name='P9_15'
[    9.066487] gpio-of-helper ocp:cape-universal: Allocated GPIO id=49 name='P9_16'
[    9.066752] gpio-of-helper ocp:cape-universal: Allocated GPIO id=50 name='P9_17'
[    9.066939] gpio-of-helper ocp:cape-universal: Allocated GPIO id=51 name='P9_18'
[    9.067108] gpio-of-helper ocp:cape-universal: Allocated GPIO id=52 name='P9_19'
[    9.067287] gpio-of-helper ocp:cape-universal: Allocated GPIO id=53 name='P9_20'
[    9.067482] gpio-of-helper ocp:cape-universal: Allocated GPIO id=54 name='P9_21'
[    9.067682] gpio-of-helper ocp:cape-universal: Allocated GPIO id=55 name='P9_22'
[    9.067860] gpio-of-helper ocp:cape-universal: Allocated GPIO id=56 name='P9_23'
[    9.068026] gpio-of-helper ocp:cape-universal: Allocated GPIO id=57 name='P9_24'
[    9.068499] gpio-of-helper ocp:cape-universal: Allocated GPIO id=58 name='P9_25'
[    9.068691] gpio-of-helper ocp:cape-universal: Allocated GPIO id=59 name='P9_26'
[    9.068878] gpio-of-helper ocp:cape-universal: Allocated GPIO id=60 name='P9_27'
[    9.069050] gpio-of-helper ocp:cape-universal: Allocated GPIO id=61 name='P9_28'
[    9.069218] gpio-of-helper ocp:cape-universal: Allocated GPIO id=62 name='P9_29'
[    9.069391] gpio-of-helper ocp:cape-universal: Allocated GPIO id=63 name='P9_30'
[    9.069579] gpio-of-helper ocp:cape-universal: Allocated GPIO id=64 name='P9_31'
[    9.069760] gpio-of-helper ocp:cape-universal: Allocated GPIO id=65 name='P9_41'
[    9.069933] gpio-of-helper ocp:cape-universal: Allocated GPIO id=66 name='P9_91'
[    9.070096] gpio-of-helper ocp:cape-universal: Allocated GPIO id=67 name='P9_42'
[    9.070264] gpio-of-helper ocp:cape-universal: Allocated GPIO id=68 name='P9_92'
[    9.070275] gpio-of-helper ocp:cape-universal: ready
dmesg | grep wlcore
lsusb
Bus 001 Device 002: ID 0bda:c811 Realtek Semiconductor Corp. 802.11ac NIC
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
END

A question I do have is should I be seeing two wpa services running?

debian@BeagleBone:~$ ps aux | grep wpa
root       609  0.0  0.8   9812  4144 ?        Ss   15:44   0:00 /sbin/wpa_supplicant -u -s -O DIR=/run/wpa_supplicant GROUP=netdev
root      1071  2.0  1.2  10052  6272 ?        Ss   15:44   1:36 /sbin/wpa_supplicant -c/etc/wpa_supplicant/wpa_supplicant-wlan0.conf -Dnl80211,wext -iwlan0
debian    1292  0.0  0.3   6832  1684 pts/0    S+   17:01   0:00 grep wpa
debian@BeagleBone:~$ 

IOT version already has the 8821cu Realtek driver which is why I have switched to IOT version for now.

On minimal version I copied across the 8821cu.ko file and ran depmod - everything works well on minimal version except for the fact that I have to reboot after either modifying wpa_supplicant-wlan0.conf or switch to master mode (which works) and then back to managed mode.

https://forum.beagleboard.org/t/uart1-uart2-on-debian-12/42257 shows that using two versions of u-boot do in fact cause issues for debugging purposes.

Did you try to set up the wpa_supplicant-wlan0.conf file again and apply the command wpa_cli -i wlan0 reconfigure?

Also, there are a couple files listed in the /usr/sbin/ which activate firmware for wifi.

Also, try to update the u-boot version: sudo ./install.sh in file /opt/u-boot/bb-u-boot-am335x-evm/.

Seth

P.S. I keep reading ideas but my wifi on the BBBW just works with wpa_supplicant on Bullseye. So, I cannot further investigate. I can try to look for older wifi dongles but that will take a long time as I do not have older inventory of notes on the whereabouts of such wifi dongles.

  • sort of an update
    yes…two for root and one for debian seems to be a norm with command: ps aux | grep wpa

  • another update
    Here is a set up I currently have now:

2022.04-gbaca7b46

That is on my eMMC and micro SD Card. That is the u-boot versioning after ./install.sh file command for the am335x. @Colin_Bester , try the wpa_cli command from above if you have not already. That is done in the current session without having to reboot.

// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (C) 2012 Texas Instruments Incorporated - https://www.ti.com/
 */

/dts-v1/;
/plugin/;

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/pinctrl/am33xx.h>
#include <dt-bindings/interrupt-controller/irq.h>

/*
 * Helper to show loaded overlays under: /proc/device-tree/chosen/overlays/
 */
&{/chosen} {
        overlays {
                BB-BBGW-WL1835-00A0.kernel = __TIMESTAMP__;
                wl1835_bt = "S3-texas-300000";
        };
};

/*
 * Free up the pins used by the cape from the pinmux helpers.
 */
&ocp {
        P9_12_pinmux { status = "disabled"; };  /* gpmc_ad12.gpio1_28 BT_EN */
        P8_12_pinmux { status = "disabled"; };  /* gpmc_ad12.mmc2_dat0 */
        P8_11_pinmux { status = "disabled"; };  /* gpmc_ad13.mmc2_dat1 */
        P8_16_pinmux { status = "disabled"; };  /* gpmc_ad14.mmc2_dat2 */
        P8_15_pinmux { status = "disabled"; };  /* gpmc_ad15.mmc2_dat3 */

        P8_18_pinmux { status = "disabled"; };  /* gpmc_clk.mmc2_clk */

        //Audio...
        P9_28_pinmux { status = "disabled"; };
        P9_29_pinmux { status = "disabled"; };
        P9_31_pinmux { status = "disabled"; };

        /* wl1835 */
        P8_14_pinmux { status = "disabled"; };  /* wl1835: wl_en */
        P8_17_pinmux { status = "disabled"; };  /* wl1835: wl_irq */
        P8_26_pinmux { status = "disabled"; };  /* wl1835: LS_BUF_EN */
        P9_30_pinmux { status = "disabled"; };  /* wl1835: MCASP0_AHCLKR */
};

&{/} {
        model = "TI AM335x BeagleBone Green Wireless";
        compatible = "ti,am335x-bone-green-wireless", "ti,am335x-bone-green", "ti,am335x-bone", "ti,am33xx";

        wlan_en_reg: fixedregulator@2 {
                compatible = "regulator-fixed";
                regulator-name = "wlan-en-regulator";
                regulator-min-microvolt = <1800000>;
                regulator-max-microvolt = <1800000>;
                startup-delay-us= <70000>;

                /* WL_EN */
                gpio = <&gpio0 26 0>;
                enable-active-high;
        };

        leds {
                pinctrl-names = "default";
                //pinctrl-0 = <&user_leds_s0>;
                pinctrl-0 = <&user_leds_s0 &bt_pins>;

                compatible = "gpio-leds";

                led2 {
                        label = "beaglebone:green:usr0";
                        gpios = <&gpio1 21 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "heartbeat";
                        default-state = "off";
                };

                led3 {
                        label = "beaglebone:green:usr1";
                        gpios = <&gpio1 22 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "mmc0";
                        default-state = "off";
                };

                led4 {
                        label = "beaglebone:green:usr2";
                        gpios = <&gpio1 23 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "cpu0";
                        default-state = "off";
                };

                led5 {
                        label = "beaglebone:green:usr3";
                        gpios = <&gpio1 24 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "mmc1";
                        default-state = "off";
                };

                wl18xx_bt_en: led7 {
                        label = "wl18xx_bt_en";
                        gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
        };
};

&am33xx_pinmux {
        user_leds_s0: user_leds_s0 {
                pinctrl-single,pins = <
                        AM33XX_PADCONF(AM335X_PIN_GPMC_A5, PIN_OUTPUT_PULLDOWN, MUX_MODE7)      /* gpmc_a5.gpio1_21 */
                        AM33XX_PADCONF(AM335X_PIN_GPMC_A6, PIN_OUTPUT_PULLUP, MUX_MODE7)        /* gpmc_a6.gpio1_22 */
                        AM33XX_PADCONF(AM335X_PIN_GPMC_A7, PIN_OUTPUT_PULLDOWN, MUX_MODE7)      /* gpmc_a7.gpio1_23 */
                        AM33XX_PADCONF(AM335X_PIN_GPMC_A8, PIN_OUTPUT_PULLUP, MUX_MODE7)        /* gpmc_a8.gpio1_24 */
                >;
        };

        bt_pins: pinmux_bt_pins {
                pinctrl-single,pins = <
                        AM33XX_PADCONF(AM335X_PIN_GPMC_BEN1, PIN_OUTPUT_PULLUP, MUX_MODE7)      /* gpmc_ad12.gpio1_28 BT_EN */
                >;
        };

        mmc3_pins: pinmux_mmc3_pins {
                pinctrl-single,pins = <
                        AM33XX_PADCONF(AM335X_PIN_GPMC_AD12, PIN_INPUT_PULLUP, MUX_MODE3)       /* gpmc_ad12.mmc2_dat0 */
                        AM33XX_PADCONF(AM335X_PIN_GPMC_AD13, PIN_INPUT_PULLUP, MUX_MODE3)       /* gpmc_ad13.mmc2_dat1 */
                        AM33XX_PADCONF(AM335X_PIN_GPMC_AD14, PIN_INPUT_PULLUP, MUX_MODE3)       /* gpmc_ad14.mmc2_dat2 */
                        AM33XX_PADCONF(AM335X_PIN_GPMC_AD15, PIN_INPUT_PULLUP, MUX_MODE3)       /* gpmc_ad15.mmc2_dat3 */
                        AM33XX_PADCONF(AM335X_PIN_GPMC_CSN3, PIN_INPUT_PULLUP, MUX_MODE3)       /* gpmc_csn3.mmc2_cmd */
                        AM33XX_PADCONF(AM335X_PIN_GPMC_CLK, PIN_INPUT_PULLUP, MUX_MODE3)        /* gpmc_clk.mmc2_clk */
                >;
        };

        uart3_pins: pinmux_uart3_pins {
                pinctrl-single,pins = <
                        AM33XX_PADCONF(AM335X_PIN_MII1_RXD3, PIN_INPUT_PULLUP, MUX_MODE1)       /* gmii1_rxd3.uart3_rxd */
                        AM33XX_PADCONF(AM335X_PIN_MII1_RXD2, PIN_OUTPUT_PULLDOWN, MUX_MODE1)    /* gmii1_rxd2.uart3_txd */
                        AM33XX_PADCONF(AM335X_PIN_MDIO, PIN_INPUT, MUX_MODE3)           /* mdio_data.uart3_ctsn */
                        AM33XX_PADCONF(AM335X_PIN_MDC, PIN_OUTPUT_PULLDOWN, MUX_MODE3)  /* mdio_clk.uart3_rtsn */
                >;
        };

        wl18xx_pins: pinmux_wl18xx_pins {
                pinctrl-single,pins = <
                        AM33XX_PADCONF(AM335X_PIN_GPMC_AD10, PIN_OUTPUT_PULLDOWN, MUX_MODE7)    /* gpmc_ad10.gpio0_26 WL_EN */
                        AM33XX_PADCONF(AM335X_PIN_GPMC_AD11, PIN_INPUT_PULLDOWN, MUX_MODE7)     /* gpmc_ad11.gpio0_27 WL_IRQ */
                        AM33XX_PADCONF(AM335X_PIN_GPMC_CSN0, PIN_OUTPUT_PULLUP, MUX_MODE7)      /* gpmc_csn0.gpio1_29 LS_BUF_EN */
                >;
        };
};

&mac {
        status = "disabled";
};

&mmc3 {
        dmas = <&edma_xbar 12 0 1
                &edma_xbar 13 0 2>;
        dma-names = "tx", "rx";
        status = "okay";
        vmmc-supply = <&wlan_en_reg>;
        bus-width = <4>;
        non-removable;
        cap-power-off-card;
        keep-power-in-suspend;
        pinctrl-names = "default";
        pinctrl-0 = <&mmc3_pins &wl18xx_pins>;

        #address-cells = <1>;
        #size-cells = <0>;
        wlcore: wlcore@2 {
                compatible = "ti,wl1835";
                reg = <2>;
                interrupt-parent = <&gpio0>;
                interrupts = <27 IRQ_TYPE_EDGE_RISING>;
        };
};

&uart3 {
        pinctrl-names = "default";
        pinctrl-0 = <&uart3_pins>;
        //pinctrl-0 = <&uart3_pins &bt_pins>;
        status = "okay";

        //bluetooth {
        //      compatible = "ti,wl1835-st";
        //      enable-gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>;
        //};
};

&gpio1 {
        ls-buf-en-hog {
                gpio-hog;
                gpios = <29 GPIO_ACTIVE_HIGH>;
                output-high;
                line-name = "LS_BUF_EN";
        };
};

/* BT_AUD_OUT from wl1835 has to be pulled low when WL_EN is activated.*/
/* in case it isn't, wilink8 ends up in one of the test modes that     */
/* intruces various issues (elp wkaeup timeouts etc.)                  */
/* On the BBGW this pin is routed through the level shifter (U21) that */
/* introduces a pullup on the line and wilink8 ends up in a bad state. */
/* use a gpio hog to force this pin low. An alternative may be adding  */
/* an external pulldown on U21 pin 4.                                  */

&gpio3 {
        bt-aud-in-hog {
                gpio-hog;
                gpios = <16 GPIO_ACTIVE_HIGH>;
                output-low;
                line-name = "MCASP0_AHCLKR";
        };
};

That is a BB-BBGW-WL1835-00A0.dts file in /opt/source/dtb-5.10-ti/src/arm/overlays/.

Also, /etc/udev/rules.d/ has some interesting files in them…

  1. 82-SoftAp0-start-hostpad.rules
  2. 81-add-SoftAp0-interface.rules

The reason I bring up DTS and udev…

It seems one can alter the DTS file to suit the needs of the user and that specific DTS file calls normal pins with offsets at regular file locations.

And…the reason I call to udev is because there seems to be a relation between the build and how userspace gets allocated from udev from DTS. I could be wrong. Just trying to help more than not here.

Hopefully it doesn’t resort to having to touch DTS and/or udev rules as it would be a maintenance headache. The SoftAP0 rule is something I want to look at for setting device in access point mode to compare with what I have done now which is working.

My challenge is that I am still unable to reliably connect to wlan0 to wifi network after booting up - on boot up all is 100% okay and I have never seen it fail (except of course if wpa_supplicant has invalid auth info).

Am I correct in assuming you are using wpa_supplicant and systemd-networkd?
Note, that in my case on boot I my adapter works with wpa_supplicant but if I restart wpa_supplicant@wlan0.service the device is still seen but no IP address is assigned.

I enabled debugging on wpa_supplicant@.service and journalctl -u wpa_supplicant@wlan0 -f
shows (see: Association request to the driver failed):

Aug 05 13:03:39 BeagleBone systemd[1]: Started WPA supplicant daemon (interface-specific version).

Aug 05 13:03:39 BeagleBone wpa_supplicant[1228]: Successfully initialized wpa_supplicant

Aug 05 13:03:44 BeagleBone wpa_supplicant[1228]: wlan0: Trying to associate with 3c:5c:f1:06:ee:05 (SSID='OFHR21' freq=5805 MHz)

Aug 05 13:03:45 BeagleBone wpa_supplicant[1228]: wlan0: Association request to the driver failed

Aug 05 13:03:49 BeagleBone wpa_supplicant[1228]: wlan0: Trying to associate with 68:4a:76:fe:3a:c5 (SSID='OFHR21' freq=5805 MHz)

Aug 05 13:03:50 BeagleBone wpa_supplicant[1228]: wlan0: Association request to the driver failed

Aug 05 13:03:55 BeagleBone wpa_supplicant[1228]: wlan0: Trying to associate with 3c:5c:f1:06:ee:06 (SSID='OFHR21' freq=2437 MHz)

Aug 05 13:03:55 BeagleBone wpa_supplicant[1228]: wlan0: Association request to the driver failed

Aug 05 13:04:00 BeagleBone wpa_supplicant[1228]: wlan0: Trying to associate with 3c:5c:f1:06:ee:05 (SSID='OFHR21' freq=5805 MHz)

Aug 05 13:04:01 BeagleBone wpa_supplicant[1228]: wlan0: Association request to the driver failed

Aug 05 13:04:01 BeagleBone wpa_supplicant[1228]: BSSID 3c:5c:f1:06:ee:05 ignore list count incremented to 2, ignoring for 10 seconds

Aug 05 13:04:11 BeagleBone wpa_supplicant[1228]: wlan0: Trying to associate with 68:4a:76:fe:3a:c5 (SSID='OFHR21' freq=5805 MHz)

Aug 05 13:04:12 BeagleBone wpa_supplicant[1228]: wlan0: Association request to the driver failed

Aug 05 13:04:12 BeagleBone wpa_supplicant[1228]: BSSID 68:4a:76:fe:3a:c5 ignore list count incremented to 2, ignoring for 10 seconds

I also looked into sudo networkctl renew wlan0 but it fails with message Failed to renew dynamic configuration of interface wlan0: Invalid argument which I don’t understand as networkctl version is 247 and networkctl –help shows valid option renew DEVICES... Renew dynamic configurations

No. Just wpa_supplicant. I am only using wpa_supplicant I think. I will plug in and test again to find out.

Seth

P.S. Did wpa_cli -i wlan0 reconfigure fail while booted and running in your session? I will test again and report back.

Okay. networkctl delivers some device data:

6 wlan0   wlan     routable    configured

My wpa file shows this:

ctrl_interface=DIR=/run/wpa_supplicant GROUP=netdev
update_config=1
p2p_disabled=1
#country=US

network={
}

I have some older files and notes, not found yet, for wpa_supplicant. I will keep looking.

Also, here is the total output of networkctl -a:

networkctl -a
IDX LINK    TYPE     OPERATIONAL SETUP
  1 lo      loopback carrier     unmanaged
  2 dummy0  ether    off         unmanaged
  3 usb0    gadget   routable    configured
  4 usb1    gadget   routable    configured
  5 can0    can      off         unmanaged
  6 wlan0   wlan     routable    configured
  7 SoftAp0 wlan     routable    configured

7 links listed.

So, maybe Ethernet or ether in this case should be off?

[Match]
Name=wlan0
Type=wlan

[Link]
RequiredForOnline=yes

[Network]
DHCP=ipv4

That is the /etc/systemd/network/wlan0.network file. That is exactly what mine states on output.

Seth

P.S. If the command does not work, do not use sudo and try to configure wpa_cli without it. Keep at it and I will keep looking for the older notes. Also, if you are looking to use 5Ghz, I am not sure it will work. I just do not know as of now. I am on 2.4Ghz.

So, it seems there are plenty of files:

  1. /lib/systemd/network/
  2. /etc/systemd/network/

Those files may help you make decisions.