Skip to content

A custom version of OpenWrt, targeted to the Arduino Yún

License

Notifications You must be signed in to change notification settings

arduino/openwrt-yun

Repository files navigation

OpenWrt Yún

This is a custom version of OpenWrt, targeted to the Arduino Yún. Some of its core packages, including the kernel and uboot, are derived from Linino.

How to build

Prerequites

In order to successfully build it, you need to setup a Debian computer with at least 30G of free disk space: we use Debian Wheezy. Using a virtual machine is suggested: you can make one with either VirtualBox or KVM.

Once the Debian computer is ready, log in via SSH, then type:

wget https://raw.githubusercontent.com/arduino/openwrt-yun/master/FIRST_SETUP_debian_wheezy.sh
chmod +x FIRST_SETUP_debian_wheezy.sh
sudo ./FIRST_SETUP_debian_wheezy.sh

Wait until all the prerequisites get installed.

Cloning the repo and setting up a download folder

While building, a lot of software will be downloaded. In order to avoid downloading it each time you run a build, store it to a separate folder

mkdir -p ~/DOWNLOAD

To clone the repository using git SSH, make sure you have your public SSH key in your github profile and execute:

git clone [email protected]:arduino/openwrt-yun.git

However if you can't use git SSH you can instead clone the repository over HTTPS by executing:

git clone https://github.com/arduino/openwrt-yun.git

Building

Now start the build process

cd openwrt-yun
DL_FOLDER=~/DOWNLOAD ./build.sh

If you have more than one CPU, you can speed the build process up by specifying a number of concurrent jobs equal to the number of CPUs plus 1. For example, if you have 4 CPUs, use command DL_FOLDER=~/DOWNLOAD MAKE_JOBS=5 ./build.sh. If left unspecified, the default value of 2 is used.

Continuing an interrupted build

For some reasons, you may need to interrupt the build. Maybe it was an error, maybe you run out of time. To resume compiling, DO NOT use the build.sh script as it will wipe out all the previously done work. Instead use

MAKE_JOBS=5 nice -n 10 make -j $MAKE_JOBS V=s

Change the value of MAKE_JOBS to the number of your cores + 1. My pc has 4 cores, so I set it to 5.

Building the image only, skipping all optional packages

Add BUILD_BASE_ONLY=Yes at the beginning of the command. Example: BUILD_BASE_ONLY=Yes DL_FOLDER=~/DOWNLOAD ./build.sh.

Troubleshooting

There is a variety of reasons for the build process to fail. If you're unable to understand why it failed, resume compiling with the following command:

nice -n 10 nohup make -j 1 V=s &

This will create a nohup.out file with the whole output of the compilation, errors included. Please paste the content of that file on http://pastebin.com/ or zip and attach that file on a new topic on the arduino forum.