diff --git a/target/livecd/build_stage1.sh b/target/livecd/build_stage1.sh index 5c6ed2b1a..44159a6a2 100644 --- a/target/livecd/build_stage1.sh +++ b/target/livecd/build_stage1.sh @@ -1,7 +1,7 @@ echo_header "Creating initrd data:" rm -rf $disksdir/initrd -mkdir -p $disksdir/initrd/{dev,proc,tmp,bin-static,mnt/cdrom,ramdisk,etc,ROCK} +mkdir -p $disksdir/initrd/{dev,proc,tmp,bin-static,mnt/{cdrom,floppy,stick},ramdisk,etc,ROCK} cd $disksdir/initrd; ln -s bin-static sbin-static; ln -s . usr # if [ ! -x ../../../usr/bin/diet ] ; then diff --git a/target/livecd/build_stage2.sh b/target/livecd/build_stage2.sh index 39e80e552..876465026 100644 --- a/target/livecd/build_stage2.sh +++ b/target/livecd/build_stage2.sh @@ -38,7 +38,7 @@ mv boot/* ../boot/ echo_status "Remove the stuff we do not need ..." rm -rf home usr/{doc,man,info} rm -rf var/adm/* var/adm var/mail -rm -rf usr/{include,src} usr/*-linux-gnu {,usr/}lib/*.{a,la,o} opt/*/lib/*.{a,la,o} +rm -rf usr/{include,src} usr/*-linux-gnu {,usr/}lib/*.{a,o} opt/*/lib/*.{a,o} #for x in usr/lib/*/; do rm -rf ${x%/}; done # echo_status "Installing some terminfo databases ..." diff --git a/target/livecd/default.pkgmap b/target/livecd/default.pkgmap index 696f496c1..43812e846 100644 --- a/target/livecd/default.pkgmap +++ b/target/livecd/default.pkgmap @@ -75,6 +75,7 @@ package_map=' -man-pages +madm +memtest86 ++magicpoint -mine +minicom +microcode_ctl @@ -96,6 +97,7 @@ package_map=' +openssl -patch +parted ++pcmcia-cs +popt +perl5 +procinfo @@ -128,6 +130,7 @@ package_map=' +wireless-tools +xfree86 +x86info ++xpdf +zip -zlib +zsh diff --git a/target/livecd/default.pkgsel b/target/livecd/default.pkgsel index 13eb0d970..d25f189fd 100644 --- a/target/livecd/default.pkgsel +++ b/target/livecd/default.pkgsel @@ -95,6 +95,7 @@ pkgfilter sed ' / man / { p; d; }; / man-pages / { p; d; }; / madm / { p; d; }; +/ magicpoint / { p; d; }; / memtest86 / { p; d; }; / mine / { p; d; }; / minicom / { p; d; }; @@ -116,6 +117,7 @@ pkgfilter sed ' / openssl / { p; d; }; / patch / { p; d; }; / parted / { p; d; }; +/ pcmcia-cs / { p; d; }; / popt / { p; d; }; / perl5 / { p; d; }; / procinfo / { p; d; }; @@ -147,6 +149,7 @@ pkgfilter sed ' / wireless-tools / { p; d; }; / xfree86 / { p; d; }; / x86info / { p; d; }; +/ xpdf / { p; d; }; / zip / { p; d; }; / zlib / { p; d; }; / zsh/ { p; d; }; diff --git a/target/livecd/linuxrc.c b/target/livecd/linuxrc.c index a48c16c94..d4483faea 100644 --- a/target/livecd/linuxrc.c +++ b/target/livecd/linuxrc.c @@ -145,7 +145,7 @@ void doboot() else { /* not sure why, but i get 'bad address' if i don't wait a bit here... */ sleep(1); - execlp("/sbin/init","init"); + execlp("/sbin/init","init",NULL); perror("execlp /sbin/init failed"); } DEBUG("doboot returning - bad!"); @@ -295,7 +295,7 @@ int getdevice(char* devstr, int devlen) } if (!nr) { - printf("could not find a suitable cdrom device!\n"); + DEBUG("could not find a suitable cdrom device!\n"); return -2; } @@ -507,20 +507,18 @@ void load_ramdisk_file() { strcpy(filename, STAGE_2_IMAGE); DEBUG("set stage 2 filename to %s",filename); - - ret = getdevice(devicefile, 100); - if (ret == -1) { - DEBUG("getdevice failed: no cd with image found..."); - return; - /* this is needed for my firewire (sbp2) cd drive ... */ - } else if (ret == -2) { - DEBUG("getdevice failed - no cdrom drive?! - sleeping and retrying..."); - sleep(2); - if(getdevice(devicefile, 100) != 0) { - DEBUG("second try still did no good. giving up..."); + + /* this is retry stuff is needed for my firewire (sbp2) cd drive ... */ + do { + ret = getdevice(devicefile, 100); + if (ret == -1) { + printf("getdevice failed: no cd with image found...\n"); return; + } else if (ret == -2) { + sleep(2); + printf("no cdrom drive found - retrying...\n"); } - } + } while( ret != 0 ); snprintf(text, 120, "/mnt/cdrom/%s", filename); diff --git a/target/livecd/x86/help0.txt b/target/livecd/x86/help0.txt index 9742863e5..e7c1b20c5 100644 --- a/target/livecd/x86/help0.txt +++ b/target/livecd/x86/help0.txt @@ -10,8 +10,10 @@ Actions: -------- - Start live cd system - ramdisk options Start live cd system with the given options - linux options Boot the linux kernel with the given options - memtest86 Boot the memtest86 mini-os + Start live cd system at 1024x786-16 + livecd-1280 Start live cd system at 1280x1024-16 + livecd-800 Start live cd system at 800x600-16 + livecd-640 Start live cd system at 640x480-16 + livecd-text Start live cd system in text mode + livecd options Start with the given options diff --git a/target/livecd/x86/isolinux.cfg b/target/livecd/x86/isolinux.cfg index 1796ad6d0..0b891b8a4 100644 --- a/target/livecd/x86/isolinux.cfg +++ b/target/livecd/x86/isolinux.cfg @@ -1,17 +1,27 @@ -DEFAULT ramdisk +DEFAULT livecd TIMEOUT 600 PROMPT 1 DISPLAY help0.txt -LABEL ramdisk +LABEL livecd kernel vmlinuz APPEND initrd=initrd.gz root=/dev/ram devfs=nocompat init=/linuxrc video=vesa:ywrap,mtrr vga=0x317 rw -LABEL linux +LABEL livecd-1280 kernel vmlinuz + APPEND initrd=initrd.gz root=/dev/ram devfs=nocompat init=/linuxrc video=vesa:ywrap,mtrr vga=0x31A rw -LABEL memtest86 - kernel memtest86 +LABEL livecd-800 + kernel vmlinuz + APPEND initrd=initrd.gz root=/dev/ram devfs=nocompat init=/linuxrc video=vesa:ywrap,mtrr vga=0x314 rw + +LABEL livecd-640 + kernel vmlinuz + APPEND initrd=initrd.gz root=/dev/ram devfs=nocompat init=/linuxrc video=vesa:ywrap,mtrr vga=0x311 rw + +LABEL livecd-text + kernel vmlinuz + APPEND initrd=initrd.gz root=/dev/ram devfs=nocompat init=/linuxrc vga=0 rw