Console is stuck before login prompt

Hi, i have a beaglebone black, in which i have install the compiled kernel in /boot, dtb in /boot/dtbs/$(uname -r)/ and modules in /lib/modules/$(uname -r)/ built using bb.org_defconfig.

but i still booting the BeagleBoard.org Debian Trixie Base Image 2026-03-17, after all services are started but before login prompt appear, it stucks.
i was able to login via ssh but no other way around.
Screen is stuck here.

Other thing i observed is

image

earlier i installed the kernel built using /boot/config-$(uname -r), i have started seeing the behavior when i made some changes in /boot/dtbs/(earlier installed kernel)/
but didn’t touch the debian installed dtb files.
please tell where i’m going wrong

we are seeing some weird race conditions with the usb-gadget seemly blocking the serial login interface in systemd.

it’s very annoying to debug: BBAI64: systemd race condition causing UART debug login to sometimes not show up / start - #4 by lranders and it’s broken years of working situation..

Regards,

Odd, iirc works on my image, an arch linux derivative. I think what I did was set up getty to just work on the USB gadget serial interface, then getty sould only run when the device file appears, which is slow given the clunky way that USB gadget comes up.

Iirc, I had several problems with the slow speed of USB gadget coming up, and solution for both serial and ethernet, was just to ensure startup is conditional on the relevant device appearing …

I’m travelling right now, but will post my method when I return.

It doesn’t happen every time; might just have been lucky.
(depending how you look at it)

Didn’t happen my BeagleV-Fire using the Ubuntu image, only on Debian Trixie.

ok - back at home now.

My solution for the ethernet on the usb otg is I created the file /etc/systemd/network/usb0.network which looks like:

[Match]
Name=usb0

[Network]
DNS=8.8.8.8
DHCPServer=true

[Address]
Address=192.168.7.34/30

[Route]
Gateway=192.168.7.33

[DHCPServer]
EmitDNS=false
EmitNTP=false
EmitSIP=false
EmitRouter=false

This sets and address on the ethernet, and the far end can only have one number given by the /30. The setup also runs a DHCP server - run by systemd. This is the reliable way, as it only runs the DHCP server explicitly on usb0 and only when it is brought up (which is slow by the GPS gadget). I also set so all packets are routed via the far end, and DHCP doesn’t sending anything other than an IP number and extent, so doesn’t do NTP/DNS/etc.

On the host machine which is also running linux, I enable IP forwarding via

sudo sysctl 'net.ipv4.ip_forward = 1'
sudo sysctl 'net.ipv4.conf.all.forwarding = 1'
sudo sysctl 'net.ipv6.conf.all.forwarding = 1'

And also enable a firewall with masquerading, this is needed as 192.168.7.0/24 can’t propagate on the internet. I also configure it to expect ethernet on usb via /etc/systemd/network/enp.network

[Match]
Name=enp*

[Network]
DHCP=yes

For a UART I just bring up acm, and that comes up reliable. On the host machine, I make sure normal users can access by creating the file on the host of /etc/udev/rules.d/50-myusb.rules

KERNEL=="ttyUSB[0-9]*",MODE="0666"
KERNEL=="ttyACM[0-9]*",MODE="0666"

And this for me has been stable and come up reliably.

Not sure I’ve done anything here that is non standard - its all a fairly straightforward set up.

Here is my bandaid to get things working,
/etc/rc.local

#! /bin/bash
depmod -a
modprobe rtw88_8821cu
sleep 30
wpa_supplicant -B -c /etc/wpa_supplicant/wpa_supplicant-wlan0.conf -i wlan0
/etc/resetGS0.sc &
exit 0

Dependencies in systemd dictate the loading of the services. rc.local loads first before the agetty services. I tried to switch these but ran into problems, sudo reboot would hang.

/etc/resetGS0.sc must have an & to go into the background so rc.local exits. After rc.local exits, agetty will load due to systemd dependencies.

