[Livecd-commit] trunk/create_livecd.sh
svnusers at osadl.org
svnusers at osadl.org
Mon May 28 14:42:10 CEST 2007
Repository: /var/svn-osadl-projects/livecd/
Revision: 9
Author: tb10alj
Log message:
- Update to support Knoppix >= 5.1:
- Import AUFS, which is needed for KNOPPIX 5.1
- Import cloop 2.05 + a minor bugfix
- Update for create_livecd.sh:
- Set CONCURRENCY_LEVEL for make-kpkg
- The LiveCD can now be created on x86_64 hosts
- Some minor fixes
- Workarounds for KNOPPIX >=5.1
Updated trunk/create_livecd.sh
Modified: trunk/create_livecd.sh
===================================================================
--- trunk/create_livecd.sh 2007-05-09 13:03:25 UTC (rev 8)
+++ trunk/create_livecd.sh 2007-05-28 12:42:04 UTC (rev 9)
@@ -1,6 +1,6 @@
#!/bin/bash
#
-# (C) 2006 Jan Altenberg <tb10alj at tglx.de>
+# (C) 2006-2007 Jan Altenberg <jan at linutronix.de>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License Version
@@ -149,7 +149,7 @@
if [ -z $MAKE_KPKG ]
then
- echo "You need make_kpkg to run this script"
+ echo "No make_kpkg found on your system"
exit_failed
fi
@@ -167,6 +167,42 @@
exit_failed
fi
+# We ALWAYS need a mounted KNOPPIX CD-ROM!
+if [ -z "$KNOPPIX_CDROM" ]
+then
+ echo "No Source Directory given!!"
+ exit_failed
+fi
+if [ ! -d $KNOPPIX_CDROM ]
+then
+ echo "$KNOPPIX_CDROM doesn't exist! ! !"
+ exit 1
+fi
+if [ ! -f $KNOPPIX_CDROM/KNOPPIX/KNOPPIX ]
+then
+ echo "KNOPPIX CDROM is not mounted to $KNOPPIX_CDROM"
+ exit 1
+fi
+
+# We only need the cloop kernel module, if the compressed
+# root filesystem needs to be modified. So let's do a trivial
+# check, if this has already be done
+if [ ! -e $TARGET_DIR/copy_done ]
+then
+ DONT_COPY=0
+
+ # Insmod the cloop module if necessary
+ if [ -z "$(lsmod | grep cloop)" ]
+ then
+ echo -n "Insmodding cloop..."
+ modprobe cloop file=$KNOPPIX_CDROM/KNOPPIX/KNOPPIX
+ handle_return_value "Error insmodding cloop"
+ fi
+else
+ DONT_COPY=1
+fi
+
+
if [ "$KERNEL_SOURCE" ]
then
if [ -z "$UNIONFS_SOURCE" ]
@@ -181,9 +217,24 @@
exit_failed
fi
- if [ ! -f $UNIONFS_SOURCE/unionfs.h ]
+ if [ -f $UNIONFS_SOURCE/unionfs.h ]
then
- echo "$UNIONFS_SOURCE doesn't point to the UnionFS Sources"
+ if [ ! -d $KNOPPIX_CDROM/KNOPPIX/modules/unionfs.ko ]
+ then
+ echo "Wrong UnionFS type supplied"
+ exit_failed
+ fi
+ UNIONFS_TYPE="unionfs"
+ elif [ -d $UNIONFS_SOURCE/fs/aufs ]
+ then
+ if [ ! -f $KNOPPIX_CDROM/KNOPPIX/modules/aufs.ko ]
+ then
+ echo "Wrong UnionFS type supplied"
+ exit_failed
+ fi
+ UNIONFS_TYPE="aufs"
+ else
+ echo "$UNIONFS_SOURCE doesn't point to UnionFS / aufs Sources"
exit_failed
fi
@@ -199,6 +250,8 @@
echo "Please create ./kernel_configs/config-knoppix"
exit_failed
fi
+ NUM_CPUS=`grep ^processor /proc/cpuinfo | wc -l`
+ CONCURRENCY_LEVEL=`expr $NUM_CPUS \* 2`
fi
COMEFROM=`pwd`
@@ -215,39 +268,6 @@
exit 1
fi
-if [ ! -e $TARGET_DIR/copy_done ]
-then
- DONT_COPY=0
-
- if [ -z "$KNOPPIX_CDROM" ]
- then
- echo "No Source Directory given!!"
- exit_failed
- fi
-
- if [ ! -d $KNOPPIX_CDROM ]
- then
- echo "$KNOPPIX_CDROM doesn't exist! ! !"
- exit 1
- fi
-
- if [ ! -f $KNOPPIX_CDROM/KNOPPIX/KNOPPIX ]
- then
- echo "KNOPPIX CDROM is not mounted to $KNOPPIX_CDROM"
- exit 1
- fi
-
- # Insmod the cloop module if necessary
- if [ -z "$(lsmod | grep cloop)" ]
- then
- echo -n "Insmodding cloop..."
- modprobe cloop file=$KNOPPIX_CDROM/KNOPPIX/KNOPPIX
- handle_return_value "Error insmodding cloop"
- fi
-else
- DONT_COPY=1
-fi
-
TEMP_DIR=$TARGET_DIR/temp
mkdir -p $TEMP_DIR
@@ -405,12 +425,12 @@
# Get kernel version and run make-kpkg
cd $KERNEL_SOURCE
make distclean
- make-kpkg clean
+ $MAKE_KPKG clean
# Copy the config file to the kernel source directory
cp $COMEFROM/kernel-configs/config-knoppix $KERNEL_SOURCE/.config
KERNELVERSION=`make kernelversion`
- make-kpkg kernel-image kernel-headers
+ $MAKE_KPKG --arch i386 --subarch i386 --cross-compile - kernel-image kernel-headers
handle_return_value "Error building kernel"
# uninstall the KNOPPIX kernel
@@ -427,14 +447,14 @@
rm -f usr/src/linux
# install the new kernel
- PACKAGE_PREFIX=`ls $KERNEL_SOURCE/../{linux,kernel}-*-2.6.17-rt8*deb | sed 's/.*\/\([^-]*\)-.*$/\1/' | uniq`
+ PACKAGE_PREFIX=`ls $KERNEL_SOURCE/../{linux,kernel}-*-$KERNELVERSION*deb | sed 's/.*\/\([^-]*\)-.*$/\1/' | uniq`
chroot . ln -s /usr/src/$PACKAGE_PREFIX-headers-$KERNELVERSION /usr/src/linux
cd $COMEFROM
cp $KERNEL_SOURCE/../$PACKAGE_PREFIX-*-$KERNELVERSION*deb $KNOPPIX_SOURCE
cd $KNOPPIX_SOURCE
chroot . touch etc/fstab # <- hack alert ;-)
- chroot . dpkg -i $PACKAGE_PREFIX-*-$KERNELVERSION*deb
+ chroot . dpkg -i --force-architecture $PACKAGE_PREFIX-*-$KERNELVERSION*deb
chroot . rm etc/fstab # <- hack alert ;-)
# fix the symbolic links in /boot
@@ -457,24 +477,46 @@
then
# copy the new kernel to boot/isolinux
cp boot/vmlinuz-$KERNELVERSION ../../master/boot/isolinux/linux
- # Build UnionFS
+
+ # Build cloop and UnionFS / aufs
cd $COMEFROM
cd $UNIONFS_SOURCE
- make clean
- make LINUXSRC=$KERNEL_SOURCE
+ if [ $UNIONFS_TYPE = "aufs" ]
+ then
+ # Build aufs
+ make -f local.mk clean
+ make ARCH=i386 KDIR=$KERNEL_SOURCE -f local.mk
+ handle_return_value "Error building aufs"
+ UNIONFS_MODULE=aufs.ko
+ else
+ # Build UnionFS
+ make clean
+ make ARCH=i386 LINUXSRC=$KERNEL_SOURCE
+ handle_return_value "Error building unionfs"
+ UNIONFS_MODULE=unionfs.ko
+ fi
# Build Cloop
cd $COMEFROM
cd $CLOOP_SOURCE
make clean
- make KERNEL_DIR=$KERNEL_SOURCE
+ make ARCH=i386 KERNEL_DIR=$KERNEL_SOURCE module
+ handle_return_value "Error building cloop"
# Copy our modules into minirt.gz
cd $COMEFROM
mkdir $MASTER_DIR/miniroot
gunzip $MASTER_DIR/boot/isolinux/minirt.gz
mount -o loop $MASTER_DIR/boot/isolinux/minirt $MASTER_DIR/miniroot
- MINIROOT_DIR=$MASTER_DIR/miniroot/modules/scsi
+
+ # Workaround for KNOPPIX 5.1
+ if [ -z "$(ls $MASTER_DIR/miniroot/modules/scsi)" ]
+ then
+ MINIROOT_DIR=$MASTER_DIR/miniroot/modules/
+ else
+ MINIROOT_DIR=$MASTER_DIR/miniroot/modules/scsi
+ fi
+
for MODULE in `ls $MINIROOT_DIR`
do
FILENAME=`basename $MODULE | sed 's/\.o$/\.ko/'`
@@ -492,7 +534,7 @@
if [ -d $KNOPPIX_CDROM/KNOPPIX/modules ]
then
# For KNOPPIX >= 5.0
- cp $UNIONFS_SOURCE/unionfs.ko $MASTER_DIR/KNOPPIX/modules/
+ cp $UNIONFS_SOURCE/$UNIONFS_MODULE $MASTER_DIR/KNOPPIX/modules/
cp $CLOOP_SOURCE/cloop.ko $MASTER_DIR/KNOPPIX/modules/
else
cp $UNIONFS_SOURCE/unionfs.ko $MASTER_DIR/miniroot/modules/unionfs.o
@@ -555,7 +597,7 @@
fi
echo -n "*** Creating Compressed KNOPPIX Filesystem..."
-mkisofs -R -U -V "OSADL KNOPPIX Filesystem" -P "OSADL KNOPPIX" -hide-rr-moved -cache-inodes -no-bak -pad $KNOPPIX_SOURCE | nice -5 /usr/bin/create_compressed_fs - 65536 > $MASTER_DIR/KNOPPIX/KNOPPIX
+mkisofs -R -U -V "OSADL KNOPPIX Filesystem" -P "OSADL KNOPPIX" -hide-rr-moved -cache-inodes -no-bak -pad $KNOPPIX_SOURCE | nice -5 $COMPRESSED_FS - 65536 > $MASTER_DIR/KNOPPIX/KNOPPIX
handle_return_value
echo -n "*** Creating md5sums..."
More information about the Livecd-commit
mailing list