I've updated my rPi to the latest kernel/firmware using rpi-update and my Bluetooth dongle stopped working. I found this to be a known bug in 3.10.* branch of the kernel. Through tinkering and fiddling (I really had spent too much time on this) I was able to restore my rPi to what I think was the state before the update. Although it must not be quite the same since my dongle still is very temperamental. I suspect that I may have firmware and kernel mismatch but I don't know how to check this.

pi@raspberrypi ~ $ uname -a
Linux raspberrypi 3.6.11+ #557 PREEMPT Wed Oct 2 18:49:09 BST 2013 armv6l GNU/Linux 

pi@raspberrypi ~ $ sudo /opt/vc/bin/vcgencmd version
Oct 18 2013 16:07:43
Copyright (c) 2012 Broadcom
version dbda126981820ea5681263042435388dddf65131 (tainted) (release) 

My question is how do I go from this state to the latest in kernel 3.9.* branch and how do I make sure that the firmware matches that kernel version?

I suppose I could always download and build the kernel, but there must be some civilised apt-get approved way.

It pains me that I am spending so much time on this unfortunate regression bug rather than working on fun stuff. Please help.


3 Answers 3


From rpi-update https://github.com/Hexxeh/rpi-update :

To upgrade/downgrade to a specific firmware revision, specify its Git hash (from the https://github.com/Hexxeh/rpi-firmware repository) as follows:

sudo rpi-update fab7796df0cf29f9563b507a59ce5b17d93e0390


You might be able to find out the firmware commit Git hash using https://repo.xecdesign.com/revisions.html. Just Ctrl-F search your firmware version hash to find out the corresponding rpi-firmware commit which you can then revert to using rpi-update <hash>.

The above website seems to be automatically generated. See https://github.com/raspberrypi/firmware/issues/418


As others have suggested one way is to use rpi-update with a git hash (e.g. to get kernel-3.18.16 use sudo rpi-update 33a6707cf1c96b8a2b5dac2ac9dead590db9fcaa). But how do you know which hash to use?

Since Github does not provide for searching of commit logs/hashes you need to either go through the commit log manually, or checkout the repo locally and search for it in the logs - as discussed in this question. You can check the log for a specific commit by appending the hash to this URL like so:


It is also possible to reinstall certain specific kernel versions using apt-get or aptitude. You can search for available versions using:

sudo aptitude search linux-image

And to install one e.g.

sudo aptitude install linux-image-3.18.0-trunk-rpi

Also once you have a number of different kernel versions installed on your card you can switch between them using the kernel parameter in the boot configuration file /boot/config.txt. You may also need to copy/install the relevant kernel files into the /boot partition.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.