diff options
author | Marty Connor | 2009-03-29 07:25:15 +0200 |
---|---|---|
committer | Michael Brown | 2009-08-02 12:04:13 +0200 |
commit | 96f4f96540b75d760e073bd02cd6273f0e50a4f6 (patch) | |
tree | d58a3648ac932cd390b55b5179b39c52d652fbee /src/util/gensdsk | |
parent | [rtl818x] Add driver for Realtek 8180/8185 wireless cards (diff) | |
download | ipxe-96f4f96540b75d760e073bd02cd6273f0e50a4f6.tar.gz ipxe-96f4f96540b75d760e073bd02cd6273f0e50a4f6.tar.xz ipxe-96f4f96540b75d760e073bd02cd6273f0e50a4f6.zip |
[build] Add syslinux floppy image type .sdsk
We add a syslinux floppy disk type using parts of the genliso script.
This floppy image cat be dd'ed to a physical floppy or used in
instances where a virtual floppy with an mountable DOS filesystem is
useful.
We also modify the genliso script to only generate .liso images
rather than creating images depending on how it is called.
Signed-off-by: Michael Brown <mcb30@etherboot.org>
Diffstat (limited to 'src/util/gensdsk')
-rw-r--r-- | src/util/gensdsk | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/src/util/gensdsk b/src/util/gensdsk new file mode 100644 index 00000000..68c339c2 --- /dev/null +++ b/src/util/gensdsk @@ -0,0 +1,66 @@ +#!/bin/bash +# +# Generate a syslinux floppy that loads a gPXE image +# +# gensdsk foo.sdsk foo.lkrn +# +# the floppy image is the first argument +# followed by list of .lkrn images +# + +case $# in +0|1) + echo Usage: $0 foo.sdsk foo.lkrn ... + exit 1 + ;; +esac +case "`mtools -V`" in +Mtools\ version\ 3.9.9*|Mtools\ version\ 3.9.1[0-9]*|Mtools\ version\ 4.*) + ;; +*) + echo Mtools version 3.9.9 or later is required + exit 1 + ;; +esac +img=$1 +shift +dir=bin/sdsk.dir +mkdir -p $dir + +mformat -f 1440 -C -i $img :: +cfg=bin/syslinux.cfg +cat > $cfg <<EOF + +# These default options can be changed in the gensdsk script +TIMEOUT 30 +EOF +first= +for f +do + if [ ! -r $f ] + then + echo $f does not exist, skipping 1>&2 + continue + fi + # shorten name for 8.3 filesystem + b=$(basename $f) + g=${b%.lkrn} + g=${g//[^a-z0-9]} + g=${g:0:8}.krn + case "$first" in + "") + echo DEFAULT $g + ;; + esac + first=$g + echo LABEL $b + echo "" KERNEL $g + mcopy -m -i $img $f ::$g +done >> $cfg +mcopy -i $img $cfg ::syslinux.cfg +if ! syslinux $img +then + exit 1 +fi + +rm -fr $dir |