Linksys WRT160N
The Linksys WRT160N is the Linksys Ultra Range Plus Wireless-N Broadband Router. It runs Linux out of the box. The source code tarball is available from the Linksys GPL Code Center
OpenWRT will run on WRT160N v1.1. It is not directly supported by any pre-built firmware images on the download page yet, You need to compile it yourself or try an image from Here.
NOTE: The device only supports the 2.4 Kernel version of Kamikaze. We need to figure out the correct kernel configuration to support the flash chip on the 2.6 Kernel. At this point in time the wl.o binary driver from Broadcom is only available for 2.4 Kernels and the opensource b43 driver is not ready yet. As such the wireless does not work if you flash a image with a 2.6 Kernel. 802.11N is not supported until the upstream provider can support it.
Please update this wiki page if this information is proven false or further support is added.
Link to Product info page at linksys.com -> WRT160N Product_Page
Supported Versions
Please see what version you have and add information to the wiki or post in this forum thread. According to Wikipedia there is more than one version of this device. Reference DD-Wrt Devices list also mentions more than one.
Please add/confirm info here if you can.
Model |
CPU |
Wireless |
Flash |
RAM |
S/N |
FCC ID |
OpenWrt Kamikaze |
WRT160N v1.0 |
? |
? |
4MB |
32MB |
? |
|
X |
WRT160N v1.1 |
BCM4703 |
BCM4321 |
4MB |
16MB |
CSE01 |
Q87WRT160N |
X (See Below) |
WRT160N v2.0 |
? |
ralink |
? |
8 |
CSE11 |
Q87WRT160NV2 |
X |
Hardware
Info
|
Architecture |
MIPS |
Vendor |
Broadcom |
Bootloader |
CFE |
System-On-Chip |
Broadcom 4703KFBG |
CPU Speed |
266 Mhz |
Flash size |
4 MiB |
RAM |
16 MiB |
Wireless |
Broadcom BCM4321 802.11b/g/n Wireless LAN (integrated) |
Ethernet |
Switch in CPU |
USB |
No |
Serial |
Yes |
Chips on the PCB
CPU - BCM4703 Product_Brief (the original linksys firmware calls it a BCM4704 in /proc/cpuinfo)
BCM5325 Product_Brief
Flashchip - EN29LV320AB Data Sheet
BCM4321 Product_Brief
BCM2055 (under the shield) Product_Brief
Pads on PCB
There is 3 sets of pads on the PCB of the WRT160N.
JP1 and JP3 seem to be missing some surface mount components so may not actually work. Half of the JP1 and JP3 pads are on the reverse side of the PCB.
JP2 works if you use a 3.3v TTL to RS-232.
JP1
On Reverse |
Pad 2 |
GND |
Pad 4 |
GND |
Pad 6 |
GND |
Pad 8 |
GND |
Pad 10 |
GND |
Pad 11 |
? |
On Front |
Pad 1 |
? |
Pad 3 |
? |
Pad 5 |
? |
Pad 7 |
? |
Pad 9 |
? |
Pad 12 |
? |
JP2
3.3v TTL Serial
On Front |
Pad 1 |
3.3v |
Pad 2 |
TX |
Pad 3 |
RX |
Pad 4 |
Not Connected |
Pad 5 |
GND |
JP3
On Reverse |
Pad 2 |
GND |
Pad 4 |
GND |
Pad 6 |
GND |
Pad 8 |
GND |
Pad 10 |
GND |
Pad 11 |
? |
On Front |
Pad 1 |
? |
Pad 3 |
? |
Pad 5 |
? |
Pad 7 |
? |
Pad 9 |
? |
Pad 12 |
? |
JTAG Port
Not yet documented.
Serial Ports
JP2 is a 3.3v serial port. Boot messages can be seen if you connect a 3.3v level shifter here and monitor with a serial port.
DO NOT CONNECT DIRECTLY TO A PC SERIAL PORT. Use a 3.3v TTL level shifter. Details at this page:
Boot Messages
Boot messages from original Linksys firmware are here
Boot messages from DD-WRT v24 here
Boot messages from OpenWRT Trunk 8-17-2008 here
Boot messages from OpenWRT Trunk 8-19-2008 here Adding some kernel options makes the flash appear in the boot messages.
Boot messages from OpenWRT Trunk Rev12360 here Adding some kernel options makes the flash appear in the boot messages and boot correctly.
Boot messages from OpenWRT Trunk Rev12360 here Adding some kernel options makes the flash appear in the boot messages, wireless appears to detect correctly and boots to a shell.
Installation
How To Build
You will need to use a Linux machine with development tools to compile the firmware. See here to see what are the dependencies of the buildroot.
1. Get trunk. ie:
svn checkout https://svn.openwrt.org/openwrt/trunk/ ~/trunk/
2. Download and apply patch. (This may not be necessary. It only lets the system know it is a WRT160N and not a WRT54G or other type of WRT)
cd ~/ wget http://snipes420.googlepages.com/openwrt-wrt160n-detection-rev12384.diff cd ~/trunk/ patch -p0 -i ~/openwrt-wrt160n-detection-rev12384.diff
3. Enter the configuration menu and change target profile to 'Generic, Broadcom WiFi (MIMO)', then exit saving changes.
make menuconfig
Target Profile ---> (Generic, Broadcom WiFi (MIMO))
4. build the image once first. (This will take a while)
make
5. Enter kernel config options menu.
make kernel_menuconfig
6. go to 'Memory Technology Devices (MTD) --->'
then 'RAM/ROM/Flash chip drivers --->'
and enable 'Support 8-bit buswidth'
7. Exit the configuration menu and save the settings.
8. build the whole thing again with the new config. (This time wont take as long)
make
Now you can flash the firmware image in /bin to your WRT160N using the Linksys web interface. (I tried the openwrt-wrt150n-squashfs.bin and it worked; openwrt-brcm-2.4-squashfs.trx also works if using the tftp install method)
- The wireless works when you enable it in /etc/config/wireless
Linksys WRT160N specific configuration
NVRAM
boardtype |
0x0472 |
boardnum |
42 |
boardflags |
0x0010 |
TODO
- Confirm existence of different versions of this model
- Find the data sheets for the chips used in this device.
- Figure out what JP1, JP3 are for and the exact pin outs.
