=== Linux bzImage boot === == Test == Boot into a minimal Linux/busybox system created using [[http://git.etherboot.org/?p=people/mcb30/mkbootfs.git;a=summary|mkbootfs]] via HTTP. == DUT configuration == No physical disks present. System configured to boot from NIC equipped with gPXE ROM. == Environment configuration == Apache HTTP server providing gPXE script, kernel, initrd, and modules as separate files. gPXE script set to instruct client to download kernel, initrd and relevant modules. DHCP server providing network configuration and path to gPXE script on HTTP server. == Result == Success is defined as reaching the busybox shell prompt. === Detailed test procedure === == Prerequisites == * x86 uClibc toolchain (configured with RPC and large-file support) * wrapper script for uClibc compiler named ''uclibc'' * git * x86 Linux kernel (TODO: this should be built from source as well) * HTTP and DHCP servers == Source checkout == git clone git://git.etherboot.org/scm/people/mcb30/mkbootfs.git cd mkbootfs git-submodule init git-submodule update == mkbootfs build == In the ''mkbootfs'' directory, ensuring the ''uclibc'' wrapper is in the $PATH, simply ''make''. == Server configuration == Copy all .bp files from the mkbootfs directory to the HTTP server. Copy the x86 Linux kernel bzImage to the HTTP server. Write a gPXE script on the HTTP server to boot Linux with the .bp files as initrds: #!gpxe kernel http://server/dir/bzImage initrd http://server/dir/skeleton.bp initrd http://server/dir/busybox.bp initrd http://server/dir/policy.bp initrd http://server/dir/iscsi.bp boot Configure the DHCP server to instruct the device under test to boot from this gPXE script: filename "http://server/dir/script.gpxe"; == Boot == Start the test machine; it should boot to a busybox shell prompt with a "gPXE Universal Boot" banner.