Rewritten driver partially functional

View: New views
7 Messages — Rating Filter:   Alert me  

Rewritten driver partially functional

by Daniel Drake :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

I'm pleased to reveal that our rewritten driver is just about
functional. If you are interested in testing it, please read this email
in full.

INFO
====

This driver is experimental and isn't expected to work properly.

This driver is being developed by Ulrich Kunitz and myself. Our efforts
have been majorly boosted by softmac, and the softmac developers
(Michael Buesch and Johannes Berg) were all too helpful when we met them
last week.

We are not affiliated with ZyDAS. Do not contact them if you are using
this driver.

Please do *NOT* mail us directly about this driver. Instead, mail this
list, stating clearly that you are using the rewritten driver in the
subject line. We have too much work to do to handle lots of email,
hopefully others will help out on the list.

Also, we aren't quite ready for world domination just yet. If you have
problems with the process of compiling or loading this driver, we might
not rush to help you. We will let you know when this driver is ready for
use by end users.

We are on IRC: Freenode, #zd1211

FUNCTIONALITY
=============

Our driver cannot (yet) be viewed as a replacement for ZyDAS driver.
It's not hard to make a long list of things which our driver does not
(yet) support:

  - 802.11a
  - Monitor mode
  - Master mode
  - Ad-hoc connectivity
  - Rate management
  - ZD1211B
  - wpa_supplicant
  - ...

However, the driver can connect to unencrypted networks and that seems
to work quite well.

LACK OF RATE MANAGEMENT
=======================

The driver transmits data at 11mbps by default. This may or may not be
suitable for your environment. If you need more speed, you can manually
change the data transmit speed with (e.g.):

        iwconfig <interface> rate 36M

However, you need to be sensible. A faster rate means an increased
likelihood of transmit error, in which case you'll be needlessly
retransmitting packets. In other words, you really don't want to use the
faster rates unless you are close to your access point, because you'll
actually get _worse_ performance. The default of 11M may even be too
fast if you are testing the driver on an open network located somewhere
on the next street, like I am ;)

Oh, also, 54M was broken until a little earlier today. If you want 54M
to work, then you'll need to wait until tomorrows snapshot.

At some point in the future, automatic rate management will be
implemented in softmac, which will result in the driver automatically
selecting the most appropriate rate on your behalf.

REQUIREMENTS
============

We are using a new extension to Linux's ieee80211 stack, called softmac.
This allows our driver to be nice and simple. You need Linux 2.6.17-rc1
or newer to test this driver - softmac is not included in earlier
kernels. You also need to compile the ieee80211, ieee80211softmac and
firmware_class modules.

SOFTMAC MISBEHAVIOUR
====================

Before you do anything with your interface, you need to bring it up:

        # ifconfig <INTERFACE> up

To work around a softmac bug, you need to run the following command
before trying to associate:

        # iwconfig <INTERFACE> mode managed

If you do not do this, you won't be able to associate to any network.

PERFORMANCE
===========

RX performance should be good. TX performance will be poor until we
implement a more advanced transmit engine.

DEBUGGING
=========

To enable debugging, enable the ZD1211_DEBUG variable:

        # make ZD1211_DEBUG=y

Also, you can keep an eye on softmac's activity by running "iwevent" in
another console while you work.

CONTRIBUTIONS
=============

We hope that releasing a working driver base will encourage others to
get involved in the project. You can see there are many features left to
implement.

Please send patches to this list, with [PATCH REWRITE] in the subject line.

USB ID'S AND RF TYPES
=====================

We have *not* copied over the list of USB ID's from the ZyDAS driver. We
wish to confirm that the RF is supported for each device, and that the
device actually works with our driver, before we add the USB ID.

For an explanation of RF types, see http://zd1211.ath.cx/wiki/RfTypes
We currently support the AL2230 and RF2959 RF's only. We'll add support
for more if we see them included in devices available on the market
(i.e. if you tell us!).

Since we only list two ID's at the moment (my device and Ulrich's
device), you'll probably have to add your own before testing this.
Please send success and failure reports to this list.

If you are successful, please include:
  1. The brand and retail product name of your device
  2. The USB ID's (duh)
  3. The chip ID string, which can be read by:
      # dmesg | grep "zd1211 chip"
  4. The FCC ID of your product, if it is is visible.

You may also wish to include a patch (see CONTRIBUTIONS, above).

Here is an example of a chip ID string:

        zd1211 chip 07b8:6001 v4330 full 00-12-0e AL2230_RF pa0 g--

If your RF is not supported, you will not get an ID string. The driver
will bail out earlier with this type of error message:

        zd1211 RF YOUR_RF 0x? is not supported.

Please tell us about this message, so that we can add support for your RF.

INCLUSION IN LINUX
==================

We aim to get included in the wireless-2.6 kernel tree within the next
week or so. We aim to get our driver included in Linux 2.6.18 - not all
features will be implemented, but it will be at least partially usable
(as it is now).

DOWNLOADING
===========

The easiest way to get going is from Ulrich's daily snapshots, available
from:
http://www.deine-taler.de/zd1211/snapshots/

We actually work in git repositories, more info is available here:
http://zd1211.ath.cx/wiki/DriverRewrite

FIRMWARE
========

