tag:blogger.com,1999:blog-63669853422689139532024-01-23T13:21:55.316+01:00133nuxIt's more fun to compute with Linux.133nuxhttp://www.blogger.com/profile/06783768899278570174noreply@blogger.comBlogger8125tag:blogger.com,1999:blog-6366985342268913953.post-1380171491966055152014-10-29T00:07:00.001+01:002014-10-29T00:17:26.624+01:00Broadcom brcmsmac without channel 12 & 13 - they did it again...<span style="font-family: inherit;"><span style="font-size: x-small;"><span style="font-size: small;">Just updated my EeePC to Ubuntu 14.10 and - bam: no wireless network connection anymore. Channels 12 & 13 are gone again.</span></span></span><br />
<span style="font-family: inherit;"><span style="font-size: x-small;"><br /></span></span>
<span style="font-family: inherit;"><span style="font-size: x-small;"><span style="font-size: small;"><span style="font-size: x-small;"><span style="font-size: small;">This time we take the module parameter approach as in <a href="http://133nux.blogspot.com/2010/09/missing-atheros-channels.html">The missing Atheros channels</a> to override the regulatory domain setting read from SPROM (which is US in my case where only 11 channels are allowed), because setting the regulatory domain with</span></span></span></span></span><br />
<span style="font-family: inherit;"></span><br />
<span style="font-size: small;"><span style="font-family: inherit;"><span style="font-family: "Courier New", Courier, monospace;">iw reg set <regdom></span></span></span><br />
<span style="font-family: inherit;"><span style="font-size: x-small;"><span style="font-size: small;"><span style="font-size: x-small;"><span style="font-size: small;"><span style="font-size: x-small;"><span style="font-family: "Courier New", Courier, monospace;"> </span></span> </span></span></span></span></span><br />
<span style="font-family: inherit;"><span style="font-size: x-small;"><span style="font-size: small;"><span style="font-size: x-small;"><span style="font-size: small;">does not work.</span></span></span></span></span><br />
<br />
<span style="font-family: "Courier New",Courier,monospace;">diff -ru brcm80211.orig/brcmsmac/channel.c brcm80211/brcmsmac/channel.c</span><br />
<span style="font-size: small;"><span style="font-family: "Courier New",Courier,monospace;">--- brcm80211.orig/brcmsmac/channel.c 2014-10-15 12:05:43.000000000 +0200<br />+++ brcm80211/brcmsmac/channel.c 2014-10-25 14:26:51.667082058 +0200<br />@@ -323,6 +323,8 @@<br /> return;<br /> }<br /><br />+extern const char * get_param_regdom(void);<br />+<br /> struct brcms_cm_info *brcms_c_channel_mgr_attach(struct brcms_c_info *wlc)<br /> {<br /> struct brcms_cm_info *wlc_cm;<br />@@ -330,6 +332,20 @@<br /> struct ssb_sprom *sprom = &wlc->hw->d11core->bus->sprom;<br /> const char *ccode = sprom->alpha2;<br /> int ccode_len = sizeof(sprom->alpha2);<br />+ const char *regdom = get_param_regdom();<br />+ char regdom_sprom[3];<br />+ char regdom_param[3];<br />+<br />+ strncpy((char *)&regdom_sprom, ccode, 2);<br />+ regdom_sprom[2] = '\0';<br />+ brcms_info(wlc->hw->d11core, "Regulatory domain from SPROM: %s\n", regdom_sprom);<br />+<br />+ if (strlen(regdom) > 0) {<br />+ strncpy((char *)&regdom_param, regdom, 2);<br />+ regdom_param[2] = '\0';<br />+ brcms_info(wlc->hw->d11core, "Overriding regulatory domain from %s to %s\n" , regdom_sprom, regdom_param);<br />+ ccode = regdom;<br />+ }<br /><br /> wlc_cm = kzalloc(sizeof(struct brcms_cm_info), GFP_ATOMIC);<br /> if (wlc_cm == NULL)<br />diff -ru brcm80211.orig/brcmsmac/mac80211_if.c brcm80211/brcmsmac/mac80211_if.c<br />--- brcm80211.orig/brcmsmac/mac80211_if.c 2014-10-15 12:05:43.000000000 +0200<br />+++ brcm80211/brcmsmac/mac80211_if.c 2014-10-25 14:20:46.158547508 +0200<br />@@ -112,6 +112,15 @@<br /> module_param_named(debug, brcm_msg_level, uint, S_IRUGO | S_IWUSR);<br /> #endif<br /><br />+static char *regdom = "";<br />+module_param(regdom, charp, S_IRUGO);<br />+MODULE_PARM_DESC(regdom, "Override the regulatory domain from SPROM");<br />+<br />+const char * get_param_regdom(void)<br />+{<br />+ return regdom;<br />+}<br />+<br /> static struct ieee80211_channel brcms_2ghz_chantable[] = {<br /> CHAN2GHZ(1, 2412, IEEE80211_CHAN_NO_HT40MINUS),<br /> CHAN2GHZ(2, 2417, IEEE80211_CHAN_NO_HT40MINUS),</span></span><br />
<br />
<span style="font-family: inherit;"><span style="font-size: x-small;"><span style="font-size: small;"><span style="font-size: x-small;"><span style="font-size: small;">This adds the module parameter <i>regdom</i> to brcmsmac. To set this parameter persistently create <i>/etc/modprobe.d/brcmsmac.conf</i> with</span></span></span></span></span><span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;"> </span></span><br />
<br />
<span style="font-size: small;"><span style="font-family: "Courier New",Courier,monospace;">options brcmsmac regdom=<insert your regdom here></span></span><br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;"><br /></span></span>
<span style="font-size: small;">Also it's a good idea to create <i>/etc/modprobe.d/cfg80211.conf</i> with</span><br />
<br />
<span style="font-size: small;"><span style="font-family: "Courier New",Courier,monospace;">options cfg80211 ieee80211_regdom=<insert your regdom here></span></span><br />
<br />
<span style="font-family: inherit;"><span style="font-size: small;">Have fun! </span></span>133nuxhttp://www.blogger.com/profile/06783768899278570174noreply@blogger.com5tag:blogger.com,1999:blog-6366985342268913953.post-21559891753616826612012-01-21T12:55:00.000+01:002012-01-21T12:55:40.507+01:00AMIGA Intro GalleryThe <a href="http://en.wikipedia.org/wiki/Amiga">AMIGA</a> <a href="http://en.wikipedia.org/wiki/Cracktro">Intro</a> Gallery that existed since 2001 at <a href="http://wayback.archive.org/web/*/http://www.geocities.com/amigaintros/">http://www.geocities.com/amigaintros/</a> is back online again!<br />
<br />
The gallery went offline when <a href="http://en.wikipedia.org/wiki/GeoCities">GeoCities</a> closed on October, 26th 2009.<br />
<br />
It can now be found at <a href="http://amigaintros.altervista.org/">http://amigaintros.altervista.org/</a>133nuxhttp://www.blogger.com/profile/06783768899278570174noreply@blogger.com0tag:blogger.com,1999:blog-6366985342268913953.post-8750461416259936322011-12-31T18:58:00.002+01:002012-05-12T22:12:16.130+02:00The missing channels - this time: Broadcom brcmsmacIn my article <a href="http://133nux.blogspot.com/2010/09/missing-atheros-channels.html">The missing Atheros channels</a> I described how to hack the ath5k driver to support the wifi channels 12 and 13. This time I'll show you how to enable the two channels for the Linux Broadcom brcmsmac driver.<br />
<br />
<div style="font-family: inherit;">
The brcmsmac driver sets up the available 2.4 GHz (802.11 b/g) channels with flag</div>
<br />
<span style="font-family: "Courier New",Courier,monospace;">LOCALE_RESTRICTED_SET_2G_SHORT</span><br />
<br />
All you have to do is to change it to <br />
<br />
<span style="font-family: "Courier New",Courier,monospace;">LOCALE_RESTRICTED_NONE</span> <br />
<br />
in <span style="font-family: "Courier New",Courier,monospace;">brcmsmac/channel.c</span> and recompile the driver.<br />
<br />
<span style="font-family: "Courier New",Courier,monospace;">--- brcm80211/brcmsmac/channel.c.orig 2011-12-31 17:25:12.081733667 +0100</span><br />
<span style="font-family: "Courier New",Courier,monospace;">+++ brcm80211/brcmsmac/channel.c 2011-12-31 17:25:26.549801913 +0100</span><br />
<span style="font-family: "Courier New",Courier,monospace;">@@ -418,7 +418,7 @@</span><br />
<span style="font-family: "Courier New",Courier,monospace;"> static const struct locale_info locale_i = { /* locale i. channel 1 - 13 */</span><br />
<span style="font-family: "Courier New",Courier,monospace;"> LOCALE_CHAN_01_11 | LOCALE_CHAN_12_13,</span><br />
<span style="font-family: "Courier New",Courier,monospace;"> LOCALE_RADAR_SET_NONE,</span><br />
<span style="font-family: "Courier New",Courier,monospace;">- LOCALE_RESTRICTED_SET_2G_SHORT,</span><br />
<span style="font-family: "Courier New",Courier,monospace;">+ LOCALE_RESTRICTED_NONE,</span><br />
<span style="font-family: "Courier New",Courier,monospace;"> {QDB(19), QDB(19), QDB(19),</span><br />
<span style="font-family: "Courier New",Courier,monospace;"> QDB(19), QDB(19), QDB(19)},</span><br />
<span style="font-family: "Courier New",Courier,monospace;"> {20, 20, 20, 0},</span><br />
<br />
<br />
After loading the new kernel modules <span style="font-family: "Courier New",Courier,monospace;">brcmutil</span> & <span style="font-family: "Courier New",Courier,monospace;">brcmsmac</span> you have to set the <a href="http://linuxwireless.org/en/developers/Regulatory">regulatory domain</a> with<br />
<br />
<span style="font-family: "Courier New",Courier,monospace;">iw reg set <regdomain></span><br />
<br />
<br />
In dmesg instead of<br />
<br />
<span style="font-family: "Courier New",Courier,monospace;">[...]<br />
cfg80211: Updating information on frequency 2462 MHz for a 20 MHz width channel with regulatory rule:<br />
cfg80211: 2402000 KHz - 2472000 KHz @ KHz), (300 mBi, 2700 mBm)<br />
cfg80211: Disabling freq 2467 MHz<br />
cfg80211: Disabling freq 2472 MHz<br />
cfg80211: Disabling freq 2484 MHz<br />
cfg80211: Regulatory domain changed to country: US<br />
[...]<br />
cfg80211: Found new beacon on frequency: 2472 MHz (Ch 13) on phy3<br />
wlan0: authenticate with xx:xx:xx:xx:xx:xx (try 1)<br />
wlan0: authenticate with xx:xx:xx:xx:xx:xx (try 2)<br />
wlan0: authenticate with xx:xx:xx:xx:xx:xx (try 3)<br />
<b>wlan0: authentication with xx:xx:xx:xx:xx:xx timed out</b><br />
wlan0: authenticate with xx:xx:xx:xx:xx:xx (try 1)<br />
wlan0: authenticate with xx:xx:xx:xx:xx:xx (try 2)<br />
wlan0: authenticate with xx:xx:xx:xx:xx:xx (try 3)<br />
<b>wlan0: authentication with xx:xx:xx:xx:xx:xx timed out</b><br />
[...]<br />
</span><br />
<br />
you should now see something like<br />
<br />
<span style="font-family: "Courier New",Courier,monospace;">[...]<br />
cfg80211: Updating information on frequency 2467 MHz for a 20 MHz width channel with regulatory rule:<br />
cfg80211: 2400000 KHz - 2483500 KHz @ KHz), (N/A mBi, 2000 mBm)<br />
cfg80211: Updating information on frequency 2472 MHz for a 20 MHz width channel with regulatory rule:<br />
cfg80211: 2400000 KHz - 2483500 KHz @ KHz), (N/A mBi, 2000 mBm)<br />
cfg80211: Disabling freq 2484 MHz<br />
cfg80211: Regulatory domain changed to country: DE<br />
[...]<br />
cfg80211: Found new beacon on frequency: 2472 MHz (Ch 13) on phy4<br />
wlan0: authenticate with xx:xx:xx:xx:xx:xx (try 1)<br />
<b>wlan0: authenticated</b><br />
wlan0: associate with xx:xx:xx:xx:xx:xx (try 1)<br />
wlan0: RX AssocResp from xx:xx:xx:xx:xx:xx (capab=0x431 status=0 aid=1)<br />
<b>wlan0: associated</b><br />
[...]<br />
</span><br />
<br />
2467 MHz = channel 12<br />
2472 MHz = channel 13<br />
2484 MHz = channel 14<br />
<br />
<br />
<br />
<b>Update May 12th, 2012:</b><br />
<br />
The following linux kernel commit for 3.0.31, 3.3.4 & 3.2.17 is supposed to fix the<br />
problems with channel 12 & 13:
<br />
<br />
<blockquote>
brcm80211: smac: resume transmit fifo upon receiving frames<br />
<br />
commit badc4f07622f0f7093a201638f45e85765f1b5e4 upstream.<br />
<br />
There have been reports about not being able to use access-points
on channel 12 and 13 or having connectivity issues when these channels
were part of the selected regulatory domain. Upon switching to these
channels the brcmsmac driver suspends the transmit dma fifos. This
patch resumes them upon handing over the first received beacon to
mac80211.<br />
</blockquote>
<br />
Tried this patch, but I still get<br />
<pre><span style="font-family: "Courier New",Courier,monospace;"><b>wlan0: authentication with xx:xx:xx:xx:xx:xx timed out</b></span> </pre>
<br />133nuxhttp://www.blogger.com/profile/06783768899278570174noreply@blogger.com4tag:blogger.com,1999:blog-6366985342268913953.post-88142872241402607182011-12-17T23:56:00.000+01:002011-12-17T23:56:08.657+01:00ReCAPTCHA For DummiesType the <b>two</b> words!<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLwY7vxDt-tTloKdPP5M5lN9jJkvyhyphenhyphennLLO8c9tusrlAcS0HviO0IgiWXsRPzkC49PMQhh_LM0CfZN8HqYdWf0iCdU4U7Y0US1Ralg_FtgXIE5J4S1RfjRvCP-xE9NlbMRefhE6bsSQKI/s1600/recaptcha.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLwY7vxDt-tTloKdPP5M5lN9jJkvyhyphenhyphennLLO8c9tusrlAcS0HviO0IgiWXsRPzkC49PMQhh_LM0CfZN8HqYdWf0iCdU4U7Y0US1Ralg_FtgXIE5J4S1RfjRvCP-xE9NlbMRefhE6bsSQKI/s1600/recaptcha.png" /></a></div><div style="text-align: left;"> (PS: It worked by typing only the first word.)</div>133nuxhttp://www.blogger.com/profile/06783768899278570174noreply@blogger.com0tag:blogger.com,1999:blog-6366985342268913953.post-14239025612526498862011-03-03T23:02:00.001+01:002011-03-07T00:07:47.777+01:00The Microsoft Cloud(s)That's what the Microsoft Cloud(s) look(s) like: ;-)<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8FzsEKUi0Oxah5Cq_E-F4pDxm5tQx20hygz5Ooae2VKca6q6toc0IXwSumEQcnsnYDRNLgaWi91RmmS3I37s8HknPiRoxlpxIViRDe-KM9kJHEewEMGBPp33OcUfZyfmrV9_L5IbXc_Q/s1600/Microsoft_Cloud.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="238" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8FzsEKUi0Oxah5Cq_E-F4pDxm5tQx20hygz5Ooae2VKca6q6toc0IXwSumEQcnsnYDRNLgaWi91RmmS3I37s8HknPiRoxlpxIViRDe-KM9kJHEewEMGBPp33OcUfZyfmrV9_L5IbXc_Q/s320/Microsoft_Cloud.jpg" width="320" /></a></div><br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td class="tr-caption" style="text-align: center;"></td></tr>
</tbody></table><b>Colour:</b> white <br />
<b>Size:</b> ~3,5cm x 2cm<br />
<b>Weight:</b> 6g (12g per package, one package contains 2 clouds!)133nuxhttp://www.blogger.com/profile/06783768899278570174noreply@blogger.com0tag:blogger.com,1999:blog-6366985342268913953.post-27423365634715974552011-03-03T22:40:00.005+01:002011-03-07T00:11:43.656+01:00Facebook RL ;-)<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTm95tYLmI_syx143wkupwxMpSEA5g9Aq5XR569JQZy82DQP1mwvFhTK3igCU7Nu51ndf0BHj_TqoAG_fUopfrCD11WhVzzxGiWwbRGJRxjWQBBRj9P5NSXcATvAlA8QfuiTBExfz0N6c/s1600/K_gefaellt_das.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="87" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTm95tYLmI_syx143wkupwxMpSEA5g9Aq5XR569JQZy82DQP1mwvFhTK3igCU7Nu51ndf0BHj_TqoAG_fUopfrCD11WhVzzxGiWwbRGJRxjWQBBRj9P5NSXcATvAlA8QfuiTBExfz0N6c/s400/K_gefaellt_das.jpg" width="400" />.</a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">K. gefällt das.</td></tr>
</tbody></table><div style="text-align: center;"></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTHibAuIlzHGVS3es2iUC4bUYwR6HwNm5sFcjDz5VSfo8UesqLG59C196dFixQi04F1Q6IUGQiz_a7J02DMqkTFK5sP2yIBEkins_fJMbNnfcFZhTtM1cv8GVZ_vAUtnI50eCozMovfiY/s1600/K_gefaellt_das_nicht.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTHibAuIlzHGVS3es2iUC4bUYwR6HwNm5sFcjDz5VSfo8UesqLG59C196dFixQi04F1Q6IUGQiz_a7J02DMqkTFK5sP2yIBEkins_fJMbNnfcFZhTtM1cv8GVZ_vAUtnI50eCozMovfiY/s400/K_gefaellt_das_nicht.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">K. gefällt das nicht.</td></tr>
</tbody></table>133nuxhttp://www.blogger.com/profile/06783768899278570174noreply@blogger.com0tag:blogger.com,1999:blog-6366985342268913953.post-14677517328633310822010-12-24T20:47:00.003+01:002010-12-31T19:32:06.850+01:00Serial level converterHere are two pictures of a serial level converter I made. It uses the MAX3232 IC (<a href="http://pdfserv.maxim-ic.com/en/ds/MAX3222-MAX3241.pdf">Datasheet, PDF</a>). Serial data with voltage levels between 3.3V and 5.0V are converted to symmetric <a href="http://en.wikipedia.org/wiki/RS-232">RS-232</a> serial voltage levels.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLQdBsRg0v3NwlV6vfcKoa6xDH15HTfa3iu5iLHABUnpu_xUPiRv6SsMvlde-rTC1zkUivPFxiYyIzU3AXWhrXKVr8UmhURXm84YxjEHWB1wqQGuxiDge86D6Ouc4XzV5z-9RIx8roCGU/s1600/max3232_1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLQdBsRg0v3NwlV6vfcKoa6xDH15HTfa3iu5iLHABUnpu_xUPiRv6SsMvlde-rTC1zkUivPFxiYyIzU3AXWhrXKVr8UmhURXm84YxjEHWB1wqQGuxiDge86D6Ouc4XzV5z-9RIx8roCGU/s320/max3232_1.jpg" width="320" /></a></div><br />
Useful for hacking devices like routers, ... :) <br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWDMA04pKBj6X4kve25TQzJ1XgwJpHR3Hdt7mcIKp0-LzFPrOTlS1ufnIngasWbrjVWtSU0BAkn3ES1Efaa92RNq5J3un5Ori97x4w8PbPiPZ8XMIR8iey-XameapVdvywlEGixmlpLAE/s1600/max3232_2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWDMA04pKBj6X4kve25TQzJ1XgwJpHR3Hdt7mcIKp0-LzFPrOTlS1ufnIngasWbrjVWtSU0BAkn3ES1Efaa92RNq5J3un5Ori97x4w8PbPiPZ8XMIR8iey-XameapVdvywlEGixmlpLAE/s320/max3232_2.jpg" width="320" /></a></div>133nuxhttp://www.blogger.com/profile/06783768899278570174noreply@blogger.com0tag:blogger.com,1999:blog-6366985342268913953.post-6655101874411168462010-09-19T21:57:00.005+02:002010-09-26T10:05:57.334+02:00The missing Atheros channelsYesterday I've tried to setup my Atheros based wireless PCMCIA card D-Link DWL-G650 to communicate with my WLAN router Netgear WGR614v9. The WLAN is configured to use channel 13 - but no luck to connect to the router, because there are only 11 channels present:<br />
<br />
<span style="font-family: "Courier New",Courier,monospace;">ath0 11 channels in total; available frequencies :</span><br />
<span style="font-family: "Courier New",Courier,monospace;"> Channel 01 : 2.412 GHz</span><br />
<span style="font-family: "Courier New",Courier,monospace;"> Channel 02 : 2.417 GHz</span><br />
<span style="font-family: "Courier New",Courier,monospace;"> Channel 03 : 2.422 GHz</span><br />
<span style="font-family: "Courier New",Courier,monospace;"> Channel 04 : 2.427 GHz</span><br />
<span style="font-family: "Courier New",Courier,monospace;"> Channel 05 : 2.432 GHz</span><br />
<span style="font-family: "Courier New",Courier,monospace;"> Channel 06 : 2.437 GHz</span><br />
<span style="font-family: "Courier New",Courier,monospace;"> Channel 07 : 2.442 GHz</span><br />
<span style="font-family: "Courier New",Courier,monospace;"> Channel 08 : 2.447 GHz</span><br />
<span style="font-family: "Courier New",Courier,monospace;"> Channel 09 : 2.452 GHz</span><br />
<span style="font-family: "Courier New",Courier,monospace;"> Channel 10 : 2.457 GHz</span><br />
<span style="font-family: "Courier New",Courier,monospace;"> Channel 11 : 2.462 GHz</span><br />
<br />
The problem seems to be common as a search with Google <a href="http://www.google.com/search?hl=en&q=linux+wireless+channel+12+13+problem">shows</a>.<br />
<br />
When the driver for the wireless card is loaded, it reads the <a href="http://en.wikipedia.org/wiki/Regdomain">regdomain</a> from the <a href="http://en.wikipedia.org/wiki/EEPROM">EEPROM</a> of the wireless card and sets the allowed channels for the region. Unfortunately this does not seem to work, at least for me with the <a href="http://madwifi-project.org/">madwifi</a> driver.<br />
<br />
So I looked for a way to change the regdomain in EEPROM of the card:<br />
<br />
<ul><li>It seems to be possible with a tool called RCU (Tamos) on another OS. Tried it, but it was a mess to setup the tool and changing the regdomain didn't work.</li>
<li>There is a tool called <a href="http://madwifi-project.org/wiki/UserDocs/AthInfo">ath_info</a> that allows to change the regdomain. Didn't work (at least when the madwifi driver is used?!).</li>
</ul><br />
Now I tried the <a href="http://madwifi-project.org/wiki/About/ath5k">ath5k</a> driver which now finally works (hooray!) with my DWL-G650 (Kernel 2.6.35.4) - your experience may vary. Earlier versions did not like my DWL-G650.<br />
<br />
ath5k is a full open source driver (compared to madwifi that uses a hardware abstraction layer (HAL) that's only available as binaries) and there's a patch to override the regdomain that the driver will use. The patch can be found <a href="http://forum.aircrack-ng.org/index.php?topic=6822.0">here</a>. It introduces a new module parameter <i>override_eeprom_regdomain</i> for ath5k.<br />
<br />
You can provide <br />
<ul><li>either a <a href="http://www.davros.org/misc/iso3166.html">country code</a>. This is indicated by setting the highest bit of the 16 bit integer (COUNTRY_ERD_FLAG) or short: you have to provide <i>32768 + country code</i>, or in hex: <i>0x8000 + country code</i></li>
<li>or a <a href="http://wireless.kernel.org/en/users/Drivers/ath#EEPROM_world_regulatory_domain">world regulatory domain</a></li>
</ul><br />
Setting a country code currently does not work (Debian Squeeze), as ist <a href="http://wireless.kernel.org/en/developers/Regulatory">requires a user space tool</a> that's supposed to be packaged as <i>wireless-regdb</i>. The package provides an agent called <a href="http://wireless.kernel.org/en/developers/Regulatory/CRDA">CRDA</a> with a database that tells the driver the channels that are permitted for different countries.<br />
<br />
So the only way to get access to the lost channels is to provide a world regulatory domain. The world regulatory domains currently have values that range from <a href="http://wireless.kernel.org/en/users/Drivers/ath#EEPROM_world_regulatory_domain">0x60 to 0x6b</a>. Choose the one that suits your needs according to kernel source file <a href="http://git.kernel.org/?p=linux/kernel/git/linville/wireless-2.6.git;a=blob_plain;f=drivers/net/wireless/ath/regd.c;hb=HEAD">drivers/net/wireless/ath/regd.c</a>. I've chosen 0x68 (EU1_WORLD) that allows <a href="http://en.wikipedia.org/wiki/List_of_WLAN_channels">channels</a> 1 to 13 for <a href="http://en.wikipedia.org/wiki/802.11b">801.11b</a>/<a href="http://en.wikipedia.org/wiki/802.11g">g</a> and all <a href="http://en.wikipedia.org/wiki/List_of_WLAN_channels">channels</a> for <a href="http://en.wikipedia.org/wiki/802.11a">802.11a</a>:<br />
<br />
<pre>/* Can be used by 0x67, 0x6A and 0x68 */
static const struct ieee80211_regdomain ath_world_regdom_67_68_6A = {
.n_reg_rules = 4,
.alpha2 = "99",
.reg_rules = {
ATH9K_2GHZ_CH01_11,
ATH9K_2GHZ_CH12_13,
ATH9K_5GHZ_ALL,
}
;</pre><br />
I've put a file called <i>ath5k.conf</i> with<br />
<pre>options ath5k override_eeprom_regdomain=0x68</pre>in <i>/etc/modprobe.d</i> that sets regdomain 0x68 and now I'm able to use my WLAN on channel 13!133nuxhttp://www.blogger.com/profile/06783768899278570174noreply@blogger.com1