Smörgåsbord

Ambachtelijk bereide beschouwingen.

Nice hardware, but no channel 13

Last week I got myself a TP-Link TL-WR1043ND and pressed it into service as a smart 5-port gigabit switch (with VLAN capabilities) and wireless-N bridge. It is a fine piece of hardware and unbelievably cheap. Best of all, you can install the OpenWRT linux distribution on it. OpenWRT doesn’t target the inexperienced, but it is very customizable, offers a fair amount of documentation, and the build system seems very worthy of giving it a spin.

However. I noticed I couldn’t select a wireless channel >11. That’s odd, because over here in Europe we’re allowed to use the frequencies of channel 12 and 13, too.

Here’s what dmesg told me:

cfg80211: Calling CRDA to update world regulatory domain
cfg80211: World regulatory domain updated:
    (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
    (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
    (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
    (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
    (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
    (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
ath: EEPROM regdomain: 0x0
ath: EEPROM indicates default country code should be used
ath: doing EEPROM country->regdmn map search
ath: country maps to regdmn code: 0x3a
ath: Country alpha2 being used: US
ath: Regpair used: 0x3a
phy0: Selected rate control algorithm 'ath9k_rate_control'
phy0: Atheros AR9100 MAC/BB Rev:0 AR2133 RF Rev:a2 mem=0xb80c0000, irq=2
cfg80211: Calling CRDA for country: US
cfg80211: Regulatory domain changed to country: US
    (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
    (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2700 mBm)
    (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 1700 mBm)
    (5250000 KHz - 5330000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
    (5490000 KHz - 5600000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
    (5650000 KHz - 5710000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
    (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 3000 mBm)

So why does the system think I am in the US? And how can I tell it that I’m actually in the Netherlands? At first glance, it should be as easy as iw reg set NL. Result:

cfg80211: Calling CRDA for country: NL
cfg80211: Regulatory domain changed to country: NL
    (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
    (2402000 KHz - 2482000 KHz @ 40000 KHz), (N/A, 2000 mBm)
    (5170000 KHz - 5250000 KHz @ 40000 KHz), (N/A, 2000 mBm)
    (5250000 KHz - 5330000 KHz @ 40000 KHz), (N/A, 2000 mBm)
    (5490000 KHz - 5710000 KHz @ 40000 KHz), (N/A, 2700 mBm)

Looks about right, doesn’t it? Because 2482000 > 2472000. 2472 KHz is the upper bound of the 22 KHz wide channel 11. Likewise, 2482 KHz is the upper bound of channel 13. So am I all good for channel 13 now? Turns out I am not. iwlist wlan0 channel says:

wlan0     11 channels in total; available frequencies :
          Channel 01 : 2.412 GHz
          Channel 02 : 2.417 GHz
          Channel 03 : 2.422 GHz
          Channel 04 : 2.427 GHz
          Channel 05 : 2.432 GHz
          Channel 06 : 2.437 GHz
          Channel 07 : 2.442 GHz
          Channel 08 : 2.447 GHz
          Channel 09 : 2.452 GHz
          Channel 10 : 2.457 GHz
          Channel 11 : 2.462 GHz
          Current Frequency=2.452 GHz (Channel 9)

The wherefore and the why. And the how.

No channel 13. Wut? I found this informative mailing list post detailing what’s happening here. Basically, the kernel first loads the rules for the ‘world’ domain. On planet Earth, no countries exist that allow you to go beyond these frequencies (for domestic wifi). But many countries have additional restrictions. In Japan, you can use channel 14, in Europe you can’t. You can use 12 and 13 though, which in the US you can’t.
The kernel (well, the “ath” driver) then proceeds to look for any hints from the hardware. In my case the value burned into the hardware EEPROM is 0×0. That’s a value, which, per the Atheros specs, should map to the US. The kernel calls a userspace program crda to get the list of allowed frequencies and signal strenghts for the US.
After this has been done, you can do iw reg set FOO until you drop but you wont be able to go beyond the limits set previously.

The weird thing with radio hardware is that not only the users are subject to regulation, the sellers are too. You can’t sell non-compliant radio hardware. Now, the wifi chip manufacturers do not physically limit a chip intended for sale in the US to channels 1-11. Rather, they mass produce chips and then the equipment manufacturers are supposed to configure the chip in compliance with its target market. (As if you’d never take your equipment to Japan).
As I understand it, TP-Link messed up here.

Compare the above setup with what happens on my laptop’s Atheros chip:

ath: EEPROM regdomain: 0x65
ath: EEPROM indicates we should expect a direct regpair map
ath: Country alpha2 being used: 00
ath: Regpair used: 0x65

Looking at the Linux 2.6.35 sourcecode in drivers/net/wireless/ath/regd_common.h you’ll see that 0×65 maps to WOR5_ETSIC, which holds rules for compliance with EU regulation. Which I suppose is right since I’ve bought that laptop in the EU. But my TP-link comes out as FCC3_FCCA ­— that’s FCC-land, the US.

Fixing it

So either patch the kernel’s mappings, or patch the userspace ‘crda‘ program to supply a modified list of allowed frequencies for the ‘US’. I chose the latter. Reading a bit more about this program and its database, it didn’t appear I could fix it easily — the database is digitally signed and the public key needs to be known to the crda program at compile-time. No problem on a Gentoo system, but the target system was OpenWRT. On a MIPS machine. That meant cross-compiling, so I proceeded by downloading the OpenWRT dev environment for the Backfire release, and had a look around. And whaddayaknow, package/crda/patches/101-make_crypto_use_optional.patch made me hope that signature checking wasn’t even compiled in! On my OpenWRT box:

root@t33t:~# ldd /sbin/crda 
	libnl-tiny.so => /usr/lib/libnl-tiny.so (0x2aabe000)
	libm.so.0 => /lib/libm.so.0 (0x2aad6000)
	libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x2aaff000)
	libc.so.0 => /lib/libc.so.0 (0x2ab1f000)
	ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x2aaa8000)

(Don’t you just love it). Now I don’t know a lot about embedded environments and uclibc, but I don’t see any libcrypto.so or libgcrypt.so in there. It looks like I can just supply any old unsigned database. More reading of documentation, some compiling of tools.
regdbdump /usr/lib64/crda/regulatory.bin gives me an editable version of the database. I didn’t feel like limiting myself, so I replaced this:

country 00:
	(2402.000 - 2472.000 @ 40.000), (3.00, 20.00)
	(2457.000 - 2482.000 @ 20.000), (3.00, 20.00), PASSIVE-SCAN, NO-IBSS
	(2474.000 - 2494.000 @ 20.000), (3.00, 20.00), NO-OFDM, PASSIVE-SCAN, NO-IBSS
	(5170.000 - 5250.000 @ 40.000), (3.00, 20.00), PASSIVE-SCAN, NO-IBSS
	(5735.000 - 5835.000 @ 40.000), (3.00, 20.00), PASSIVE-SCAN, NO-IBSS

country US:
	(2402.000 - 2472.000 @ 40.000), (3.00, 27.00)
	(5170.000 - 5250.000 @ 40.000), (3.00, 17.00)
	(5250.000 - 5330.000 @ 40.000), (3.00, 20.00), DFS
	(5490.000 - 5600.000 @ 40.000), (3.00, 20.00), DFS
	(5650.000 - 5710.000 @ 40.000), (3.00, 20.00), DFS
	(5735.000 - 5835.000 @ 40.000), (3.00, 30.00)

with this:

country 00:
  (2402.000 - 2494.000 @ 40.000), (N/A, 30.00)
  (4910.000 - 5835.000 @ 40.000), (N/A, 30.00)

country US:
  (2402.000 - 2494.000 @ 40.000), (N/A, 30.00)
  (4910.000 - 5835.000 @ 40.000), (N/A, 30.00)

and then I converted the database to its binary form with db2bin.py which one can find in the wireless-regdb source code releases. Copied the new database over to my OpenWRT machine, restarted it, dmesg, presto:

cfg80211: Calling CRDA to update world regulatory domain
cfg80211: World regulatory domain updated:
    (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
    (2402000 KHz - 2494000 KHz @ 40000 KHz), (N/A, 3000 mBm)
    (4910000 KHz - 5835000 KHz @ 40000 KHz), (N/A, 3000 mBm)
ath: EEPROM regdomain: 0x0
ath: EEPROM indicates default country code should be used
ath: doing EEPROM country->regdmn map search
ath: country maps to regdmn code: 0x3a
ath: Country alpha2 being used: US
ath: Regpair used: 0x3a
phy0: Selected rate control algorithm 'ath9k_rate_control'
phy0: Atheros AR9100 MAC/BB Rev:0 AR2133 RF Rev:a2 mem=0xb80c0000, irq=2
cfg80211: Calling CRDA for country: US
cfg80211: Regulatory domain changed to country: US
    (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
    (2402000 KHz - 2494000 KHz @ 40000 KHz), (N/A, 3000 mBm)
    (4910000 KHz - 5835000 KHz @ 40000 KHz), (N/A, 3000 mBm)
root@t33t:~# iwlist wlan0 channel
wlan0     14 channels in total; available frequencies :
          Channel 01 : 2.412 GHz
          Channel 02 : 2.417 GHz
          Channel 03 : 2.422 GHz
          Channel 04 : 2.427 GHz
          Channel 05 : 2.432 GHz
          Channel 06 : 2.437 GHz
          Channel 07 : 2.442 GHz
          Channel 08 : 2.447 GHz
          Channel 09 : 2.452 GHz
          Channel 10 : 2.457 GHz
          Channel 11 : 2.462 GHz
          Channel 12 : 2.467 GHz
          Channel 13 : 2.472 GHz
          Channel 14 : 2.484 GHz
          Current Frequency=2.452 GHz (Channel 9)

Legality

This is a rather libertarian approach. Not legal on Earth, it doesn’t even comply with the ‘World’ regulatory domain. Yes, among other things, this gives you access to the ‘Japanese’ channel 14. The rules don’t prevent you from going totally EMP on your neighbourhood. (Your hardware does, though).
It’s now YOUR responsibility to comply with local regulations. If you look out the window and see an airliner perform a barrel roll, you know it’s time to iw reg set $YOURCOUNTRYCODE.
And remember, interference works both ways. The fact that your neighbours cannot use some frequencies doesn’t necessarily mean you’ll get good performance using those (frequencies I mean). It may well be that you’ll have lousy reception because other (possibly more powerful) equipment is legally being used on those channels. Just stick with your country’s regulations OK?

I kept the previous ‘US’ entry as ‘UX’ so I can still comply with US regulations if necessary. I hear they’re big on regulations in the US. Especially if it involves foreigners.


Tags: , , , , ,

36 Responses to “WiFi regulatory compliance, and how to fix it”

  1. Pilot6

    This is a very useful information. I live in Russia and have TP-Link 1043ND too. I installed Openwrt. It works fine, but regdomain in EEPROM is 0×0. Tp-Link did not bother to change it.

    I can’t compile myself, because I do not have so much Linux knowledge. It would be very nice if you give an already compiled firmware with this patch.

    Wicher Reply:

    You don’t have to compile (as in ‘compile executable machine code from source code’) anything. I’m pretty confident that with some effort, anyone is able to do this:

    1. download binary DB from router
    2. get tools mentioned in linked articles
    3. use tools to dump DB to text format
    4. edit DB
    5. use tools to convert DB to binary format
    6. upload DB to router

    Time to get your hands dirty!

    Pilot6 Reply:

    Thanks for reply. I found a standard way.
    I built from source. There is an option in menuconfig in ath9k driver to allow regdomain change.

    Wicher Reply:

    Thanks for sharing that bit of information, good to know. Happy hacking!

  2. Steve

    Why so complicated?
    OpenWRT has a build option “Force Atheros drivers to respect the user’s regdomain settings”. Setting this before building should be all that’s needed.

    Wicher Reply:

    Damn! I tried to explain things clearly and people still think it’s complicated.

    Nice to hear that something that sounds like it could do the job, is in the build options. Since when? And what does it do, exactly?

    Anyway, my method will let you set combinations of frequency and power limits that aren’t legal in any country, which is a nice feature I suppose ;-)

    Steve Reply:

    Well, I guess your method is not *that* complicated. However, I think just setting an option in make menuconfig is easier.
    The option does this:
    Atheros’ idea of regulatory handling is that the EEPROM of the card defines the regulatory limits and the user is only allowed to restrict the settings even further, even if the country allows frequencies or power levels that are forbidden by the EEPROM settings.

    Select this option if you want the driver to respect the user’s decision about regulatory settings.

    I.e. it does exactly what you wanted. It does not, however allow you to do things not allowed in any country.

    Steve Reply:

    Just checked svn blame. Looks like the option was merged into backfire around r21092. So it’s probably available since about April/May 2010.

    Wicher Reply:

    Ah, I used Backfire 10.03, r20728 at the time of writing (and I’m still running it) so I did not have this option, but tbh, I also can’t exactly remember looking for it ;-)

    Wicher Reply:

    By “what does it do” I meant “how does it work”, my fault.

    I imagine it could work by disabling the mechanism of “you can only set tighter limits, you can’t ever relax them”. But I’m not 100% sure this isn’t implemented in the firmware instead of the driver.

    Or, it could work by messing with the mappings.

    I’ll check the source next time I install OpenWRT.

  3. Anton

    I have a Netgear WNDR3700v1, with OpenWRT trunk build and an updated regulatory.bin, according to this article, but I still cannot use any setting specified in that file. I am in NL. dmesg says the following:

    ath: EEPROM regdomain: 0×60
    ath: EEPROM indicates we should expect a direct regpair map
    ath: Country alpha2 being used: 00
    ath: Regpair used: 0×60

    after that, I can do what I want, but no channels 13+14, no txpower above 17dB, etc. Even though dmesg also says:

    cfg80211: Calling CRDA for country: NL
    cfg80211: Regulatory domain changed to country: NL
    cfg80211: (start_freq – end_freq @ bandwidth), (max_antenna_gain, max_eirp)
    cfg80211: (2402000 KHz – 2482000 KHz @ 40000 KHz), (N/A, 2000 mBm)
    cfg80211: (5170000 KHz – 5250000 KHz @ 40000 KHz), (N/A, 2000 mBm)
    cfg80211: (5250000 KHz – 5330000 KHz @ 40000 KHz), (N/A, 2000 mBm)
    cfg80211: (5490000 KHz – 5710000 KHz @ 40000 KHz), (N/A, 2700 mBm)

    Am I stuck because my EEPROM says 0×60 instead of 0×0? Are there other ways to get channel 13? Thanks in advance.

    Wicher Reply:

    It’s been a while since I delved into this. I’m not 100% on the below hints, so I suggest you re-read the article (and linked materials) to make sure it all makes sense to you. Maybe the materials had some pointers on regpairs vs country alpha2’s — I forgot.

    Your output looks like the one I contrasted my TP-link’s output with. That output came from my laptop (see article above).

    In general, IIRC, the trick is to make sure that the first call to crda results in very little restrictions being applied — remember, as I described, you can only tighten those restrictions further down the road.

    I replaced the US section in regulatory.bin with my own regulations. Which region code you should replace depends on the value in your EEPROM and its translation by the driver.
    Replacing the US section while your machine never requests it, has no effect.

    There’s another avenue open for modding. Look up 0×60 in the kernel header (which I mentioned in the article) and go from there. You could remap 0×60 to something that fits your situation — you’ll have to recompile the driver for that.

    If you want to find out what that initial region code is _the dirty way_ you could make a simple shell script wrapper for crda, and dump the arguments it’s called with to some file (cheap trick!).

  4. Sadiq

    I am really new to OpenWRT. Could you please dumb the steps down more if possible? I am not sure of even what to do. I am assuming edit the regulatory.bin file on the router (via FTP? no GUI filesystem management avaiable) to allow all the frequencies for the country wanted?

  5. Joost

    Goed bezig!

  6. Ultrazauberer

    Thanks for this great information!

    I also modded the regulatory.bin and changed it in the OpenWRT firmware. Now I can see max. txpower @ 25dbm.

    When I test this txpower, the router is still showing me 20dbm. Can anyone go beyond 20dbm?

  7. Cejvik

    cd /usr/lib/crda/
    rm regulatory.bin
    wget http://datatomb.de/mirror/stuff/regulatory.bin
    reboot

    iw reg set $YOURCOUNTRYCODE
    iwlist wlan0 channel

  8. samprat

    Thanks Wicher .. Your tutorial is excellent.
    It works for me .
    To summarize what I did..( may be it wil be helpful for someone)
    Its 2 MAIN steP PROCEDURE . first to MAKE CHANGES IN wireless-regdb and second with crda

    1)WIRELESS-REGDB

    1.a)Download wireless-regdb-2008.11.17.tar.bz2 package
    1.b) Untar it
    1.c) cd wireless-regdb-2008.11.17
    1.d) vi db.text and made changes what you have mentioned
    1.e) make
    This will create a public and priv key in my case its something like key.priv.pem

    1.f) copy the regulatory.bin to /usr/lib/crda/
    create crda if does not exist

    if you guys want to make changes in regulatory.bin after the make then
    i) edit db.txt and make reguire changes
    ii) compile it . ex ./db2bin.py regulatory.bin db.txt key.priv.pem
    iii) copy into /usr/lib/crda

    ****************** Now download and commpile crda*******

    2.a) Download Crda . I n my case its crda-1.1.2.tar.bz2
    2 .b) un tar it and cd into directory
    2.c) copy the public key from wireless-regdb into pubkeys directory
    example — cp bla bla/wireless_regdb-2008.11.17 blabla/crda-1.1.2/pubkeys

    2.d)make the file .. type “make”
    note — in my case I got hell lot of errors and dependency problem but google has helped me to solve it
    2.e make install

    2.f reboot the system.

    …………………………………

    Important — modify frequency in db.txt of teh country which your driver is requesting from EEPROM of H/w.
    for example -> if your driver get counrty code as GB and you made changes for US , it will not work.

    Best bet is to check what your country code is by typing “iw reg get ” command

    ………………..
    Again Thanks a lot to wicher for cracking the problem and taking pain to share his knwoledge with us..

  9. sayap

    Upgraded to latest snapshot today, and found that putting in modified regulatory.bin doesn’t work anymore, due to:

    https://dev.openwrt.org/changeset/31954/

    Time to compile my own image…

  10. Bart

    Can the same method be used when working with (for example) Linux Mint? Got two Atheros 9380 cards and with both the region-code prevents me from setting up an AP on the 5GHz frequency band…

    Wicher Reply:

    Run ldd against your crda and you’ll see if crypto is compiled in (as I did, see article). You might want to compile your own crda in that case (samprat, two comments up, showed you how). And you need to make sure that the first regpair to be requested on initialization will be the one with the lax limits, this depends on a value in your card’s EEPROM. See article.

  11. xose

    You can change the EEPROM regdomain country with iwleeprom.

    xose Reply:

    Description says “EEPROM reader/writer for intel wifi cards.” but it also works with atheros.

    Get source code with: svn checkout http://iwleeprom.googlecode.com/svn/

    Wicher Reply:

    Tried it on an Intel 6205 (rev 34) on my Thinkpad. Dmesg before/after:

    [ 13.099910] iwlwifi 0000:03:00.0: Tunable channels: 13 802.11bg, 24 802.11a channels
    [102628.972330] iwlwifi 0000:03:00.0: Tunable channels: 14 802.11bg, 29 802.11a channels

    Nice! Still have to try those channels, though.

    omgwtfbbqlol Reply:

    Which value do I have to change in the dumped eeprom for an atheros, to change my redomain?

  12. Guide: Secure your home WLAN Part 1 – Connect-UTB

    [...] there are ways to get around this. You can either follow the rather complicated guide, or hope that someone has done this for you and published the binary file for your specific [...]

  13. xose vazquez

    Hack for OpenWRT and ar71xx/mpc85xx with ath9k.

    http://luci.subsignal.org/~jow/reghack/

    wolfi Reply:

    cool – for a quick test – EXCELLENT !

    But this whole page is actually a very very cool (and eye-opening) collection of ideas around ath.
    I hope it never goes away – really cool !

    wolfi Reply:

    hmm .. tiny side-effect of this hack:
    http://luci.subsignal.org/~jow/reghack/

    it actually screws your 5GHz radio.
    (while the 2.4GHz works as desired)

    but no problem with openwrt, as you always can revert the patch from a copy in /rom:
    cd /rom/lib/modules/2.6.32.16
    cp ath.ko /lib/modules/2.6.32.16/
    cp cfg80211.ko /lib/modules/2.6.32.16/ath.ko

    anyways …

    FriedZombie Reply:

    To save space you can also remove the modified drivers from /overlay

    rm /overlay/lib/modules/*/ath.ko
    rm /overlay/lib/modules/*/cfg80211.ko

    this way it uses the one stored in rom (don’t forget to reboot the router).

  14. Achieving 5GHz in Ubuntu With Airport Express and 802.11dJoop.in | Joop.in

    [...] after all the work, I was still looking at a limited channel range. Wicher pointed me in the right direction. There are files that are limiting us, let’s find [...]

  15. Did Ubuntu 12.04 support wireless 5G ?

    [...] you provide the information I have requested: http://ubuntuforums.org/showthread.p…7#post11971567 http://smorgasbord.gavagai.nl/2010/0…how-to-fix-it/ [...]

  16. glimmer

    2.4GHz is working. 5GHz is still working, but still limited to 17dBi. iw reg shows limit raised to 30dBi, but iw list does not. Any ideas?

    Frequencies:
    * 5180 MHz [36] (17.0 dBm)
    * 5200 MHz [40] (17.0 dBm)
    * 5220 MHz [44] (17.0 dBm)
    * 5240 MHz [48] (17.0 dBm)
    * 5260 MHz [52] (20.0 dBm) (passive scanning, no IBSS)
    * 5280 MHz [56] (20.0 dBm) (passive scanning, no IBSS)
    * 5300 MHz [60] (20.0 dBm) (passive scanning, no IBSS)
    * 5320 MHz [64] (20.0 dBm) (passive scanning, no IBSS)
    * 5500 MHz [100] (21.0 dBm) (passive scanning, no IBSS)
    * 5520 MHz [104] (24.0 dBm) (passive scanning, no IBSS)
    * 5540 MHz [108] (24.0 dBm) (passive scanning, no IBSS)
    * 5560 MHz [112] (24.0 dBm) (passive scanning, no IBSS)
    * 5580 MHz [116] (24.0 dBm) (passive scanning, no IBSS)
    * 5600 MHz [120] (24.0 dBm) (passive scanning, no IBSS)
    * 5620 MHz [124] (24.0 dBm) (passive scanning, no IBSS)
    * 5640 MHz [128] (24.0 dBm) (passive scanning, no IBSS)
    * 5660 MHz [132] (24.0 dBm) (passive scanning, no IBSS)
    * 5680 MHz [136] (24.0 dBm) (passive scanning, no IBSS)
    * 5700 MHz [140] (21.0 dBm) (passive scanning, no IBSS)
    * 5745 MHz [149] (24.0 dBm) (passive scanning, no IBSS)
    * 5765 MHz [153] (24.0 dBm) (passive scanning, no IBSS)
    * 5785 MHz [157] (24.0 dBm) (passive scanning, no IBSS)
    * 5805 MHz [161] (24.0 dBm) (passive scanning, no IBSS)
    * 5825 MHz [165] (24.0 dBm) (passive scanning, no IBSS)

  17. Adam11

    many thanks Wicher for such a good post.Will this enable me to use frequency range 2312 – 2732 on my nano station m2 which is available in airOS firmware but for a lot of reasons I need to use OpenWrt. please help me Wicher.
    thanks

  18. Adam11

    And oh I forget to say , is this available in attitude adjustment? I red somewhere that crda isn’t used anymore and the regdb.txt is found in package/mac80211/files/regdb.txt.Can you explain what is this ? any thanks.

    Wicher Reply:

    True. For Attitude Adjustment, just use the CONFIG_ATH_USER_REGD option. When you run ‘make menuconfig’ in the OpenWRT source directory you can find this option below Kernel modules -> Wireless Drivers -> kmod-ath.
    I don’t think it’s enabled by default so you’ll have to build OpenWRT from source.

    For your desktop you can use a version of crda with signature verification disabled, this allows you to use a custom regulatory.bin.
    Here’s a Gentoo ebuild.

  19. Vishal Vijay Chaudhari

    awesome article…..super loved it…………thanks for your great work…………

Leave a Reply

Got an account? This would be an excellent time to log in!

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

© 2009-2011 Wicher Minnaard | electronic mail | theme: righteously modified "dark strict"