Wireless Recycled Reef Controller

   Home   |   Recent Edits   |   Search   |   Edit this page

# Matt Kemner's guide to turning the Linksys WRT54G / WRT54GS
# into an AP-client + routing node on WaFreeNet? and similar networks.
# Copyright 2004 Matt Kemner
# Much thanks to Shane Short for contributing to, and proof reading this document.
#
# This info is mirrored locally from http://www.penguincare.com.au/openwrt/docs.txt

# I take no responsibility if following the steps in this document
# damages your router. Caveat Emptor.

# Flash router with firmware (see http://www.openwrt.org/OpenWrtDocs/Installing)
# I strongly recommend setting boot_wait as described

# After reflashing the router will automatically reboot and then will run
# a script called "firstboot" that creates the partitions, which takes some time

# DO? NOT? reboot the router while it is doing this.
# Wait until you are able to telnet in AND? the DMZ? light is off

# partitions should look something like this:

# root@OpenWrt:/# df
# Filesystem 1k-blocks Used Available Use% Mounted on
# /dev/root 896 896 0 100% /rom
# /dev/mtdblock/4 6272 672 5600 11% /


# Initially you will want to plug into one of the LAN ports.
# Default IP address is 192.168.1.1
# use "telnet" to connect to that IP address.

# First, remove the firewall, since it will only get in the way
# A custom firewall can be configured later if required

rm /etc/init.d/S45firewall

#################
# Configuration #
#################

# It is probably best to do these one interface at a time, to avoid
# locking yourself out.

# All wireless settings etc are stored in the nvram, and are configured
# with the "nvram" utility

# to show current settings:
nvram show

# you can search for specific settings with grep:

# show all keys containing "wan_"
nvram show | grep wan_
# show all keys containing "lan_"
nvram show | grep lan_

# you change a key with:
nvram set key=value

# After setting the nvram values you need to commit them to memory with
nvram commit

# and then reboot.

# see available nvram settings at http://openwrt.org/OpenWrtNVRAM

#####################################

# I would do this first:

# configure WAN (vlan1) IP address
nvram set wan_proto=static
nvram set wan_ipaddr=x.x.x.x
nvram set wan_netmask=255.255.255.x

# set a default gateway
nvram set wan_gateway=x.x.x.x
# and specify a DNS server
nvram set wan_dns=x.x.x.x

nvram commit

# then reboot, and plug yourself into the WAN port
# and telnet into the IP address you just configured.
# When you have that working you can move onto the next step
# That way if you mess up, you can still get back in to fix it.

# remove bridge, set lan_ifname to vlan0 (lan ports) instead of br0:
nvram set lan_ifname=vlan0
nvram unset lan_ifnames

# configure LAN (vlan0) IP address:
nvram set lan_proto=static
nvram set lan_ipaddr=x.x.x.x
nvram set lan_netmask=255.255.255.x


# configure wireless (eth1) IP address
nvram set wifi_ifname=eth1 # NOTE? this may be different on older WRT54G
nvram set wifi_proto=static
nvram set wifi_ipaddr=10.60.30.34
nvram set wifi_netmask=255.255.255.252

# Switch off antenna diversity (only use main antenna, next to power socket)
nvram set wl0_antdiv=0

# Set to station (client) mode
nvram set wl0_mode=sta
# use mode=ap if you want this to be an AP

# Connect to this ESSID?
nvram set wl0_ssid=NEFreenet2?

# To enable WEP? do this:

nvram set wl0_wep=on
nvram set wl0_key1=DEADBEEF12? # WEP? key in hex or ascii
# repeat for wl0_key2 -> wl0_key4
# 5 or 13 ascii chars OR? 13 or 26 hex chars


nvram commit

# Now reboot again and test both the LAN and WiFi? interfaces

# You might also want to set a hostname
nvram set wan_hostname=mylinksys

#####################################

# you will want to download some tools
# so make sure your router can get to the internet.

