Skip to content
View in the app

A better way to browse. Learn more.

Armbian Community Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[ODROID C2] USB ports are (again?) not working properly

Featured Replies

 

no WiFi Adapter after fresh installation. usbcore.autosuspend=-1 fixes it:

 

  ___      _           _     _    ____ ____  
 / _ \  __| |_ __ ___ (_) __| |  / ___|___ \ 
| | | |/ _` | '__/ _ \| |/ _` | | |     __) |
| |_| | (_| | | | (_) | | (_| | | |___ / __/ 
 \___/ \__,_|_|  \___/|_|\__,_|  \____|_____|
                                             
Welcome to Armbian 24.2.1 Bookworm with Linux 6.6.16-current-meson64

System load:   46%           	Up time:       0 min	
Memory usage:  7% of 1.82G  	IP:	       192.168.25.252
CPU temp:      28°C           	Usage of /:    66% of 3.0G   	

[ Menu-driven system configuration (beta): sudo apt update && sudo apt install armbian-config ]

root@odroid:~# cat /boot/armbianEnv.txt 
verbosity=1
console=both
overlay_prefix=meson
rootdev=UUID=1cf10f1a-aa21-4ff0-875d-c59f57c87173
rootfstype=ext4
extraboardargs=fastboot noswap isolcpus=3 usbcore.autosuspend=-1
usbstoragequirks=0x2537:0x1066:u,0x2537:0x1068:u

 

root@odroid:~# lsusb 
Bus 001 Device 007: ID 0bda:2838 Realtek Semiconductor Corp. RTL2838 DVB-T
Bus 001 Device 006: ID 7392:7822 Edimax Technology Co., Ltd EW-7612UAn V2 802.11n Wireless Adapter [Realtek RTL8192CU]
Bus 001 Device 005: ID 05e3:0610 Genesys Logic, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

 

Since todays update to kernel 6.6 on my odroid c2, usb was broken.

lsusb shows that no devices are found anymore using the new kernel:

 

lsusb
Bus 001 Device 002: ID 05e3:0610 Genesys Logic, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

 

dmesg shows the following error during boot:

 

[    5.777103] onboard-usb-hub 1-1: can't set config #1, error -71

 

Adding the "extraboardargs" option to /boot/armbianEnv.txt as described above, solved the problem for me.

 

Edit: This recent kernel change might be connected: https://lore.kernel.org/lkml/1jleciyahv.fsf@starbuckisacylon.baylibre.com/T/

Edited by Scritch

I have a rather janky fix for this issue. Basically, we reset all USB devices on the bus after boot. I created a systemd service file with the following contents:

 

$ cat /etc/systemd/system/usb-reset.service 
[Unit]
Description=Reset USB devices before SDDM
Before=sddm.service

[Service]
Type=oneshot
ExecStart=/root/usbreset.sh

[Install]
WantedBy=multi-user.target

 

And the script is this:

 

$ cat ~/usbreset.sh
#!/usr/bin/env bash
# Resets USB devices in a specified path.
# Use with caution, as this may reset devices currently in use. 

base_path="/sys/bus/usb/devices/"

# Function to reset a single USB device
reset_usb_device() {
    dev_path="$1"   
    echo "Resetting device at '$dev_path' ..."
    echo 0 | sudo tee "$dev_path/authorized" > /dev/null  # Deactivate
    sleep 1  # Short delay
    echo 1 | sudo tee "$dev_path/authorized" > /dev/null  # Reactivate
}

# Find USB devices
echo "Looking for USB devices in '$base_path'..."
for dev_path in "$base_path"/*
do
    reset_usb_device "$dev_path"
done

echo "Done."

 

Enable and start this service and your USB devices will be re-initialized after boot.

 

I've also verified that adding the "extraboardargs" as in the first post works for me as well.

Edited by all2

On my Gentoo setup, I never had any USB issues before 6.6, even without the usbcore.autosuspend=-1 option. With 6.6, though, USB doesn’t work for me even with that option enabled. The fix from all2 worked for me, so thanks to that I put together what I think is a slightly more robust solution:

 

Quote

[Unit]
Description=reinitialize USB (dwc2 c9100000.usb) on ODROID-C2
DefaultDependencies=no
After=systemd-udev-settle.service
Before=sysinit.target

[Service]
Type=oneshot
ExecStart=/bin/sh -c 'echo c9100000.usb > /sys/bus/platform/drivers/dwc2/unbind; sleep 1; echo c9100000.usb > /sys/bus/platform/drivers/dwc2/bind'

[Install]
WantedBy=sysinit.target

 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.