git://git.onelab.eu
/
bootcd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
trying out magic kernel option to avoid using em<x> ifnames
[bootcd.git]
/
build.sh
diff --git
a/build.sh
b/build.sh
index
0d7dff1
..
21db348
100755
(executable)
--- a/
build.sh
+++ b/
build.sh
@@
-7,8
+7,6
@@
# Mark Huang <mlhuang@cs.princeton.edu>
# Copyright (C) 2004-2007 The Trustees of Princeton University
#
# Mark Huang <mlhuang@cs.princeton.edu>
# Copyright (C) 2004-2007 The Trustees of Princeton University
#
-# $Id$
-#
COMMAND=$(basename $0)
DIRNAME=$(dirname $0)
COMMAND=$(basename $0)
DIRNAME=$(dirname $0)
@@
-30,7
+28,7
@@
OUTPUT_BASE=
DRY_RUN=""
OUTPUT_NAME=""
TYPES=""
DRY_RUN=""
OUTPUT_NAME=""
TYPES=""
-K
ARGS_STR
=""
+K
ERNEL_ARGS
=""
# various globals
BUILDTMP=""
# various globals
BUILDTMP=""
@@
-43,7
+41,6
@@
console_dev=""
console_baud=""
console_spec=""
console_serial_line=""
console_baud=""
console_spec=""
console_serial_line=""
-kernel_args=""
#################### compute all supported types
#################### compute all supported types
@@
-163,7
+160,7
@@
function parse_command_line () {
o) OUTPUT_NAME="$OPTARG" ;;
C) CUSTOM_DIR="$OPTARG" ;;
V) VARIANT="$OPTARG" ;;
o) OUTPUT_NAME="$OPTARG" ;;
C) CUSTOM_DIR="$OPTARG" ;;
V) VARIANT="$OPTARG" ;;
- k) K
ARGS_STR="$KARGS_STR
$OPTARG" ;;
+ k) K
ERNEL_ARGS="$KERNEL_ARGS
$OPTARG" ;;
n) DRY_RUN=true ;;
h|*) usage ;;
esac
n) DRY_RUN=true ;;
h|*) usage ;;
esac
@@
-233,7
+230,9
@@
function build_overlay () {
for i in "$ISOREF"/isofs/{bootcd.img,kernel}; do
ln -s "$i" "${BUILDTMP}/isofs"
done
for i in "$ISOREF"/isofs/{bootcd.img,kernel}; do
ln -s "$i" "${BUILDTMP}/isofs"
done
- cp "/usr/lib/syslinux/isolinux.bin" "${BUILDTMP}/isofs"
+ # the syslinux that comes with f12 has this file in a new location
+ cp "/usr/lib/syslinux/isolinux.bin" "${BUILDTMP}/isofs" \
+ || cp "/usr/share/syslinux/isolinux.bin" "${BUILDTMP}/isofs"
ISOFS="${BUILDTMP}/isofs"
# Root of the ISO and USB images
ISOFS="${BUILDTMP}/isofs"
# Root of the ISO and USB images
@@
-331,14
+330,13
@@
EOF
plnet -- --root $OVERLAY --files-only --program BootCD $NODE_ID
fi
plnet -- --root $OVERLAY --files-only --program BootCD $NODE_ID
fi
- if [ -n "$IS_SERIAL" ] ; then
- KARGS_STR="$KARGS_STR ${console_spec}"
- fi
+ [ -n "$IS_SERIAL" ] && KERNEL_ARGS="$KERNEL_ARGS ${console_spec}"
- if [ -n "$KARGS_STR" ] ; then
- echo "$KARGS_STR" > $OVERLAY/kargs.txt
- kernel_args=$KARGS_STR
- fi
+ # tmp: should be restricted to f15 nodes and above
+ # making sure the network interfaces are still numbered eth0 and above
+ KERNEL_ARGS="$KERNEL_ARGS biosdevname=0"
+
+ [ -n "$KERNEL_ARGS" ] && echo "$KERNEL_ARGS" > $OVERLAY/kargs.txt
# Pack overlay files into a compressed archive
echo "* Compressing overlay image"
# Pack overlay files into a compressed archive
echo "* Compressing overlay image"
@@
-370,7
+368,7
@@
function build_iso() {
cat >$ISOFS/isolinux.cfg <<EOF
${console_serial_line}
DEFAULT kernel
cat >$ISOFS/isolinux.cfg <<EOF
${console_serial_line}
DEFAULT kernel
-APPEND ramdisk_size=$ramdisk_size initrd=bootcd.img,overlay.img${custom:+,custom.img} root=/dev/ram0 rw ${
kernel_args
}
+APPEND ramdisk_size=$ramdisk_size initrd=bootcd.img,overlay.img${custom:+,custom.img} root=/dev/ram0 rw ${
KERNEL_ARGS
}
DISPLAY pl_version
PROMPT 0
TIMEOUT 40
DISPLAY pl_version
PROMPT 0
TIMEOUT 40
@@
-395,8
+393,12
@@
function build_usb_partition() {
local cylinders=$(( ($size*1024*2)/($heads*$sectors) ))
local offset=$(( $sectors*512 ))
local cylinders=$(( ($size*1024*2)/($heads*$sectors) ))
local offset=$(( $sectors*512 ))
- /usr/lib/syslinux/mkdiskimage -M -4 "$usb" $size $heads $sectors
-
+ if [ -f /usr/lib/syslinux/mkdiskimage ] ; then
+ /usr/lib/syslinux/mkdiskimage -M -4 "$usb" $size $heads $sectors
+ else
+ mkdiskimage -M -4 "$usb" $size $heads $sectors
+ fi
+
cat >${BUILDTMP}/mtools.conf<<EOF
drive z:
file="${usb}"
cat >${BUILDTMP}/mtools.conf<<EOF
drive z:
file="${usb}"
@@
-405,6
+407,7
@@
heads=$heads
sectors=$sectors
offset=$offset
mformat_only
sectors=$sectors
offset=$offset
mformat_only
+mtools_skip_check=1
EOF
# environment variable for mtools
export MTOOLSRC="${BUILDTMP}/mtools.conf"
EOF
# environment variable for mtools
export MTOOLSRC="${BUILDTMP}/mtools.conf"
@@
-418,7
+421,7
@@
EOF
cat >$tmp <<EOF
${console_serial_line}
DEFAULT kernel
cat >$tmp <<EOF
${console_serial_line}
DEFAULT kernel
-APPEND ramdisk_size=$ramdisk_size initrd=bootcd.img,overlay.img${custom:+,custom.img} root=/dev/ram0 rw ${
kernel_args
}
+APPEND ramdisk_size=$ramdisk_size initrd=bootcd.img,overlay.img${custom:+,custom.img} root=/dev/ram0 rw ${
KERNEL_ARGS
}
DISPLAY pl_version
PROMPT 0
TIMEOUT 40
DISPLAY pl_version
PROMPT 0
TIMEOUT 40
@@
-426,7
+429,7
@@
EOF
mdel -i "$usb" z:/isolinux.cfg 2>/dev/null || :
mcopy -i "$usb" "$tmp" z:/syslinux.cfg
rm -f "$tmp"
mdel -i "$usb" z:/isolinux.cfg 2>/dev/null || :
mcopy -i "$usb" "$tmp" z:/syslinux.cfg
rm -f "$tmp"
- rm -f "${
BUILDTMP}/mtools.conf
"
+ rm -f "${
MTOOLSRC}
"
unset MTOOLSRC
echo "making USB image bootable."
unset MTOOLSRC
echo "making USB image bootable."
@@
-443,6
+446,12
@@
function build_usb() {
rm -f "$usb"
mkfs.vfat -C "$usb" $(($(du -Lsk $ISOFS | awk '{ print $1; }') + $FREE_SPACE))
rm -f "$usb"
mkfs.vfat -C "$usb" $(($(du -Lsk $ISOFS | awk '{ print $1; }') + $FREE_SPACE))
+ cat >${BUILDTMP}/mtools.conf<<EOF
+mtools_skip_check=1
+EOF
+ # environment variable for mtools
+ export MTOOLSRC="${BUILDTMP}/mtools.conf"
+
# Populate it
echo -n " populating USB image... "
mcopy -bsQ -i "$usb" "$ISOFS"/* ::/
# Populate it
echo -n " populating USB image... "
mcopy -bsQ -i "$usb" "$ISOFS"/* ::/
@@
-452,7
+461,7
@@
function build_usb() {
cat >$tmp <<EOF
${console_serial_line}
DEFAULT kernel
cat >$tmp <<EOF
${console_serial_line}
DEFAULT kernel
-APPEND ramdisk_size=$ramdisk_size initrd=bootcd.img,overlay.img${custom:+,custom.img} root=/dev/ram0 rw ${
kernel_args
}
+APPEND ramdisk_size=$ramdisk_size initrd=bootcd.img,overlay.img${custom:+,custom.img} root=/dev/ram0 rw ${
KERNEL_ARGS
}
DISPLAY pl_version
PROMPT 0
TIMEOUT 40
DISPLAY pl_version
PROMPT 0
TIMEOUT 40
@@
-460,6
+469,8
@@
EOF
mdel -i "$usb" ::/isolinux.cfg 2>/dev/null || :
mcopy -i "$usb" "$tmp" ::/syslinux.cfg
rm -f "$tmp"
mdel -i "$usb" ::/isolinux.cfg 2>/dev/null || :
mcopy -i "$usb" "$tmp" ::/syslinux.cfg
rm -f "$tmp"
+ rm -f "${MTOOLSRC}"
+ unset MTOOLSRC
echo "making USB image bootable."
syslinux "$usb"
echo "making USB image bootable."
syslinux "$usb"
@@
-533,9
+544,12
@@
EOF
popd
# update etc/inittab to start with pl_rsysinit
popd
# update etc/inittab to start with pl_rsysinit
- sed -i 's,pl_sysinit,pl_rsysinit,' etc/inittab
+ for file in etc/inittab etc/event.d/rcS etc/init/rcS.conf; do
+ [ -f $file ] && sed -i 's,pl_sysinit,pl_rsysinit,' $file
+ done
# modify inittab to have a serial console
# modify inittab to have a serial console
+ # xxx this might well be broken with f12 and above xxx
if [ -n "$serial" ] ; then
echo "T0:23:respawn:/sbin/agetty -L $console_dev $console_baud vt100" >> etc/inittab
# and let root log in
if [ -n "$serial" ] ; then
echo "T0:23:respawn:/sbin/agetty -L $console_dev $console_baud vt100" >> etc/inittab
# and let root log in
@@
-609,7
+623,7
@@
function build_iso_cramfs() {
cat >$tmp/isolinux.cfg <<EOF
${console_serial_line}
DEFAULT kernel
cat >$tmp/isolinux.cfg <<EOF
${console_serial_line}
DEFAULT kernel
-APPEND ramdisk_size=$cramfs_size initrd=cramfs.img root=/dev/ram0 ro ${
kernel_args
}
+APPEND ramdisk_size=$cramfs_size initrd=cramfs.img root=/dev/ram0 ro ${
KERNEL_ARGS
}
DISPLAY pl_version
PROMPT 0
TIMEOUT 40
DISPLAY pl_version
PROMPT 0
TIMEOUT 40
@@
-647,7
+661,7
@@
function build_usb_cramfs() {
cat >$tmp <<EOF
${console_serial_line}
DEFAULT kernel
cat >$tmp <<EOF
${console_serial_line}
DEFAULT kernel
-APPEND ramdisk_size=$cramfs_size initrd=cramfs.img root=/dev/ram0 ro ${
kernel_args
}
+APPEND ramdisk_size=$cramfs_size initrd=cramfs.img root=/dev/ram0 ro ${
KERNEL_ARGS
}
DISPLAY pl_version
PROMPT 0
TIMEOUT 40
DISPLAY pl_version
PROMPT 0
TIMEOUT 40