This is the "change log" of Laptop Mode Tools, from its very first release to the present.
1.64 -- Sun Sep 1 13:15:02 IST 2013
- Don't touch USB Controller power settings. The individual devices, when plugged in, while on battery, inherit the power settings from the USB controller
- start-stop-programs: add support for systemd. Thanks to Alexander Mezin
- Replace hardcoded path to udevadm with "which udevadm". Thanks to Alexander Mezin
- Honor .conf files only. Thanks to Sven Köhler
- Make '/usr/lib' path configurable. This is especially useful for systems that use /usr/lib64, or /lib64 directly. Thanks to Nicolas Braud-Santoni
- Don't call killall with the -g argument. Thanks to Murray Campbell
- Fix RPM Spec file build errors
1.63 -- Sat Mar 23 15:01:31 IST 2013
- Kick the power savings back in, as soon as the stick is unplugged
- Release lock descriptors in start-stop-programs module. Thanks Renat Sabitov
- Add option to disable alarm level check. This is helpful if you have a broken battery reporting incorrect states. Thanks Mike Roddewig
- Check for external helper application's presence. And if not available, handle it. Thanks Alain Kalker
- Added PCIe ASPM module. Thanks Martin Wimpress
- Do not ship the board-specific/ folder in default installs
1.62 -- Tue Oct 30 16:45:46 IST 2012
- Add systemd support
- Be specific on what file systems we want to handle. Given the wide range of file systems Linux has, we don't want to consider them all as not all of them fall under the power saving scenarios.
- Factor out some common code
- Do not touch autonegotiation settings. Fiddling with auto-negotiation settings can cause more problems and the standards expect them to be always on
- Trim mount point display
- Organize state/STATE tracking so that we get actual results.
- cleaner output when asking status. Thanks Jasmine Hassan
- Append to stdout/stderr to avoid truncating file logs
- Fix spec file for RPM syntax
1.61 -- Thu May 17 17:44:26 IST 2012
- Handle devices with persistent device naming. This fixes the issues where you don't have a disk referenced by a block name, the commit= value was completely skipped
- Fix issue where hdparm skips SSDs for power management
- Add parallel execution for the modules. In theory this should speeden up the execution. See git commit log comments for details
- Add support for non-deafult customized settings
- calculate design_capacity_warning on machines/arches where it is not readily available
1.60 -- Fri Oct 14 13:08:09 IST 2011
- Use proper device reference for iwconfig (Debian BTS: #639388)
- Check for block device's existence. Thanks to Simon Que
- Add suspend/resume helper tools: pm-helper, pm-suspend, pm-hibernate
- What laptop-mode-tools is stopped from init, also kill polling daemon
- Reliable and much better locking mechanics
- Make polling dameon lock safe
- Make lmt-udev distro neutral. Thanks to Simon Que
- Change Intel HDA Audio's default power save timeout to 2 seconds
1.59 -- Mon Aug 8 00:56:48 IST 2011
- really don't call batt-poll-daemon inside from the flock instance
- USB auto-suspend whitelist
- Add myself as the maintainer
- Don't call true which forks a subshell
- Use exit instead of return
- Check for files instead of kernel version numbers.
1.58 -- Sat Jul 23 23:21:22 IST 2011
- Initialize the PATH variable within us. This helps when our caller did not have a proper environment
- Enable new in-kernel polling mechanism for block devices (Debian BTS: #617705, #574867)
- Check for kernel's native suspend functionality
- Support execution of complex commands. Thanks to Changaco for the patch
- Add new module nmi-watchdog to handle NMI Watchdog related power savings. Thanks to
Quentin Denis for the report
- Fix error messages during early boot if /usr is on a different partition. (Debian BTS: #624678)
- Add support for new Linux 3.x kernels. (Debian BTS: #6628764)
- Fix locking problems when battery polling daemon is enabled
1.57 -- Sun Feb 27 12:50:19 IST 2011
- Pass calling application's arguments to the main function. Thanks to Radek for the
report and the patch
- Use governor policy from the config file. Thanks to Michael Orlov for the report
1.56 -- Mon Feb 14 23:57:50 IST 2011
- Enable ENABLE_AUTO_MODULES by default. When a user installs the package,
the first immediate expectation is to see some changes
- USB suspend interface has changed with kernels 2.6.35 and above.
(Debian BTS: #589000)
- Add support for Linux Runtime Power Management (Debian BTS: #592661)
- On many other distributions, wireless-tools packages is still old and does not
return proper exit status on failures. Thanks to Luca Landolfi for the patch.
- Add support to blacklist USB Devices by types. Thanks to Simon Que for the patch
- Re-initialize dev_path before the next iteration. Thanks to Faustus for the bug
report and the patch (LP: #662924)
- ENABLE_LAPTOP_MODE_TOOLS was ignore because of wrong check. Thanks to Matus Harvan
for reporting this. (Debian BTS: #602278)
- Add support to invoke laptop-mode-tools with hotplug events. This currently only has
support for the usb-autosuspend module. Thanks to Simon Que for the patch
- Add locking support using flock. (Debian BTS: #566613)
- Add 99-laptop-mode.rules to trap multiple kernel events
1.55 -- Wed May 26 21:22:33 IST 2010
- On Intel HD Audio, revert power saving changes when switching back to AC. Thanks to Christoph Langguth for the report and the patch
- Install the pm-utils hook as 01laptop-mode to ensure proper execution in reverse ordering
- Add wireless-power module, for generic non-Intel wireless interfaces that support the iwconfig "power" option.
- Fixed upgrade path for configurations which didn't have the LM/NOLM options in the Intel SATA Power Management module config.
- Add flush-* to ignored programs for lm-profiler, because it is the successor to pdflush.
- Fix WoL regression introduced by DISABLE_ETHERNET_ON_BATTERY. Thanks to Matthias Dienstbier for the report and the patch
- Update comments in wireless-iwl-power.conf. (Debian BTS: #580730)
- Check for old hook in pm-utils and remove it
- Update manpage for all missing modules and options.
1.54 -- Wed Mar 10 16:09:34 IST 2010
- Fix wireless-iwl module. Activation of power saving using iwconfig was never done. Thanks to Sergio Cambra for the report
- Handle new generic interface for ignore_nice_load. The new sysfs interface is no more core specific. Thanks to Roman v. Gemmeren for reporting it
- Add a new "exec-commands" module. With this module, users can add custom commands specific to their requirements.
- Document cpufreq frequency behavior about older P4 processors and set the default to 0
- ThinkPads running with thinkpad_acpi driver have a simpler interface for bluetooth and video. Currently utilizing the bluetooth interface
- Don't log VERBOSE messages to syslog unless VERBOSE_OUTPUT=1
1.53 -- Sat Jan 2 23:42:50 IST 2010
- Add global enable/disable switch for laptop-mode-tools
- Add scheduler power saving module for SMT processors. Thanks to John Reilly.
- Add a new "Auto Modules" mode which enables all modules whitelisted as auto with a single configuration setting, ENABLE_AUTO_MODULES.
- Add LM/NOLM option for Intel SATA Power Management
- Do a check before trying to write to the SuperHE Control File
1.52 -- Thu Oct 8 14:12:23 IST 2009
- Initialize DEBUG to 0 by default. THanks to Matthijs Kooijman for pointing it out.
- Add an option to completely disable ethernet devices when on battery.
- Introduce hooks to enable debug mode for individual modules
- Use iwconfig to determine device type for iwlwifi devices also
- Collect the correct exit code for iwconfig execution.
- Use iwconfig in wireless-iwl-power. Thanks to Darren Hoo for spotting it
- Handle spaces in mount point names. Thanks to Louis Simard for the patch
- Clarify about Global Debug mode and Module Specific Debug mode.
- Fix incorrect variable reference in video-out module. Thanks to Hans Werner for noticing that.
1.51 -- Tue Sep 1 20:48:29 IST 2009
- Add option to blacklist usb devices by their device id. Thanks to firstname.lastname@example.org for the patch
- Trigger timer change for power mgmt by doing a device open/close. The open/close operation can fail if the audio device is busy. Since this failure is non-fatal (worst case is that the timer changes don't get activated), we don't bother if it was successful or not.
- Add support for EeePC FSB Control. Thanks to James Rayner
- Update iwlwifi power modes. Thanks to Clemens Buchacher See Debian BTS: #540639
- Use the standard pm-hibernate script from pm-utils for hibernation. See Debian BTS: #541447
- Check if wireless device is disabled before attempting to power configure it. Thanks to Clemens Buchacher. See Debian BTS: #541997
- On speed change, an ethernet device can lose connectivity. Document that in the config file
1.50 -- 24 July 2009
- Ship pm-utils hooks in /usr/lib/ and not in /etc/pm/ Distributions will always want to have customized settings in /etc and default upstream settings in /usr/lib. See LP: #384875
- Fix incorrect explanation of Intel HDA Power Savings. See Debian BTS: #532733
- Don't clutter screen with print messages.
- Add patch from Mulyadi Santosa that adds ability to lm-profiler to show read/write frequency of each collected program. Thank you.
- Enhance usb-autosuspend module to be executed under conditions. Also explain the weirdness of broken usb drivers. Fixes Debian Bug #535051
- Do the test comparision of integeres using string operators. Fixes Debian Bug #535650
- Run pidof with the -x Script Mode switch. Thanks Matthijs Kooijman
- Disconnect descriptors when backgrounding a script. Thanks Matthijs Kooijman
- Add option to run in shell debug mode
- Add a spec file to generate an RPM package
1.49 -- 03 June 2009
- Update runlevel priority to 99. This is require to ensure that we start after hald. See LP #369807
- Reload acpid on restart. Thanks Wido.
- Handle all power management daemons (apmd,pbbuttonsd,pmud)
- Allow custom timeout values to be set for Intel HDA Cards
- Handle Intel HDA powersaving in multiple modes
- Add syslog logging functionality. Fixes LP #370005
- Fix shell syntax error in laptop_mode. Fixes Debian Bug #528835
- Add check with iwconfig when determining a ipw* based wireless device. Fixes: LP #369113
- Explicitly commit messages to stdout/stderr. This way, user can filter irrelevant messages.
1.48 -- 06 April 2009
- Fix udevinfo calls. See Debian BTS #522043
- Laptops usually have only a single ethernet device, usually being the first one, referred as eth0.
- Don't hard code ethernet configuration to 100MBit speed.
- Restore ethernet speed to MAX_SPEED when back ON_AC. See Debian BTS #519426
- Don't throttle ethernet when on AC power
- Restore auto-negotiation and speed, one at a time
- Create the pm/sleep.d directory when DESTDIR is given
- udevadm info (or udevinfo) output has changed in version 140
- Handle friendly names for ethernet speed
- Handle udev versions in different formats
- Reliably get ethernet speed
- Restore ethernet speed throttling in both situations
- Bump the version to 1.48 in laptop_mode
- Proper check for Hal Polling. Thanks Vincent Panel
1.47 -- 26 January 2009
- Fix typo in usb-autosuspend module, see Debian BTS #513078.
- Support ext4 file system. The mount options on these file systems are now adapted for laptop mode as well.
1.46 -- 25 January 2009
- iwl4965 driver has been replaced by iwlagn in Linux 2.6.27. Add support for this. See Debian BTS #502022.
- Prefer PMU over APM power information when available. (APM emulation adds a delay, which causes incorrect actions.)
- Add intel-hda-powersave module, to support Intel HDA audio chipset power saving mode.
- Improve comments in hal-polling.conf, and change default for AC so that hal polling stays enabled on AC. See Debian BTS #495364.
- Add module usb-autosuspend, based on a patch contributed by Ritesh Raj Sarraf. See Debian BTS #506839.
- Improved error reporting in lcd-brightness module. See Debian BTS #507640.
- Fixed verbose output mode. LM_VERBOSE was inverted, which caused a lot of output to remain hidden. See Debian BTS #510294.
- Set sched_mc_power_savings to 2 instead of 1, for more power savings (see http://lwn.net/Articles/312230). Contributed by Ritesh Raj Sarraf.
- Include integration with pm-utils so that hardware settings are re-applied on resume from suspend/hibernate. See Debian BTS #481766.
- Use a different method to determine X displays and authorizations in the dpms-standby module. The old method depended on w -hs output, which was very unreliable.
- Add battery-level-polling module, which allows systems with unreliable ACPI battery events to use battery level dependent features such as auto-hibernate and the disabling of data loss sensitive features when the battery runs low.
- Relax permissions on most files installed by install.sh. We now give read/execute permissions to other users as well for the config files and executables, since there's no sensitive info in the files.
1.45 -- 15 July 2008
- Cleanup of install.sh, contributed by Alon Bar-Lev.
1.44 -- 15 July 2008
- Use POSIX compliant call to "head" in lm-profiler.
- Support for DESTDIR and other configuration options in install.sh, so that package managers can use this installer.
- Strip non-numeric suffixes from kernel minor version number. (See Debian BTS #488950.)
- Remove spurious error message on machines that don't have /sys/class/power_supply. See Debian BTS #490167.
- Fix incorrect path to laptop-mode.conf in the laptop-mode.conf(8) manual page. See Debian BTS #488261.
- Add sched-mc-power-savings module, to control the Linux kernel process scheduler's multi-core power saving mode. Contributed by Ritesh Raj Sarraf, see Debian BTS #490587.
- Add video-out module to selectively disable video outputs depending on the power mode.
- Fix dpms-standby module so that it actually detects the displays.
1.43 -- 22 June 2008
- Don't use temp file in init script, that doesn't work if /tmp is mounted readonly. (See Debian BTS #480946.)
- Fix IPW2100 power management so that power management mode stays enabled even on AC. If we don't do this, we can't control the transmit power at all because we let the chipset handle it. (See Debian BTS #481180.)
Replace *_ENABLE_HAL_POLLING settings by *_DISABLE_HAL_POLLING. More intuitive that way. The old settings were also interpreted in reverse. The backward compatibility layer *fixes that* because it was a bug, so behaviour will change for 1.42 installations as well. (See Debian BTS #482307.)
- Get rid of bashism in laptop-mode module.
- Write all output to $OUTPUT in ac97-powersave module.
- Remove spurious output in main laptop_mode script.
- Remove spurious output in bluetooth module.
- Minor optimization of inner loop in main laptop_mode script.
- Add intel-sata-powermgmt module for enabling Aggressive Link Power Management on Intel AHCI compliant SATA controllers.
- Add ethernet module to optimize ethernet power usage.
- Performance optimizatons throughout: remove subshells, avoid output instead of throwing it away. (Thanks to Omair Eshkenazi for suggestions.)
- Coding style improvements throughout. (Thanks to Omair Eshkenazi for patches.)
- Remove bashism in lm-profiler (See Debian BTS #480606.)
1.42 -- 12 May 2008
- Remove "echo -e" bashism in lm-profiler.
- Allow different names for AC adapter in /sys/class/power_supply.
- Decrease startup priority, because we definitely need to start after HAL now.
- Add "hal-polling" module to control HAL polling of CD/DVD drives. (Taken from powertop tips.)
- Add "bluetooth" module to disable bluetooth in battery mode. (Taken from powertop tips.)
1.41 -- 22 April 2008
- Rename core module to laptop-mode. Files with the name "core" were cleaned up a bit too diligently by package manager helper scripts such as dh_clean.
- Add missing assignment to ACTIVATE_WITH_POSSIBLE_DATA_LOSS in the path where ENABLE_LAPTOP_MODE_ON_AC was set and the computer was on AC power.
- Add support for energy_* in sysfs battery interface. This adds support for batteries which report their energies in mWh instead of mAh (which was already supported through the charge_* interface).
1.40 -- 15 April 2008
- Add support for getting lid button state from HAL instead of from /proc/acpi.
- Sanity check -- battery levels of 0 are interpreted as errors and do not cause auto-hibernation.
- Improved checking for presence of ACPI batteries, so that absent batteries do not cause auto-hibernation.
- Support /sys/class/power_supply interface to determine battery levels.
- Added generic support for configuration file swapping, in the form of the module "configuration-file-control". The old syslog configuration control feature is deprecated, removed from the default config file, and removed from the manual page (except for a section mentioning that it is deprecated). By default the new module has settings to support syslogd, syslog-ng and rsyslogd.
- Laptop mode was not run when the enabled/disabled state changed, but none of the other states changed. This was incorrect, because esp. the config files should be restored to their non-laptop-mode-tools variants when laptop mode tools is stopped.
- Add the module "wireless-iwl-power" for setting the power levels for Intel 3945 and 4965 wireless adapters when using the iwlwifi drivers.
- Moved CONTROL_START_STOP to start-stop-programs.conf, and the code into a separate module.
- Moved auto-hibernation settings to auto-hibernate.conf.
- Moved terminal blanking settings into terminal-blanking.conf, and the code into a separate module.
- Moved CPU frequency settings to cpufreq.conf, and the code into a separate module.
- Moved LCD brightness settings to lcd-brightness.conf, and the code into a separate module.
- Moved DPMS standby settings to dpms-standby.conf, and the code into a separate module.
- Moved hdparm functionality to hdparm module (config remains in main config file).
- Moved core laptop_mode functionality to core module (config remains in main config file).
- laptop-mode.conf(8) manual page split up by module; updated to include all modules (because some modules were not documented yet).
- All manual pages updated to correct standards: file names in italics, config values in bold.
- Converted all scripts to use /bin/sh instead of /bin/bash. This should yield performance improvements on systems that use a non-bash shell. Tested using dash on Ubuntu.
- Added support for starting/stopping services by service name to the start-stop-programs module. That's a lot more user friendly than having to create symlinks in directories.
- Added the USE_RELATIME option, which causes laptop mode tools to remount file systems using "relatime" instead of "noatime".
- Changed default maximum CPU frequency on battery to "fastest", to satisfy the "race to idle" principle.
1.36 -- 2 March 2008
- Support /sys/class/power_supply interface to determine power state.
- Fix incorrect workaround description for DPMS settings in the config file. Replaced it by a reference to the manual page.
- Change default CPU frequency governor on AC power to "ondemand". It works just as well as "performance" these days, setting the governor to "performance" just wastes a lot of power.
- Change some output redirection which was causing drive capability checking to fail in some situations. Kudos go to Christoph Lange for the fix!
1.35 -- 18 November 2007
- Set HD power management values to 254 instead of 255. Some hard drives go into "no power management" mode only on 254, while 255 yields some kind of default that you don't want.
- Listen on ACPI events ac_adapter.* instead of just ac_adapter. This will catch more events, required for some laptops.
- Give better error messages when "laptop_mode status" is called by a non-root user.
- Install laptop-mode.conf world-readable by default. It contains no sensitive information and it is required by "laptop_mode status" when it is run as a non-root user.
- Properly remove temporary file created in init script.
- Properly log output in init script.
- Fix error in lm-profiler.conf manual page.
- Move /var/run/laptop-mode-* to /var/run/laptop-mode-tools/*.
- Use blockdev --setfra instead of --setra. This is a new option in util-linux (actually, util-linux-ng) version 2.13, which makes readahead setting work on 2.4 linux kernels. On 2.6 --setfra and --setra are equivalent.
- Remove LSB dependency. If it's not present, normal console output will be generated by the init script, and it will use logger to write the output to the system log.
- Only include *.conf files in /etc/laptop-mode/conf.d. (In Debian, the .dpkg-dist versions were included as well, which could lead to very strange situations.)
- Make IPW3945 and IPW2100 power levels configurable in /etc/laptop-mode/conf.d/wireless-ipw-power.conf.
- Disable power management correctly on IPW2100 when switching to AC mode.
- Allow iwpriv and iwconfig in /usr/sbin instead of /sbin.
- Add a module that enables AC97 power saving.
- Move modules to /usr/share from /usr/lib. According to the FHS 2.3 architecture-independent files should go into /usr/share. For backward compatibility /usr/local/lib/... remains supported, but /usr/local/share is added as an option.
1.34 -- 28 May 2007
- Added support for modules. Modules should be executables, and they should be placed in /usr/lib/laptop-mode-tools/modules, /usr/local/lib/laptop-mode-tools/modules, or /etc/laptop-mode/modules. The modules are called directly from the laptop_mode script, and can use all configuration settings from the laptop-mode.conf, plus the ON_AC and ACTIVATE variables.
- Added modularized configuration file. The main configuration file still works, but in addition, configuration files in /etc/laptop-mode/conf.d are processed as well. Modules should use modularized configuration files. Module configuration files are loaded after the main configuration file.
- The IGNORE_NICE_LOAD setting would only be set for the ondemand governor, while it is also available for some other CPU frequency governors. (Debian BTS #425387)
- Silenced error message from modprobe when the CPU frequency governor was not compiled as a module. (Debian BTS #425957)
- Included support for setting IPW3945 and IPW2200 power management levels. This feature is implemented as a module, with configuration file /etc/laptop-mode/conf.d/wireless-ipw-power.conf. (Debian BTS #425551)
1.33 -- 19 May 2007
- LSB logging functions fixed. Apparently the stuff that was submitted by David was Debian-specific, so it would only work on Debian. I now fixed the "normal" script to use the real LSB functions, while the Debian diff contains the prettier Debian-only versions. Thanks to all who reported this.
- PARTITIONS didn't support wildcards. Now it does, thanks to a nice clean patch by Mikko Rapeli. (Debian BTS #394557.)
- Laptop mode state is now restored on resume for systems using pbbuttonsd, thanks to a patch from John Wright. (Debian BTS #398179.)
- The FAQ has been removed from the package, as is the HTML version of the revision history. For now, only the text version of the revision history remains. The reason for this is that previously, I generated all of these from a common source. Now, however, I can't do that anymore since the HTML must satisfy the syntax accepted by the CMS used for the web site. Perhaps it will be back some day when I generate everything using some XSLT or something.
- Fixed a bug in the DPMS standby calculation code that caused incorrect values to be calculated.
- Updated laptop mode homepage URL in /usr/sbin/laptop_mode.
- Layout tweaks in config file.
- Added ability to specify the ignore_nice_load setting for CPU frequency scaling governors. The "IGNORE_NICE_LOAD" setting specifies that background programs that have a low priority ("nice level") should not cause the CPU frequency to be increased. (You generally want this to be enabled in battery mode.) The settings are called BATT_CPU_IGNORE_NICE_LOAD, LM_AC_CPU_IGNORE_NICE_LOAD and NOLM_AC_CPU_IGNORE_NICE_LOAD. (Debian BTS #416445.)
- Fix for terminal blanking (thanks in part to Giorgio Lando). This adds a new configuration setting "TERMINALS", which should specify the device file of at least one of the virtual consoles. (The default is /dev/tty1.)
- Fix for X blanking. Determining the correct consoles and users has caused a tremendous amount of headaches, I hope this solution will work properly. At least this time I've thoroughly tested it. :-)
- Added documentation hints on how to configure apply X blanking settings on new login sessions as well.
- Updated lm-profiler to be able to handle timestamps at the beginning of kernel output lines.
- Updated lm-profiler so that it reports read and write accesses separately. This was done because read accesses usually have a very different cause (e.g., lack of prefetching) than write accesses (e.g., synchronous I/O calls).
- Added ability to set LCD brightness. The facility is extremely simple, because brightness support is very different between laptop systems. Basically, you need to set CONTROL_BRIGHTNESS=1 and then you need to specify commands to set the LCD brightness in *_BRIGHTNESS_COMMAND, and where the output of those commands should go in BRIGHTNESS_OUTPUT. Suggestions for commands are given in laptop-mode.conf.
1.32 -- 6 October 2006
- CPU frequency settings now affect all CPUs instead of just CPU #0.
- The init script output now uses LSB logging functionality. (Thanks David Härdeman!)
- Original mount options for filesystems were not correctly restored, causing mounts to look like atime when they were actually originally noatime. (Thanks Karl Tomlinson, Remy Blank!)
- Calls to "blockdev" now use the full path, in case /sbin is not in the path.
- If multiple binaries for "xset" are found, use the first one instead of applying the settings using each binary found. (Thanks Cyrill Helg!)
- Correctly figure out screen to apply DPMI settings to. (Thanks Cyrill Helg!)
- Increased default HD idle timeout to 20 seconds (from 5 seconds). (I'd appreciate some feedback on good values for this setting!)
- Changed restart, reload and force-reload behaviour to forcibly disable and stop laptop mode, remove all stored state files in /var/run, and then enable and start laptop mode again. This is supposed to make things work better when rebooting on Slackware, where users have been instructed to put "/etc/rc.d/init.d/laptop-mode restart" in rc.local.
- The FAQ now includes a "date last updated" line.
- Fixed terminal powerdown/blanking default values. (Thanks Jose!)
- Modprobe CPU frequency governor modules before attempting to set the governor.
- Don't redirect blockdev error output to /dev/null.
1.31 -- 17 April 2006
- Removed incorrect assumption that gawk's asort() cou