Installing Kernel 3.4.0 in Ubuntu 10.10 on the Acer Aspire One 722

Linux kernel 3.4.0 was released a few days ago begging for installation on the Acer Aspire One 722 netbook. Does it work? How does it perform?

This project was more involving than expected because the AMD Catalyst 12.4 drivers needed for the netbook do not work with kernel 3.4.0. Installing kernel 3.4.0 was the easy part and went smoothly, but reinstalling the proprietary ATI video drivers required extra time and effort.

However, the result is an Aspire One 722 netbook running Ubuntu 10.10 64-bit with kernel 3.4.0 and fully working graphics using the Catalyst 12.4 proprietary drivers.

Warning: Before upgrading the kernel, backup all personal data to an external USB drive, network drive, or similar device. The kernel is the core of Linux, and any unexpected problems might make the system unusable. While updating the Linux kernel in Ubuntu is usually a simple, straightforward process, always be safe and take precautions.

Also, if your system is running fine and you are happy with it, then keep what you have and avoid the risk.

What is New in Kernel 3.4.0?

Rather than repeating what has been said many times already, have a look at for a briew overview of the main points.

Kernel 3.4.1 is newer. Why not use that instead?

Because it does not install in Ubuntu 10.10. (This refers to the .deb packages, not the kernel source.) When browsing the mainline kernels, notice that there are two names: precise and quantal. The precise kernels consist of three packages installed in this order (64-bit):

  1. linux-headers___all.deb
  2. linux-headers___amd64.deb
  3. linux-image___amd64.deb

The quantal kernels consist of four packages installed in this order (64-bit):

  1. linux-headers___all.deb
  2. linux-headers___amd64.deb (?) Does not install without libc6 2.14
  3. linux-image___amd64.deb
  4. linux-image-extra___amd64.deb

As of this writing, kernel 3.4.1 is a quantal release. Why is this a problem? All packages install in Ubuntu 10.10 64-bit except for one: linux-headers___amd64.deb. This file requires libc6 version 2.14 or newer. Ubuntu 10.10 is limited to libc6 version 2.12.1, and there is no way to update libc6 easily. Because of this, the 3.4.1 quantal kernel will not fully install in Ubuntu 10.10 64-bit.

What happens if you try to install kernel 3.4.1?

Kernel 3.4.1 will install without linux-headers___amd64.deb and the system will run without it, but source files will not compile. Linux needs those 3.4.1 amd64 headers or else compile errors will result.

This is a problem when updating the video drivers because the proprietary video drivers must be compiled for each kernel upgrade. Since 3.4.1 quantal linux-headers___amd64.deb is missing, the proprietary video drivers cannot be installed. The result is a bare-bones, slow graphics system. It is better to stick with an older precise kernel to get responsive, working graphics.

“Simple! Just upgrade libc6 to the latest version!”

It is not so simple. libc6 is an essential part of the Linux system, and there is no easy way to remove it or upgrade it manually like other programs allow. Synaptic protects libc6 and its related files. Downloading updated libc6 .deb packages does not work since the package manager refuses to install them due to required dependencies and the risk of breaking existing dependencies.

Installing the Kernel

Step 1. Download the AMD Catalyst 12.4 driver for the Aspire One 722 Radeon HD 6290 APU

Driver download:

Copy this file to your home on the netbook and rename it to something simple like since you must type it at the command line later.

Step 2. Download kernel 3.4.0

Go to, and download the following three files from the 3.4-precise directory. (Do not use quantal. It will not install in Ubuntu 10.10 due to the outdated libc6.)

  1. linux-headers___all.deb
  2. linux-headers___amd64.deb
  3. linux-image___amd64.deb

If using a 32-bit system, choose the i386.deb packages instead of amd64.deb.

Step 3. Install kernel 3.4.0

Install all three file in this order:

  1. linux-headers___all.deb
  2. linux-headers___amd64.deb
  3. linux-image___amd64.deb

Installing them out or order will only produce dependency errors and not damage your system.

Step 4. Update GRUB2

Open a terminal (CTRL + ALT + T), and enter this line to update the bootloader:

sudo update-grub

Step 5. Reboot

This is necessary because we are updating the kernel. Do a complete system restart, not a simple logout or X restart.

When the system restarts, the new 3.4.0 kernel should be running. To test it, open a terminal and enter uname -a. Something similar to the following line should display the current running kernel:

Linux mynetbook 3.4.0-030400-generic #201205210521 SMP Mon May 21 09:22:02 UTC 2012 x86_64 GNU/Linux

If you see this, then, congratulations! It works! Now, onto the video driver installation.

Installing the Catalyst Proprietary Video Driver

Step 1

Open a terminal and go to the directory containing the AMD Catalyst driver we downloaded earlier. Did you rename it to something simple? If so, you are going to thank yourself now. Enter this command to install the driver:

sudo sh ./

If the installation refuses to install, uninstall any existing Catalyst driver by navigating to /usr/share/ati in a terminal and entering,

sudo sh ./

This might not work, so to be certain that the 12.4 files are installed, force installation with,

sudo sh ./ --force

The 12.4 driver will not install completely if it finds that the 12.6 beta driver is present, so the –force option will override that.

There will most likely be an error message in the log file with a line like this near the bottom:

[Error] Kernel Module : Failed to compile kernel module - please consult readme.

Others are having this issue, and it involves the proprietary video driver. The 12.6 beta driver produces the same error and has no effect. However, a thread on shows how to resolve this issue and make the Catalyst 12.4 driver work with kernel 3.4.0. The steps are repeated here for simplicity and with clarification.

Step 2. Modify kcl_ioctl.c

Open kcl_ioctl.c in gedit with root privileges.

sudo gedit /lib/modules/fglrx/build_mod/kcl_ioctl.c

Near the end of the file around line 216, locate this section of code:

216 /** \brief Allocate user space for 32-bit app making 64-bit IOCTL
217 * \param size [in] Number of bytes to allocate
218 * \return Pointer to allocated memory
219 */ 
223 void* ATI_API_CALL KCL_IOCTL_AllocUserSpace32(long size)

Between the closing comment at line 219 and the next line, insert this line:

DEFINE_PER_CPU(unsigned long, old_rsp);

so that the code area now looks like this:

216 /** \brief Allocate user space for 32-bit app making 64-bit IOCTL
217 * \param size [in] Number of bytes to allocate
218 * \return Pointer to allocated memory
219 */
221 DEFINE_PER_CPU(unsigned long, old_rsp);
223 void* ATI_API_CALL KCL_IOCTL_AllocUserSpace32(long size)

All we did is insert an extra line of code. Nothing else needs to be done here, so save and close the file.

Step 3. Modify firegl_public.c

Open firegl_public.c in gedit with root privileges.

sudo gedit /lib/modules/fglrx/build_mod/firegl_public.c

This file is much larger, so go to line 4153 and locate the section of code that looks like this:

