iSCSI booting with U-Boot and iPXE

U-Boot has only a reduced set of supported network protocols. A major gap is the lack of a TCP stack.

For booting a diskless computer this leaves us with BOOTP or DHCP to get the address of a boot script. TFTP can be used to load the boot script and the operating system kernel and initial file system (initrd).

These protocols are insecure. The client cannot validate the authenticity of the contacted servers. And the server cannot verify the identity of the client.

Furthermore the services providing the operating system loader or kernel are not the ones that the operation system will use. Especially in a SAN environment this makes updating the operating system a hassle. After installing a new kernel version the boot files have to be copied to the TFTP server directory.

The HTTPS protocol provides certificate based validation of servers. Sensitive data like passwords can be securely transmitted.

The iSCSI protocol is used for connecting storage attached networks. It provides mutual authentication using the CHAP protocol. It typically runs on a TCP transport.

Thus a better solution than DHCP/TFTP boot would be to load a boot script via HTTPS and to download any other files needed for booting via iSCSI.

An alternative to implementing these protocols in U-Boot is to use an existing software that can run on top of U-Boot. iPXE is the "swiss army knife" of network booting. It supports both HTTPS and iSCSI. It has a script engine for fine grained control of the boot process and can provide a command shell.

iPXE can be built as an EFI application (named snp.efi) which can be loaded and run by U-Boot. Read more

Java libraries

Xypron GUI Components

GUI Components is a class library written in Java. It facilitates writing Swing applications.

Discrete Event Simulation

Xypron Discrete Event Simulation is a class library and application written in Java. It provides discrete event simulation for supply chains.


Xypron Statistics is a Java library which was developped with supply chain simulation in mind. The normal, the exponential and the gamma distribution have been included. Methods to calculate fill rate and order rate service levels as well as safety factors are provided. The Mersenne Twister algorithm is used to provide high quality random number generation.

Linear Optimization

GLPK for Windows

GLPK for Windows supplies Windows executables for the GLPK library.

GLPK for Java

GLPK for Java supplies a Java binding for the GLPK library.

The Linear Optimization Wrapper for Java provides an intuitive interface.


GLPK for C#/CLI supplies a Common Language Interface binding for the GLPK library.


Statistics for MySQL

Statistics for MySQL provides additional statistical functions (like Pearson's coefficient of correlation) which are missing in MySQL. DLLs for 32 and 64bit Windows as well as makefiles for Linux are available.

MediaWiki Extension: Require Editor Privilege

The Require Editor Privilege extension for MediaWiki adds two new user groups: editors and readers. Readers can read any article that a user could read in a standard wiki. Editors can do anything a user could do in a standard wiki. Users without the readers privilege can view the main page only.

Graphical Category Browser for MediaWiki

The Graphical Category Browser adds graphs to the category pages showing the relationships to other categories. A special page "Graphical Categories Browser" is added, showing a network diagram of all categories.