bleeding-edge wl1251 driver for Maemo Fremantle

What is it?

This page is about wl1251, a bleeding-edge WLAN driver for use with Maemo Fremantle on the Nokia N900.
It is based on the upstream bleeding-edge wireless-testing tree and incorporates nearly all features found in the stock wl12xx driver used in Maemo Fremantle, adds some bugfixes and also provides some unique features like packet injection.
In fact it should be a "super" driver for the wl1251 chip on Maemo and if accepted upstream (the Linux kernel) it should bring this large featureset also to other distributions, which run on the Nokia N900.

How do I get it?

I have overthought a couple of times how I should proceed with the packet-injection patches I have written for Neopwn as contract developer. I have decided that I can't watch the stuck Neopwn project any longer. I know that there were a lot of problems around the Neopwn project, but I can't make any of them undone. I can only try to make it a better situation for all of us.

Edit: I want to thank all donors. You can now download the bleeding-edge driver directly (see "Where can I download it?" below)

What do I get?

The downloadable package includes:

  • patches (source code)
    • monitor mode and injection patches
    • many ports of missing features from wl12xx/wl1271 to current wl1251 (e.g. bluetooth coexistence, hardware filtering, multicast filtering, ...)
    • bug fixes
  • binaries
    • updated power kernel (based on power46) -- changes are also included as patch
    • compiled kernel modules using compat-wireless -- only compatible with the included modified power kernel
    • bugfixed version of osso-wlan (wlancond)
  • short installation description

What it does NOT include:

  • ported application software (like aircrack-ng, grim wepa, set, wireshark, ...)
  • gui software/control panel
  • chroot environment

--> Simply said it's NOT Neopwn, it's only the packet-injectionable driver incl. sources. 😉

What are the changes between the different drivers?

stock wl12xx included
in Maemo Fremantle
from 2010-12-22
this driver
Tested heavily little little
Bluetooth coexistence configurable yes no yes
Power save retry yes no yes
Ad-hoc mode yes no yes
H/W beacon early termination yes no yes
H/W connection quality monitoring yes no yes
H/W multicast filtering yes no yes
H/W ARP filtering yes no yes
UAPSD (WMM power save) no yes yes
Monitor mode / packet injection
Monitor mode on channel 6 yes yes yes
Monitor mode on all channels no no yes
Packet injection no no yes
TX queue stopping/waking fix N/A no yes
4-byte TX buffer alignment fix N/A no yes
Never-ending scan fix N/A no yes

Note: This is only an overview. For more details please take a look at the corresponding source codes.

I don't know how to ...?

Please post questions in this thread at Maemo talk.

Where can I download it?

Version 0.2 binary build for kernel-power v50 (<1 MB)

Version 0.2 source code  (484 MB)

You should also take a look at the README file. (outdated but maybe still useful)

Version 0.1 package including binary for kernel-power <= v49 (141 MB)