2.4 > 2.6 in OpenWrt

I’ve been running OpenWrt on my Linksys WRT54GL router for some time. I bought the router nearly 3 years ago; it still gets the job done for a home router and is semi-fun to play around with. I might move to a pfSense setup in the future, but that is overkill at the moment.

I normally run the head revision from Subversion of OpenWrt and do a rebuild every 6 months. One thing I noticed when upgrading last May to a 2.6 kernel build was a drop in Wi-Fi performance. I hadn’t realized how significant it was until I decided to go back to a 2.4 kernel build when I reflashed the router today.

Two or three unsuccessful flashes later, I was back in business. As a word of caution, anyone else thinking of switching should realize that your config files will need some significant changes- I had to rework both the wireless and switch configuration significantly to work with the older kernel as names and numbers changed.

I will not be switching back to 2.6 anytime soon. The 2.4 kernel with the proprietary Broadcom wl module is at least 6x faster in some quick tests with the following commands:

# On a wired desktop machine
nc -l -p 4900 | pv > /dev/null
# On the wireless laptop
cat /dev/zero | pv | nc wiredmachine 4900 

The results were dramatic: 1800 KB/sec with a 2.4 kernel vs. 300 KB/sec with the 2.6 kernel. A side benefit of the 2.4 kernel is also its reduced memory footprint, which has some benefits when you only have 16 MB of RAM to begin with. The 2.4 kernel had 14336 KB of RAM available, while the 2.6 kernel only had 13532 KB available (around 6% less).


See Also