[  OK  ] Started rc-local.service - /etc/rc.local Compatibility.
[   77.701771] rc.local[458]: resetGS0 sleeping
[  OK  ] Started getty@tty1.service - Getty on tty1.
[  OK  ] Started serial-getty@ttyGS0.service - Serial Getty on ttyGS0.
[  OK  ] Started serial-getty@ttyS0.service - Serial Getty on ttyS0.

Here is the resetGS0.sc script

#! /bin/bash

echo "resetGS0 sleeping"
sleep 30
echo "resetting serial-getty@ttyGS0.service"
systemctl restart serial-getty@ttyGS0.service
echo "serial-getty@ttyGS0.service reset complete"

exit 0

After resetting the serial-getty@ttyGS0.service the login prompt returns.
Lots of sleeping, but seems to work. Moving on and waiting for formal updates to the system.

I guess you haven’t realized we have moved on to iwd, right?

Seeing the issues with the hardware driver rtw88_8821cu, I just wanted to use wpa_supplicant. I might switch to iwd in the future. One thing at a time.

When to use which: Use iwd if you want faster connections, better power efficiency, or a simpler command-line experience, especially on modern Linux systems. Use wpa_supplicant if you need maximum compatibility with older hardware or specialized, complex network configurations.

Important Note: Do not run iwd and wpa_supplicant at the same time, as they will conflict for control of your wireless hardware.

Looked a bit more into how serial is brought up. This is done via libcomposite the usb gadget set up. This is defined in the file system under /sys/kernel/config/usb_gadget/ now it works on my BBB, which is Arch OS, and I configured usb gadget by hand. I’ve compared my BBB set up (Arch) with my PB2 set up (Debian). I presume BBB (debian) is very similar to PB2 (debian).

Anyway looking at the sys faile structure, debian brings up g_multi/configs/c.1/ffs.mtp and g_multi/functions/ffs.mtp, I didn’t bring this up. The ACM set up seems identical on both.

No real difference in the boot messages. On modules, my arch set up has u_ether usb_f_acm u_serial libcomposite as modules which get loaded, looks like in debian these are in the main kernal. This can make a difference as kernel options are done differently for modules vs compiled in.

Anyway bottom line is I see the usb gadget uart coming up reliably, and not clear whats different with my set up.

My set up on getty is the same on ttyGS0, on both I do serial-getty.

Sadly iwd was funded by Intel…

commits have occurred since: Making sure you're not a bot!

I really enjoy iwd, on these smaller boards, smaller wireless setup..

We will have to probably just move to nmcli in Debian 14 (forky)..

Regards,

Okay pushed a big change to bb-usb-gadgets on how serial-getty@ttyGS0.service is configured…

sudo apt update
sudo apt-get dist-upgrade

you’ll need to reboot after

I’ve changed serial-getty@ttyGS0.service from always running/waiting in the background to only run after the usb gadget is enabled..

Previously we globally enabled:

sudo systemctl enable serial-getty@ttyGS0.service

to enable only after usb is enabled:

echo "$(ls /sys/class/udc)" > $CONFIGFS/g_multi/UDC
systemctl start serial-getty@ttyGS0.service || true

Regards,

I’ve already compiled the 6.19.13 kernel with my kernel mods. Do I need this image linux-image-6.19.13-bone16 for the other changes to be applied properly?

 sudo apt-get -s dist-upgrade
Inst linux-image-6.19.13-bone16 (1trixie rcn-ee.net:debian.beagleboard.org, rcn-ee.net:rcn-ee.com [armhf])

Interesting. I know I had a delay on starting dhcp until after the usb otg Ethernet had come up. Thought I had the same on the UART, but didn’t think I did it your way. I’ll have to check my configuration to see how I did it. I kind of had in mind that the getty can only start after the device appears p- but I’ll check what I did …

No i haven’t merged your changes in yet..

You can remove “bbb.io-kernel-6.19-bone” package and that will lock the linux-image* version from weekly updates.

Regards,

I did the

sudo apt update
sudo apt-get dist-upgrade

and things are much better, but still get the serial login prompt hanging about every 5 reboots. So there is still some timing issues going on.

Are you able to repeat this on your BBB?

sudo beagle-version
eeprom:[A335BNLTEID02547SBI04226]
model:[TI_AM335x_BeagleBone_Black]
dogtag:[BeagleBoard.org Debian Trixie Base Image 2026-03-17]
bootloader:[microSD-(push-button)]:[/dev/mmcblk0]:[U-Boot SPL 2022.04-g5509547b (Jan 22 2026 - 19:56:08 +0000)]:[location: dd MBR]
bootloader:[eMMC-(default)]:[/dev/mmcblk1]:[U-Boot SPL 2022.04-gc6f4cf7d (Apr 24 2025 - 03:22:59 +0000)]:[location: dd MBR]
UBOOT: Booted Device-Tree:[am335x-boneblack-uboot.dts]
UBOOT: Loaded Overlay:[BB-ADC-00A0.kernel]
UBOOT: Loaded Overlay:[BB-BONE-eMMC1-01-00A0.kernel]
UBOOT: Loaded Overlay:[BB-UART1-00A0.kernel]
UBOOT: Loaded Overlay:[BB-UART2-00A0.kernel]
kernel:[6.19.13-bone16]
/boot/uEnv.txt Settings:
uboot_overlay_options:[enable_uboot_overlays=1]
uboot_overlay_options:[uboot_overlay_addr4=BB-UART1-00A0.dtbo]
uboot_overlay_options:[uboot_overlay_addr5=BB-UART2-00A0.dtbo]
uboot_overlay_options:[uboot_overlay_addr6=BB-I2C2-SLOW-00A0.dtbo]
uboot_overlay_options:[disable_uboot_overlay_video=1]
uboot_overlay_options:[disable_uboot_overlay_audio=1]
pkg check: to individually upgrade run: [sudo apt install --only-upgrade <pkg>]
pkg:[bb-customizations]:[1.20250808.0-0~trixie+20250808]
pkg:[bb-usb-gadgets]:[1.20260421.8-0~trixie+20260421]
pkg:[bb-wl18xx-firmware]:[1.20230703.0-0~trixie+20240703]
pkg:[kmod]:[34.2-2bbbio1~trixie+20250522]
groups:[debian : debian adm kmem dialout cdrom floppy audio dip video plugdev users systemd-journal input render netdev i2c bluetooth gpio admin tisdk weston-launch]
cmdline:[console=ttyS0,115200n8 root=/dev/mmcblk0p3 ro rootfstype=ext4 rootwait fsck.repair=yes earlycon coherent_pool=1M net.ifnames=0 lpj=1990656 rng_core.default_quality=100]
dmesg | grep remote
[    3.603551] remoteproc remoteproc0: wkup_m3 is available
[    5.503391] remoteproc remoteproc0: powering up wkup_m3
[    5.550928] remoteproc remoteproc0: Booting fw image am335x-pm-firmware.elf, size 217148
[    5.592759] remoteproc remoteproc0: remote processor wkup_m3 is now up
[   17.642244] systemd[1]: Reached target remote-fs.target - Remote File Systems.
[   50.217559] remoteproc remoteproc1: 4a334000.pru is available
[   50.289582] remoteproc remoteproc2: 4a338000.pru is available
dmesg | grep pru
[   50.217559] remoteproc remoteproc1: 4a334000.pru is available
[   50.289582] remoteproc remoteproc2: 4a338000.pru is available
dmesg | grep pinctrl-single
[    3.626630] pinctrl-single 44e10800.pinmux: 142 pins, size 568
dmesg | grep gpio-of-helper
dmesg | grep wlcore
lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 0bda:c811 Realtek Semiconductor Corp. 802.11ac NIC
END


[  OK  ] Started rc-local.service - /etc/rc.local Compatibility.
[  OK  ] Started getty@tty1.service - Getty on tty1.
[  OK  ] Started serial-getty@ttyGS0.service - Serial Getty on ttyGS0.
[  OK  ] Started serial-getty@ttyS0.service - Serial Getty on ttyS0.
[  OK  ] Reached target getty.target - Login Prompts.
[  OK  ] Started bb-usb-gadgets.service - BeagleBoard.org USB gadgets.
[  OK  ] Reached target multi-user.target - Multi-User System.
[  OK  ] Reached target graphical.target - Graphical Interface.

strange… that’s not right, i have serial-getty@ttyGS0.service started by bb-usb-gadgets.service… so it shouldn’t show up that way..

this is what we want to see:

(full)

         Starting bb-usb-gadgets.service - BeagleBoard.org USB gadgets...
[   36.996827] Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[   37.028230] Loaded X.509 cert 'wens: 61c038651aabdcf94bd0ac7ff06c7248db18c600'
         Starting bbbio-set-sysconf.service…oard Set up system configuration...
[   37.301689] cpsw-switch 4a100000.switch: starting ndev. mode: dual_mac
[  OK  ] Started cron.service - Regular background program processing daemon.
[   37.427148] SMSC LAN8710/LAN8720 4a101000.mdio:00: attached PHY driver (mii_bus:phy_addr=4a101000.mdio:00, irq=POLL)
         Starting dbus.service - D-Bus System Message Bus...
         Starting e2scrub_reap.service - Re…ne ext4 Metadata Check Snapshots...
         Starting iwd.service - Wireless service...
[   38.727149] at24 2-0054: supply vcc not found, using dummy regulator
         Starting systemd-logind.service - User Login Management...
[   39.026265] at24 2-0055: supply vcc not found, using dummy regulator
         Starting zramswap.service - Linux zramswap setup...
[  OK  ] Started systemd-networkd.service - Network Configuration.
[   39.257141] at24 2-0056: supply vcc not found, using dummy regulator
[  OK  ] Finished bb-symlinks.service - BeagleBoard Generate Symlinks.
[   39.550910] at24 2-0057: supply vcc not found, using dummy regulator
[   39.838746] bbbio-set-sysconf[413]: Reading the system configuration settings from /boot/firmware/sysconf.txt
[   40.054429] at24 0-0050: 4096 byte 24c32 EEPROM, writable, 1 bytes/write
         Starting systemd-networkd-persiste…tent Storage in systemd-networkd...
[  OK  ] Finished bbbio-set-sysconf.service…eBoard Set up system configuration.
[  OK  ] Started dbus.service - D-Bus System Message Bus.
[   40.581238] cpsw-switch 4a100000.switch eth0: Link is Up - 100Mbps/Full - flow control off
[   41.187212] zram: Added device: zram0
[  OK  ] Started avahi-daemon.service - Avahi mDNS/DNS-SD Stack.
[   41.256780] zram0: detected capacity change from 0 to 493040
[  OK  ] Finished e2scrub_reap.service - Re…line ext4 Metadata Check Snapshots.
[   41.758508] Adding 246516k swap on /dev/zram0.  Priority:100 extents:1 across:246516k SS
[  OK  ] Finished wtmpdb-update-boot.servic…oot and shutdown times into wtmpdb.
[  OK  ] Finished zramswap.service - Linux zramswap setup.
[  OK  ] Finished systemd-networkd-persiste…istent Storage in systemd-networkd.
[   42.581955] configfs-gadget.g_multi gadget.0: HOST MAC 90:59:af:57:9f:10
[   42.623790] configfs-gadget.g_multi gadget.0: MAC 90:59:af:57:9f:11
[  OK  ] Started systemd-logind.service - User Login Management.
         Expecting device dev-ttyGS0.device - /dev/ttyGS0...

smaller:

         Starting bb-usb-gadgets.service - BeagleBoard.org USB gadgets...
