Skip to content

Fix disabling usb3 on newer devices#171

Draft
cpunt wants to merge 1 commit intodevfrom
bigbox-ss-upgrade
Draft

Fix disabling usb3 on newer devices#171
cpunt wants to merge 1 commit intodevfrom
bigbox-ss-upgrade

Conversation

@cpunt
Copy link
Contributor

@cpunt cpunt commented Jan 27, 2026

What type of PR is this? (check all applicable)

  • 🍕 Feature
  • 🐛 Bug Fix
  • 📝 Documentation Update
  • 🎨 Style
  • 🧑‍💻 Code Refactor
  • 🔥 Performance Improvements
  • ✅ Test
  • 🤖 Build
  • 🔁 CI
  • 📦 Chore (Release)
  • ⏩ Revert

Description

Problem

After upgrading to OpenWRT 24.10 (kernel 6.6), the USB3 disable logic stopped working. The vcgencmd bootloader_version command fails with ioctl_set_msg
failed:-1 because the VCHIQ kernel module is no longer built into the kernel.

Background

USB 3.0 signaling causes RF interference in the 2.4 GHz band, which degrades WiFi performance. We disable USB3 at runtime and force modems to
re-enumerate on the USB 2.0 hub.

Investigation

Explored moving USB3 disabling from runtime to build-time via device tree patches. This approach failed because:

  • The Raspberry Pi 4's VL805 USB controller connects via PCIe
  • All 4 USB ports (including the "USB 2.0" ports) are served by the VL805's internal USB 2.0 hub
  • Disabling PCIe disables the entire VL805, killing all USB connectivity
  • The xHCI driver doesn't support the maximum-speed device tree property that would allow limiting to USB 2.0 speeds
  • There's no kernel quirk or sysfs interface to disable SuperSpeed while keeping USB 2.0 active

Solution

The existing runtime approach (using uhubctl to power off the USB3 hub) is the correct solution. Updated the VL805 version check to be non-fatal when
vcgencmd is unavailable - all Pi 4 devices in the field have compatible firmware since the Pi 4 launched after the required firmware version (Sept
2019).

Update

This solution is incorrect vcgencmd should be available but isn't because we haven't updated our gpu firmware files. This pr shouldn't be needed and be fixed once we have a fix for updating gpu firmware files.

Related Issues, Tickets & Documents

https://app.clickup.com/t/869bxadkw

Screenshots/Recordings

Manual test

  • 👍 yes
  • 🙅 no

Manual test description

scp'd over and tested. Need to test full build.

Added tests?

  • 👍 yes
  • 🙅 no, because they aren't needed
  • 🙋 no, because I need help

Added to documentation?

  • 📜 README.md
  • 🙅 no documentation needed

[optional] Are there any post-deployment tasks we need to perform?

@cpunt cpunt marked this pull request as draft February 2, 2026 10:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant