7

I'm trying to update my kernel to the latest version. apt is updated and upgraded, and rpi-update finishes without error. However when I reboot, I'm still running the old kernel. Any ideas?

$ uname -a
Linux raspberrypi 3.10.26+ #2 Fri Jan 17 22:13:59 EST 2014 armv6l GNU/Linux

$ sudo rpi-update
 *** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom
 *** Performing self-update
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  7811  100  7811    0     0  18023      0 --:--:-- --:--:-- --:--:-- 26388
 *** Relaunching after update
 *** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom
 *** We're running for the first time
 *** Backing up files (this will take a few minutes)
 *** Backing up firmware
 *** Backing up modules 3.10.26+
 *** Downloading specific firmware revision (this will take a few minutes)
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 23.0M  100 23.0M    0     0  1123k      0  0:00:21  0:00:21 --:--:-- 1385k
 *** Updating firmware
 *** Updating kernel modules
 *** depmod 3.12.36+
 *** Updating VideoCore libraries
 *** Using HardFP libraries
 *** Updating SDK
 *** Running ldconfig
 *** Storing current firmware revision
 *** Deleting downloaded files
 *** Syncing changes to disk
 *** If no errors appeared, your firmware was successfully updated to 6413da9f74871b239c5bd27d7edf90a8afeab363
 *** A reboot is needed to activate the new firmware

 $ sudo reboot

==============

$ uname -a
Linux raspberrypi 3.10.26+ #2 Fri Jan 17 22:13:59 EST 2014 armv6l GNU/Linux

If it makes any difference, I'm running Raspbian (Wheezy) in QEMU on a Mac.

  • Have a look in the first partition, mounted on /boot when the system is running. Check what file is pointed to by kernel= in config.txt, and what .img files are there (those are all kernels). – goldilocks Jan 17 '15 at 18:48
  • @goldilocks: I don't have kernel or initramfs configuration settings in /boot/config.txt. I tried adding both pointing to the correct versions, and got the same result. – Justin Ramos Jan 18 '15 at 13:52
  • I'm starting to suspect that QEMU is doing something I'm not aware of, but I'm at a loss still. – Justin Ramos Jan 18 '15 at 13:53
  • Yeah. The QEMU emulator perhaps does not exactly mirror the pi's actual boot process. I haven't used it. I guess you have to find out where it loads a kernel from. I get the impression glancing around that in fact QEMU can't run the normal pi kernel, it must use a further tweaked version (in which case rpi-update will be useless for most purposes; it probably doesn't use the firmware either). – goldilocks Jan 18 '15 at 15:21
  • Pretty sure you're correct. If you'd like to answer as such, I'll accept. – Justin Ramos Jan 18 '15 at 16:21
1

The QEMU emulator does not exactly mirror the pi's actual boot process, likely because a lot of the cpu and gpu on the pi are not open source, and the kernel on the pi, is loaded by the gpu first. Because of the closed source of the gpu it is nearly impossible for the kernel that is being run on the gpu to be run the exact same way in an emulator. Furthermore because of its tweaked kernel rpi-update becomes relatively useless as the kernel version is determined by the QEMU team, and it is relied upon them to make updates.

0
  1. Old versions of QEMU did not emulate the Raspberry Pi , but a "Versatile PB" board. A special , externally located "Versatile" kernel file is needed to boot properly from official image files.

  2. New versions (since 2.6) are better , but still do not mimic the GPU-based boot process and have to be pointed to the official Pi kernel file along with an ext4 rootfs file. Therefore modifications to the /boot directory ( the first SD partition on real Pis) are irrelevant to QEMU.

One could modify rpi-update to detect this , but one would need to use an mechanism to place/write files from inside QEMU on the host system.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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