Search Linux Wireless

Re: zd1211rw on ppc (iBook G4) -- Solved, somewhat)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Luis R. Rodriguez wrote:
> On Sun, Sep 13, 2009 at 8:41 PM, Hin-Tak Leung <hintak.leung@xxxxxxxxx> wrote:
>   
>> On Sun, Sep 13, 2009 at 11:13 AM, Hin-Tak Leung <hintak.leung@xxxxxxxxx> wrote:
>>     
>>> On Sat, Sep 12, 2009 at 11:43 PM, Leonardo H. Souza Hamada
>>> <leonardo.hamada@xxxxxxxxxxx> wrote:
>>>       
>>>> Hi all,
>>>>
>>>> At this moment, after tweaking the zd1211rw code in kernel
>>>> 2.6.31-gentoo, finally I am able to use the WLI-U2-KG54L wireless usb
>>>> dongle on this old ibook.
>>>>
>>>> Browsing the source with a cross referencing tool
>>>> (http://lxr.free-electrons.com) and making additional checking points, I
>>>> could trace the issue as follow.
>>>>
>>>> The problem is that this device returns a regulatory region of 0x49,
>>>> which is not defined in the zd1211rw tables. So the call
>>>>
>>>> r <http://lxr.free-electrons.com/ident?i=r> = zd_reg2alpha2 <http://lxr.free-electrons.com/ident?i=zd_reg2alpha2>(mac <http://lxr.free-electrons.com/ident?i=mac>->regdomain, alpha2);
>>>>
>>>> will fail the initialization process.
>>>>
>>>>
>>>> Workaround:
>>>>
>>>> ----snip----
>>>> int zd_mac_init_hw(struct ieee80211_hw *hw)
>>>> {
>>>> ...
>>>>        r = zd_read_regdomain(chip, &default_regdomain);
>>>>        /* A unknown regulatory of 0x49 will be set default to
>>>> ZD_REGDOMAIN_FCC. */
>>>>        if (0x49 == default_regdomain)
>>>>                default_regdomain = ZD_REGDOMAIN_FCC;
>>>> ...
>>>> ----snip----
>>>>
>>>> The above code will force the default regulatry to be FCC code for this
>>>> case. I think that this was the case in previous zd1211rw driver. What
>>>> is the country code for 0x49 region? There is a better way?
>>>>
>>>>
>>>> Thanks all,
>>>>
>>>> Phew!! Leonardo
>>>>         
>>> The vendor driver has quite a lot more regdomain code defined, and
>>> 0x49 is apparently
>>>
>>> ZD_Region_Japan_3           = 0x49,//G channel->ch1-13; A channel->8~16,34~46;
>>>
>>> the rw driver code probably should set it to most restrictive than let
>>> it fail...
>>>
>>>       
>> Can you give this patch a try against a recent
>> wireless-testing/compat-wireless? I think this is the correct way to
>> do things.
>>
>> Here is the content of the patch for others who doesn't like
>> attachments - it just sets 0x49 as Japan.
>> ==============================
>> diff --git a/drivers/net/wireless/zd1211rw/zd_mac.c
>> b/drivers/net/wireless/zd1211rw/zd_mac.c
>> index 6d66635..b0d32c4 100644
>> --- a/drivers/net/wireless/zd1211rw/zd_mac.c
>> +++ b/drivers/net/wireless/zd1211rw/zd_mac.c
>> @@ -42,6 +42,7 @@ static struct zd_reg_alpha2_map reg_alpha2_map[] = {
>>        { ZD_REGDOMAIN_ETSI, "DE" }, /* Generic ETSI, use most restrictive */
>>        { ZD_REGDOMAIN_JAPAN, "JP" },
>>        { ZD_REGDOMAIN_JAPAN_ADD, "JP" },
>> +       { ZD_REGDOMAIN_JAPAN_3, "JP" },
>>        { ZD_REGDOMAIN_SPAIN, "ES" },
>>        { ZD_REGDOMAIN_FRANCE, "FR" },
>>  };
>> diff --git a/drivers/net/wireless/zd1211rw/zd_mac.h
>> b/drivers/net/wireless/zd1211rw/zd_mac.h
>> index 7c27591..9701935 100644
>> --- a/drivers/net/wireless/zd1211rw/zd_mac.h
>> +++ b/drivers/net/wireless/zd1211rw/zd_mac.h
>> @@ -193,6 +193,7 @@ struct zd_mac {
>>  #define ZD_REGDOMAIN_FRANCE    0x32
>>  #define ZD_REGDOMAIN_JAPAN_ADD 0x40
>>  #define ZD_REGDOMAIN_JAPAN     0x41
>> +#define ZD_REGDOMAIN_JAPAN_3   0x49
>>     
>
> FWIW, this does seem right.
>
>   Luis
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>   
*
Ok, got *compat-wireless-2.6.tar.bz2
<http://wireless.kernel.org/download/compat-wireless-2.6/compat-wireless-2.6.tar.bz2>*
"bleeding edge compat-wireless" from* here:
http://wireless.kernel.org/download/compat-wireless-2.6/compat-wireless-2.6.tar.bz2

Steps done, so so:

tar -xjf compat-wireless-2.6.tar.bz2
cd compat-wireless-2009-09-14/
cp -v ../zd1211rw_jp3.diff .
`../zd1211rw_jp3.diff' -> `./zd1211rw_jp3.diff'
patch -p1 < zd1211rw_jp3.diff
patching file drivers/net/wireless/zd1211rw/zd_mac.c
patching file drivers/net/wireless/zd1211rw/zd_mac.h
./scripts/driver-select zd1211rw
Processing new driver-select request...
Backing up makefile: Makefile.bk
Backing up makefile: drivers/net/wireless/Makefile.bk
Backing up makefile: net/wireless/Makefile.bk
Backing up makefile: drivers/ssb/Makefile.bk
Backing up makefile: drivers/net/usb/Makefile.bk
Backing up makefile: drivers/misc/eeprom/Makefile.bk

make
/home/leo/compat-wireless-2009-09-14/config.mk:17: *** "ERROR: you have
MAC80211 compiled into the kernel, CONFIG_MAC80211=y, as such you cannot
replace its mac80211 driver. You need this set to CONFIG_MAC80211=m. If
you are using Fedora upgrade your kernel as later version should this
set as modular. For further information on Fedora see
https://bugzilla.redhat.com/show_bug.cgi?id=470143. If you are using
your own kernel recompile it and make mac80211 modular".  Pare.

<<<Disabling original zd1211rw in kernel configuration, recompiled
kernel as instructed above, installed new kernel, reboot, many times
until I got it right>>>


Results:

dmesg seems ok. no errors.

can do iwlist wlan0

iwconfig wlan0 shows:
IEEE 802.11bg  Mode:Managed  Access Point: Not-Associated  
          Tx-Power=20 dBm  
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off


I do not seem to be able to connect to a given access point so far. LED
does not blink.

It can be that there is a query on the new values against other. Just a
guess.


Regards,
Leonardo

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux