BBB kernel 4.19.94-ti-r73 upgrade to 5.10.168-ti-r61

Hi,

How to properly upgrade kernel from 4.19.94-ti-r73 to 5.10.168-ti-r61 ?

Tried these commands

sudo apt update
sudo apt install bbb.io-kernel-5.10-ti-am335x -y
sudo reboot

uname -r
image

But I have a problem.
usb0 is gone after upgrade.
Can someone help ?

That’s the correct way…

usb0 is controlled by a separate user space script, so we need more details.

‘sudo beagle-version’

Regards,

sudo /opt/scripts/tools/version.sh
fatal: detected dubious ownership in repository at '/opt/scripts'
To add an exception for this directory, call:

        git config --global --add safe.directory /opt/scripts
git:/opt/scripts/:[]
eeprom:[A335BNLTBLA21736EL001155]
model:[TI_AM335x_BeagleBone_Blue]
dogtag:[BeagleBoard.org Debian Buster IoT Image 2020-04-06]
bootloader:[eMMC-(default)]:[/dev/mmcblk1]:[U-Boot 2019.04-00002-g07d5700e21]:[location: dd MBR]
UBOOT: Booted Device-Tree:[am335x-boneblue.dts]
UBOOT: Loaded Overlay:[AM335X-PRU-RPROC-4-19-TI-00A0]
UBOOT: Loaded Overlay:[BB-ADC-00A0.bb.org-overlays]
kernel:[5.10.168-ti-r61]
nodejs:[v10.24.0]
/boot/uEnv.txt Settings:
uboot_overlay_options:[enable_uboot_overlays=1]
uboot_overlay_options:[uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-19-TI-00A0.dtbo]
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~buster+20210821]
pkg:[bb-wl18xx-firmware]:[1.20221201.0-0~buster+20221201]
pkg:[kmod]:[26-1]
pkg:[librobotcontrol]:[1.0.5-git20200715.0-0~buster+20200716]
pkg:[firmware-ti-connectivity]:[20190717-2rcnee1~buster+20200305]
groups:[debian : debian adm kmem dialout cdrom floppy audio dip video plugdev users systemd-journal bluetooth netdev i2c gpio pwm eqep remoteproc admin spi iio docker tisdk weston-launch xenomai cloud9ide]
cmdline:[console=ttyO0,115200n8 bone_capemgr.uboot_capemgr_enabled=1 root=/dev/mmcblk1p1 ro rootfstype=ext4 rootwait coherent_pool=1M net.ifnames=0 lpj=1990656 rng_core.default_quality=100 quiet]
dmesg | grep remote
[    4.104902] remoteproc remoteproc0: wkup_m3 is available
[   11.162108] remoteproc remoteproc1: 4a334000.pru is available
[   11.173998] remoteproc remoteproc2: 4a338000.pru is available
[   29.581304] remoteproc remoteproc0: powering up wkup_m3
[   29.581341] remoteproc remoteproc0: Booting fw image am335x-pm-firmware.elf, size 217148
[   29.581630] remoteproc remoteproc0: remote processor wkup_m3 is now up
[   40.358012] Bluetooth: hci0: change remote baud rate command in firmware
dmesg | grep pru
[    0.127265] platform 4a326004.pruss-soc-bus: Cannot lookup hwmod 'pruss'
[   11.162108] remoteproc remoteproc1: 4a334000.pru is available
[   11.173998] remoteproc remoteproc2: 4a338000.pru is available
dmesg | grep pinctrl-single
[    3.954460] pinctrl-single 44e10800.pinmux: 142 pins, size 568
dmesg | grep gpio-of-helper
lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
END
root@beaglebone:/home/igluturbo#

probably, git pull in that directory and it’ll work…

Regards,

After git config --global --add safe.directory /opt/scripts

Still can’t connect to beaglebone through usb, ifconfig doesn’t show usb0

