-
Notifications
You must be signed in to change notification settings - Fork 130
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
USB_AUTOSUSPEND=1 default setting causes issues with USB devices
#311
Comments
|
The underlying problem here are faulty kernel drivers and/or faulty device firmware causing devices to fail when power saving is activated. I see two approaches to this:
Solution 2 will sacrifice significant power saving for users of hardware with proper drivers/firmware. So I decline to go that way. The same applies to all other defaults. If you want to exclude specific device categories, then feel free to send pull requests with code to filter them. You may of course change the default(s) in Manjaro, but keep in mind that you render power saving useless by this strategy. |
|
By default, USB power saving is active in the kernel, but not force-enabled for incompatible drivers. That is, devices that support suspension will suspend, drivers that do not, will not.
As far as I'm aware, the only way to fully disable the kernel's built-in USB autosuspend is to pass |
|
I don't agree all drivers that don't enable autosuspend by default are "incompatible". |
|
I'd also agree with that. It doesn't change the fact that As long as the potential issues with default-on are known (see e.g. Warnings in the kernel power management doc) then that's fine. 🙂 |
|
I'm pondering a change like Any thoughts? (Reference: Manjaro: call for testing new TLP defaults) |
|
I like the idea very much. 👍 Seems like a good middle-ground. |
|
Since this requires some major restructuring and testing, I plan it for 1.2. |
|
I've run into this problem after installing openSUSE 15.0 which comes with the What I find the worst in this issue is that it completely conflicts with libsane and its workarounds for selected scanners. Basically it results in:
This is pretty confusing and I think that adding I suggest to not set |
@rmilecki : I can understand your embarassment about that. Let me explain my point of view. I started this project in 2009 when almost no device driver had power saving enabled by default. Despite people often telling me kernel development will catch up and tools like TLP will be obsolete soon, real progress in this respect has been quite slow. Although I understand the reasons for it – too many hardware variations, too few testers/devs – it's still frustrating. If I would exclude all unknown devices (USB or else) by default, then TLP is superfluous, because we end up with just the plain kernel defaults. A power saving tool that deserves its name must be more aggressive than the defaults. |
Rationale: TLP autosuspends all devices not blacklisted, overriding libsane's udev rules that implement blacklisting for scanners. Solution: check udev environment for 'libsane_matched=yes' and exclude corresponding devices from autosuspend. References: * #311 (comment) Credits: * Rafal Milecki
|
@rmilecki : exception implemented for devices managed by libsane. Thanks for your hint. |
I feel like there is a need to do this xD more options are always welcom |
|
I think i'll abandon the idea to split the settings for AC and BAT. It won't really help users when we limit the trouble to BAT. Better to have specific measures like the one for scanners above. Btw: I have no problem with Manjaro's approach |
Symptom data
With
USB_AUTOSUSPEND=1as the default, suspend is force-enabled even when devices may not support suspend.This has caused many issues for Manjaro users, e.g.:
While we can repackage the defaults (https://forum.manjaro.org/t/changes-to-etc-default-tlp/33700) I'd like to float the idea of altering them here to help other distros too.
(There are some other defaults which possibly aren't ideal but I'll start with this one so I don't flood the issue tracker and in case there's a better way, e.g. just submitting a PR - let me know.)
Expected behaviour
Devices should continue to function under default settings.
Actual behaviour
Certain devices do not function under default settings.
Steps to reproduce the problem
Insert XBOX360 controller during boot with default settings (
USB_AUTOSUSPEND=1). Observe that controller will not operate until disconnected and reconnected.Switch to
USB_AUTOSUSPEND=0, boot with controller connected, observe controller operates correctly without need for disconnect and reconnect.The text was updated successfully, but these errors were encountered: