Recovering from a Failed AMD Catalyst 12.6 on the Acer Aspire One 722

With the AMD Catalyst 12.6 video driver available, it seemed to be a good idea to give it a try on the Acer Aspire One 722 netbook to find out if the Ubuntu 10.10 suspend and hibernation issues were resolved.

‘Twas not to be.

Catalyst 12.4 worked better. Even after installation in Ubuntu 10.10 64-bit running kernel 3.4.0, the 12.6 driver refused to work and only basic video was possible. However, the real challenge was fixing the video and restoring the 12.4 driver. This turned out to be much more involving than originally planned because booting the netbook always produced a solid screen of gray and green pixels even if recovery mode was chosen from the GRUB2 boot menu.

What follows are the steps I took to install Catalyst 12.6 and the steps to remove it and restore Catalyst 12.4.

Starting

The netbook already had a fully functional Ubuntu 10.10 64-bit OS with kernel 3.4.0 and Catalyst 12.4. It was running fine, so there was no need to upgrade the video driver besides curiosity. Would it fix the suspend/hibernate freeze issue? No…but that discovery came later.

Installing Catalyst 12.6

1. Switch to console mode

 Ctrl+Alt+1

2. Stop gdm

 sudo service gdm stop

3. Uninstall 12.4

 cd /usr/share/ati
 sudo sh ./fglrx-uninstall.sh <-- This takes some time. Be patient.

4. Install 12.6 (use –force option)

 sudo sh ./amd6.run --force

The lengthy Catalyst 12.6 file was renamed to amd6.run for easier typing.

Finished with errors.


5. Reboot

The video will not work yet. This also happened with the 12.4 driver, but modifying two C source files makes the 12.4 driver work. Perhaps doing the same with the 12.6 driver will work?

6. Modify two source files

http://forums.opensuse.org/english/get-technical-help-here/tumbleweed/475575-warning-kernel-3-4-amd-catalyst-12-4-not-compatible.html

This trick works for Catalyst 12.4, but not for 12.6. Editing the files had no effect.
7. kcl_ioctl.c

sudo gedit /lib/modules/fglrx/build_mod/kcl_ioctl.c
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 */
220
221 DEFINE_PER_CPU(unsigned long, old_rsp);
222 
223 void* ATI_API_CALL KCL_IOCTL_AllocUserSpace32(long size)

8. firegl_public.c

sudo gedit /lib/modules/fglrx/build_mod/firegl_public.c
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_possible_cpu(p)
4158 {
4195 KCL_DEBUG1(FN_FIREGL_KAS,"Setting initial execution level for CPU # %d\n", p);

9.

cd /lib/modules/fglrx/build_mod
sudo sh make.sh

10.

cd /lib/modules/fglrx
sudo ./make_install.sh

At this point, the video driver should be installed.

11. Reboot

12. Go to Appearance Preferences > Visual Effects tab, and select the Extra radio button. Normally, this works, but not with 12.6.

Result?

Did not work. Desktop effects did not activate, and opening Preferences > Monitor produced this error dialog:

Reinstalling 12.4

After several hours and many additional 12.6 installation attempts without success, the best course of action was to restore the system to a working state.

1. Switch to console mode

 Ctrl+Alt+1

2. Uninstall 12.6

cd /usr/share/ati
 sudo sh ./fglrx-uninstall.sh

Error message ignored.

NOTE: Do not reboot yet. Doing so causes the netbook to freeze with a screen of gray pixels upon the next reboot. This is very hard to fix because it happens even when booting into runlevel 1 console mode using the GRUB2 recovery option.

The solution was to hold the right shift key on the keyboard during system boot to open the GRUB2 menu. The only setting the worked was the original 2.6.35-22 recovery boot option (it was still present). This booted Ubuntu into a basic mode that asked to use basic video for this session only. Choosing “run in failsafe graphics mode,” I was then able to install the Catalyst 12.4 video driver that corrected the freezing gray pixels.

 

3. Stop gdm

sudo service gdm stop

4. Install 12.4

sudo sh ./amd4.run --force

The lengthy Catalyst 12.4 file was renamed to amd4.run for easier typing.

5. Reboot

Video works, but desktop effects do not. This is normal.

6. Modify files

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

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 */
220
221 DEFINE_PER_CPU(unsigned long, old_rsp);
222 
223 void* ATI_API_CALL KCL_IOCTL_AllocUserSpace32(long size)

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

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_possible_cpu(p)
4158 {
4195 KCL_DEBUG1(FN_FIREGL_KAS,"Setting initial execution level for CPU # %d\n", p);

7.

cd /lib/modules/fglrx/build_mod
sudo sh make.sh

8.

cd /lib/modules/fglrx
sudo ./make_install.sh

At this point, the video driver is installed.

9.
Reboot

10.
Enable desktop effects and Compiz. System returns to working condition as before. If using the RAT7 mouse, update xorg.conf with the RAT7 section.

Done! The netbook is now “back to normal” with proper video using the Catalyst 12.4 driver.

Advertisements

, ,

  1. Compiling Kernel 3.4.5 « Delightly Linux
  2. Acer Aspire One 722 Netbook Update « Delightly Linux
  3. Kubuntu 12.04 on the Aspire One 722 Netbook « Delightly Linux

Leave a Reply

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

WordPress.com Logo

You are commenting using your WordPress.com 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: