Haikuware News & Blogs
Spread your news, software reviews, comments, & ideas about Haiku!
On the screenshot, you see Firefox surfing www.haiku-os.org and downloading a 100 MiB file from my ftp server in parallel. The terminal is showing the result of the ifconfig command for my WiFi-card.
The image is scaled down and maybe cut on the right border. For full resolution save the picture and open it with your favorite app.
I managed to port the FreeBSD WiFi-stack, utilizing Haiku's FreeBSD compatibility layer. Thus I could use the WiFi-card driver for my atheros chipset from FreeBSD without any major changes to its codebase (I had to move some interrupt handler code into driver-specific glue code). The driver-binary has a size of 500 KiB, due to compiling the WiFi-stack into a static library and statically linking it and the FreeBSD compat layer with the driver. The sources are up in the repository.
The atheros driver should support every atheros chipset, which are supported by the FreeBSD driver (look in the corresponding FreeBSD manpage for more information on supported chipsets).
Designing a Haiku specific WiFi-stack will be my next step. The proposed finish date of the bounty is still 2009/09/24.
For the brave only: The source can be checked out via svn checkout http://svn.osdrawer.net/haiku-wifi/prototype/trunk/wifi. I recommend you use the 3rdparty subdirectory as checkout location, because the Jamfiles expect themselves there. With jam ath everything needed (customized FreeBSD compat layer, WiFi stack, atheros driver) gets built.
Update: For developing I used a gcc2 build environment and Haiku rev. 31286 was the newest I tested it on. There are no settings to set to make this driver work. Just put the driver in /home/config/add-ons/kernel/drivers/bin an make a symlink to /home/config/add-ons/kernel/drivers/dev/net/ath. A reboot could be required to make Haiku recognize the new driver.
To check whether your atheros card gets at least detected by this driver, watch the debug messages during the bootphase or look into the /boot/var/log/syslog file. If you see something like
Adding entry for IEEE 802.11 Wireless Ethernet mode autoselect autoselect
Adding entry for IEEE 802.11 Wireless Ethernet mode autoselect autoselect <adhoc>
Adding entry for IEEE 802.11 Wireless Ethernet mode autoselect autoselect <hostap>
Adding entry for IEEE 802.11 Wireless Ethernet mode autoselect autoselect <flag0,adhoc>
Adding entry for IEEE 802.11 Wireless Ethernet mode autoselect autoselect <monitor>
you know that your card is detected.
Update2: To connect to a WLAN make sure that it is an unprotected (no WPE, WPA, WPA2) one that doesn't need a password for login. On my Fritz!Box this is called "unverschlüsselten Zugang aktivieren" (activate unencrypted access).
For more information on technical aspects of the hardware I use surf to the bounty proposal and select the "Technical Information" tab.
I will give no support for this prototype 'cuz it is a prototype ;-). It is intended for the purpose of gaining knowledge, only.