diff options
author | Christian Breunig <christian@breunig.cc> | 2024-06-24 08:11:48 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-06-24 08:11:48 +0200 |
commit | 264388062ff64228474372462e5f4b29d6e060f9 (patch) | |
tree | 858d9420d9420ff39a3b1953957443ddbaae680f | |
parent | f1ac0b57af6ac74f084e7946d165812427705427 (diff) | |
parent | fba36052246b31252d9826e0c117c9ba1fdc4317 (diff) | |
download | vyos-1x-264388062ff64228474372462e5f4b29d6e060f9.tar.gz vyos-1x-264388062ff64228474372462e5f4b29d6e060f9.zip |
Merge pull request #3708 from vyos/mergify/bp/circinus/pr-3677
T5949: Add option to disable USB autosuspend (backport #3677)
-rw-r--r-- | data/templates/system/40_usb_autosuspend.j2 | 5 | ||||
-rw-r--r-- | interface-definitions/system_option.xml.in | 6 | ||||
-rwxr-xr-x | src/conf_mode/system_option.py | 5 |
3 files changed, 16 insertions, 0 deletions
diff --git a/data/templates/system/40_usb_autosuspend.j2 b/data/templates/system/40_usb_autosuspend.j2 new file mode 100644 index 000000000..01ba86420 --- /dev/null +++ b/data/templates/system/40_usb_autosuspend.j2 @@ -0,0 +1,5 @@ +{% set autosuspend = "auto" %} +{% if disable_usb_autosuspend is vyos_defined %} +{% set autosuspend = "on" %} +{% endif %} +ACTION=="add", SUBSYSTEM=="usb", TEST=="power/control", ATTR{power/control}="{{ autosuspend }}" diff --git a/interface-definitions/system_option.xml.in b/interface-definitions/system_option.xml.in index fe517d17d..ad423d9d1 100644 --- a/interface-definitions/system_option.xml.in +++ b/interface-definitions/system_option.xml.in @@ -183,6 +183,12 @@ </properties> <defaultValue>12-hour</defaultValue> </leafNode> + <leafNode name="disable-usb-autosuspend"> + <properties> + <help>Disable autosuspend for all USB devices</help> + <valueless/> + </properties> + </leafNode> </children> </node> </children> diff --git a/src/conf_mode/system_option.py b/src/conf_mode/system_option.py index a2e5db575..2c31703e9 100755 --- a/src/conf_mode/system_option.py +++ b/src/conf_mode/system_option.py @@ -35,6 +35,7 @@ airbag.enable() curlrc_config = r'/etc/curlrc' ssh_config = r'/etc/ssh/ssh_config.d/91-vyos-ssh-client-options.conf' systemd_action_file = '/lib/systemd/system/ctrl-alt-del.target' +usb_autosuspend = r'/etc/udev/rules.d/40-usb-autosuspend.rules' time_format_to_locale = { '12-hour': 'en_US.UTF-8', '24-hour': 'en_GB.UTF-8' @@ -85,6 +86,7 @@ def verify(options): def generate(options): render(curlrc_config, 'system/curlrc.j2', options) render(ssh_config, 'system/ssh_config.j2', options) + render(usb_autosuspend, 'system/40_usb_autosuspend.j2', options) cmdline_options = [] if 'kernel' in options: @@ -155,6 +157,9 @@ def apply(options): time_format = time_format_to_locale.get(options['time_format']) cmd(f'localectl set-locale LC_TIME={time_format}') + cmd('udevadm control --reload-rules') + + if __name__ == '__main__': try: c = get_config() |