aboutsummaryrefslogtreecommitdiffstats
path: root/config/hooks/kernel-image.sh.chroot
blob: 84de1140d5ca89d7d233f93be2b502e0c254756a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/bin/sh

set -e

# This script adds the DreamPlug's device tree file to the kernel image,
# generates uImage and uInitrd style files (for use with u-boot, as opposed to
# syslinux-style images), and moves those files to /live.

# See also kernel-image.sh.binary, which recopies files at the final binary
# assembly stage.

KERNELVERSION=`ls /boot/vmlinuz-* | sed -e "s/\/boot\/vmlinuz-//"`

echo "Mangling kernel..."
# TBD: is it necessary to do this first stage of mangling which removes the
# conf/param.conf file, which may or may not be clobbering kernel boot
# arguments?
mkdir -p /tmp/initrd-repack
(cd /tmp/initrd-repack ; \
    zcat /boot/initrd.img-$KERNELVERSION | cpio -i ; \
    rm -f conf/param.conf ; \
    find . | cpio --quiet -o -H newc | \
    gzip -9 > /boot/initrd.img)
rm -rf /tmp/initrd-repack

(cd /boot ; \
    cp /usr/lib/linux-image-*/kirkwood-dreamplug.dtb dtb ; \
    cat vmlinuz-$KERNELVERSION dtb >> temp-kernel ; \
    mkimage -A arm -O linux -T kernel -n "Debian kernel ($KERNELVERSION)" \
    -C none -a 0x8000 -e 0x8000 -d temp-kernel uImage ; \
    rm -f temp-kernel ; \
    mkimage -A arm -O linux -T ramdisk -C gzip -a 0x0 -e 0x0 \
    -n "Debian ramdisk ($KERNELVERSION)" \
    -d initrd.img uInitrd )
rm /boot/initrd.img

# Useful to to this here because sometimes /live doesn't get created
# otherwise...
echo "Creating /live and copying in boot images..."
mkdir -p /live
mv /boot/uInitrd /boot/uImage /boot/dtb /live