|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 04/10] mg-debian-installer-update: support armhf
The path to the installer differs on armhf vs amd64/i386.
Debian Wheezy does not contain kernels for the devices we want to support.
Therefore we download a kernel and modules from wheezy-backports which is new
enough.
---
mg-debian-installer-update | 63 ++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 61 insertions(+), 2 deletions(-)
diff --git a/mg-debian-installer-update b/mg-debian-installer-update
index 6e3d359..c0b547f 100755
--- a/mg-debian-installer-update
+++ b/mg-debian-installer-update
@@ -32,9 +32,20 @@ fail () { echo >&2 "$0: $1"; exit 1; }
site=http://ftp.debian.org/debian/
sbase=$site/dists/$suite
-src=$sbase/main/installer-$arch/current/images/netboot/debian-installer/$arch
+case $arch in
+ i386|amd64)
+
src=$sbase/main/installer-$arch/current/images/netboot/debian-installer/$arch
+ files='initrd.gz linux'
+ ;;
+ armhf)
+ # Use the vexpress image, we are going to bash in our own
+ # kernel+modules anyway.
+ src=$sbase/main/installer-$arch/current/images/vexpress/netboot
+ files='initrd.gz' # no kernel -- needs a newer kernel
+ ;;
+esac
+
pfile=$sbase/non-free/binary-$arch/Packages.bz2
-files='initrd.gz linux'
dstroot=`getconfig TftpPath`/`getconfig TftpDiBase`/
date=`date +%Y-%m-%d`-$suite
@@ -67,6 +78,54 @@ for p in $packages; do
rm -rf x
done
+# armhf requires a newer kernel than was in Wheezy for most
+# platforms. Construct something suitable from the latest kernel in
+# wheezy-backports.
+if [ $arch = armhf ]; then
+ bp="$sbase-backports"
+ pfile=$bp/main/binary-armhf/Packages.bz2
+
+ curl -s $pfile >Packages.bz2
+
+ # Newer kernel often needs a newer initramfs-tools. Make that available
+ echo >&2 "collecting backports initramfs-tools"
+ pkgfile=`bzcat Packages.bz2 | grep-dctrl -PX initramfs-tools -nsFilename |
sort -n | head -n1`
+ rc=$?
+ set -e
+ if [ $rc != 0 ]; then fail "initramfs-tools package not found"; fi
+ curl -s "$site/$pkgfile" >initramfs-tools.deb
+
+ set +e
+ echo >&2 "collecting armmp kernel"
+ # Be careful to pickup the actual kernel package from the 'linux'
+ # source and not a meta package from 'linux-latest'
+ pkgfile=`bzcat Packages.bz2 | grep-dctrl -S linux | grep-dctrl -Pe
linux-image-.*-armmp -nsFilename | sort -n | head -n1`
+ rc=$?
+ set -e
+ if [ $rc != 0 ]; then fail "armmp kernel package not found"; fi
+ curl -s "$site/$pkgfile" >armmp.deb
+ dpkg-deb -x armmp.deb x
+ cp x/boot/vmlinuz-* linux.armmp
+ # The full set of modules is pretty large and not that
+ # useful. Just pull in the ones we need for our particular
+ # preseed, which is basically disk, net, filesystems and LVM.
+ cd x; find lib -type d \
+ -o -type f -name modules.\* \
+ -o -type f -name \*.ko \
+ \( -path \*/kernel/lib/\* -o \
+ -path \*/kernel/fs/mbcache.ko -o \
+ -path \*/kernel/fs/ext\* -o \
+ -path \*/kernel/fs/jbd\* -o \
+ -path \*/kernel/drivers/net/\* -o \
+ -path \*/kernel/drivers/ata/\* -o \
+ -path \*/kernel/drivers/scsi/\* -o \
+ -path \*/kernel/drivers/md/\* \) \
+ |pax -x sv4cpio -s '%lib%/lib%' -d -w >../cpio; cd ..
+ gzip -9f cpio
+ mv cpio.gz armmp.cpio.gz
+ rm -rf x
+fi
+
for f in $files; do
mv -f $f.new $f
done
--
1.7.10.4
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |