====== Driver test: UNDI API ====== ===== Rationale ===== iPXE normally operates in polling mode with interrupts disabled. Drivers may choose to support the use of interrupts, but this is not required. Interrupt-based operation can be tested by using iPXE to boot into the ''undionly.kpxe'' build of iPXE. ===== Preparation ===== Create a 512MB file containing pseudo-random data, using e.g.: dd if=/dev/urandom of=512mb bs=1M count=512 Download ''[[https://boot.ipxe.org/undionly.kpxe|undionly.kpxe]]''. Copy both your pseudo-random data file and ''undionly.kpxe'' to a web server on your local network. ===== Test sequence ===== - Before starting, ensure the network cable is connected to a network which provides a DHCP server and a web server which can serve your pseudo-random data file and ''undionly.kpxe''. - Use ifstat to identify the name of your network interface (hereafter assumed to be ''net0''). - Open the interface and obtain an IP address using ''[[:cmd:dhcp]] net0''. - Download and boot ''undionly.kpxe'' using ''[[:cmd:chain]]''. - Press ''Ctrl-B'' to enter the iPXE shell provided by ''undionly.kpxe''. - Use ''[[:cmd:ifstat]]'' to verify that ''undionly.kpxe'' has detected a single interface ''net0'' with the correct MAC address and using the ''undionly'' driver. - Open the interface and initiate a DHCP request using ''dhcp net0''. - Verify that the DHCP command completes without an error. - Download the pseudo-random data file using ''[[:cmd:imgfetch]]''. - Use ''[[:cmd:imgstat]]'' to verify that the downloaded file has the correct size.