├── bin ├── undervolt_stop └── undervolt_start ├── services ├── undervolt.service └── dgpu-off.service ├── README.md └── config └── tlp /bin/undervolt_stop: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | /usr/bin/undervolt --core 0 --cache 0 --uncore 0 4 | -------------------------------------------------------------------------------- /bin/undervolt_start: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | /usr/bin/undervolt --core -100 --cache -100 --uncore -100 4 | -------------------------------------------------------------------------------- /services/undervolt.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Intel undervolting script 3 | After=suspend.target 4 | After=hibernate.target 5 | After=hybrid-sleep.target 6 | 7 | [Service] 8 | ExecStart=/usr/bin/undervolt_start 9 | 10 | [Install] 11 | WantedBy=suspend.target 12 | WantedBy=hibernate.target 13 | WantedBy=hybrid-sleep.target 14 | WantedBy=multi-user.target 15 | -------------------------------------------------------------------------------- /services/dgpu-off.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=NVIDIA GPU Turn Off 3 | After=suspend.target 4 | After=hibernate.target 5 | After=hybrid-sleep.target 6 | After=graphical.target 7 | 8 | [Service] 9 | Type=oneshot 10 | ExecStart=/bin/sh -c "echo '\\_SB.PCI0.PEG0.PEGP._OFF' > /proc/acpi/call; cat /proc/acpi/call > /tmp/nvidia-off" 11 | 12 | [Install] 13 | WantedBy=suspend.target 14 | WantedBy=hibernate.target 15 | WantedBy=hybrid-sleep.target 16 | WantedBy=multi-user.target 17 | WantedBy=graphical.target 18 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Aug 2021 update 2 | 3 | Dell have disabled undervolting on its laptops including Dell XPS 9560 - recent versions of XPS 9560 BIOS won't give access to change processor registers related to voltage settings. BIOS downgrade won't help because Intel Management Engine won't be allowed to downgrade during flashing. 4 | 5 | Main advice: do not upgrade XPS 9560 BIOS & disable Windows auto-update. 6 | 7 | Read more: 8 | 9 | [Intel and OEMs have killed undervolting and there is little that you can do about it](https://www.notebookcheck.net/Intel-and-OEMs-have-killed-undervolting-and-there-is-little-that-you-can-do-about-it.477330.0.html) 10 | 11 | ## Goal 12 | 13 | The main goal of this guide is to help to confugure XPS 9560 for linux distros, particularly for 14 | Ubuntu 16.04. Most of the following settings will be fine for other distributions too. 15 | 16 | The main focus is set to: 17 | 18 | * Keep nearly max performance when laptop connected to AC power 19 | * Archive max possible battery life when on battery mode 20 | * Decrease overall noise level and temperatures (both for AC power and battery mode) 21 | 22 | ## Configuration 23 | 24 | * Ubuntu 16.04 25 | * XPS 9560 with i7-7700HQ, GTX1050, 4K display, 1TB NVME SSD, 32GB RAM, Intel 9260 Wifi card 26 | 27 | ## Turn off nvidia card 28 | 29 | Hardware/software facts: 30 | 31 | * Nvidia GTX 1050 consumes a lot of evergy even when XPS is in idle mode on Ubuntu 16.04 32 | * Default nvidia GUI card switcher does not completely turn off nvidia card: 1050 always remains 33 | active even when Intel graphics mode is enabled. 34 | * I don't need GTX 1050 at all: built-in Intel graphics is working perfectly for 4K video playback, 35 | and I can't think of any other use case when I use heavy-load graphics on Ubuntu. 36 | 37 | So, the solution: (originally found [here](https://gist.github.com/jseris/a740f6a3fb0d18064e26dc66f9be4f1d)) 38 | 39 | 1. Remove all nvidia drivers: 40 | 41 | > sudo nvidia-uninstall 42 | > sudo apt-get purge nvidia* 43 | 44 | 2. Install acpi-call-dkms so that we could turn the graphics card manually: 45 | 46 | > sudo apt install acpi acpi-call-dkms 47 | 48 | 3. Create acpi_call module: 49 | 50 | > sudo touch /etc/modules-load.d/acpi_call.conf 51 | 52 | 4. Write `acpi_call` value to the file: 53 | > echo acpi_call > /etc/modules-load.d/acpi_call.conf 54 | 55 | 5. Create systemd dgpu-off.service: 56 | 57 | > sudo cp services/dgpu-off.service /etc/systemd/system 58 | 59 | 6. Enable dgpu-off service: 60 | 61 | > systemctl enable dgpu-off.service 62 | 63 | ## Update linux-kernel 64 | 65 | Default Ubuntu 16.04 kernel is pretty old and I'd recommend updating to 66 | [4.15.10](http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.15.10) to archive stability, good 67 | hardware, software and power saving options support. 68 | 69 | 1. Download debs: 70 | 71 | > wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.15.10/linux-headers-4.15.10-041510_4.15.10-041510.201803152130_all.deb 72 | 73 | > wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.15.10/linux-headers-4.15.10-041510-generic_4.15.10-041510.201803152130_amd64.deb 74 | 75 | > wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.15.10/linux-image-4.15.10-041510-generic_4.15.10-041510.201803152130_amd64.deb 76 | 77 | 2. Install every fetched deb: 78 | 79 | > sudo dpkg -i filename.deb 80 | 81 | 3. Reboot 82 | 83 | ## Update GRUB options 84 | 85 | Dell XPS may fall into annoying issues when running on latest linux kernels. Possible issues are: 86 | 87 | * Suspend/Resume may stuck or be unstable 88 | * Soft lockups possible saying something like "NMI watchdog: BUG: soft lockup - CPU#2 stuck for 23s" 89 | 90 | To return everything back to live & working state we need to set acpi_rev_override and pcie_port_pm 91 | in /etc/default/grub: 92 | 93 | > GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_rev_override=5 pcie_port_pm=off" 94 | 95 | Basically it returns active ACPI revision back to version 5 instead of 6 in latest linux kernels 96 | and disables power management on pcie port. 97 | 98 | Edit the file, save, and run `sudo update-grub` 99 | 100 | ## Install TLP 101 | 102 | TLP is an advanced linux power management tool which brings you reasonable defaults and ability to 103 | customize every single power saving option. 104 | 105 | > sudo add-apt-repository ppa:linrunner/tlp 106 | 107 | > sudo apt-get update 108 | 109 | > sudo apt-get install tlp tlp-rdw 110 | 111 | I attached my tlp configuration here, some important details: 112 | 113 | * Laptop is working at max performance when connected to AC power 114 | * CPU locked to minimum frequency when on battery mode without any ability to be faster 115 | * Hyperthreading/Turboboost is turned off on battery mode 116 | * Bluetooth is turned of on startup, it needs to be turned on manually using default ubuntu switch 117 | * Enabled autosuspend for the fingerprint scanner 118 | * Enabled autosuspend for the touch screen 119 | 120 | ## Install monitoring tools 121 | 122 | i7z helps us to monitor current CPU frequencies/temperatures: 123 | 124 | > sudo apt-get install i7z powertop 125 | 126 | powerstat shows average energy consumption: 127 | 128 | > sudo apt-get install powerstat 129 | 130 | ## CPU Undervolting 131 | 132 | With monitoring tools installed, it's a good time to undervolt your CPU using 133 | [georgewhewell/undervolt](https://github.com/georgewhewell/undervolt) python script. 134 | 135 | Beaware, undervolting is the most dangerous section in this guide and you may brick you computer 136 | easily if you don't have strong overclocking/undervolting experience! 137 | 138 | All example values below are tested with my computer and may not work for your particular CPU! 139 | 140 | Clone python script: 141 | 142 | > git clone git@github.com:georgewhewell/undervolt.git 143 | 144 | Copy script to /usr/bin: 145 | 146 | > sudo cp undervolt/undervolt.py /usr/bin/undervolt 147 | 148 | Read initial values: 149 | 150 | > sudo undervolt --read 151 | 152 | Test & set voltages for CPU core, CPU cache and CPU uncore: 153 | 154 | > sudo undervolt --core -100 --cache -100 --uncore -100 155 | 156 | Create bins: 157 | 158 | > sudo cp bin/undervolt_start /usr/bin/undervolt_start 159 | 160 | > sudo cp bin/undervolt_stop /usr/bin/undervolt_stop 161 | 162 | Create undervolt service: 163 | 164 | > sudo cp services/undervolt.service /etc/systemd/system/undervolt.service 165 | 166 | Enable undervolt service: 167 | 168 | > sudo systemctl enable undervolt.service 169 | 170 | Don't forget to properly test, be ready to laptop freezes when testing and good luck :) 171 | 172 | ## Results 173 | 174 | Laptop power consumption: 175 | 176 | * Idle with screen turned off: 4 wt 177 | * Idle with screen at 40% brightness: 8.5 wt 178 | * Idle with screen at 100% brightness: 14 wt 179 | 180 | These settings gives me around 8-9 hours of battery life when I work using: 181 | 182 | * 1-2 rails running Ruby on Rails apps 183 | * Active Webpack 184 | * Neovim and active ruby/js/eslint/rubocop/reek linters 185 | * Few active docker containers active 186 | * TDD & often rspec/mocha/jest executions 187 | * Wifi & VPN enabled 188 | 189 | Yeah, the overall performance is noticeable slower, but usually I don't care about the performance 190 | when I'm working on battery. 191 | 192 | # Useful links 193 | 194 | * [TLP - Advanced Power Management for Linux](https://github.com/linrunner/TLP) 195 | * [How to update kernel to the latest mainline version without any Distro-upgrade?](https://askubuntu.com/questions/119080/how-to-update-kernel-to-the-latest-mainline-version-without-any-distro-upgrade) 196 | * [Disabling dGPU on Dell XPS 9560 on Ubuntu 16.10](https://gist.github.com/jseris/a740f6a3fb0d18064e26dc66f9be4f1d) 197 | * [XPS 9560 - Battery life optimization](https://www.reddit.com/r/Dell/comments/5y3rii/xps_9560_battery_life_optimization_and_fan/) 198 | -------------------------------------------------------------------------------- /config/tlp: -------------------------------------------------------------------------------- 1 | # ------------------------------------------------------------------------------ 2 | # tlp - Parameters for power saving 3 | # See full explanation: http://linrunner.de/en/tlp/docs/tlp-configuration.html 4 | 5 | # Hint: some features are disabled by default, remove the leading # to enable 6 | # them. 7 | 8 | # Set to 0 to disable, 1 to enable TLP. 9 | TLP_ENABLE=1 10 | 11 | # Operation mode when no power supply can be detected: AC, BAT. 12 | # Concerns some desktop and embedded hardware only. 13 | TLP_DEFAULT_MODE=AC 14 | 15 | # Operation mode select: 0=depend on power source, 1=always use TLP_DEFAULT_MODE 16 | # Hint: use in conjunction with TLP_DEFAULT_MODE=BAT for BAT settings on AC. 17 | TLP_PERSISTENT_DEFAULT=0 18 | 19 | # Seconds laptop mode has to wait after the disk goes idle before doing a sync. 20 | # Non-zero value enables, zero disables laptop mode. 21 | DISK_IDLE_SECS_ON_AC=0 22 | DISK_IDLE_SECS_ON_BAT=2 23 | 24 | # Dirty page values (timeouts in secs). 25 | MAX_LOST_WORK_SECS_ON_AC=15 26 | MAX_LOST_WORK_SECS_ON_BAT=60 27 | 28 | # Hint: CPU parameters below are disabled by default, remove the leading # 29 | # to enable them, otherwise kernel default values are used. 30 | 31 | # Select a CPU frequency scaling governor. 32 | # Intel Core i processor with intel_pstate driver: 33 | # powersave(*), performance. 34 | # Older hardware with acpi-cpufreq driver: 35 | # ondemand(*), powersave, performance, conservative, schedutil. 36 | # (*) is recommended. 37 | # Hint: use tlp-stat -p to show the active driver and available governors. 38 | # Important: 39 | # powersave for intel_pstate and ondemand for acpi-cpufreq are power 40 | # efficient for *almost all* workloads and therefore kernel and most 41 | # distributions have chosen them as defaults. If you still want to change, 42 | # you should know what you're doing! You *must* disable your distribution's 43 | # governor settings or conflicts will occur. 44 | #CPU_SCALING_GOVERNOR_ON_AC=powersave 45 | #CPU_SCALING_GOVERNOR_ON_BAT=powersave 46 | 47 | # Set the min/max frequency available for the scaling governor. 48 | # Possible values strongly depend on your CPU. For available frequencies see 49 | # the output of tlp-stat -p. 50 | CPU_SCALING_MIN_FREQ_ON_AC=0 51 | CPU_SCALING_MAX_FREQ_ON_AC=3800000 52 | CPU_SCALING_MIN_FREQ_ON_BAT=0 53 | CPU_SCALING_MAX_FREQ_ON_BAT=800000 54 | 55 | # Set energy performance hints (HWP) for Intel P-state governor: 56 | # performance, balance_performance, default, balance_power, power 57 | # Values are given in order of increasing power saving. 58 | # Note: Intel Skylake or newer CPU and Kernel >= 4.10 required. 59 | CPU_HWP_ON_AC=balance_performance 60 | CPU_HWP_ON_BAT=balance_power 61 | 62 | # Set Intel P-state performance: 0..100 (%). 63 | # Limit the max/min P-state to control the power dissipation of the CPU. 64 | # Values are stated as a percentage of the available performance. 65 | # Requires an Intel Core i processor with intel_pstate driver. 66 | CPU_MIN_PERF_ON_AC=0 67 | CPU_MAX_PERF_ON_AC=100 68 | CPU_MIN_PERF_ON_BAT=0 69 | CPU_MAX_PERF_ON_BAT=30 70 | 71 | # Set the CPU "turbo boost" feature: 0=disable, 1=allow 72 | # Requires an Intel Core i processor. 73 | # Important: 74 | # - This may conflict with your distribution's governor settings 75 | # - A value of 1 does *not* activate boosting, it just allows it 76 | CPU_BOOST_ON_AC=1 77 | CPU_BOOST_ON_BAT=0 78 | 79 | # Minimize number of used CPU cores/hyper-threads under light load conditions: 80 | # 0=disable, 1=enable. 81 | SCHED_POWERSAVE_ON_AC=0 82 | SCHED_POWERSAVE_ON_BAT=1 83 | 84 | # Kernel NMI Watchdog: 85 | # 0=disable (default, saves power), 1=enable (for kernel debugging only). 86 | NMI_WATCHDOG=0 87 | 88 | # Change CPU voltages aka "undervolting" - Kernel with PHC patch required. 89 | # Frequency voltage pairs are written to: 90 | # /sys/devices/system/cpu/cpu0/cpufreq/phc_controls 91 | # CAUTION: only use this, if you thoroughly understand what you are doing! 92 | #PHC_CONTROLS="F:V F:V F:V F:V" 93 | 94 | # Set CPU performance versus energy savings policy: 95 | # performance, balance-performance, default, balance-power, power. 96 | # Values are given in order of increasing power saving. 97 | # Requires kernel module msr and x86_energy_perf_policy from linux-tools. 98 | ENERGY_PERF_POLICY_ON_AC=performance 99 | ENERGY_PERF_POLICY_ON_BAT=power 100 | 101 | # Disk devices; separate multiple devices with spaces (default: sda). 102 | # Devices can be specified by disk ID also (lookup with: tlp diskid). 103 | DISK_DEVICES="sda sdb" 104 | 105 | # Disk advanced power management level: 1..254, 255 (max saving, min, off). 106 | # Levels 1..127 may spin down the disk; 255 allowable on most drives. 107 | # Separate values for multiple disks with spaces. Use the special value 'keep' 108 | # to keep the hardware default for the particular disk. 109 | DISK_APM_LEVEL_ON_AC="254 254" 110 | DISK_APM_LEVEL_ON_BAT="128 128" 111 | 112 | # Hard disk spin down timeout: 113 | # 0: spin down disabled 114 | # 1..240: timeouts from 5s to 20min (in units of 5s) 115 | # 241..251: timeouts from 30min to 5.5 hours (in units of 30min) 116 | # See 'man hdparm' for details. 117 | # Separate values for multiple disks with spaces. Use the special value 'keep' 118 | # to keep the hardware default for the particular disk. 119 | #DISK_SPINDOWN_TIMEOUT_ON_AC="0 0" 120 | #DISK_SPINDOWN_TIMEOUT_ON_BAT="0 0" 121 | 122 | # Select IO scheduler for the disk devices: cfq, deadline, noop (Default: cfq). 123 | # Separate values for multiple disks with spaces. Use the special value 'keep' 124 | # to keep the kernel default scheduler for the particular disk. 125 | #DISK_IOSCHED="cfq cfq" 126 | 127 | # AHCI link power management (ALPM) for disk devices: 128 | # min_power, med_power_with_dipm(*), medium_power, max_performance. 129 | # (*) Kernel >= 4.15 required, then recommended. 130 | # Multiple values separated with spaces are tried sequentially until success. 131 | SATA_LINKPWR_ON_AC="med_power_with_dipm max_performance" 132 | SATA_LINKPWR_ON_BAT="min_power" 133 | 134 | # Exclude host devices from AHCI link power management. 135 | # Separate multiple hosts with spaces. 136 | #SATA_LINKPWR_BLACKLIST="host1" 137 | 138 | # Runtime Power Management for AHCI host and disks devices: 139 | # on=disable, auto=enable. 140 | # EXPERIMENTAL ** WARNING: auto will most likely cause system lockups/data loss. 141 | #AHCI_RUNTIME_PM_ON_AC=on 142 | #AHCI_RUNTIME_PM_ON_BAT=on 143 | 144 | # Seconds of inactivity before disk is suspended. 145 | AHCI_RUNTIME_PM_TIMEOUT=15 146 | 147 | # PCI Express Active State Power Management (PCIe ASPM): 148 | # default, performance, powersave. 149 | PCIE_ASPM_ON_AC=performance 150 | PCIE_ASPM_ON_BAT=powersave 151 | 152 | # WiFi power saving mode: on=enable, off=disable; not supported by all adapters. 153 | WIFI_PWR_ON_AC=off 154 | WIFI_PWR_ON_BAT=on 155 | 156 | # Disable wake on LAN: Y/N. 157 | WOL_DISABLE=Y 158 | 159 | # Enable audio power saving for Intel HDA, AC97 devices (timeout in secs). 160 | # A value of 0 disables, >=1 enables power saving (recommended: 1). 161 | SOUND_POWER_SAVE_ON_AC=0 162 | SOUND_POWER_SAVE_ON_BAT=1 163 | 164 | # Disable controller too (HDA only): Y/N. 165 | SOUND_POWER_SAVE_CONTROLLER=Y 166 | 167 | # Runtime Power Management for PCI(e) bus devices: on=disable, auto=enable. 168 | RUNTIME_PM_ON_AC=on 169 | RUNTIME_PM_ON_BAT=auto 170 | 171 | # Exclude PCI(e) device adresses the following list from Runtime PM 172 | # (separate with spaces). Use lspci to get the adresses (1st column). 173 | #RUNTIME_PM_BLACKLIST="bb:dd.f 11:22.3 44:55.6" 174 | 175 | # Exclude PCI(e) devices assigned to the listed drivers from Runtime PM. 176 | # Default when unconfigured is "amdgpu nouveau nvidia radeon" which 177 | # prevents accidential power-on of dGPU in hybrid graphics setups. 178 | # Use "" to disable the feature completely. 179 | # Separate multiple drivers with spaces. 180 | #RUNTIME_PM_DRIVER_BLACKLIST="amdgpu nouveau nvidia radeon" 181 | 182 | # Set to 0 to disable, 1 to enable USB autosuspend feature. 183 | USB_AUTOSUSPEND=1 184 | 185 | # Exclude listed devices from USB autosuspend (separate with spaces). 186 | # Use lsusb to get the ids. 187 | # Note: input devices (usbhid) are excluded automatically 188 | #USB_BLACKLIST="1111:2222 3333:4444" 189 | 190 | # Bluetooth devices are excluded from USB autosuspend: 191 | # 0=do not exclude, 1=exclude. 192 | USB_BLACKLIST_BTUSB=0 193 | 194 | # Phone devices are excluded from USB autosuspend: 195 | # 0=do not exclude, 1=exclude (enable charging). 196 | USB_BLACKLIST_PHONE=0 197 | 198 | # Printers are excluded from USB autosuspend: 199 | # 0=do not exclude, 1=exclude. 200 | USB_BLACKLIST_PRINTER=1 201 | 202 | # WWAN devices are excluded from USB autosuspend: 203 | # 0=do not exclude, 1=exclude. 204 | USB_BLACKLIST_WWAN=1 205 | 206 | # Include listed devices into USB autosuspend even if already excluded 207 | # by the blacklists above (separate with spaces). 208 | # Use lsusb to get the ids. 209 | 210 | # 138a:0091 - fingerprint sensor 211 | # 04f3:24a1 - touch screen 212 | USB_WHITELIST="138a:0091 04f3:24a1" 213 | 214 | # Set to 1 to disable autosuspend before shutdown, 0 to do nothing 215 | # (workaround for USB devices that cause shutdown problems). 216 | #USB_AUTOSUSPEND_DISABLE_ON_SHUTDOWN=1 217 | 218 | # Restore radio device state (Bluetooth, WiFi, WWAN) from previous shutdown 219 | # on system startup: 0=disable, 1=enable. 220 | # Hint: the parameters DEVICES_TO_DISABLE/ENABLE_ON_STARTUP/SHUTDOWN below 221 | # are ignored when this is enabled! 222 | RESTORE_DEVICE_STATE_ON_STARTUP=0 223 | 224 | # Radio devices to disable on startup: bluetooth, wifi, wwan. 225 | # Separate multiple devices with spaces. 226 | DEVICES_TO_DISABLE_ON_STARTUP="bluetooth" 227 | 228 | # Radio devices to enable on startup: bluetooth, wifi, wwan. 229 | # Separate multiple devices with spaces. 230 | #DEVICES_TO_ENABLE_ON_STARTUP="wifi" 231 | 232 | # Radio devices to disable on shutdown: bluetooth, wifi, wwan. 233 | # (workaround for devices that are blocking shutdown). 234 | #DEVICES_TO_DISABLE_ON_SHUTDOWN="bluetooth wifi wwan" 235 | 236 | # Radio devices to enable on shutdown: bluetooth, wifi, wwan. 237 | # (to prevent other operating systems from missing radios). 238 | #DEVICES_TO_ENABLE_ON_SHUTDOWN="wwan" 239 | 240 | # Radio devices to enable on AC: bluetooth, wifi, wwan. 241 | # DEVICES_TO_ENABLE_ON_AC="bluetooth" 242 | 243 | # Radio devices to disable on battery: bluetooth, wifi, wwan. 244 | # DEVICES_TO_DISABLE_ON_BAT="bluetooth" 245 | 246 | # Radio devices to disable on battery when not in use (not connected): 247 | # bluetooth, wifi, wwan. 248 | #DEVICES_TO_DISABLE_ON_BAT_NOT_IN_USE="bluetooth wifi wwan" 249 | 250 | # Battery charge thresholds (ThinkPad only, tp-smapi or acpi-call kernel module 251 | # required). Charging starts when the remaining capacity falls below the 252 | # START_CHARGE_THRESH value and stops when exceeding the STOP_CHARGE_THRESH value. 253 | # Main / Internal battery (values in %) 254 | #START_CHARGE_THRESH_BAT0=75 255 | #STOP_CHARGE_THRESH_BAT0=80 256 | # Ultrabay / Slice / Replaceable battery (values in %) 257 | #START_CHARGE_THRESH_BAT1=75 258 | #STOP_CHARGE_THRESH_BAT1=80 259 | 260 | # Restore charge thresholds when AC is unplugged: 0=disable, 1=enable. 261 | #RESTORE_THRESHOLDS_ON_BAT=1 262 | 263 | # ------------------------------------------------------------------------------ 264 | # tlp-rdw - Parameters for the radio device wizard 265 | # Possible devices: bluetooth, wifi, wwan. 266 | 267 | # Hints: 268 | # - Parameters are disabled by default, remove the leading # to enable them 269 | # - Separate multiple radio devices with spaces 270 | 271 | # Radio devices to disable on connect. 272 | #DEVICES_TO_DISABLE_ON_LAN_CONNECT="wifi wwan" 273 | #DEVICES_TO_DISABLE_ON_WIFI_CONNECT="wwan" 274 | #DEVICES_TO_DISABLE_ON_WWAN_CONNECT="wifi" 275 | 276 | # Radio devices to enable on disconnect. 277 | #DEVICES_TO_ENABLE_ON_LAN_DISCONNECT="wifi wwan" 278 | #DEVICES_TO_ENABLE_ON_WIFI_DISCONNECT="" 279 | #DEVICES_TO_ENABLE_ON_WWAN_DISCONNECT="" 280 | 281 | # Radio devices to enable/disable when docked. 282 | #DEVICES_TO_ENABLE_ON_DOCK="" 283 | #DEVICES_TO_DISABLE_ON_DOCK="" 284 | 285 | # Radio devices to enable/disable when undocked. 286 | #DEVICES_TO_ENABLE_ON_UNDOCK="wifi" 287 | #DEVICES_TO_DISABLE_ON_UNDOCK="" 288 | --------------------------------------------------------------------------------