javispedro.com

Acer TimeLineX 5820TG

My new laptop! Second thing I did is to repartition the drive and install Gentoo, kernel 2.6.35. I will keep updating this with the nuisances I find and possible fixes.

The laptop is overall nice. It gets quite hot and noisy when on full power (ATI card, max CPU…) but is quite quiet when forced to a lower performance setting, and the 8 battery life mark is real (as long as you do not use the laptop for anything :) ). I can get 4-5 hours easily. What they don’t tell you is that it’s also 3-4 hours for a full charge.

Had no problems with brightness, power button, Fn+F4, lid switch, rfkill / Fn+F3 (module acer-wmi), Fn+F5 (xev reports XF86Display), Fn+F6 (backlight off), Fn+F7 (touchpad off), Fn+F8 (mute), wireless (ath9k), ethernet (also atheros), …

I had problems with:

ACPI: Battery

After boot the kernel wasn’t able to show battery charge and details.

There seems to be a patch here. From the looks of it, it’ll never make the kernel. Applied it blindly and works. I’d like to research the issue some more.

Seems that the EC device has a _REG method. This method must be called by the operating system to notify the availability of the “EmbeddedController” operation region or the firmware will return bogus values for most of the EC device methods. However, there’s NO EmbeddedController operation region declaration in the entire disassembled ASL!! Hmpf. At least I now understand what the patch does (manually run the _REG method even if there’s no EmbeddedController OperationRegion to notify availability of).

I wonder what Windows does here.

Fixed in BIOS 1.18. They added a “NOPP” EmbeddedController OperationRegion ;).

ACPI: Suspend

Suspend worked, but resume crashed consistently with original 1.04 firmware. Updating BIOS to 1.15 fixed it.

Sometimes after a resume keyboard/touchpad will stop working after a few seconds. i8042.reset=1 in kernel cmdline seems to ease this but from reading the code I don’t think it’s related at all. Hm. Also, magic sysrq seems to always work.

HDD: Agressive parking

Any “advanced power management” setting other than “disabled” will cause the drive to park heads after a mere 5 seconds of inactivity, causing a frequent clicking noise and astronomically increasing the “Load Cycle Count” SMART attribute.

Since the stock Windows 7 also shows this behaviour, I’m going to leave with the default aggressive setting. I emailed Western Digital about this; they told me that this is a “feature” that prevents damage to the drive when the laptop falls down, etc. If the drive dies an early death they are surely going to hear from me.

Update: The HDD died exactly 1 year and 8 months afterwards. I should have called that Western Digital guy and wasted a few more hours of my life trying to file a warranty claim but obviously I didn’t. Score one for evil corporations, planned obsolescence, and defective by design products.

I replaced it with an SSD. Had to cut a small rubber band that prevented the SSD from fitting in the laptop.

Switchable graphics

Worked flawlessly with 2.6.35’s vgaswitcheroo. You need both the Intel & Radeon DRM with mode-setting enabled. Intel HD Graphics currently have working 3D acceleration; however, there’s no 3D acceleration support for the Radeon card, only KMS. There’s NO power management support for the Radeon card either, so better disable it as soon as you can!

The BIOS Setup has two modes only: “Switchable” or “Discrete”. No “integrated only” mode, but fortunately with vgaswitcheroo you can pretty much get the same result.

Note that the proprietary driver (fglrx) does not work in “Switchable” mode. I guess it’ll will never work since ATI even went to code a specific “switchable graphics is not supported” check & error message in their drivers. I’ve not tested fglrx in “Discrete” mode but some reports say it works.

Eject button

The eject button didn’t work. Weird, since it works under GRUB/real mode. My guess is that some ACPI method disables it – maybe when “Windows 2009” is detected, or whatever.

Fortunately, there’s an application in the Windows partition that seems to receive eject button events as it likes to show popup balloons when this happens (Acer Optical Drive Power Management), so the events are reported to the operating system somehow. A quick grep revealed this was done via ACPI WMI, and I already have a working kernel module. Note that this wasn’t done in a clean-room fashion; check your local legislation before even looking at the code! Also, you need the above battery/EC _REG fix.

It’s not dissimilar to other WMI event handling LKMs (Dell, etc.) – only difference is that you have to call an extra WMI method before being able to receive events.

Fixed in BIOS 1.18. Kernel module is no longer needed unless you want to power on/off the unit from Linux; the eject button works as good without it.

Want to report extra problems, or share more solutions? Feel free to comment.