This page describes how to boot Minix on an ARM-based computer over the network. In other words, when the ARM based computer is powered on, it will download the kernel and servers and use them to boot.
The setup is fairly straightforward. You will need an ethernet hub or switch, a supported ARM based computer (BeagleBone, BeagleBone Black, BeagleBoard-xM, etc), a computer to act as a tftp server, and 2 ethernet cables. Connect the ARM computer to the hub/switch using one ethernet cable, connect the tftp server to the hub/switch using the other ethernet cable, and apply power to the hub/switch.
The default netboot configuration is based around the 192.168.12.0/24 network with the TFTP server's IP address being 192.168.12.10 and the ARM board's IP address being 192.168.12.62. You can change the defaults by editing $HOME/minixsrc/releasetools/gen_uEnv.txt.sh
. Setup the network interface that you plan on using on the TFTP server to have the proper IP address using your operating system's network configuration tool.
The steps required to build an SD card image for netbooting are very similar to the regular steps. Thus, they won't be repeated here. This is to prevent duplication and things getting out of sync. For the “normal” build instructions see Minix on ARM.
The only difference to the build instructions is that before you run ./releasetools/arm_sdimage.sh
, you have to change one line in the script. Edit the line in the file which executes gen_uEnv.txt.sh
, adding a -n
. The resulting line in $HOME/minix/src/releasetools/arm_sdimage.sh
should look like this:
./releasetools/gen_uEnv.txt.sh -n > ${IMG_DIR}/uEnv.txt
Then, continue following the instructions to produce an SD card image, write it to an SD card, pop it in your ARM based system, and wait to power it on until you're TFTP server is setup.
The end goal is to share the object directory ($HOME/minix/obj.evbearm-el
) via TFTP. There are several TFTP servers available. If you choose to use a TFTP server software not listed below, please add the configuration procedure to this wiki page.
dnsmasq provides a built-in TFTP server. Note, if installing on Gentoo, you'll need to set the tftp
USE flag. Here's what my /etc/dnsmasq.conf
file looks like:
# Listen only to this interface interface=eth0 # Enable the TFTP server and set the root directory. enable-tftp tftp-root=/home/tcort/minix/obj.evbearm-el/
Once the TFTP server is up and running and the SD card with the proper u-boot configuration is loaded, you simply need to apply power to the ARM board. It should automatically attempt a netboot. If successful, there should be messages that look like this scrolling by:
... link up on port 0, speed 100, full duplex Using cpsw device TFTP from server 192.168.12.10; our IP address is 192.168.12.62 Filename 'kernel.bin'. Load address: 0x80200000 Loading: ################# -2 MiB/s done ...