Skip to content

Commit e3e0239

Browse files
committed
Add README file
Signed-off-by: Maurice Ma <maurice.ma@intel.com>
1 parent 8822c43 commit e3e0239

File tree

2 files changed

+42
-0
lines changed

2 files changed

+42
-0
lines changed

Docs/netbootxyz.png

9.78 KB
Loading

ReadMe.md

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
PXE Boot for Slim Bootloader
2+
============================
3+
This repo demonstrates how to support network boot on [Slim Bootloader](https://github.com/slimbootloader) through a customized payload. It utilizes [netbootxyz](https://netboot.xyz) and a minimalized EDK2 [UEFI payload](https://github.com/tianocore/edk2) to provide the PXE boot capability.
4+
5+
Overview
6+
---------
7+
EDK2 UEFI payload can support network boot natively through the UEFI network stack. But it needs to integrate additional network stack drivers and UNDI driver. On the other side, open source [iPXE](https://ipxe.org) project provides an alternative path to support network boot on top of UEFI. And [netbootxyz](https://netboot.xyz) project extends it further to support booting most of the popular Linux Live ISO images through network. This project demonstrates how to take the advantage of netbootzyz and UEFI payload to implement PXE boot with Slim Bootloader on QEMU platform. The similar can be applied on other real [platforms](https://slimbootloader.github.io/supported-hardware/index.html) supported by Slim Bootloader.
8+
9+
Build Steps:
10+
------------
11+
- Clone this repo into directory %NETBOOT%
12+
13+
- Clone Slim Bootloader repo into directory %SLIMBOOT%
14+
15+
- Switch to %NETBOOT% directory and build UEFI payload with netbootxyz as default boot option::
16+
17+
python BuildNetboot.py build -r
18+
19+
- Copy generated UEFI payload into Slim Bootloader (The path might need adjustment according to your build toolchain)::
20+
21+
copy %NETBOOT%\Edk2\Build\UefiPayloadPkgX64\RELEASE_VS2019\Fv\UEFIPAYLOAD.fd
22+
%SLIMBOOT%\PayloadPkg\PayloadBins\UefiPldNetBoot.fd
23+
24+
- Switch to %SLIMBOOT% directory and build Slim Bootloader with this customized UEFI payload::
25+
26+
python BuildLoader.py build qemu -p OsLoader.efi:LLDR:Lz4;UefiPldNetBoot.fd:UEFI:Lzma
27+
28+
- Boot QEMU::
29+
30+
"C:\Program Files\qemu\qemu-system-x86_64.exe" -m 256M -cpu max -machine q35,accel=tcg
31+
-drive if=pflash,format=raw,file= %SLIMBOOT%\Outputs\qemu\SlimBootloader.bin
32+
-drive id=mydisk,if=none,file=fat:rw:Disk,if=none,format=raw
33+
-device ide-hd,drive=mydisk -boot order=dba -serial stdio
34+
35+
- Screenshot
36+
37+
![netbootxyz](Docs/netbootxyz.png)
38+
39+
40+
The steps above used QEMU platform as an example for convenience. However, the exact same
41+
UefiPldNetBoot.fd can work on many real platforms as well, such as APL LeafHill board,
42+
WHL Up Xtreme board, etc.

0 commit comments

Comments
 (0)