Prepare build environment

For Debian based distributions, run:

sudo apt-get install git build-essential libssl-dev libncurses5-dev \
   unzip zlib1g-dev subversion mercurial

For other environments, instructions can be found in the official documentation.

Get OpenWRT Sources (from Git)


The OpenWRT build will fail if you run it as root. So take care to run it as a nonprivileged user.

Clone the OpenWRT sources and retrieve the package feeds

git clone
cd openwrt
./scripts/feeds update -a
./scripts/feeds install -a
cd feeds/routing
git fetch origin pull/319/head
git read-tree --prefix=frr/ -u FETCH_HEAD:frr
cd ../../package/feeds/routing/
ln -sv ../../../feeds/routing/frr .
cd ../../..

Configure OpenWRT for your target and select the needed FRR packages in Network -> Routing and Redirection -> frr, exit and save

make menuconfig

Then, to compile either a complete OpenWRT image, or the FRR packages, run:

make or make package/frr/compile

It may be possible that on first build make package/frr/compile not to work and it may be needed to run a make for the entire build environment. Add V=s to get more debugging output.

Work with sources

To update to a newer version, or change other options, you need to edit the feeds/routing/frr/Makefile.


Edit /usr/sbin/frr.init and add/remove the daemons name in section DAEMONS= or don’t install unneeded packages For example: zebra bgpd ldpd isisd nhrpd ospfd ospf6d pimd ripd ripngd

Enable the service

  • service frr enable

Start the service

  • service frr start