In previous post I described how
to setup PXE server and boot Debian installer using it. I mentioned that
provided setup is limited and some extensive configuration is needed to make it
useful for real world example. Since that time I learned that there is
chain command in iPXE, which give ability to use arbitrary TFTP server
as boot file source.
Using RPi PXE server
For example by changing my test network topology from previous post
to something like that:
In short Raspberry Pi contain our PXE server configured in previous post.
TL-MR3420 is our DHCP server and PC Engines APU2A4 is our target box where we
want to install Debian.
We need to change eth0 configuration, so our PXE server will get IP
automatically from DHCP:
iface eth0 inet dhcp
Also disable udhcpd:
sudo update-rc.d udhcpd disable
Then reboot PXE server.
First enter iPXE on APU2 board by pressing <Ctrl-B> during boot. You should
see something like that:
Then hit Enter. You will see complains about video mode like this:
Press <ENTER> to see video modes available, <SPACE> to continue, or wait 30 sec
Follow this instruction by waiting or hitting Space. Then you should have
This is typical installation except it happen over serial. As a storage I used
16GB USB stick with guided partitioning. At the end I also installed GRUB on
USB stick MBR.
Be patient if serial console will be blank for some time it happen when
installing over network.
After reboot you should be able to choose USB stick from boot menu (F10) and
your Debian on APU2 should be ready:
Debian GNU/Linux 8 Maedhros ttyS0
Maedhros login: pietrushnic
Linux Maedhros 3.16.0-4-686-pae #1 SMP Debian 3.16.7-ckt20-1+deb8u4 (2016-02-29) i686
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Now when you have Debian installed on your system you can think about various
improvements. For example:
Putting together automated installation using PXE server
Setup NFS and TFTP for Linux kernel development and testing
I hope this post was useful. If you think that it can be improved please
comment. Thanks for reading.
Founder and Embedded Systems Consultant at 3mdeb as well as freelance CTO of Vitro Technology and CEO of LPN Plant. Passionate about building firmware that enables advanced hardware features in modern products. Dedicated to customers that treat embedded software security and upgradeability as forethought. Open source firmware evangelist interested in platform security and trusted computing. In favor of fixed price projects with a clear definition of success.