linux-kernel - debian-Paket

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
frankw
Beiträge: 154
Registriert: 24.10.2018 11:34:33

linux-kernel - debian-Paket

Beitrag von frankw » 27.05.2019 19:20:39

Hallo,

ich kompiliere aktuell den Linux-kernel via gcc crosscompiler zu einem uImage und erzeuge dann "manuell" ein debian-Paket mittels "fakeroot dpkg-deb ...".

ein Bekannter hat mich auf das target "deb-pkg" des linux-makefiles hingewiesen. Das habe ich mal ausprobiert.

das war jetzt mein erster Aufschlag:

Code: Alles auswählen

make -j8 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- deb-pkg
nun habe ich damit aber einige Probleme:
  1. es erzeugt ein vmlinuz-image und kein uImage (=zImage + dtb + mkimage)
  2. es nimmt den standard-installationspfad (/boot), welcher auf meinem board anders anders ist
  3. ich möchte gerne den namen der kernel-binary festlegen
lassen sich diese Sachen realisieren oder sollte ich bei meinem aktuellen weg bleiben?

Code: Alles auswählen

dpkg -c ../linux-image-4.14.122-bpi-r2+_4.14.122-bpi-r2+-201_armhf.deb |grep boot
drwxr-xr-x root/root         0 2019-05-27 19:06 ./boot/
-rw-r--r-- root/root   3253473 2019-05-27 19:06 ./boot/System.map-4.14.122-bpi-r2+
-rw-r--r-- root/root    131803 2019-05-27 19:06 ./boot/config-4.14.122-bpi-r2+
-rwxr-xr-x root/root   7257800 2019-05-27 19:06 ./boot/vmlinuz-4.14.122-bpi-r2+
was ich aktuell mache (grob):

Code: Alles auswählen

make -j8 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
cat arch/arm/boot/zImage arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dtb > arch/arm/boot/zImage-dtb
mkimage -A arm -O linux -T kernel -C none -a 80008000 -e 80008000 -n "Linux Kernel $kernver-$gitbranch" -d arch/arm/boot/zImage-dtb ./uImage

make -j8 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=modules modules_install

#preinst+postinst+postrm-script+control anlegen
fakeroot dpkg-deb --build bananapi-r2-image ../debian
Gruß Frank

frankw
Beiträge: 154
Registriert: 24.10.2018 11:34:33

Re: linux-kernel - debian-Paket

Beitrag von frankw » 29.05.2019 08:16:57

soweit wie ich bisher herausgefunden habe, wird das deb-pkg über das Makefile gesteuert
https://git.kernel.org/pub/scm/linux/ke ... kefile#n70

evtl. kann ich mich irgendwie in das Script hier reinlinken, um die Modifikationen auszuführen:

https://git.kernel.org/pub/scm/linux/ke ... e/mkdebian

habe bisher aber noch nichts gefunden, wie ich (ohne das script selbst zu ändern) das MKimage reinpacken kann

in meinem Script mache ich vor dem Packen ein manuelles copy des kernel-binary und ein make modules_install in den ordner, den ich später an dpkg-buildpackage weiterreiche...diesen teil gibt es beim kernel scheinbar nicht...es wird scheinbar "nur" ein debian-verzeichnis angelegt und darin die control-files

ich vermute mal das kopieren/install passiert über die debian/rules, welche am Ende angelegt wird...sieht nach einem Makefile aus, welches das Main-Makefile vom Kernel aufruft, und dort vermutlich das all-target

nur wie da das mkimage und copy des uImage mit reinbekommen?

Antworten