OpenWRT and 802.11n on Asus WL-500W

802.11n is now working in attitude_adjustment 12.09-rc1 with the new proprietary broadcom driver. If you don’t want to be bothered compiling your own binary, the quickest way to get it working is as follows.

Firstly, install openwrt-brcm47xx-squashfs.trx version 12.09-rc1 or newer.

Once it’s up and running, remove the following packages:
opkg remove kmod-b43 kmod-b43legacy kmod-mac80211 kmod-cfg80211

Install the following propriatary Broadcom packages:
opkg update; opkg install kmod-brcm-wl nas wlc wl

reboot; exit

Delete and reconfigure your wireless configuration and make a new one for the new driver.
rm -f /etc/config/wireless
wifi detect > /etc/config/wireless

Configure wireless settings. Set WMM Mode to 1:

Your wireless spec has to be set manually using the wl tools. Add the commands to your /etc/rc.local file to have them executed at boot:
wl down
wl chanspec -b 2 -c 4 -w 40 -s -1
wl up

More info regarding the above command:
root@OpenWrt:~# wl -h chanspec
Set [a,b][n][u,l]
channel number (0-224)
band a=5G, b=2G, default to 2G if channel <= 14
bandwidth, n=10, none for 20 & 40
ctl sideband, l=lower, u=upper
OR Set channel with legacy format:
-c channel number (0-224)
-b band (5(a) or 2(b/g))
-w bandwidth, 10,20 or 40
-s ctl sideband, -1=lower, 0=none, 1=upper


Check out your status with:
wl status

Wireless scanners show the wireless connection to be 802.11n. The transmits rate is around 300 Mbps. Looks like 11n to me.

WDS between AirPort Express and OpenWRT Kamikaze

I wanted to stream music with AirTunes to my AirPort Express, as well as, use the AE as an ethernet bridge for my Neuros OSD. I don’t really care too much about WDS except that the AirPort Extreme won’t bridge the ethernet when it’s in simple client mode, only in Wireless Distribution System mode (Good ol’ Apple flexibility)! So off I went trying to get the AE (Firmware 6.3) to play nice with my Asus WL-500W (Kamikaze installed).

Contrary to what I expected, the AE actually played nicely. The problem turned out to be the OpenWRT documentation. It describes the needed parameters, but neglects to mention, you need two wifi-iface configuration blocks; One for the Access Point conf and one for the WDS conf. Once I figured that out, the rest was gravy.

The config in Kamikaze (Configuration using Webif² worked as well):
config 'wifi-device' 'wl0'
option 'type' 'broadcom'
option 'channel' '5'
option 'disabled' '0'

config 'wifi-iface'
option 'device' 'wl0'
option 'network' 'lan'
option 'mode' 'ap'
option 'ssid' 'ssidname'
option 'encryption' 'wep'
option 'hidden' '0'
option 'key' '1'
option 'key1' 'xxxxxxxxxx'
option 'wds' '0'

config 'wifi-iface'
option 'device' 'wl0'
option 'network' 'lan'
option 'mode' 'wds'
option 'ssid' 'ssidname-wds'
option 'encryption' 'none'
option 'bssid' 'Airport Extreme's mac address'
option 'hidden' '0'
option 'wds' '0'

The AE settings were as one would expect:
Wireless Mode: Participate in WDS network
Channel: 5 (Same channel as the OpenWRT router)
Wireless Security: Wep (Also works with none)
WDS Mode: WDS remote
WDS Main: The wireless mac of the OpenWRT router

That’s all. The rest of the settings should be fine with the default.

As I said, I tested this with no security and WEP. I’d be interested to hear if the other security methods work so please post a comment. Cheers.

Installing Linux on a Locked Down PC

I work for the man… I have a laptop that is provided by the man but it’s running a very slow customized version of XP. I wanted to partition the drive and install Linux but, seeing as the BIOS is locked down, I can’t boot off anything except the internal drive. Here’s how I got around it.

First, I installed GRUB while logged into Windows. There are great instructions here on how to do that. In summary:

  • Download GRUB
  • Append C:\grldr="Start GRUB" to C:\boot.ini
  • Create a GRUB menu file C:\menu.lst

Create the following two boot blocks in the above menu.lst file.
title Boot GParted CDROM
cdrom --init
map --hook
chainloader (cd0)
root (cd0)
kernel (cd0)/boot/gparted root=/dev/ram0 init=/linuxrc real_root=/dev/loop0 looptype=squashfs loop=/gparted.dat udev dokeymap scandelay=6 cdroot dodmraid nosound docache
initrd (cd0)/boot/gparted.igz

title Install Feisty
root (hd0,0)
kernel (hd0,0)/boot/linux append vga=normal

The first boot block is for booting off a live GParted CD. GParted is a great open source live CD for re-sizing your partitions. Download it and burn it to a CD.

The second boot block is to boot of a Linux installer. I used Ubuntu Feisty here but you can use any distribution. For Ubuntu, you need to download the ‘linux’ and ‘initrd.gz’ files and put them on your windows drive at C:\boot\. See here for more info about other distributions.

Now reboot and, when GRUB comes up, select GParted and partition your drives however you like. After that, reboot and choose the Linux installer in GRUB. Install, reboot and you should have yourself a shinny new distro on your work PC.