User:Saul/Open WRT

From Organic Design

Documentation for my experience attempting to setup and run Open WRT on a Raspberry Pi.

Raspberry Pi Installation

Check what the SoC is for your Pi (see the Raspberry Pi link under Useful Links):

The Raspberry Pi is supported in the brcm2708 target.
Subtargets are bcm2708 for Raspberry Pi 1, bcm2709 for the Raspberry Pi 2, bcm2710 for the Raspberry Pi 3, bcm2711 for the Raspberry Pi 4.

bcm2709 subtarget can be used for bcm2710 and bcm2711 devices.
This subtarget features a 32 bit kernel instead of a 64 bit kernel (64 bit kernels aren't “officially supported” by the Raspberry Pi foundation).

Then find the image for your pi under the snapshots page (Useful Links) and flash it!

Useful Links

Using the Package Manager

Open WRT's default package manager is opkg, the docs for it can be found here.
To install a new package the package lists must be updated,

opkg update # update the package lists
opkg install PACKAGENAME # install a new package.

Wifi Drivers

The wifi drivers for my wifi dongle (Ralink) were not pre-installed so running this installed them:

opkg update # update the package lists
opkg install kmod-rt2800-lib kmod-rt2800-usb kmod-rt2x00-lib kmod-rt2x00-usb

Eth Drivers

Had a couple of issues TP-Link UE300 setup and the following drivers solved the problem

opkg update
opkg install kmod-usb-net-rndis usb-modeswitch kmod-usb-net-rtl8152

See also:

Setup Network Via SSH

When compiling Open WRT from source it may have no internet connectivity and the interface (LuCI) may not be installed.
Following the instructions from Open WRT's Docs we can connect via SSH:

uci set network.lan.ipaddr='' # static address for this device
uci set network.lan.gateway='' # Router ip
uci set network.lan.dns='' # router dns or provider
uci commit
service network restart

Then LuCI can be installed.

opkg update
opkg install luci

Captive Portal Via NoDogSplash

Building From Source

Building the latest nodogsplash from source can be a bit of a pain if it has not been officially released.
You need to follow the instructions here but instead of cloning the nodogsplash repo do the following:

  1. Download the nodogsplash repo as a .zip.
  2. Extract the zip.
  3. Rename the directory from nodogsplash-master to nodogsplash-4.5.1beta (replacing with your version).
  4. Run tar -czvf nodogsplash-4.5.1beta.tar.gz nodogsplash-4.5.1beta/
  5. Copy the nodogsplash-4.5.1beta.tar.gz file into the openwrt/dl directory. (Run make once to generate it if it does not exist.)
  6. Run shasum -a 256 nodogsplash-4.5.1beta.tar.gz
  7. Edit the nodogsplash-4.5.1beta/openwrt/nodogsplash/Makefile file and change the PKG_HASH:=YOU_HASH_HERE, make sure there is no whitespace.
  8. Copy the nodogsplash-4.5.1beta/openwrt/nodogsplash to the openwrt/package file and continue the make progress.
  9. The ouput can be found in the bin/packages/YOUR_PROCCESSOR/base/ directory.

Useful Links

Network Configuration

Before installing NDS it is recommended to get your network setup and working properly.

You cannot just use a basic bridge configuration!

Here is a sample network configuration for achieving similar results to a bridge setup:

config interface 'loopback'
	option ifname 'lo'
	option proto 'static'
	option ipaddr ''
	option netmask ''

config interface 'wan'
	option ifname 'eth0'
	option proto 'dhcp'

config interface 'lan'
	option ifname 'wlan0'
	option type 'bridge'
	option proto 'static'
	option ipaddr ''
	option netmask ''


To install NDS just use the package manager:

opkg update
opkg install nodogsplash

Useful Links

See also