[   42.581955] configfs-gadget.g_multi gadget.0: HOST MAC 90:59:af:57:9f:10
[   42.623790] configfs-gadget.g_multi gadget.0: MAC 90:59:af:57:9f:11
         Expecting device dev-ttyGS0.device - /dev/ttyGS0...

with:

voodoo@24-am335x-bbb:~$ journalctl --no-pager -u bb-usb-gadgets.service
Apr 22 12:39:04 24-am335x-bbb systemd[1]: Starting bb-usb-gadgets.service - BeagleBoard.org USB gadgets...
Apr 22 12:39:08 24-am335x-bbb bb-start-usb-gadgets[408]: bb-usb-gadgets: bb-start-acm-ncm-rndis-old-gadget
Apr 22 12:39:09 24-am335x-bbb bb-start-usb-gadgets[433]: usb_gadget: Looking for libcomposite
Apr 22 12:39:09 24-am335x-bbb bb-start-usb-gadgets[433]: usb_gadget: Setting up g_multit through configfs
Apr 22 12:39:09 24-am335x-bbb bb-start-usb-gadgets[433]: usb_gadget: start serial-getty@ttyGS0.service
Apr 22 12:39:32 24-am335x-bbb systemd[1]: bb-usb-gadgets.service: Deactivated successfully.
Apr 22 12:39:32 24-am335x-bbb systemd[1]: Started bb-usb-gadgets.service - BeagleBoard.org USB gadgets.

Regards,

Any ideas on what the next step would be? I don’t understand why we have a difference in the boot process. I was thinking to just wait till a new debian image is available and try a totally new image. I’m running this image. https://www.beagleboard.org/distros/beaglebone-black-debian-13-4-2026-03-17-iot-v6-19-x with the updates you published above

sudo apt update
sudo apt-get dist-upgrade

Here you go: Index of /rootfs/debian-armhf-13-base-v6.19/2026-04-23

Uploading right now: BeagleBone Black Debian 13.4 2026-04-23 IoT (v6.19.x) - BeagleBoard

bb-imager’s json is now up to date too…

1 Like

I downloaded the new image and burned it to an SD card, it booted just fine. I disabled the iwd service and apt update, apt installed “wpasupplicant”. Both eth0 and wlan0 are up and seem to be working fine. The new rtw_8821cu driver loads without rc.local now, big improvement.

I edited /boot/uEnv.txt to disable audio and video and commented out the missing uboot_overlay_pru=AM335X-PRU-UIO-00A0.dtbo that keep showing up in the logs.

No other modification were done.

On the second reboot, serial still hangs. The info below is from the hung state.
This is not really a big deal to me. I can always sudo systemctl restart serial-getty@ttyGS0.service
to get the console back. I am very happy about the wireless driver working so thanks to the team.

[  OK  ] Found device dev-ttyGS0.device - /dev/ttyGS0.
[   48.126789] rtw_8821cu 1-1:1.0: Firmware version 24.11.0, H2C version 12
[   48.953387] remoteproc remoteproc1: 4a334000.pru is available
[   48.986667] remoteproc remoteproc2: 4a338000.pru is available
[   49.536926] usbcore: registered new interface driver rtw_8821cu
         Starting systemd-rfkill.service - Load/Save RF Kill Switch Status...
[  OK  ] Started systemd-rfkill.service - Load/Save RF Kill Switch Status.
[  OK  ] Found device sys-subsystem-net-devices-wlan0.device - 802.11ac_NIC.
[  OK  ] Started wpa_supplicant@wlan0.servi��…aemon (interface-specific version).
[  OK  ] Reached target network.target - Network.
[  OK  ] Reached target network-online.target - Network is Online.
         Starting nginx.service - A high pe��…erver and a reverse proxy server...
         Starting ssh.service - OpenBSD Secure Shell server...
         Starting systemd-user-sessions.service - Permit User Sessions...
