ath5k
ath5k is a completely FOSS wireless driver for Atheros WLAN based chipsets. It is now part John's of wireless-2.6 git repository.
Hacking ath5k
ath5k is currently available through the 'everything' and 'ath5k' branches of wireless-2.6 git repository as well as the mm tree. The git repository has the latest and greatest so you should try that if you want the latest. If you don't want to work with git then try the mm tree but that will be a bit outdated. For now please use the everything branch as that has the new configure_filter API changes to mac80211.
Here is a quick primer on git you can use to start hacking on ath5k.
To get ath5k:
git-clone git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git cd wireless-2.6 # Create a local "branch" called 'ath5k' based on John's remote 'origin/everything' git checkout -b everything origin/everything
To get latest updates you can do:
# Go back to the local master branch git-checkout master git-pull git-checkout everything git-rebase origin/everything # To review the changes last registered: git-log # To review the changes made to ath5k, with a diff: git-log -p drivers/net/wireless/ath5k/*
To hack on stuff, you can create your own branch by doing:
git-checkout -b ath5k-fix-foo origin/everything # hack hack hack # To get a diff of your work: git-diff > my_changes.diff # Or if you just want to read them: git-diff # To revert to the original state of the branch: git-checkout -f # If instead you want to commit git-commit -a # To view local branches git-branch -l # To view all remote branches git-branch -r
Other cool git stuff:
# get the SHA of two commits git-log # Then get the diff of them, by showing the logs in between git-log -p d8a285c8f83f728be2d056e6d4b0909972789d51..9202ec15da36ca060722c363575e0e390d85fb71 # Since SHAs are pretty unique you can just give it a short version # and it will try to match what is right: git-log -p d8a28..9202e
Now say I have two local branches, and I want to merge them. If I'm on local branch ath5k-my-latest and I want to merge with local branch ath5k-fix-foo, I do:
git-pull . ath5k-fix-foo
Enabling ath5k
To enable ath5k, you must first enable mac80211:
Networking ---> Wireless ---> <M> Improved wireless configuration API <M> Generic IEEE 802.11 Networking Stack (mac80211)
Please note that there is another 802.11 networking stack:
<M> Generic IEEE 802.11 Networking Stack
You do not need this. This option enables the old SoftMAC stack we hope to kill one of these days. You can still safely enable this though.
You can then enable ath5k in the kernel configuration under
Device Drivers ---> [*] Network device support ---> Wireless LAN ---> <M> Atheros 5xxx wireless cards support
caveats
This driver is VERY new and under HEAVY development. Some users have reported success, some others have haven't had luck
supported chips
ath5k is designed with support in mind for any AR5210, AR5211 and AR5212 devices.
AR5210 - 802.11a AR5211 - 802.11ab AR5212 - 802.11abg
To do basic-testing of the driver you can do this:
modprobe ath5k sudo ip link set wlan%d up sudo iwconfig wlan%d essid any # Make sure you get auth'd and then assoc'd # Then either set an IP manually or get it via DHCP ping gw
You'll probably see an immediate rate drop to 1M, this is because of how we currently handle rate control. You should be able to keep at least at 11M but for now set this manually:
iwconfig wlan%d rate 11M
Currently supported PCI ID list with respective status report on basic-testing as defined above.
Vendor:device Type Basic-testing 168c:0207 AR5210 ? 168c:0007 AR5210 ? 168c:0011 AR5211 ? 168c:0012 AR5211 ? 168c:0013 AR5212 OK a727:0013 AR5212 ? 10b7:0013 AR5212 ? 168c:0014 AR5212 ? 168c:0015 AR5212 ? 168c:0016 AR5212 ? 168c:0017 AR5212 ? 168c:0018 AR5212 ? 168c:0019 AR5212 ? 168c:001a AR5212 ? 168c:001b AR5212 ? 168c:001c AR5212 Loads, but no rx
Notes on supported devices
Please note that 001c is an 802.11bg device. As you can see from above the current driver design is for 802.11a, 802.11ab, or 802.11abg. We'll probably need a new device type in the driver for this device to pass only bg initial register writes and baseband gain settings.
available devices
Please visit [http://madwifi.org/wiki/Compatibility] for a complete list of supported devices
features
Supports 802.11abg, depending on the chipset, and some vendor extensions such as Atheros XR and Turbo. This driver requires no firmware!
working
Station Mode
not working yet
Access Point mode
Turbo
XR
Get driver
This driver is currently only in the ath5k branch of wireless-dev.