Comment 43 for bug 989191

Revision history for this message
Simon (eierfrucht) wrote :

I have a regular UX21E. I am using a modified BIOS (rev. 214) and a custom DSDT table. I could modify your BIOS and make you a fixed DSDT, but that poses a risk of bricking the device. I could send you instructions to modify it on your own as well.

There's nothing 'criminal' in the vanilla DSDT of my UX21E, it just has a few dozen non-critical errors which is quite normal for an ASUS device. I just corrected them and forced a Windows 7 signature so, regardless of the operating sytem actually installed, ACPI employs preferences optimized for Windows 7 (UX21E is officially stated to work ONLY with Windows 7, so I was having suspicions that a different, and maybe actually broken, set of ACPI preferences was used because I simply don't know how Ubuntu introduces itself to the BIOS -- except for the fact that it never declares itself Linux for compatibility purposes) Specifying the lines 'Windows 2009' acpi_os_name=’Windows 2009' in the grub command line should work to the same effect. Please note that the ' symbol is sometimes rendered incorrently on this site, so plain copy-pasting from the web page may fail to work.

As for my custom BIOS, I simply used the AMIBCP utility to unhide a number of hidden BIOS options, then used the UBU utility (ver. 1.37) to update the CPU microcode. Then I flashed the modified BIOS with AFUDOS and played around with the hidden BIOS settings a bit. I enforced Native PCI-E control and Native ASPM (this is designed for newer OSes like Windows 7 and later and enables the OS to reconfigure ASPM in all sorts of ways) However, it seems that putting the 'aspm_pcie=force' in the grub command line should work to the same effect, 'sudo tlp-stat' should say that a 'powersave', not a 'bios defaults' ASPM policy is engaged.

I also fully disabled Sandy Bridge Turbo Boost (also achievable with CPU_BOOST_ON_BAT=0 in the TLP config) and changed a few other default BIOS settings, none of which seemed to share any direct connection to the problem.

Finally, I updated my Intel Management Engine firmware using a DOS live USB stick. Intel ME lives inside the same flash chip that contains the BIOS, however it is not affected by any BIOS updates. It utilizes a different region of the flash memory which never gets touched during a BIOS update.

What you are experiening reminds me of a well-known problem of many Zenbooks: highest tolerable CPU temperature is different for BAT and AC modes. A hot CPU will switch off automatically as soon as the device enters battery mode. This issue was fixed in the latest BIOS revision for all Zenbooks. But maybe you need to reset CMOS (i.e. unplug that really super tiny CMOS battery) for this kind of change to kick in.

If it's not the case, please post a link to the latest official BIOS for your device on the ASUS site. Maybe the UX21 Ultra Slim you are talking about is exactly the same thing as my UX21E and you could use my BIOS and DSDT tables.

Also check the output of 'sudo tlp-stat', if there is a really huge difference between 'energy_full_design' and 'energy_full' values in the battery stats, you just happen to have a bad battery. Even for a badly worn out battery, the difference shouldn't be above 30%.

Finally, you may want to do manual battery calibration. http://www.howtogeek.com/172271/how-to-calibrate-your-laptops-battery-for-accurate-battery-life-estimates