Thursday, 31 May 2012 20:37

Linux Hibernation on Acer Aspire One 522

Written by 

If you're new to installing / running Linux on the Acer Aspire One 522, check out the Ubuntu documentation page on the topic first.  It covers a lot of what does and does not work, as well as workarounds to a few issues.  Virtually all of this information also applies to the Acer Aspire One 722 as well.

Ethernet jack on AO522

I've found a way to resolve the network and hibernation problems without the old sloppy workarounds.  I'll start with some background, but scroll straight to the bottom if you just want to dive into the solution.

 

 

Background

When I first acquired this machine, I installed Ubuntu 10.10, made minor tweaks, and had pretty much everything working with very little effort, except for some ridiculous hackery on the AMD/ATI supplied drivers which didn't recognize the graphics chip yet.  For months, I had a great system that worked perfectly in Windows and Linux.  After allowing normal Ubuntu system updates, either a kernel or driver modification stopped my suspend and hibernate from working anymore, and various networking issues crept up.  Every subsequent installation of newer Ubuntu releases yielded no better behavior... the card reader driver was recognized from the start rather than having to be installed separately (a minor improvement), but nothing else really improved.  After trying 12.04 LTS and encountering all the same problems, I got creative.

On the Ubuntu documentation page linked at the top here, I noticed that the trick with forcing Network Boot as first option in the BIOS was to remedy a problem that happens under a few combined factors:

  • System is running a newer Linux Kernel
  • Machine is connecting to a wireless network
  • Ethernet jack is unplugged
  • Alternative solution to prevent the freeze involves blacklisting the Ethernet driver (atl1c)
  • The blacklisting of the Ethernet driver also prevents freezing right after system resume from hibernation

So, my guess was that our Ethernet driver, atl1c, could be the real culprit for this whole problem.  I started hunting for atl1c replacements, and found the alx driver project.  The alx driver makes use of much more recent code produced by QualComm for the Atheros chips, including our AR8152.

So, I went hunting for the best way to acquire and install the new alx driver and found the instructions here and the most recent release here.  I needed to do a little more work to effectively blacklist atl1c, via these Debian blacklisting instructions.  Finally, I needed to follow these instructions to enable hibernation as an OS option, because Ubuntu introduced a policy blocking it in 12.04.

I can now hibernate my AO522 while leaving the ethernet driver enabled, and Network Boot can be the last item in the BIOS boot sequence.

Solution

Here's the combined instructions to make the corrections on a fresh Ubuntu 12.04 installation.

Download compat-wireless-2012-05-10-p.tar.bz2 or the latest available "-p" file from linuxwireless.org's Downloads section.

Extract the file in your home directory and open a terminal into the new directory that was created.

Issue these commands:

sudo rmmod atl1csudo echo blacklist atl1c > /etc/modprobe.d/blacklist-atl1c.confsudo depmod -aesudo update-initramfs -u./scripts/driver-select alxmakesudo make install

At this point, you should be using the new drivers, the old drivers should be banished.  Now 12.04 users need to write a policy file to enable hibernation in the various power menus, etc.

With root permissions, author

/etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla with the following content:

[Re-enable hibernate by default]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

A reboot may be required after placing the file.  Now you can hibernate as well as boot without setting Network Boot as the first item in the BIOS Boot Sequence!

Last modified on Friday, 10 January 2014 18:55
More in this category: « Viruses...