Rt2x00 alpha
From Rt2x00Wiki
rt2x00_alpha status page
This page's purpose is to provide details on the status of the rt2x00_alpha module. The alpha module is the first stage in the complete rewrite of the driver code. Alpha will not form a complete driver but instead will be used to test out much of the hardware IO and basic principles.
Current status of alpha
Alpha basically works but there are still a few little bugs in there that we really could do with finding. It is possible to use the module in RFMON mode with kismet/ethereal etc and it is possible to collect scan results with "iwlist scanning".
Alpha compiles OK on IA32 systems with newish 2.4 and 2.6 Kernels. Tests on other systems would be welcome.
How to build
To compile simply type "make debug" to build the debug version of the module.
To load the module use
insmod ./rt2x00.ko enable_debug=1
insmod ./rt2x00_pci.ko
the interface is called eth0
Most serious BUGS
- SMP problems
reports of a problem on SMP systems and cannot bring the interface up
Other bugs
- Monitor mode
On SuSE 9.3 the following message appear when unloading the module after monitor mode: dev_mc_discard: multicast leakage! dmi_users=1 I don't know if this is just a serious warning or not. (RobinC: This is caused by setting the multicast flags on the net device. Its not IMHO serious but we need to clean up in the shutdown functions somewehre to undo any multicast settings to prevent this warning.)
- Repeater mode
I can't test repeater mode as i don't have enough kit. With what i have got repeater mode effectively did a DOS on the wireless network.
- Big endian
The RX, TX, ATIM and PRIO register are incorrectly written to.
The base address of each ring is written according the the host byte order,
instead it should be converted to a little endian value.
- Beacon packets not transmitted
I am not seeing any beacon packets from ad-hoc mdoe etc being transmitted.
- IOCTL commit is bugged.
When calling iwconfig commit the connection will automaticly go up without having to do ifconfig up.
The problem lies in the commit call itself because it will always call rt2x00_radio_off() followed by rt2x00_radio_on() to trigger the config update to occur.
- Create_beacon
Create beacon is currently NOT passing the extension data (after the 802.11 header, through a cpu_to_device function. The header is going through a conversion.
Tidy ups
- Scanning modes.
Pretty much cleaned up now, can results are good and in correct place. Channel scan timer needs setting to a sensible vale. Can still get into problems where it won't rescan.
Any help with the above bugs would be great!
Fixes
- TX power, Code is in place to load up correct values for rt2400 and rt2500 now so that should be fixed.
- ieee80211.h file will be selected from <net/ieee80211.h> OR from modulesrc/ieee80211/net/ieee80211.h this will ensure that the kernels version will be used if present and if not our local version will be used.
- Monitor mode noise, fixed by latest commit to cvs. Cause - must deal with hard_start_xmit packets, if you return anything other that 0 ,net_dev will keep retrying (for ever) so you must accept and free all skbs send in, even if you don't transmit them.
- Gertjan seems to have stopped the iwlist scanning crash.
- The Bitrate reporting is fixed
- ifconfig up/card not ready bugs seems to be related to when pci_set_master was called. This should be called right at the start of the pci probe way before any actual access to the card is done. It seems to fix it for me.
--Robinc 10:15, 11 May 2005 (PDT)
