Kernel wird unter QEMU nicht auf Raspbian aktualisiert

7

Ich versuche, meinen Kernel auf die neueste Version zu aktualisieren. aptwird aktualisiert und aktualisiert und rpi-updateendet ohne Fehler. Beim Neustart wird jedoch immer noch der alte Kernel ausgeführt. Irgendwelche Ideen?

$ 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

Wenn es einen Unterschied macht, führe ich Raspbian (Wheezy) in QEMU auf einem Mac aus.

Justin Ramos
quelle
Schauen Sie sich die erste Partition an, die /bootbei laufendem System bereitgestellt wird. Prüfen Sie, welche Datei auf die gezeigt wird durch kernel=in config.txt, und welche .imgDateien vorhanden sind (das sind alle Kerne).
Goldlöckchen
@goldilocks: Ich habe keine Kernel- oder Initramfs-Konfigurationseinstellungen in /boot/config.txt. Ich habe versucht, beide auf die richtigen Versionen zu verweisen, und habe das gleiche Ergebnis erzielt.
Justin Ramos
Ich fange an zu vermuten, dass QEMU etwas tut, von dem ich nichts weiß, aber ich bin immer noch ratlos.
Justin Ramos
Ja. Der QEMU-Emulator spiegelt möglicherweise nicht genau den tatsächlichen Startvorgang des Pi wider. Ich habe es nicht benutzt. Ich denke, Sie müssen herausfinden, woher ein Kernel geladen wird. Ich habe den Eindruck, dass QEMU den normalen Pi-Kernel nicht ausführen kann, sondern eine weitere optimierte Version verwenden muss (in diesem Fall rpi-updateist es für die meisten Zwecke nutzlos; wahrscheinlich wird auch die Firmware nicht verwendet).
Goldlöckchen
Ich bin mir ziemlich sicher, dass du Recht hast. Wenn Sie als solche antworten möchten, werde ich akzeptieren.
Justin Ramos

Antworten:

1

Der QEMU-Emulator spiegelt den tatsächlichen Startvorgang des Pi nicht genau wider, wahrscheinlich weil ein Großteil der CPU und GPU auf dem Pi nicht Open Source sind und der Kernel auf dem Pi zuerst von der GPU geladen wird. Aufgrund der geschlossenen Quelle der GPU ist es nahezu unmöglich, dass der Kernel, der auf der GPU ausgeführt wird, in einem Emulator genauso ausgeführt wird. Darüber hinaus rpi-updatewird der Kernel aufgrund seines optimierten Kernels relativ nutzlos, da die Kernelversion vom QEMU-Team festgelegt wird und sie bei Aktualisierungen darauf angewiesen sind.

Mohammad Ali
quelle
0
  1. Alte Versionen von QEMU emulierten nicht den Raspberry Pi, sondern ein "Versatile PB" Board. Eine spezielle, extern angeordnete "Versatile" -Kerndatei ist erforderlich, um ordnungsgemäß von offiziellen Image-Dateien zu starten.

  2. Neue Versionen (seit 2.6) sind besser, ahmen jedoch den GPU-basierten Startvorgang nicht nach und müssen zusammen mit einer ext4-Rootfs-Datei auf die offizielle Pi-Kernel-Datei verwiesen werden. Daher sind Änderungen am Verzeichnis / boot (der ersten SD-Partition auf echtem Pis) für QEMU irrelevant.

Man könnte RPI-Update zu ändern , dies zu erkennen, aber man braucht einen Mechanismus , um Platz / Schreib - Dateien zur Verwendung innerhalb QEMU auf dem Host - System.

Flakeshake
quelle