Speicherort der Kernel-Binärdatei (wenn nicht in / boot)?

7

Ich konnte die Kernel-Binärdatei nicht an der Standardposition in finden /boot. Ich habe auch das gesamte Dateisystem nach vmlinuxoder durchsuchtbzimage

find / -iname vmlin*
find / -iname bzimage

Dies ist jedoch ein eingebettetes Gerät, kein Standarddesktop. Ist es möglich, dass sich die Kernel-Binärdatei an einem anderen Speicherort befindet, der nicht gemountet ist?

Beispiel:

/ ist auf der SD-Karte gemountet und der Kernel ist auf Flash geschrieben?

Wenn nicht, welche Optionen gibt es zum Auffinden der Kernel-Binärdatei?

TheMeaningfulEngineer
quelle
2
Übrigens könnte Sie der Site-Vorschlag für eingebettete Systeme interessieren .
Gilles 'SO - hör auf böse zu sein'
Finden Sie nach Möglichkeit heraus, wie das Gerät startet. Möglicherweise hat es überhaupt keinen lokalen Kernel und bezieht ihn von einem TFTP-Server.
Bandrami
Es gibt auch keinen / boot-Ordner auf Chromebooks.
Elliot A.

Antworten:

2

/bootist der Standardspeicherort für den Kernel in Desktop- / Server-Distributionen, eingebettete Systeme variieren jedoch stark. Wo der Kernel vollständig gespeichert ist, hängt von Ihrem Bootloader ab und ist möglicherweise keine Datei, da eingebettete Bootloader häufig nicht in der Lage sind, Linux-Dateisysteme zu lesen.

Zum Beispiel mit U-Boot (ein beliebter Embedded Bootloader), Sie erstellen ein Bildmkimage , das dann sein kann auf eine separate FAT - Partition geschrieben oder geschrieben in einem anderen systemspezifischen Format. Wenn sich das Kernel-Image auf einer FAT-Partition befindet, wird diese Partition häufig nicht unter Linux bereitgestellt, da Linux nie darauf zugreifen muss (außer bei Upgrades, aber die meisten eingebetteten Systeme aktualisieren ihren Kernel nicht separat vom Bootloader).

Das Ergebnis ist, dass Sie danach suchen müssen. Wenn Sie Hilfe benötigen, müssen Sie Ihr System sehr genau beschreiben, und selbst dann können wir möglicherweise helfen, je nachdem, wie beliebt Ihr eingebettetes System ist. Wenn Sie es selbst nicht finden können, sollten Sie die Anbieter des eingebetteten Systems um Unterstützung bitten.

Gilles 'SO - hör auf böse zu sein'
quelle
2

Wenn Ihr eingebettetes Gerät U-Boot verwendet, wird das Kernel-Image möglicherweise auf einer bestimmten Partition in einem NAND-Flash geschrieben. Sehen Sie das ! Wenn dies der Fall ist, können Sie die Binärdatei finden, indem Sie sich Ihren U-Boot-Quellcode ansehen, wenn Sie Zugriff darauf haben. Sie können die Umgebungsvariable auch auf Hinweise überprüfen. Dies hängt stark von Ihrem System ab, sodass ich keine genauen Angaben machen kann.

Dean
quelle
1

Ja. Es wird möglich sein, den Kernel auf einer anderen Partition zu haben

Um den Kernel-Speicherort zu finden,

1. see the grub.cfg OR grub.conf file 
2. Examine the output of `cat > /proc/cmdline`
SHW
quelle