uImage/uInitrd für die Dockstar

Für Leute, die ihre Dockstar mit dem Bootstrap-Script von Jeff Doozan installiert haben, habe ich hier ein dreckiges Script, das passende Images aus den Kernel/Initrd-Dateien in /boot erzeugt.

Das muss jetzt nach jedem Kernel-Upgrade aufgerufen werden. Ich weiss noch nicht genau, was der beste Weg ist, um das zu automatisieren.

Bitte vorher lesen und ggf reparieren, bevor es ausgefuehrt wird:

#!/bin/bash

# find all kernel and initrd images, create uboot header with dockstar-specific
# information - the name "uImage" is needed if you installed with jeff's script
for kernel in `find /boot/ -name "vmlinuz*" | sort | sed 's#/boot/vmlinuz-##'`
do
        echo "creating uimage for $kernel"
        mkimage -A arm -O linux -T kernel -C none \
                -a 0x00008000 -e 0x00008000 -n uImage \
                -d /boot/vmlinuz-${kernel} /boot/uImage-${kernel} > /dev/null
done
for initrd in `find /boot/ -name "initrd.img*" | sort | sed 's#/boot/initrd.img-##'`
do
        echo "creating uinitrd for $initrd"
        mkimage -A arm -O linux -T ramdisk -C gzip \
                -a 0x00000000 -e 0x00000000 -n initramfs \
                -d /boot/initrd.img-${initrd} /boot/uInitrd-${initrd} > /dev/null
done

# since find was sorted the last values should be the most recent files
echo "updating symbolic links in /boot/"
ln -is /boot/uImage-${kernel}  /boot/uImage
ln -is /boot/uInitrd-${initrd} /boot/uInitrd


show_err(){
        echo "there is no correct uImage or uInitrd in /boot"
        echo "something went horribly wrong, please repair o.O"
        exit 1
}

# simple check for sane uImage and uInitrd 
mkimage -l /boot/uImage >/dev/null 2>/dev/null  || show_err
mkimage -l /boot/uInitrd >/dev/null 2>/dev/null || show_err

echo "success"
exit 0

Written by Michael in linux on Tue 23 November 2010. Tags: debian, dockstar, uboot,

Comments

comments powered by Disqus