User Tools

Site Tools


developersguide:netbootingarm

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

developersguide:netbootingarm [2014/11/11 14:52]
developersguide:netbootingarm [2014/11/11 14:52] (current)
Line 1: Line 1:
 +====== Netbooting Minix on ARM ======
 +
 +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.
 +
 +
 +===== Network Setup =====
 +
 +==== Hardware ====
 +
 +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.
 +
 +==== Network Configuration ====
 +
 +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.
 +
 +===== Software Setup - ARM Computer =====
 +
 +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 [[.:​minixonarm|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:
 +<​code>​
 +./​releasetools/​gen_uEnv.txt.sh -n > ${IMG_DIR}/​uEnv.txt
 +</​code>​
 +
 +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.
 +
 +===== Software Setup - TFTP Server =====
 +
 +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 TFTP ====
 +
 +[[http://​www.thekelleys.org.uk/​dnsmasq/​doc.html|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:
 +<​code>​
 +# 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/​
 +</​code>​
 +
 +===== Putting it all Together =====
 +
 +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:
 +<​code>​
 +...
 +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
 +...
 +</​code>​
  
developersguide/netbootingarm.txt · Last modified: 2014/11/11 14:52 (external edit)