--- knoppix-terminalserver.orig 2006-05-10 18:13:04.000000000 +0200 +++ knoppix-terminalserver 2006-05-10 18:13:02.000000000 +0200 @@ -33,6 +33,9 @@ XDIALOG_HIGH_DIALOG_COMPAT=1 export XDIALOG_HIGH_DIALOG_COMPAT +DIALOG="dialog" +[ -n "$DISPLAY" ] && [ -x /usr/bin/Xdialog ] && DIALOG="Xdialog" + TMP="/tmp/knoppix-terminalserver.menu.tmp$$" KERNEL="$(uname -r)" @@ -73,8 +76,7 @@ subnet ${NETWORK}.0 netmask ${NETMASK} { next-server $IP; - if substring (option vendor-class-identifier, 0, 9) = "Etherboot" { filename "etherboot.nbi"; } - else { filename "pxelinux.0"; } + filename "pxelinux.0"; option subnet-mask ${NETMASK}; range ${IPRANGE_FROM} ${IPRANGE_TO}; ${ALLNAMESERVERS:+option domain-name-servers $ALLNAMESERVERS;} @@ -225,58 +227,34 @@ mkinitrd(){ # Replaces the mkinitrd script that is normally present echo "Making Mini Rootdisk." -MINISIZE=6000 # In kilobytes + +# find cdrom miniroot or ask user +MINIROOT_CD="/cdrom/boot/miniroot.gz" +if ! [ -f "$MINIROOT_CD" ]; then + MINIROOT_CD=`$DIALOG --stdout --title 'Location of knoppix CD miniroot.gz' --fselect '' 35 80` +fi + +if ! [ -f "$MINIROOT_CD" ]; then + echo "miniroot file '$MINIROOT_CD' doesn't exist, aborting." + exit 1 +fi +if ! file "$MINIROOT_CD" | grep -q 'gzip'; then + echo "miniroot file '$MINIROOT_CD' doesn't look like a gzip archive, aborting." + exit 1 +fi + MINIROOT="/tmp/knoppix-terminalserver-miniroot" RAMDEV="" rm -rf "$MINIROOT" mkdir -p "$MINIROOT" RAMDISK="/tmp/knoppix-ramdisk.$$" rm -f "$RAMDISK" -dd if=/dev/zero of="$RAMDISK" bs="${MINISIZE}k" count=1 -mke2fs -L "KNOPPIX Miniroot" -b 1024 -N 8192 -O none -F -q -m 0 "$RAMDISK" "${MINISIZE}" +#MINISIZE=10000 # In kilobytes +#dd if=/dev/zero of="$RAMDISK" bs="${MINISIZE}k" count=1 +#mke2fs -L "KNOPPIX Miniroot" -b 1024 -N 8192 -O none -F -q -m 0 "$RAMDISK" "${MINISIZE}" +gunzip -c "$MINIROOT_CD" > "$RAMDISK" mount -o loop,rw -t ext2 "$RAMDISK" "$MINIROOT" -rm -rf "$MINIROOT/lost+found" -for i in cdrom dev etc KNOPPIX lib mnt modules/net modules/scsi proc sys static tmp var/run; do -mkdir -p "$MINIROOT/$i" -done -for i in bin boot opt sbin usr; do -ln -s /KNOPPIX/"$i" "$MINIROOT/$i" -done -ln -s /tmp "$MINIROOT"/var/tmp -# Copy Templates -cp -a /usr/share/knoppix-terminalserver/templates/miniroot/* "${MINIROOT}/" -# Copy Programs -cp -a /bin/ash.static "${MINIROOT}/static/ash" -ln -s /static/ash "${MINIROOT}/static/init" -ln -s /static/ash "${MINIROOT}/static/sh" - -# Check if we need the Kernel 2.6 insmod -INSMOD="" -case "$KERNEL" in 2.6.*) INSMOD=/sbin/insmod ;; esac - -# Unfortunately, these are not integrated in ash-knoppix yet, so we need some shared -# libs. :-( -for i in /bin/mount /sbin/{pump,ifconfig,portmap} $INSMOD; do - cp -a "$i" "${MINIROOT}/static/" - ldd "$i" | while read lib skip path relax; do - if [ -f "$lib" ]; then - cp -up "$lib" "${MINIROOT}/lib/${lib##*/}" - else - [ -n "$path" ] && cp -up "$path" "${MINIROOT}/lib/${lib##*/}" - fi - done -done -cp /lib/libacl*.so.? /lib/libattr*.so.? /lib/libnss_files*.so.? /lib/libnss_dns*.so.? "${MINIROOT}/lib/" -strip "${MINIROOT}"/lib/* -# Copy device nodes -cp -a /dev/{null,zero,console,cloop*,hd*,sd*,ub*,init*,kmem,fd*,loop*,mem,ram*,*random,pts,psaux,ptmx,std*,systty,sndstat,tty,tty[0-9]*} "${MINIROOT}/dev/" -# Copy kernel modules -cp /lib/modules/$KERNEL/kernel/*/*/{af_packet,sunrpc,lockd,nfs}.*o "${MINIROOT}/modules/net/" -# New in Kernel 2.4 -for i in /lib/modules/$KERNEL/kernel/lib/crc32.*o; do -cp "$i" "${MINIROOT}/modules/net/00_${i##*/}" 2>/dev/null -done -cp /lib/modules/$KERNEL/kernel/*/*/cloop.*o /lib/modules/$KERNEL/kernel/*/*/unionfs.*o "${MINIROOT}/modules/" + for i in $MODULES; do find /lib/modules/$KERNEL/kernel/drivers/net -name "$i" -exec cp {} "${MINIROOT}/modules/net/" \; done @@ -287,7 +265,8 @@ done | sort | uniq | while read module relax; do [ -n "$module" ] && cp "$module" "${MINIROOT}/modules/net/00_${module##*/}"; done umount "${MINIROOT}" -dd if="$RAMDISK" bs=${MINISIZE}k count=1 | gzip -9v > "${MINIROOT}.gz" +#dd if="$RAMDISK" bs=${MINISIZE}k count=1 | gzip -9v > "${MINIROOT}.gz" +cat "$RAMDISK" | gzip -9v > "${MINIROOT}.gz" rm -r "$RAMDISK" mv -f "${MINIROOT}.gz" /tftpboot/miniroot.gz } @@ -383,9 +362,6 @@ [ -f /etc/sysconfig/i18n ] && . /etc/sysconfig/i18n -DIALOG="dialog" -[ -n "$DISPLAY" ] && [ -x /usr/bin/Xdialog ] && DIALOG="Xdialog" - case "$1" in stop) { [ ! -f "$STATUS" ] || [ "$(<$STATUS)" != "running" ]; } && { echo "KNOPPIX-Terminalserver not running."; exit 1; }