+#! /bin/sh
# Set up environment at fisrt.
-export BASETOOLS_DIR=$WORKSPACE_TOOLS_PATH/Bin/Win32
-export BUILD_DIR=$WORKSPACE/Conf/BaseToolsSource/Source/C/bin
+export BUILD_DIR=$WORKSPACE/Build/DuetPkg/DEBUG_UNIXGCC
+export BASETOOLS_DIR=$WORKSPACE/Conf/BaseToolsSource/Source/C/bin
+export BOOTSECTOR_BIN_DIR=$WORKSPACE/DuetPkg/BootSector/bin
export DISK_LABEL=DUET
+export PROCESS_MARK=TRUE
if [ \
-z "$*" -o \
"$*" = "--help" \
]
then
- echo "Usage: CreateBootDisk [usb|floppy|ide] DiskNumber [FAT12|FAT16|FAT32]"
- exit 1
+ echo "Usage: CreateBootDisk [usb|floppy|ide] MediaPath DevicePath [FAT12|FAT16|FAT32]"
+ echo "e.g. : CreateBootDisk floppy /media/floppy0 /dev/fd0 FAT12 "
+ PROCESS_MARK=FALSE
fi
-export EFI_BOOT_DISK=$2
+export EFI_BOOT_MEDIA=$2
+export EFI_BOOT_DEVICE=$3
-case "$1" in
- floppy)
- if [ "$3" = FAT12 ]
- then
- echo Start to create floppy boot disk ...
- echo Format $EFI_BOOT_DISK ...
- ## Do some format things , not done yet.
- echo Create boot sector ...
- ## Linux version of GenBootSector has not pass build yet.
- $BASETOOLS_DIR/Genbootsector -i $EFI_BOOT_DISK -o FDBs.com
- $BASETOOLS_DIR/Bootsectimage -g FDBs.com $BUILD_DIR/IA32/DuetPkg/BootSector/BootSector/OUTPUT/Bootsect.com -f
- $BASETOOLS_DIR/Genbootsector -o $EFI_BOOT_DISK -i $BUILD_DIR/IA32/DuetPkg/BootSector/BootSector/OUTPUT/Bootsect.com
+if [ "$PROCESS_MARK" = TRUE ]
+then
+ case "$1" in
+ floppy)
+ if [ "$4" = FAT12 ]
+ then
+ echo Start to create floppy boot disk ...
+ echo Format $EFI_BOOT_MEDIA ...
+ ## Format floppy disk
+ umount $EFI_BOOT_MEDIA
+ mkfs.msdos $EFI_BOOT_DEVICE
+ mount $EFI_BOOT_DEVICE $EFI_BOOT_MEDIA
+ echo Create boot sector ...
+ ## Linux version of GenBootSector has not pass build yet.
+ $BASETOOLS_DIR/GnuGenBootSector -i $EFI_BOOT_DEVICE -o FDBs.com
+ $BASETOOLS_DIR/BootSectImage -g FDBs.com $BOOTSECTOR_BIN_DIR/bootsect.com -f
+ $BASETOOLS_DIR/GnuGenBootSector -o $EFI_BOOT_DEVICE -i $BOOTSECTOR_BIN_DIR/bootsect.com
- cp $BUILD_DIR/FV/EfiLdr $EFI_BOOT_DISK
- cat $WORKSPACE/EdkShellBinPkg/bin/ia32/Shell.efi > $EFI_BOOT_DISK/efi/boot/bootia32.efi
+ cp $BUILD_DIR/FV/Efildr $EFI_BOOT_MEDIA
- echo Done.
- else
- echo "Wrong FAT type $3 for floppy!"
- exit
- fi
- ;;
+ mkdir -p $EFI_BOOT_MEDIA/efi
+ mkdir -p $EFI_BOOT_MEDIA/efi/boot
- file) # CreateFile
- if [ "$3" = FAT12 ]
- then
- echo "Start to create file boot disk ..."
- echo Create boot sector ...
+ cp $WORKSPACE/EdkShellBinPkg/MinimumShell/Ia32/Shell.efi $EFI_BOOT_MEDIA/efi/boot/bootia32.efi
- ## Linux version of GenBootSector has not pass build yet.
- $BASETOOLS_DIR/Genbootsector -i $EFI_BOOT_DISK -o FDBs.com
- $BASETOOLS_DIR/Bootsectimage -g FDBs.com $BUILD_DIR/IA32/DuetPkg/BootSector/BootSector/OUTPUT/Bootsect.com -f
- $BASETOOLS_DIR/Genbootsector -o $EFI_BOOT_DISK -i $BUILD_DIR/IA32/DuetPkg/BootSector/BootSector/OUTPUT/Bootsect.com
- echo Done.
- else
- echo "Wrong FAT type" $3 "for floppy!"
- exit
- fi
- ;;
-
- usb) # CreateUsb
-
- if [ "$3" = FAT16 ]
- then
- if [ "$4" = step2 ]
- then
- cp $BUILD_DIR/FV/EfiLdr16 $EFI_BOOT_DISK
- mkdir $EFI_BOOT_DISK/efi/boot
- cp $WORKSPACE/EdkShellBinPkg/bin/ia32/Shell.efi $EFI_BOOT_DISK/efi/boot/bootia32.efi
- echo "step2 Done!"
+ echo Done.
else
- echo Format $EFI_BOOT_DISK ...
- #Do format command.
- echo Create boot sector ...
- ## Linux version of GenBootSector & Bootsectimage has not pass build yet.
- $BASETOOLS_DIR/Genbootsector -i $EFI_BOOT_DISK -o UsbBs16.com
- $BASETOOLS_DIR/Bootsectimage -g UsbBs16.com $BUILD_DIR/IA32/DuetPkg/BootSector/BootSector/OUTPUT/Bs16.com -f
- $BASETOOLS_DIR/Genbootsector -o $EFI_BOOT_DISK -i $BUILD_DIR/IA32/DuetPkg/BootSector/BootSector/OUTPUT/Bs16.com
- $BASETOOLS_DIR/Genbootsector -m -o $EFI_BOOT_DISK -i $BUILD_DIR/IA32/DuetPkg/BootSector/BootSector/OUTPUT/Mbr.com
+ echo "Wrong FAT type $4 for floppy!"
+ fi
+ ;;
+
+ file) # CreateFile
+ if [ "$4" = FAT12 ]
+ then
+ echo "Start to create file boot disk ..."
+ echo Create boot sector ...
+
+ ## Linux version of GenBootSector has not pass build yet.
+ $BASETOOLS_DIR/GnuGenBootSector -i $EFI_BOOT_MEDIA -o FDBs.com
+ $BASETOOLS_DIR/BootSectImage -g FDBs.com $BOOTSECTOR_BIN_DIR/bootsect.com -f
+ $BASETOOLS_DIR/GnuGenBootSector -o $EFI_BOOT_MEDIA -i $BOOTSECTOR_BIN_DIR/bootsect.com
echo Done.
- echo PLEASE UNPLUG USB, THEN PLUG IT AGAIN TO DO STEP2!
- exit 1
+ else
+ echo "Wrong FAT type" $4 "for floppy!"
fi
- elif [ "$3" = FAT32 ]
- then
- if [ "$4" = step2 ]
+ ;;
+
+ usb) # CreateUsb
+
+ if [ "$4" = FAT16 ]
then
- cp $BUILD_DIR/FV/EfiLdr20 $EFI_BOOT_DISK
- mkdir $EFI_BOOT_DISK/efi/boot
- cp $WORKSPACE/EdkShellBinPkg/bin/ia32/Shell.efi $EFI_BOOT_DISK/efi/boot/bootia32.efi
- echo "step2 Done!"
+ if [ "$5" = step2 ]
+ then
+ cp $BUILD_DIR/FV/Efildr16 $EFI_BOOT_MEDIA
+ mkdir $EFI_BOOT_MEDIA/efi/boot
+ cp $WORKSPACE/EdkShellBinPkg/MinimumShell/ia32/Shell.efi $EFI_BOOT_MEDIA/efi/boot/bootia32.efi
+ echo "step2 Done!"
+ else
+ echo Format $EFI_BOOT_DEVICE ...
+ #Do format command.
+ echo Create boot sector ...
+ ## Linux version of GenBootSector & Bootsectimage has not pass build yet.
+ $BASETOOLS_DIR/GnuGenBootSector -i $EFI_BOOT_DEVICE -o UsbBs16.com
+ $BASETOOLS_DIR/BootSectImage -g UsbBs16.com $BOOTSECTOR_BIN_DIR/bs16.com -f
+ $BASETOOLS_DIR/GnuGenBootSector -o $EFI_BOOT_DEVICE -i $BOOTSECTOR_BIN_DIR/bs16.com
+ $BASETOOLS_DIR/GnuGenBootSector -m -o $EFI_BOOT_DEVICE -i $BOOTSECTOR_BIN_DIR/Mbr.com
+ echo Done.
+ echo PLEASE UNPLUG USB, THEN PLUG IT AGAIN TO DO STEP2!
+ fi
+ elif [ "$4" = FAT32 ]
+ then
+ if [ "$5" = step2 ]
+ then
+ cp $BUILD_DIR/FV/Efildr20 $EFI_BOOT_MEDIA
+ mkdir $EFI_BOOT_MEDIA/efi/boot
+ cp $WORKSPACE/EdkShellBinPkg/MinimumShell/ia32/Shell.efi $EFI_BOOT_MEDIA/efi/boot/bootia32.efi
+ echo "step2 Done!"
+ else
+ echo Format $EFI_BOOT_DEVICE ...
+ #Do format command.
+ echo Create boot sector ...
+ ## Linux version of GenBootSector & Bootsectimage has not pass build yet.
+ $BASETOOLS_DIR/GnuGenBootSector -i $EFI_BOOT_DEVICE -o UsbBs32.com
+ $BASETOOLS_DIR/BootSectImage -g UsbBs32.com $BOOTSECTOR_BIN_DIR/bs32.com -f
+ $BASETOOLS_DIR/GnuGenBootSector -o $EFI_BOOT_DEVICE -i $BOOTSECTOR_BIN_DIR/bs32.com
+ $BASETOOLS_DIR/GnuGenBootSector -m -o $EFI_BOOT_DEVICE -i $BOOTSECTOR_BIN_DIR/Mbr.com
+ echo Done.
+ echo PLEASE UNPLUG USB, THEN PLUG IT AGAIN TO DO STEP2!
+ fi
else
- echo Format $EFI_BOOT_DISK ...
- #Do format command.
- echo Create boot sector ...
- ## Linux version of GenBootSector & Bootsectimage has not pass build yet.
- $BASETOOLS_DIR/Genbootsector -i $EFI_BOOT_DISK -o UsbBs32.com
- $BASETOOLS_DIR/Bootsectimage -g UsbBs32.com $BUILD_DIR/IA32/DuetPkg/BootSector/BootSector/OUTPUT/Bs32.com -f
- $BASETOOLS_DIR/Genbootsector -o $EFI_BOOT_DISK -i $BUILD_DIR/IA32/DuetPkg/BootSector/BootSector/OUTPUT/Bs32.com
- $BASETOOLS_DIR/Genbootsector -m -o $EFI_BOOT_DISK -i $BUILD_DIR/IA32/DuetPkg/BootSector/BootSector/OUTPUT/Mbr.com
- echo Done.
- echo PLEASE UNPLUG USB, THEN PLUG IT AGAIN TO DO STEP2!
- exit 1
- fi
- else
- echo "Wrong FAT type $1 for floppy!"
- fi
+ echo "Wrong FAT type $1 for floppy!"
+ fi
- ;;
-
- ide) # CreateIde
- exit 1
- ;;
- *)
- echo "Arg1 should be [floopy | file | usb | ide] !"
- exit 1
-
-esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ ;;
+ ide) # CreateIde
+ echo "Not support yet!"
+ ;;
+ *)
+ echo "Arg1 should be [floppy | file | usb | ide] !"
+ esac
+fi