[  OK  ] Started unattended-upgrades.service - Unattended Upgrades Shutdown.
[  OK  ] Finished systemd-user-sessions.service - Permit User Sessions.
[  OK  ] Started getty@tty1.service - Getty on tty1.
[  OK  ] Started serial-getty@ttyGS0.service - Serial Getty on ttyGS0.
[  OK  ] Started serial-getty@ttyS0.service - Serial Getty on ttyS0.
[  OK  ] Reached target getty.target - Login Prompts.
[  OK  ] Started ssh.service - OpenBSD Secure Shell server.
[  OK  ] Started bb-usb-gadgets.service - BeagleBoard.org USB gadgets.
[  OK  ] Started nginx.service - A high per��… server and a reverse proxy server.
[  OK  ] Reached target multi-user.target - Multi-User System.
[  OK  ] Reached target graphical.target - Graphical Interface.
p104[   57.853844] wlan0: authenticate with 6c:b0:ce:81:ee:c8 (local address=90:de:80:c1:0
8:61)
[   58.005127] wlan0: send auth to 6c:b0:ce:81:ee:c8 (try 1/3)
[   58.013762] wlan0: authenticated
[   58.021276] wlan0: associating to AP 6c:b0:ce:81:ee:c8 with corrupt probe response
[   58.032921] wlan0: associate with 6c:b0:ce:81:ee:c8 (try 1/3)
[   58.043979] wlan0: RX AssocResp from 6c:b0:ce:81:ee:c8 (capab=0x411 status=0 aid=3)
[   58.061110] wlan0: associated

sudo beagle-version
[sudo] password for debian: 
eeprom:[A335BNLTEID02547SBI04226]
model:[TI_AM335x_BeagleBone_Black]
dogtag:[BeagleBoard.org Debian Trixie Base Image 2026-04-23]
bootloader:[microSD-(push-button)]:[/dev/mmcblk0]:[U-Boot SPL 2022.04-g5509547b (Jan 22 2026 - 19:56:08 +0000)]:[location: dd MBR]
bootloader:[eMMC-(default)]:[/dev/mmcblk1]:[U-Boot SPL 2022.04-gc6f4cf7d (Apr 24 2025 - 03:22:59 +0000)]:[location: dd MBR]
UBOOT: Booted Device-Tree:[am335x-boneblack-uboot.dts]
UBOOT: Loaded Overlay:[BB-ADC-00A0.kernel]
UBOOT: Loaded Overlay:[BB-BONE-eMMC1-01-00A0.kernel]
kernel:[6.19.13-bone16]
/boot/uEnv.txt Settings:
uboot_overlay_options:[enable_uboot_overlays=1]
uboot_overlay_options:[disable_uboot_overlay_video=1]
uboot_overlay_options:[disable_uboot_overlay_audio=1]
pkg check: to individually upgrade run: [sudo apt install --only-upgrade <pkg>]
pkg:[bb-customizations]:[1.20250808.0-0~trixie+20250808]
pkg:[bb-usb-gadgets]:[1.20260421.8-0~trixie+20260421]
pkg:[bb-wl18xx-firmware]:[1.20230703.0-0~trixie+20240703]
pkg:[kmod]:[34.2-2bbbio1~trixie+20250522]
groups:[debian : debian adm kmem dialout cdrom floppy audio dip video plugdev users systemd-journal input render netdev i2c bluetooth gpio admin tisdk weston-launch]
cmdline:[console=ttyS0,115200n8 root=/dev/mmcblk0p3 ro rootfstype=ext4 rootwait fsck.repair=yes earlycon coherent_pool=1M net.ifnames=0 lpj=1990656 rng_core.default_quality=100]
dmesg | grep remote
[    3.541556] remoteproc remoteproc0: wkup_m3 is available
[    5.426652] remoteproc remoteproc0: powering up wkup_m3
[    5.474212] remoteproc remoteproc0: Booting fw image am335x-pm-firmware.elf, size 217148
[    5.516075] remoteproc remoteproc0: remote processor wkup_m3 is now up
[   16.893474] systemd[1]: Reached target remote-fs.target - Remote File Systems.
[   48.953387] remoteproc remoteproc1: 4a334000.pru is available
[   48.986667] remoteproc remoteproc2: 4a338000.pru is available
dmesg | grep pru
[   48.953387] remoteproc remoteproc1: 4a334000.pru is available
[   48.986667] remoteproc remoteproc2: 4a338000.pru is available
dmesg | grep pinctrl-single
[    3.562201] pinctrl-single 44e10800.pinmux: 142 pins, size 568
dmesg | grep gpio-of-helper
dmesg | grep wlcore
lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 0bda:c811 Realtek Semiconductor Corp. 802.11ac NIC
END