4153 static int kasInitExecutionLevels(unsigned long level_init)
4154 {
4155 unsigned int p;
4156 KCL_DEBUG5(FN_FIREGL_KAS, "%d\n", level_init);
4157 for_each_cpu_mask(p, cpu_possible_map)
4158 {
4195 KCL_DEBUG1(FN_FIREGL_KAS,"Setting initial execution level for CPU # %d\n", p);

What we are interested in is line 4157 that reads,

for_each_cpu_mask(p, cpu_possible_map)

This line will have extra arguments when first opened, but change it to this:


That is all here. Save the file and close it.

Step 4.

In a terminal, go to the /lib/modules/fglrx/build_mod directory.

cd /lib/modules/fglrx/build_mod

Run the make script with this command.

sudo sh

Lines of text will scroll by, but one line near the end should read build succeeded with return value 0 to indicate that the build was successful.

Step 5.

In the same terminal (or a new one), navigate to the /lib/modules/fglrx directory.

cd /lib/modules/fglrx

Run the script.

sudo ./

NOTE: If you get an error saying that fglrx is in use, then switch to a full-screen terminal with Ctrl+Alt+F1, quit the gdm, and run the install script again.

1. Ctrl+Alt+F1
2. log in
3. sudo service gdm stop
4. cd /lib/modules/fglrx
5. sudo ./

The driver should install without errors.

Step 6. Reboot

At this point, the 12.4 proprietary video drive is installed, and a system reboot is required.

Step 7. Enable desktop effects

Now, the test! In Ubuntu, open the Appearance Preferences dialog, go to the Visual Effects tab, and select the Extra radio button to enable the desktop effects.

After a few moments, you should see shadows around windows. If so, then the video drivers are now working. Choose to keep the settings and close the dialog.

Step 8. Activate Compiz Effects

The Compiz effects reset upon each video driver installation, so open the CompizConfig Settings Manager (System > Preferences > CompizConfig Settings Manager) and enable the effects you wish to use, such as the desktop cube.


The netbook runs as well with kernel 3.4.0 in Ubuntu 10.10 64-bit as it did with all previous kernels tested, and there is little noticeable difference in speed. Linux is reliable as always, and no problems manifested.

The video runs properly as well. Full screen videos plays smoothly, desktop effects are enabled, and Compiz effects run well.

Suspend and hibernate still do not work in Ubuntu 10.10 because this seems to be a fault with the proprietary Catalyst video driver.

Why Bother Upgrading to 3.4.0?

Because it exists. Everyone wants the latest whiz-bang thingamajig, and this applies to kernels too! Besides, newer kernels usually contain updates, bug fixes, and improved features as well.

What about NVIDIA proprietary drivers?

NVIDIA drivers install as quick and easy as past NVIDIA drivers. Why AMD Catalyst drivers cannot be this simple is a mystery. NVIDIA has always offered better Linux support, and it continues to shine.

The NVIDIA and 3.4.0 kernel combination was tested on a separate system to see if the NVIDIA driver would work with the new kernel. in Ubuntu 10.10 64-bit performs brilliantly with kernel 3.4.0 without any problems. Neither is there any need to modify C source code.

The driver installation failure seems to be an issue with the AMD Catalyst driver. It is incompatible with kernel 3.4.0. Until the manufacturer resolves the issue in a future release, there is little that can be done aside from editing the C source code as shown above. It might be tedious, but at least it works.


At first glance, installing kernel 3.4.0 seems like it would be the same process as installing previous kernels. However, the AMD Catalyst driver catches the unsuspecting user by surprise! The video driver must be reinstalled for each kernel upgrade, but the Catalyst 12.4 driver is incompatible with kernel 3.4.0. However, the video driver will work if changes are made to two C source files.

Though requiring extra steps to make the video work, the fruits of this labor are sweet: An Acer Aspire One netbook running Ubuntu 10.10 64-bit with kernel 3.4.0 and the latest Catalyst video driver.

, , , ,

  1. #1 by factualfantasy on June 10, 2012 - 2:53 AM

    Reblogged this on Complexity Reduction and commented:
    Let’s how things go on other computers.

  2. #2 by Brian Candler on July 10, 2012 - 6:45 PM

    Do you realise ubuntu 10.10 went end-of-life on April 10th, 2012? You are now without any security updates. Much better to update the whole machine to 12.04, which will be supported for 5 years. The update has to go 10.10->11.04->11.10->12.04, so a reinstall from scratch will probably be easier and safer.

    • #3 by delightlylinux on July 13, 2012 - 3:08 PM

      Yes, Ubuntu 10.10 is no longer supported and continually issues an expired popup upon updating.

      It would be nice to upgrade (and I have tried them all), but the newer Linux versions since Unity and GNOME3 make Linux computers harder to use, not easier, in my experience. I can do things faster and accomplish more in less time with Ubuntu 10.10 GNOME2 than I can with Ubuntu 12.04 and Unity or GNOME3. Not because of a resistance to change, but because GNOME2 has a better design without getting in the way of using the computer.

      Newer is not always better.

      An upgrade is inevitable at some point because the Precise mainline kernel is stuck at v3.4 in favor of Quantal, and too many programs require libc6 v2.14 or higher. When it comes time to kiss my beloved Ubuntu 10.10 goodbye, I’ll probably drop Ubuntu entirely and use Xubuntu or Linux Mint MATE if Canonical still insists on shoving Unity down our throats.

      I would rather use Windows 95 than Unity or GNOME3.

  3. #4 by johannes on July 16, 2012 - 12:07 PM


    I have some problems installing the Catalyst 12.4 with the Linux Kernel 3.4.0 under Ubuntu 12.04. First of all, thank you for the detailed description. Unfortunately it did not work for me. The installation of the Catalyst driver simply does not generate the described folder “/lib/modules/fglrx”.

    Anyhow the fglrx-install.log shows something like

    [Error] Kernel Module: Failed to build fglrx-8.961 with DKMS
    [Error] Kernel Module: Removing fglrx-8.961 from DKMS

    so my guess is, that the “/lib/modules/fglrx” folder is removed as the installation failed. Do you have any suggestions how to avoid this?

    Thanks a lot, cheers.

  1. Compiling Kernel 3.4.5 « Delightly Linux
  2. Acer Aspire One 722 Netbook Update « Delightly Linux

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: