Configuring the RARP Daemon

The Reverse Address Resolution Protocol daemon, rarpd, maps a hardware-defined hexadecimal Ethernet (MAC) address to a specific IP-format address. This service also integrates with the TFTP daemon to deliver bootable images via TFTP based on the IP address for which a lookup was requested. The executable for this daemon is the binary /usr/sbin/rarpd on most Linux systems.

The rarpd uses the configuration file /etc/ethers to map hexadecimal MAC addresses to IP addresses. In order to boot boards that use rarpd, you must do the following:

  1. Create an entry in the /etc/ethers file that maps the hexadecimal MAC address of the target to the desired decimal IP address. For example, to assign the IP address 10.0.0.10 to a board with the MAC address 00:80:B6:03:24:92, the entry in /etc/ethers would look like the following:
    00:80:B6:03:24:92       10.0.0.10

    The two entries can be supported by any number of Tab or Space characters.

  2. Copy the bootable kernel for the board to the directory used by your system’s TFTP server (usually /tftpboot). The name that you give the copy of the kernel in this directory must be same as the IP address assigned to the board, except that it must be expressed in hexadecimal and composed entirely of upper-case characters with no punctuation. Therefore, if the assigned IP address is 10.0.0.10, the name of the bootable kernel file must be 0A00000A.
    # cp \ <kernel_image> \ /tftpboot/0A00000A
  3. You must start the rarpd manually (in most cases) by executing the command /usr/sbin/rarpd. If you are using a secondary interface for communicating with the embedded board (for example, the discussion of DHCP assumed that the interface eth1 was being used), you need to start the rarpd daemon specifically for that interface. For example:
    # /usr/sbin/rarpd eth1