Firmware is pulled from userspace. You must put the binary firmware
blobs (named zd1211_u*) in /lib/firmware/zd1211. You can get these blobs
from:
http://sourceforge.net/project/showfiles.php?group_id=129083

Enjoy.


-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Zd1211-devs mailing list - http://zd1211.ath.cx/
Unsubscribe: https://lists.sourceforge.net/lists/listinfo/zd1211-devs

Re: Rewritten driver partially functional

by Daniel Drake :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Daniel Drake wrote:
> Since we only list two ID's at the moment (my device and Ulrich's
> device), you'll probably have to add your own before testing this.
> Please send success and failure reports to this list.

Forgot to mention, the ID table is kept in an array called "usb_ids"
near the top of zd_usb.c.

Daniel



-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Zd1211-devs mailing list - http://zd1211.ath.cx/
Unsubscribe: https://lists.sourceforge.net/lists/listinfo/zd1211-devs

Re: Rewritten driver partially functional

by Graham Gower :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On 18/04/06, Daniel Drake <dsd@...> wrote:
> Daniel Drake wrote:
> > Since we only list two ID's at the moment (my device and Ulrich's
> > device), you'll probably have to add your own before testing this.
> > Please send success and failure reports to this list.
>
> Forgot to mention, the ID table is kept in an array called "usb_ids"
> near the top of zd_usb.c.

My TWINMOS G240 works fine with zd1211_2006-04-18.
RX speed fluctuates between 100-500k/s with rate=54M. (old driver 1-2mb/s).

FCC id: QS3WGSZR1

$ dmesg | tail -6
usb 1-3: new high speed USB device using ehci_hcd and address 4
usb 1-3: configuration #1 chosen from 1 choice
zd1211 firmware version 4605
zd1211 chip 126f:a006 v4330 high 00-0b-9d RFMD_RF pa0 g--
eth1: zd1211
SoftMAC: Open Authentication completed with 00:0f:b5:bf:2e:22

Patch  for my vendor/device IDs are attached.

Graham


zd1211rw_twinmos.patch (1004 bytes) Download Attachment

Re: Rewritten driver partially functional

by Daniel Drake :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Graham Gower wrote:
> My TWINMOS G240 works fine with zd1211_2006-04-18.
> RX speed fluctuates between 100-500k/s with rate=54M. (old driver 1-2mb/s).

Thanks for testing that - I applied your patch.

Nice to know that it works even if we do have some performance problems.

Are you sure that the vendor driver sits at 54M in your environment?
Their driver has a built in feedback loop which decreases the rate if it
notices that too many packets are being retransmitted. Dropping down to
a lower rate will actually improve performance in this situation.
zd1211rw has no rate management yet, and setting 54M may not be optimal.

Thanks,
Daniel



-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Zd1211-devs mailing list - http://zd1211.ath.cx/
Unsubscribe: https://lists.sourceforge.net/lists/listinfo/zd1211-devs

Re: Rewritten driver partially functional

by Daniel Drake :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Graham Gower wrote:
> RX speed fluctuates between 100-500k/s with rate=54M. (old driver 1-2mb/s).

Ignore my last mail. RX speed is unaffected by the user-defined rate,
which is only for TX. So we must have a problem or inefficiency in the code.

Daniel



-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Zd1211-devs mailing list - http://zd1211.ath.cx/
Unsubscribe: https://lists.sourceforge.net/lists/listinfo/zd1211-devs

Re: Rewritten driver partially functional

by Graham Gower :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On 18/04/06, Daniel Drake <dsd@...> wrote:
> Graham Gower wrote:
> > RX speed fluctuates between 100-500k/s with rate=54M. (old driver 1-2mb/s).
>
> Ignore my last mail. RX speed is unaffected by the user-defined rate,
> which is only for TX. So we must have a problem or inefficiency in the code.
>
> Daniel
>
>

I did try rate=11M,36M,54M and noticed no difference between the
three. You said TX was slow, so I didn't bother speed testing that.

Is there any way to find out how much retransmission is occuring?
ifconfig and netstat don't show any statistics for the interface -
does this require driver support at some level?

thanks,
Graham


-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid0944&bid$1720&dat1642
_______________________________________________
Zd1211-devs mailing list - http://zd1211.ath.cx/
Unsubscribe: https://lists.sourceforge.net/lists/listinfo/zd1211-devs

Re: Rewritten driver partially functional

by Daniel Drake :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Graham Gower wrote:
> Is there any way to find out how much retransmission is occuring?
> ifconfig and netstat don't show any statistics for the interface -
> does this require driver support at some level?

Probably. The driver is supposed to handle some kind of statistics (I'm
not sure exactly what), but we don't do that, yet.

The other option is using ethereal or some similar monitoring
application with a spare wireless device. You'll probably find it quite
time consuming going through the logs looking for retransmits though -
although you can probably write a filter to do that.

As for TX being inefficient, it actually shouldn't be too slow. The only
reason it is inefficient is that we do memory allocations in atomic
context in the TX path.

Then again, both TX and RX were written in a few minutes only, as a "I
wonder if I can get this working" kind of thing. We need to compare to
other USB network drivers and see if there are any speed tricks in use.

Thanks,
Daniel


-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Zd1211-devs mailing list - http://zd1211.ath.cx/
Unsubscribe: https://lists.sourceforge.net/lists/listinfo/zd1211-devs