cat /boot/uEnv.txt
#Docs: http://elinux.org/Beagleboard:U-boot_partitioning_layout_2.0

uname_r=6.19.13-bone16
#uuid=
#dtb=

###U-Boot Overlays###
###Documentation: http://elinux.org/Beagleboard:BeagleBoneBlack_Debian#U-Boot_Overlays
###Master Enable
enable_uboot_overlays=1
###
###Overide capes with eeprom
#uboot_overlay_addr0=<file0>.dtbo
#uboot_overlay_addr1=<file1>.dtbo
#uboot_overlay_addr2=<file2>.dtbo
#uboot_overlay_addr3=<file3>.dtbo
###
###Additional custom capes
#uboot_overlay_addr4=<file4>.dtbo
#uboot_overlay_addr5=<file5>.dtbo
#uboot_overlay_addr6=<file6>.dtbo
#uboot_overlay_addr7=<file7>.dtbo
###
###Custom Cape
#dtb_overlay=<file8>.dtbo
###
###Disable auto loading of virtual capes (emmc/video/wireless/adc)
#disable_uboot_overlay_emmc=1
disable_uboot_overlay_video=1
disable_uboot_overlay_audio=1
#disable_uboot_overlay_wireless=1
#disable_uboot_overlay_adc=1
###
###PRUSS OPTIONS
###pru_rproc (4.14.x-ti kernel)
#uboot_overlay_pru=AM335X-PRU-RPROC-4-14-TI-00A0.dtbo
###pru_rproc (4.19.x-ti kernel)
#uboot_overlay_pru=AM335X-PRU-RPROC-4-19-TI-00A0.dtbo
###pru_uio (4.14.x-ti, 4.19.x-ti & mainline/bone kernel)
#uboot_overlay_pru=AM335X-PRU-UIO-00A0.dtbo
###
###Cape Universal Enable
#enable_uboot_cape_universal=1
###
###Debug: disable uboot autoload of Cape
#disable_uboot_overlay_addr0=1
#disable_uboot_overlay_addr1=1
#disable_uboot_overlay_addr2=1
#disable_uboot_overlay_addr3=1
###
###U-Boot fdt tweaks... (60000 = 384KB)
#uboot_fdt_buffer=0x60000
###U-Boot Overlays###

console=ttyS0,115200n8
cmdline=fsck.repair=yes earlycon coherent_pool=1M net.ifnames=0 lpj=1990656 rng_core.default_quality=100

#In the event of edid real failures, uncomment this next line:
#cmdline=fsck.repair=yes earlycon coherent_pool=1M net.ifnames=0 lpj=1990656 rng_core.default_quality=100 video=HDMI-A-1:1024x768@60e

#Use an overlayfs on top of a read-only root filesystem:
#cmdline=fsck.repair=yes earlycon coherent_pool=1M net.ifnames=0 lpj=1990656 rng_core.default_quality=100 overlayroot=tmpfs

##enable Generic eMMC Flasher:
#cmdline=init=/usr/sbin/init-beagle-flasher


and after the next reboot, everything worked fine, the serial console did not hang

