HTTP boot

You are to boot terminals by HTTP in these two cases:

  1. Plenty of terminals in one network boot from one server. It causes difficulties for TFTP boot when number of terminals is above 300. HTTP works stable with any amount of terminals.
  2. Terminals boot by VPN via slow channel with packet loss. TFTP is very demanding protocol. HTTP works more stable on such channels.

Even in one network with less than 100 terminals it makes sense to boot by HTTP. HTTP is faster and more stable. TFTP is too trivial protocol, it was designed just to fit BootROM/BIOS. TFTP is highly demanding to network reliability. If packets get lost, large files will be loaded by TFTP very hard. HTTP solves this problem.

Terminal boot by network starts from TFTP anyway. Network card BootROM, burned into network card or motherboard BIOS, is able to boot only by TFTP. Two files are downloaded by TFTP: wtware.http (bootx64.efi for UEFI) and wtware.http.cfg. All other files will be loaded by HTTP.

DHCP configuration for HTTP boot

In 066 DHCP parameter specify TFTP server IP address as always.

In 067 DHCP parameter specify 5.4.24/wtware.http (5.4.24/bootx64.http for UEFI) instead of wtware.pxe. Change 5.4.24 to your current WTware version, that terminal boots with.

For UEFI computers in 067 DHCP parameter specify 5.4.24/http.efi instead of 5.4.24/bootx64.efi. Instead of 5.4.24 specify WTware version, that terminal boot with.

For Microsoft DHCP make sure that setting 'Conflict detection attempts' is set to default value 0:

Start: Legacy BIOS, νε UEFI

When terminal starts, BootROM code, burned into network card or BIOS, takes control. This code requests DHCP. Then it connects to server with IP address, specified in 066 DHCP parameter. It downloads by TFTP from this server file 5.4.24/wtware.http and transfers control to this file.

File 5.4.24/wtware.http contains loader iPXE, more complicated, than in your terminal BootROM or BIOS. It loades by TFTP it's configuration file 5.4.24/wtware.http.cfg. Then it downloads by HTTP WTware files. URLs of these files are specified in wtware.http.cfg.

Start: UEFI

When terminal starts UEFI code, burned into motherboard BIOS, takes control. This code requests DHCP. Then it connects to server with IP address, specified in 066 DHCP parameter. It downloads by TFTP from this server file 5.4.24/http.efi and transfers control to this file.

UEFI is rather new technology. UEFI BIOS can download and run WTware start file 5.4.24/http.efi. This file size is about 4 megabytes including Linux kernel and network cards drivers. There's no need in additional loader for UEFI BIOS. WTware starts, downloads from TFTP 5.4.24/wtware.http.cfg configuration file and continues to download necessary files by HTTP, using HTTP-server address, port and paths, specified in wtware.http.cfg.

Paths on HTTP server

Default paths should be used when in HTTP-server root there's wtware link, that refers to WTware file structure: to "C:\Program Files (x86)\WTware\TFTPDROOT\" on Windows or to contents of wtware directory from WTware .zip archive. For example, to boot WTware 5.4.24 version these paths should work:

http://HTTP-server-IP-address/wtware/Everyone/all.wtc
http://HTTP-server-IP-address/wtware/5.4.24/packages/alsa

To create link to Windows-directory from Windows command line (that runs as administrator) execute:

mklink /D "C:\place-of-IIS-root\wtware" "C:\Program Files (x86)\WTware\TFTPDROOT"
Clearer way: install FAR, press Alt-F6.

In WTware packages directory there are many files without extensions. Microsoft IIS may reject sending files with no extensions. You can use "." (a dot) as extension and create a MIME mapping.

There's no need to edit http.cfg file, you can use the file from distributive, when:

  1. HTTP-server IP-address is the same as TFTP-server IP-address.
  2. http://HTTP-server-IP-address/wtware/ is the link to TFTP root, i.e. http://HTTP-server-IP-address/wtware/Everyone/all.wtc and http://HTTP-server-IP-address/wtware/5.4.24/packages/alsa are correct paths to corresponding files from WTware distributive.

Edit wtware.http.cfg

If your paths differ from these or HTTP-server and TFTP-server have different IP-addresses, you are to tell terminal about it. You are to edit wtware.http.cfg.

Example of wtware.http.cfg file, when HTTP-server IP-address differs from TFTP-server IP-address. Change 5.4.24 version to your current WTware version.

#!ipxe
set wtware-uefi-http true
set wtware-url http://192.168.1.1/wtware
initrd ${wtware-url}/5.4.24/packages/initrd
boot   ${wtware-url}/5.4.24/packages/kernel BOOT_IMAGE=${wtware-url}/5.4.24/packages/kernel root=/dev/ram0 quiet


Example of wtware.http.cfg file, when HTTP-server and TFTP-server have different IP-addresses, instead of digital IP-address HTTP-server domain name is specified, and your path to distributive is not our recommended path.

#!ipxe
set wtware-uefi-http true
set wtware-url http://www.server.local/somewere/else/
initrd ${wtware-url}/5.4.24/packages/initrd
boot   ${wtware-url}/5.4.24/packages/kernel BOOT_IMAGE=${wtware-url}/5.4.24/packages/kernel root=/dev/ram0 quiet


If you have any comments or remarks to this article, please, let us know!