WRT54G

From WirelessAfrica
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Hardware

Linksys hack

Linksys WRT54G specs summary

Specs

Ports:

  • WAN: One 10/100 RJ-45 port for WAN connectivity
  • LAN: Four 10/100 RJ-45 Auto-MDI(X) switched ports
  • WLAN: 54mbps 802.11g on a MiniPCI card (1.0)/built-in (1.1) with dual external RP-TNC antenna ports

LED Indicators (1.0):

  • Power, DMZ, Diag
  • WLAN: Act, Link
  • LAN: Link/Act, Full/Col, 100
  • Internet: Link/Act, Full/Col, 100

Channels: 1-11 (USA)

System requirements: One PC (200MHz or Faster Processor) with: 64MB RAM, Internet Explorer 4.0 or Netscape Navigator 4.7 or Higher for Web-based Configuration, CD-ROM Drive, Microsoft Windows 98, Me, 2000, or XP, a 802.11g or 802.11b Wireless Adapter with TCP/IP Protocol Installed or Network Adapter with Category 5 Ethernet network cable and TCP/IP Protocol installed

In the box: Wireless-G Broadband Router, Power Adapter, Setup CD-ROM with User Guide, Ethernet Network Cable, Quick Installation guide, Registration Card

Device details:

  • Width: 7.32 inches
  • Height: 1.89 inches
  • Depth: 6.89 inches
  • Warranty, parts: 1-year limite
  • Warranty, labor: 1-year limited

Transmit Power: 15 dBm (Can be increased to 20db/84mw) (FIX: 84mw=19.24db) Info: 15db=31mW 17db=50mW 20db=100mW

Receiver Sensitivity (unconfirmed):

  • -65db for ofdm 802.11g 54 megs
  • -80db for dsss 802.11b 11 megs

Power (1.0?): 5V @ 2.0A, center

Power (2.0): 12V @ 1.0A, center positive. (Regulated internally down to 3.3V by an AnaChip? 1501-33, so the unit should be very tolerant of input fluctuations from 5 to 40 volts. Get the polarity right and it'll make do with whatever you give it.)

To turn on ripd and zebra, go to Advanced -> Routing -> Dynamic Routing and click Apply."

Processor

The Linksys processor is a 200MHz MIPS32 core which has a memory management unit with simple fixed mapping translation (FMT) - see this link for more details - so FreeBSD may be possible!

description of MIPS32 core

Reminder of other details:

RAM: 2 x IC42S16400, 64Mbit (4M X 16) RAM chips (16MB) Flash: Intel TE28F320 C3 flash 32Mbit chip (4MB) CPU: Broadcom [WWW]BCM4712KPB, running at 200MHz Ethernet: [WWW]ADMtek ADM6996 5 port 10/100 switch Wireless: On board; Broadcom BCM2050KWL

Firmware

Sveasoft

linksys: adding files to the code.bin firmware

Community I developed a script to add custom files into the Linksys filesystem. This was needed, for example, to add ripd.conf and zebra.conf to /usr/local/etc for the zebra routing daemon.

This is how it works ($LINKSYS_SRC is the directory of your linksys source code eg. /home/djohnson/downloads/linksys/sveasoft/Alchemy-2.3.4/)

1. Copy the script (makeimage.sh) to $LINKSYS_SRC/src/router 2. Copy files that you need to the $LINKSYS_SRC/src/router/mipsel-uclibc/target directory (you can make directories and add/delete files in here) 3. Execute the makeimage.sh script from the $LINKSYS_SRC/src/router directory 4. A new code.bin will be built which can be uploaded to the linksys box

The makeimage.sh script looks as follows:

  1. $include .config
  2. iLINUIXDIR=(shell pwd)
  3. echo $LINUXDIR
  4. export LINUXDIR
  5. export PLATFORMDIR := $(TOP)/$(PLATFORM)
  6. export INSTALLDIR := $(PLATFORMDIR)/install
  7. export TARGETDIR := $(PLATFORMDIR)/target

../linux/linux/scripts/squashfs/mksquashfs mipsel-uclibc/target mipsel-uclibc/target.squashfs -noappend cp ../linux/linux/arch/mips/brcm-boards/bcm947xx/compressed/vmlinuz mipsel-uclibc ../../tools/trx -o mipsel-uclibc/linux.trx mipsel-uclibc/vmlinuz mipsel-uclibc/target.squashfs

cp ../linux/linux/arch/mips/brcm-boards/bcm947xx/compressed/zImage mipsel-uclibc dd conv=sync bs=64k < mipsel-uclibc/zImage > mipsel-uclibc/linux.bin cat mipsel-uclibc/target.squashfs >> mipsel-uclibc/linux.bin

cp mipsel-uclibc/linux.trx ../../image/linux.trx cp ../../image/linux.trx ../../image/code.bin

Compiling Satori 4.0 with latest tool chain

To compile using the latest toolchain:

1) Apply this patch (also fixes zebra): http://www.greyskydesigns.com/~lonewolf/satori_fix.patch

Code: lonewolf@lonewolf:/data4/wrt54g/satori/WRT54G$ patch -p1 --dry-run patching file src/router/rc/writeimage.c patching file src/router/zebra/Makefile patching file src/router/zebra/lib/Makefile patching file src/router/zebra/ospfd/Makefile patching file src/router/zebra/ripd/Makefile patching file src/router/zebra/zebra/Makefile lonewolf@lonewolf:/data4/wrt54g/satori/WRT54G$ patch -p1 patching file src/router/rc/writeimage.c patching file src/router/zebra/Makefile patching file src/router/zebra/lib/Makefile patching file src/router/zebra/ospfd/Makefile patching file src/router/zebra/ripd/Makefile patching file src/router/zebra/zebra/Makefile lonewolf@lonewolf:/data4/wrt54g/satori/WRT54G.orig$


2) Run 'make'

3) When 'make' errors out, run 'for i in src/router/iproute2/lib/*.a; do mipsel-uclibc-ranlib $i; done'

4) Run make again

5) for i in src/router/iproute2/tc/*.a; do mipsel-uclibc-ranlib $i; done

6) make yet again

Check out here for the forum discussion at sveasoft on the topic

OpenWRT

Freifunk

DD-WRT