Opened 12 years ago

Closed 6 years ago

#481 closed enhancement (fixed)

Support for IEEE802.11 wireless networking (a.k.a. WiFi)

Reported by: Jiri Svoboda Owned by:
Priority: major Milestone:
Component: helenos/net/other Version: mainline
Keywords: gsoc13, gsoc14 Cc:
Blocker for: Depends on:
See also:

Description (last modified by Martin Decky)

Implement a native HelenOS driver for 802.11 wireless networking adapter.

Details
IEEE802.11 (commonly referred to as "WiFi") is a popular standard for 802-compatible wireless networking. The adapters come in different forms: on-board (Intel), PCI card or as a USB device. Almost every laptop, smartphone or tablet has one (including the OpenMoko FreeRunner). But so far, HelenOS does not have any support for such device.

The new driver should be realized as a native HelenOS driver running in userspace and providing the networking interface to be usable with the networking stack used in HelenOS. Functionality that is 802.11-generic (i.e. not specific for a concrete device) shall be packaged as a library to allow reuse for different kind of drivers.

It is up to the applicant to choose a concrete model to write the driver for. A good choice is an adapter that is
  • readily available for buying
  • not excessively expensive
  • supported by at least one of the open-source *BSD variants
  • does not require non-redistributable firmware
An example is Edimax EW-7811Un miniature USB adapter supported by NetBSD urtwn driver (needs redistributable firmware).

See also the discussion below that mentions a possibility to patch QEMU 0.9 to emulate an Atheros AR5212 NIC wireless adapter.
What Gains and Benefits will this bring?
HelenOS will be able to make use of its networking capability on a much wider spectrum of machines and it would be possible to use HelenOS in an environment where wired networking is not available.
Difficulty
Medium to High
Required skills
A successful applicant will have good skills of programming in the C language and the ability to survive in a non-standard non-POSIX environment. A successful applicant should have a fair understanding of the workings of the networking stack and the NICF (networking framework in HelenOS) too.
Documentation
Possible mentors
HelenOS Core Team, Jiri Svoboda

Change History (8)

comment:1 by Vojtech Horky, 12 years ago

Accidentally found following thread on qemu-develAtheros Wireless Device Emulation:

adds virtual wireless networking support to qemu-0.9.1
simulate an Atheros AR5212 NIC
code is based on ath5k reverse engineering from about 10 months ago (note: March 2007)

Apparently, the patch did not make it to Qemu and it could not be applied to the latest Git revision. I wanted to try it at least with the 0.9 version but that version does not compile with new GCC (configure explicitly warns about using something else than GCC 3.x).

I think it would be worth the time to revive the patch to work with the latest Qemu if someone really started working on this. The emulated device is probably more tolerant than the real one (i.e. would recover from conditions that would put a real device into some "error" state) which could be an advantage in the first phases of the driver development.

comment:2 by Jiri Svoboda, 12 years ago

Sounds interesting. It would be nice to have a WiFi adapter emulated in Qemu (good for testing), but not really all that necessary for development. Back in university I wrote a driver for ZyDAS ZD1211-based Acer WL adapter for Solaris Nevada (SXCE) as a team project for the OS course. We did this on bare metal without the comfort of Qemu USB device forwarding (lots of reboots) and didn't really encounter any major roadblocks.

Btw. we could do ZD1211 (I do have a some Zyxel 802.11 b/g adapters at home), but this runs in old hardware, I'd rather do something modern that you can actually still buy. EW-7811Un is tiny, relatively cheap and supports 802.11n.

comment:3 by Vojtech Horky, 12 years ago

Description: modified (diff)
Keywords: gsoc13 added

comment:4 by Martin Decky, 12 years ago

Description: modified (diff)

comment:5 by Vojtech Horky, 11 years ago

Keywords: gsoc14 added

comment:6 by Jiri Svoboda, 10 years ago

Looks like wifi support is the subject of a diploma thesis called EEE 802.11 wireless networking for HelenOS.

comment:7 by Jakub Jermář, 7 years ago

Should we close this ticket since the results of the master thesis have been (partially) merged? I am not certain about the state of the driver, but if the state is not good, we should have a separate ticket for fixing it.

comment:8 by Jiri Svoboda, 6 years ago

Resolution: fixed
Status: newclosed

WiFi support was integrated in Bazaar changeset mainline,2323

------------------------------------------------------------
revno: 2323 [merge]
committer: Martin Decky <martin@decky.cz>
branch nick: HelenOS.prewifi
timestamp: Fri 2015-04-24 01:42:32 +0200
message:
  initial merge of the AR9271 USB WiFi driver (e.g. TL-WN722N)
  initial merge of the IEEE 802.11 stack
  (thx Jan Kolarik)

I haven't been able to get it working, ever, but it is there. (I think there is a lot of work to do here…)

Note: See TracTickets for help on using tickets.