ipkg update
ipkg install quagga-bgpd quagga-zebra ip tcpdump dropbear

# it should download and install quagga and a couple of other
# handy tools including the dropbear ssh server.

# quagga configuration is beyond the scope of this document
# If you are on WaFreeNet? and are a routing node, ask me
# (zombie @ wafreenet.org) for sample quagga config.

# Once dropbear is installed, it will ask you set a root password.

# reboot, check ssh works, then remove /etc/init.d/S50telnet
rm /etc/init.d/S50telnet

# You will probably also want this handy wireless config tool:

ipkg install http://wrt54g.free.fr/openwrt/b4/ipkg/wl_1.0_mipsel.ipk

# then you can do nifty things like:
wl scan ; sleep 1 ; wl scanresults


###################
# Optional extras #
###################

# Set the timezone
# see http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap08.html#tag_08_02 for info

echo WST?-8 > /etc/TZ? # West Australian Standard Time
# for NSW?, Vic etc, you would use something like:
# AEST-10AEDT,M10.5.0,M3.5.0/03:00:00
# (DST? starts last Sunday of Oct, ends last Sun of Mar 3am)
# http://alldownunder.com/oz-k/date/australian-daylight-savings.htm


# set the clock
rdate 10.60.0.102 # specify a server supporting time (37/tcp) protocol
# which can be enabled in inetd on any linux box

# for NFS client:
ipkg install kmod-nfs ; insmod sunrpc; insmod lockd; insmod nfs
then to mount: mount -t nfs -o nolock remote:/path /local/path

# for frottle:

# Unlink the ipkg.conf so it can be edited
rm /etc/ipkg.conf
cp /rom/etc/ipkg.conf /etc/ipkg.conf

# edit ipkg.conf (vi /etc/ipkg.conf) and add this line:
src frottle http://www.penguincare.com.au/frottle/

# crash course in vi: type "i" to go into "insert" mode, "esc" to escape
# so scroll to the next line, type "i", paste that line, push "esc"
# then type "ZZ?" (shift-z-z) to save and exit
# or if you mess up, hit escape then type ":q!"

# then type:

ipkg update
ipkg install frottle

# You will also want to grab this kernel module from the openwrt-kmodules.tar.bz2 file

# modules/2.4.20/kernel/net/ipv4/netfilter/ip_queue.o

# and copy it to the linksys under /lib/modules/2.4.20/

# frottle configuration is also beyond the scope of this document
# frottle info at http://frottle.sf.net/

#######################
# How to set up cron: #
#######################

# Create /etc/crontabs and /etc/crontabs/root
mkdir /etc/crontabs
vi /etc/crontabs/root
# eg add a line that says: 0 * * * * rdate 10.60.0.102
#
# Then create /etc/init.d/S60crond containing:

#!/bin/sh
/bin/mkdir -p /var/spool/cron
/bin/ln -s /etc/crontabs /var/spool/cron/crontabs
/usr/sbin/crond


##########################################################################
# how to put port1 on its own IP address, and leave port2-4 as LAN ports #
##########################################################################

# Create a new vlan based on et0 (which is what the linksys calls eth0)
nvram set vlan2hwname=et0
# vlan0 (LAN) ports are now 2 3 and 4 (5 is connected to the internal NIC?)
nvram set vlan0ports="2 3 4 5*"
# vlan2 is now only port1 (and the internal port 5)
nvram set vlan2ports="1 5"

# create another interface name (I used "port1") and configure as usual:
nvram set port1_ifname=vlan2
nvram set port1_hwaddr=00:0F:66:C5:2C?:04
nvram set port1_proto=static
nvram set port1_ipaddr=192.168.61.1
nvram set port1_netmask=255.255.255.252
nvram set port1_mtu=1500

# Create an init script, or add to an existing one this line:
ifup port1 # or whatever you chose



Page Hits: 3929