From e02268012bb2e2da9642313dd2be0f4765c4c19d Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Wed, 31 May 2017 10:05:49 +0100 Subject: [PATCH] Repacking the beaglebone kernel --- src/freedombone-image-hardware-setup | 227 +++++++++++++++------------ 1 file changed, 125 insertions(+), 102 deletions(-) diff --git a/src/freedombone-image-hardware-setup b/src/freedombone-image-hardware-setup index 6fb841ee..f3d24fe8 100755 --- a/src/freedombone-image-hardware-setup +++ b/src/freedombone-image-hardware-setup @@ -38,35 +38,125 @@ enable_serial_console() { echo "T0:12345:respawn:/sbin/getty -L $device 115200 vt100" >> /etc/inittab } -setup_flash_kernel() { - if [ ! -d /etc/flash-kernel ] ; then - mkdir /etc/flash-kernel - fi - echo -n "$1" > /etc/flash-kernel/machine +beaglebone_setup_boot() { + bbb_version=$1 - command_line="" - if [ -n "$2" ] ; then - command_line="console=$2" + # Setup uEnv.txt + if grep -q btrfs /etc/fstab ; then + fstype=btrfs + else + fstype=ext4 fi - - if [ -n "$command_line" ] ; then - echo flash-kernel flash-kernel/linux_cmdline string "$command_line" | debconf-set-selections + if [ ! $bbb_version ]; then + kernelVersion=$(ls /usr/lib/*/am335x-boneblack.dtb | head -1 | cut -d/ -f4) + else + kernelVersion=$(ls /usr/lib/*/am335x-boneblack-${1}.dtb | head -1 | cut -d/ -f4) fi + version=$(echo $kernelVersion | sed 's/linux-image-\(.*\)/\1/') + initRd=initrd.img-$version + vmlinuz=vmlinuz-$version - apt-get -yq install flash-kernel + bbb_loadaddr='0x82000000' + bbb_initrd_addr='0x88080000' + bbb_fdtaddr='0x88000000' + + # uEnv.txt for Beaglebone + # based on https://github.com/beagleboard/image-builder/blob/master/target/boot/beagleboard.org.txt + cat >> /boot/uEnv.txt < /boot/$initRd ) + + rm -rf /tmp/initrd-repack + + (cd /boot ; \ + cp /usr/lib/$kernelVersion/${bbb_dtb}.dtb dtb ; \ + cat $vmlinuz dtb >> temp-kernel ; \ + mkimage -A arm -O linux -T kernel -n "Debian kernel ${version}" \ + -C none -a 0x82000000 -e 0x82000000 -d temp-kernel uImage ; \ + rm -f temp-kernel ; \ + mkimage -A arm -O linux -T ramdisk -C gzip -a 0x88080000 -e 0x88080000 \ + -n "Debian ramdisk ${version}" \ + -d $initRd uInitrd ) +} + +a20_setup_boot() { dtb="$1" # Setup boot.cmd - fstype=ext4 - if grep -q btrfs /etc/fstab; then + if grep -q btrfs /etc/fstab ; then fstype=btrfs - fi - - if [ -n "$command_line" ] ; then - echo flash-kernel flash-kernel/linux_cmdline string "$command_line" | debconf-set-selections + else + fstype=ext4 fi kernelVersion=$(ls /usr/lib/*/$dtb | head -1 | cut -d/ -f4) version=$(echo $kernelVersion | sed 's/linux-image-\(.*\)/\1/') @@ -116,104 +206,37 @@ EOF echo "rtc_sunxi" >> /etc/initramfs-tools/modules } -beaglebone_env() { - bbb_version=$1 - - # Setup uEnv.txt - fstype=ext4 - if grep -q btrfs /etc/fstab ; then - fstype=btrfs - fi - if [ ! $bbb_version ]; then - kernelVersion=$(ls /usr/lib/*/am335x-boneblack.dtb | head -1 | cut -d/ -f4) - else - kernelVersion=$(ls /usr/lib/*/am335x-boneblack-${1}.dtb | head -1 | cut -d/ -f4) - fi - version=$(echo $kernelVersion | sed 's/linux-image-\(.*\)/\1/') - initRd=initrd.img-$version - vmlinuz=vmlinuz-$version - - #bbb_loadaddr='0x80200000' - #bbb_initrd_addr='0x81000000' - #bbb_fdtaddr='0x80F80000' - #if [[ "$bbb_version" == "wireless" ]]; then - bbb_loadaddr='0x82000000' - bbb_initrd_addr='0x88080000' - bbb_fdtaddr='0x88000000' - #fi - - # uEnv.txt for Beaglebone - # based on https://github.com/beagleboard/image-builder/blob/master/target/boot/beagleboard.org.txt - cat >> /boot/uEnv.txt <