Hallo Forum und insbesondere Ihr Linux Experten,
ich möchte für den BPi-R2 ein uInitrd (initial ramdisk mit Treibern)
erzeugen.
Dazu habe ich bereits dracut und mkinitrd eingesetzt, bekomme aber
nicht nicht das richtige Format mit dem der SBC startet.
Wrong Ramdisk Image Format
Ramdisk image is corrupt or invalid
Die o.g. Werkzeuge liefern mir z.B
root@bananapir2:/boot# binwalk initramfs-5.2.0.img
DECIMAL HEXADECIMAL DESCRIPTION
------------------------------------------------------------------------
--------
0 0x0 gzip compressed data, maximum compression,
from Unix, NULL date (1970-01-01 00:00:00)
3125643 0x2FB18B CRC32 polynomial table, little endian
ich brauche aber ein
root@bananapir2:/boot# binwalk uInitrd-4.19.20-mt7623
DECIMAL HEXADECIMAL DESCRIPTION
------------------------------------------------------------------------
--------
0 0x0 uImage header, header size: 64 bytes,
header CRC: 0xBCF5D540, created: 2019-05-14 06:52:18, image size:
7931311 bytes, Data Address: 0x0, Ent
ry Point: 0x0, data CRC: 0xD7660C2C, OS: Linux, CPU: ARM, image type:
RAMDisk Image, compression type: gzip, image name: "uInitrd"
64 0x40 gzip compressed data, from Unix, last
modified: 2019-05-14 06:52:12
d.h. ein gzip compressed Image mit inkludiertem uImage header.
Enwerder ich übersehe was oder ich verwende die falschen Tools
für diesen Zweck.
Wie erstelle ich ein uInitrd richtig?
Wird das eventuell bereits bei Crosscompilieren via make gemacht?
Habe dazu leider nichts gefunden.
In den Kernel-Sourcen gibt es aber ein tools Verzeichnis, dass die
folgenden beiden Files beinhaltet, die darauf hinweisen dass eine
initrd erzeugbar ist.
./tools/testing/selftests/rcutorture/bin/mkinitrd.sh
./tools/testing/selftests/rcutorture/doc/initrd.txt
Danke für Eure Hilfe.
Markus
Mein dritter Versuch war mit
mkimage -A ARM -O Linux -T ramdisk -C gzip -n uInitrd-5.2.0
./initramfs-5.2.0.img
wobei initramfs-5.2.0.img zuvor mit dracut --kver 5.2.0 erzeugt wurde.
Läuft aber trotzdem auf einen Fehler:
mkimage: Can't open (null): Bad address