git:/opt/scripts/:[b39ec679648a6be8f25f48bd1c9784c1fc5a0c46]
eeprom:[A335BNLTBLA21736EL001155]
model:[TI_AM335x_BeagleBone_Blue]
dogtag:[BeagleBoard.org Debian Buster IoT Image 2020-04-06]
bootloader:[eMMC-(default)]:[/dev/mmcblk1]:[U-Boot 2019.04-00002-g07d5700e21]:[location: dd MBR]
UBOOT: Booted Device-Tree:[am335x-boneblue.dts]
UBOOT: Loaded Overlay:[AM335X-PRU-RPROC-4-19-TI-00A0]
UBOOT: Loaded Overlay:[BB-ADC-00A0.bb.org-overlays]
kernel:[5.10.168-ti-r61]
nodejs:[v10.24.0]
/boot/uEnv.txt Settings:
uboot_overlay_options:[enable_uboot_overlays=1]
uboot_overlay_options:[uboot_overlay_pru=/lib/firmware/AM335X-PRU-RPROC-4-19-TI-00A0.dtbo]
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~buster+20210821]
pkg:[bb-wl18xx-firmware]:[1.20221201.0-0~buster+20221201]
pkg:[kmod]:[26-1]
pkg:[librobotcontrol]:[1.0.5-git20200715.0-0~buster+20200716]
pkg:[firmware-ti-connectivity]:[20190717-2rcnee1~buster+20200305]
groups:[debian : debian adm kmem dialout cdrom floppy audio dip video plugdev users systemd-journal bluetooth netdev i2c gpio pwm eqep remoteproc admin spi iio docker tisdk weston-launch xenomai cloud9ide]
cmdline:[console=ttyO0,115200n8 bone_capemgr.uboot_capemgr_enabled=1 root=/dev/mmcblk1p1 ro rootfstype=ext4 rootwait coherent_pool=1M net.ifnames=0 lpj=1990656 rng_core.default_quality=100 quiet]
dmesg | grep remote
[    4.108900] remoteproc remoteproc0: wkup_m3 is available
[   10.708372] remoteproc remoteproc1: 4a334000.pru is available
[   10.717901] remoteproc remoteproc2: 4a338000.pru is available
[   29.481354] remoteproc remoteproc0: powering up wkup_m3
[   29.481394] remoteproc remoteproc0: Booting fw image am335x-pm-firmware.elf, size 217148
[   29.481699] remoteproc remoteproc0: remote processor wkup_m3 is now up
[   39.680919] Bluetooth: hci0: change remote baud rate command in firmware
dmesg | grep pru
[    0.127424] platform 4a326004.pruss-soc-bus: Cannot lookup hwmod 'pruss'
[   10.708372] remoteproc remoteproc1: 4a334000.pru is available
[   10.717901] remoteproc remoteproc2: 4a338000.pru is available
dmesg | grep pinctrl-single
[    3.958296] pinctrl-single 44e10800.pinmux: 142 pins, size 568
dmesg | grep gpio-of-helper
lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
END

Okay, we need to see what the startup scripts is doing in buster… What does this show?

journalctl | grep am335

Regards,

May 25 08:29:07 beaglebone kernel: am335x-phy-driver 47401300.usb-phy: supply vcc not found, using dummy regulator
May 25 08:29:07 beaglebone kernel: am335x-phy-driver 47401300.usb-phy: dummy supplies not allowed for exclusive requests
May 25 08:29:07 beaglebone kernel: am335x-phy-driver 47401b00.usb-phy: supply vcc not found, using dummy regulator
May 25 08:29:07 beaglebone kernel: am335x-phy-driver 47401b00.usb-phy: dummy supplies not allowed for exclusive requests
May 25 08:29:07 beaglebone kernel: cpuidle: enable-method property 'ti,am3352' found operations
May 25 08:29:25 beaglebone kernel: remoteproc remoteproc0: Booting fw image am335x-pm-firmware.elf, size 217148
May 25 08:29:45 beaglebone sh[659]: generic-board-startup: [startup script=/opt/scripts/boot/am335x_evm.sh]
May 25 08:29:46 beaglebone sh[659]: am335x_evm: usb_image_file=[/var/cache/doc-beaglebone-getting-started/beaglebone-getting-started-2019-10-31.img]
May 25 08:29:49 beaglebone sh[659]: am335x_evm: use_libcomposite
May 25 08:29:49 beaglebone sh[659]: am335x_evm: modprobe libcomposite
May 25 08:30:45 beaglebone sh[659]: am335x_evm: ERROR: [libcomposite didn't load]

I’ve followed this as well and thanks to RCN’s clues, I tried three experimental tweaks with some success and potential issue to look for in the long run.

First:
I tweaked am335x-bone-comon.dtsi to set the USB status to “okay”. Here’s the diff:

jnelson@JNELSON-7:~/bbb/bone510x/KERNEL$ git diff
diff --git a/arch/arm/boot/dts/am335x-bone-common.dtsi b/arch/arm/boot/dts/am335x-bone-common.dtsi
index f1cf99566bf5..83a1d9cd214f 100644
--- a/arch/arm/boot/dts/am335x-bone-common.dtsi
+++ b/arch/arm/boot/dts/am335x-bone-common.dtsi
@@ -189,12 +189,14 @@ &uart0 {
};

&usb0 {
+       status = "okay";
        dr_mode = "peripheral";
        interrupts-extended = <&intc 18 &tps 0>;
        interrupt-names = "mc", "vbus";
};

&usb1 {
+       status = "okay";
        dr_mode = "host";
};

Second:
I also set libcomposite back to a loadable module during rebuild by moving it back to the loadable modules. Specifically when menuconfig pops up during rebuild go to…

Device Drivers > USB Support > USB Gadget Support…
Set to , the “USB Gadget functions configurable through configfs”

This was the change that wiped off the “libcomposite didn’t load” error, and enabled the call to autoconfigure_usb0.sh to successfully do its thing.

Third:
I made the following two wholly irrelevant changes:
(As in I just updated the aforementioned kernel onto another bbb, without making these tweaks and USB0 resumes presenting as an NDIS device to windows at 192.168.7.2)


jnelson@BenchDog:~$ diff /opt/scripts/boot/am335x_evm.sh /media/opt/scripts/boot/am335x_evm.sh
648c648
< #unset usb0 usb1
---
> unset usb0 usb1

jnelson@BenchDog:~$ diff /etc/default/bb-boot /media/etc/default/bb-boot
21d20
< usb0=enable