WRT54G: Difference between revisions
No edit summary |
No edit summary |
||
(3 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
=Hardware= | |||
[[Linksys hack]] | [[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: | |||
#$include .config | |||
#iLINUIXDIR=(shell pwd) | |||
#echo $LINUXDIR | |||
#export LINUXDIR | |||
#export PLATFORMDIR := $(TOP)/$(PLATFORM) | |||
#export INSTALLDIR := $(PLATFORMDIR)/install | |||
#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=== |
Latest revision as of 12:35, 22 November 2005
Hardware
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:
- $include .config
- iLINUIXDIR=(shell pwd)
- echo $LINUXDIR
- export LINUXDIR
- export PLATFORMDIR := $(TOP)/$(PLATFORM)
- export INSTALLDIR := $(PLATFORMDIR)/install
- 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