[  OK  ] Finished zramswap.service - Linux zramswap setup.
[   41.177531] configfs-gadget.g_multi gadget.0: HOST MAC 44:88:be:0b:34:89
[   41.218992] configfs-gadget.g_multi gadget.0: MAC 44:88:be:0b:34:8a
         Expecting device dev-ttyGS0.device - /dev/ttyGS0...
[  OK  ] Started wpa_supplicant.service - WPA supplicant.
[  OK  ] Finished e2scrub_reap.service - Re��…line ext4 Metadata Check Snapshots.
[   41.923204] cpsw-switch 4a100000.switch eth0: Link is Up - 100Mbps/Full - flow control 
off
[  OK  ] Started systemd-logind.service - User Login Management.
[   42.312741] systemd-journald[222]: Time jumped backwards, rotating.
[  OK  ] Reached target usb-gadget.target - Hardware activated USB gadget.
[  OK  ] Listening on systemd-rfkill.socket��…ll Switch Status /dev/rfkill Watch.
[  OK  ] Found device dev-ttyGS0.device - /dev/ttyGS0.
[   47.971084] rtw_core: loading out-of-tree module taints kernel.
[   48.422025] rtw_8821cu 1-1:1.0: Firmware version 24.11.0, H2C version 12
[   48.917571] remoteproc remoteproc1: 4a334000.pru is available
[   48.945728] remoteproc remoteproc2: 4a338000.pru is available
[   49.518539] usbcore: registered new interface driver rtw_8821cu
         Starting systemd-rfkill.service - Load/Save RF Kill Switch Status...
[  OK  ] Started systemd-rfkill.service - Load/Save RF Kill Switch Status.
[  OK  ] Found device sys-subsystem-net-devices-wlan0.device - 802.11ac_NIC.
[  OK  ] Started wpa_supplicant@wlan0.servi��…aemon (interface-specific version).
[  OK  ] Reached target network.target - Network.
[  OK  ] Reached target network-online.target - Network is Online.
         Starting nginx.service - A high pe��…erver and a reverse proxy server...
         Starting ssh.service - OpenBSD Secure Shell server...
         Starting systemd-user-sessions.service - Permit User Sessions...
[  OK  ] Started unattended-upgrades.service - Unattended Upgrades Shutdown.
[  OK  ] Finished systemd-user-sessions.service - Permit User Sessions.
[  OK  ] Started getty@tty1.service - Getty on tty1.
[  OK  ] Started serial-getty@ttyGS0.service - Serial Getty on ttyGS0.
[  OK  ] Started serial-getty@ttyS0.service - Serial Getty on ttyS0.
[  OK  ] Reached target getty.target - Login Prompts.
[  OK  ] Started bb-usb-gadgets.service - BeagleBoard.org USB gadgets.
[  OK  ] Started ssh.service - OpenBSD Secure Shell server.
[  OK  ] Started nginx.service - A high per��… server and a reverse proxy server.
[  OK  ] Reached target multi-user.target - Multi-User System.
[  OK  ] Reached target graphical.target - Graphical Interface.
p104p104
Debian GNU/Linux 13 BeagleBone ttyS0

BeagleBoard.org Debian Trixie Base Image 2026-04-23
Support: https://bbb.io/debian
default username is [debian] with a one time password of [temppwd]

Web console: https://localhost:9090/

BeagleBone login: [   57.884723] wlan0: authenticate with 6c:b0:ce:81:ee:c8 (local address
=90:de:80:c1:08:61)
[   58.037845] wlan0: send auth to 6c:b0:ce:81:ee:c8 (try 1/3)
[   58.046488] wlan0: authenticated
[   58.053902] wlan0: associating to AP 6c:b0:ce:81:ee:c8 with corrupt probe response
[   58.065575] wlan0: associate with 6c:b0:ce:81:ee:c8 (try 1/3)
[   58.079898] wlan0: RX AssocResp from 6c:b0:ce:81:ee:c8 (capab=0x411 status=0 aid=3)
[   58.100707] wlan0: associated

BeagleBone login: 

I’m not sure why I’m getting those strange characters showing up on the serial line.