(Cross Compiling Radvd for ARM)
Line 27: Line 27:
  
 
=== Cross Compiling Radvd for ARM ===  
 
=== Cross Compiling Radvd for ARM ===  
 +
 +
Radvd requires the following to be installed on your build system:
 +
 +
<PRE>
 +
sudo apt-get install bison
 +
sudo apt-get install flex
 +
</PRE>
 +
 +
Download radvd, extract and cross compile for ARM:
  
 
<PRE>
 
<PRE>

Revision as of 09:34, 12 July 2014

Radvd - IPv6 Router Advertisement Daemon

The IPv6 Router Advertisement Daemon (radvd) periodically sends router advertisement (RA) messages to a local ethernet LAN advertising among other things, the IPv6 prefix and router address.

libdaemon

Libdaemon is a dependancy for radvd.

Download libdaemon and cross compile for ARM assuming your ARM cross compiler is located at /opt/arm-2011.09/

wget http://0pointer.de/lennart/projects/libdaemon/libdaemon-0.14.tar.gz
tar -xzf libdaemon-0.14.tar.gz
cd libdaemon-0.14
./configure --host=arm-linux-gnueabi \
            --prefix=/usr/arm-linux-gnueabi \   
            ac_cv_func_setpgrp_void=yes
make
make install

Now copy libdaemon.so.0.5.0 to your target and update the dynamic linker run-time bindings with ldconfig:

cp /usr/arm-linux-gnueabi/lib/libdaemon.so.0.5.0 /home/export/rootfs/lib

Cross Compiling Radvd for ARM

Radvd requires the following to be installed on your build system:

sudo apt-get install bison
sudo apt-get install flex

Download radvd, extract and cross compile for ARM:

wget http://www.litech.org/radvd/dist/radvd-1.14.tar.gz
tar -xzf radvd-1.14.tar.gz
cd radvd-1.14
./configure --prefix= \
            --host=arm-linux-gnueabi \
            --sysconfdir=/etc \
            PKG_CONFIG_PATH=/home/temp/radvd/lib/pkgconfig
make
make install DESTDIR=/home/export/rootfs

Configuration

A default /etc/radvd.conf file is shown below advertising an address prefix:

interface eth0 {
	AdvSendAdvert on;
	MinRtrAdvInterval 3;
	MaxRtrAdvInterval 10;
	prefix 2003:44b9:4219:6400::/64 {
		AdvOnLink on;
		AdvAutonomous on;
	};
};

Options

  • AdvSendAdvert: Enable router to send periodic router advertisements and respond to router solicitations.
  • MinRtrAdvInterval: Minimum time between sending unsolicited multicast router advertisements (seconds)
  • MaxRtrAdvInterval: Maximum time between sending unsolicited multicast router advertisements (seconds). Must be no greater than 1800 seconds (30 Minutes)
  • Prefix: Prefix Definition
    • AdvOnLink: Indicates if prefix can be used for on-link determination.
    • AdvAutonomous: When set, indicates that this prefix can be used for autonomous address configuration as specified in RFC 4862.
    • AdvRouterAddr: When set, indicates that the address of interface is sent instead of network prefix

The daemon can be started by simply running:

radvd

Download Pre-built Binaries

The link below contains a bzip2 tarball of the radvd binaries compiled for ARM :

  • Built using:
    • Libdaemon-0.14
    • radvd-1.10.0
    • arm-linux-gnueabi-gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-1ubuntu1)