Jump to content

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


Recommended Posts


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:
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 
extraboardargs=fastboot noswap isolcpus=3 usbcore.autosuspend=-1


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


Link to comment
Share on other sites

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:


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
Link to comment
Share on other sites

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 
Description=Reset USB devices before SDDM




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. 


# Function to reset a single USB device
reset_usb_device() {
    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"/*
    reset_usb_device "$dev_path"

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
Link to comment
Share on other sites

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.

Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines