Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I just did a system upgrade which included my kernel. After which, my wifi has broken. After some google'ing, it seems I'm not the only person this has happened to.

RT2860 drivers don't play nicely with the 2.6-32 kernel.

So, how can I downgrade my kernel? I still have the old one in my pacman cache but I'm not sure how to go about removing the current and install the old.

I tried doing a 'pacman -Rsn kernel26[firmware|headers] but OSS (sound system) complained that it required *headers as a dependancy.

Is it safe to just install the old kernel26* (firmware, headers, base) and then remove the current? How do I go about doing this? :/

share|improve this question
    
OSS complains because it's a set of kernel drivers. replace the kernel, and you'll have to replace the drivers too. –  quack quixote Jan 2 '10 at 14:24
    
So does that mean removing OSS and downgrading that also? I've never had to downgrade packages before... I have no idea how to do this :/ –  EEEUser Jan 2 '10 at 14:33
add comment

4 Answers

This should cover how to downgrade a package with Pacman. I know that I've done it once (probably two years ago) and it worked alight (as far as I can remember).

Questions this specific to Arch are probably better asked on the Arch Linux message board or looked up in their wiki, since they are Arch specific and that's where you'll find the Arch Linux experts.

share|improve this answer
1  
I've had a look at that wiki page but it doesn't go into details on how to downgrade the kernel. It seems I'll have module issues to worry about (OSS in particular) and what packages need to be removed/re-added. I guess I'll head over to the arch forum... Just hoped to save some time signing up for a forum account when I could just shoot off a quick question here. –  EEEUser Jan 2 '10 at 15:48
    
Agreed with shf, I'm just a noobie Ubuntu user you might say :), my trick would have worked anytime in Ubuntu if --purge or aptitude remove isn't used, good luck getting your question answered –  Jeffrey Vandenborne Jan 3 '10 at 0:55
add comment

In my experience, it is safe to downgrade the kernel. I had to do it a lot lately, because of a problem with lirc and new kernel versions. My Hauppauge PVR-250 remote just doesn't work any more, after installing a recent kernel version. Actually, I just did it a few hours ago ;).

Reinstalling old kernel version:

Prerequisite: You actually have to find the binary package of the old kernel anywhere. If you don't have it, you're pretty much out of luck (if you don't want to compile the old packages yourself).

Oh my, where do I get the old package, you ask? There are a few possibilities listed in the wiki link, posted in one of the other answers. I usually stick to the possibility to search the pacman package cache (/var/cache/pacman/pkg). I also always have a recent backup of this directory, so no packages get lost, if I clear the cache.

If you have the old kernel package, you can install it by using pacman -U package-name.pgk.tar.gz. You will most likely get a dependency error after that. Every package, that is listed in this error has to be downgraded, too. So move back to the package cache, find the named package in an older version and try to install it, by calling pacman again, this time with the old kernel and the newly found package (pacman -U package-name.pgk.tar.gz other-package.pkg.tar.gz).

You will have to repeat this steps, until the pacman run succeeds. After that you should be able to reboot your system and the new (actually the old) kernel will be loaded. If pacman tells you, that it can't remove a package, that is incompatible with the old kernel, you will have to remove it manually (pacman -Rd conflicting-package.pkg.tar.gz), before installing the old kernel. But be careful with this step, it can break your system.

In my case, I have to downgrade 7 packages, including the kernel, glibc, kernel-headers, lirc and two packages of my nvidia driver.

In think, the only big flaw in Archlinux is actually the problem of downgrading. If you have cleared your package cache, it can be really hard to find the binary package you need. I've never succeeded in finding the package I needed on one of the mirror servers.

Because Archlinux is pretty much a cutting edge distro with very current packages and frequent releases, I need the downgrading feature very often. I really hope, the guys of Archlinux find a way to make this a little bit easier some time in the future.

share|improve this answer
1  
Have you tried downgrader or downgrade? aur.archlinux.org/packages.php?ID=50246 aur.archlinux.org/packages.php?ID=31937 –  slf Oct 18 '12 at 20:59
    
I've just come back here after a long time. I think downgrader didn't exist in 2010, when I wrote my answer. But to this day, I haven't been aware, that such a tool now exists. Thanks for mentioning, I will check it out, soon. Edit: Actually, at least downgrade seems to be in the AUR repositories since 2009. –  Customizer Feb 20 at 21:06
add comment

If you haven't cleaned the older kernels yet, they should still be available in the grub menu. I had this problem as well, when I installed the new kernel, my driver failed to work as well. A simple fix is to put the default option on the grub menu to the right kernel.

If you are using grub 2, this would be the way to check what the default option is.

jeffrey@ubuntu-linux:~$ head /etc/default/grub

If you change this file, run 'update-grub' afterwards to update /boot/grub/grub.cfg.

GRUB_DEFAULT=0

GRUB_HIDDEN_TIMEOUT=0

GRUB_HIDDEN_TIMEOUT_QUIET=true

You can change the grub_default value very easily, 0 would indicate the first option, 2 should be a previously used kernel.

gksudo gedit /etc/default/grub

Change the value, save it and run

sudo update-grub

If you are using an older grub version

You should edit this file: /boot/grub/menu.lst

Do the same steps, but grub_default is just plain "default" in this file. Run the update-grub script, reboot and you're fine to go.

share|improve this answer
    
My only options in Grub's menu is the default Kernel and a 'Fallback Kernel'. Booting into the fallback kernel just gives me 2.6.32 –  EEEUser Jan 2 '10 at 15:12
    
Actually, this is the Ubuntu way of doing such things. This method won't work in Archlinux. –  Customizer Mar 13 '10 at 14:50
add comment

I also have noticed that there is an issue with my rt2860 chip and the kernel 2.6.32. Running dmesg, I get the following error:

--> Error 2 opening /etc/Wireless/RT2860STA/RT2860STA.dat

I also noticed that the chip has been renamed from ra0 to wlan0. At first this change and a reboot fixed my errors, and the chip held a connection the whole time. However, for some unknown reason, it is ..... Ok, well color me confused. While typing this, the internet suddenly connected on my other computer. It is holding connection, and well, I am confused.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.