Network Boot QNX 6.3.0 x86

Submitted by noc on

By Igor Kovalenko

Question: I have a windows box that can serve as a tftpd server and would like to boot a standard Intel x86 PC over the network from a QNX 6.3.0 image. How?You need a network card that supports PXE (Intel and 3Com usually do). Built-in network chips usually support it to (look for PXE options in the BIOS Setup, they usually are disabled by default and may be named something like 'Ethernet Option ROM' or 'Network Option ROM', etc.).

Then you need DHCP and TFTP service on your Windows box (3Com variant of PXE may require 'PXE server' as well, I am not sure). The DHCP server should be configured to supply IP and boot file (at least).

To boot QNX you will need pxegrub (it is part of GRUB package) compiled for your network card. Use latest GRUB version (0.94), the earlier ones may have problems with some PXE versions. You also need to generate multiboot-compliant variant of QNX boot image (in the build file replace 'bios.boot' with 'elf.boot').

The logic is, your PXE card will broadcast request for IP and boot file (using DHCP). Once some server has replied, PXE card will send request to that server for that boot file (using TFTP). The boot file you should use is pxegrub. Once it is downloaded, pxegrub will talk to the server, get its config file (that you can write) and based on that config file show a boot menu on the screen (it is optional). Then it downloads either selected or default boot image (which has to be either Linux/BSD or a multiboot-compliant OS image).

QNX added multiboot compliance from version 6.2.1, but their standard boot images are not (which is why you need to use elf.boot).