<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Local Loop &#187; debian</title>
	<atom:link href="http://localloop.co.za/tag/debian/feed/" rel="self" type="application/rss+xml" />
	<link>http://localloop.co.za</link>
	<description>Internet and Networking in South Africa</description>
	<lastBuildDate>Wed, 18 Apr 2012 12:27:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Getting the new Linux wireless regulatory domain stuff to work</title>
		<link>http://localloop.co.za/2009/06/getting-the-new-linux-wireless-regulatory-domain-stuff-to-work/</link>
		<comments>http://localloop.co.za/2009/06/getting-the-new-linux-wireless-regulatory-domain-stuff-to-work/#comments</comments>
		<pubDate>Sat, 20 Jun 2009 19:50:41 +0000</pubDate>
		<dc:creator>Simeon Miteff</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[crda]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[wireless]]></category>

		<guid isPermaLink="false">http://localloop.co.za/?p=237</guid>
		<description><![CDATA[A few days ago I installed kernel 2.6.29 from backports.org on my new Debian Lenny machine in order to get Intel 5100 AGN wireless driver support. While trying to convince the driver that I am not, in fact, an American, I discovered that Linux&#8217;s wireless support is moving toward a new framework for handling the [...]]]></description>
			<content:encoded><![CDATA[<p>A few days ago I installed kernel 2.6.29 from <a href="http://www.backports.org">backports.org</a> on my new Debian Lenny machine in order to get Intel 5100 AGN wireless driver support.</p>
<p>While trying to convince the driver that I am not, in fact, an American, I discovered that Linux&#8217;s wireless support is moving toward a <a href="http://http://linuxwireless.org/en/developers/Regulatory">new framework</a> for handling the regulatory domain information. Drivers use this to enable the correct (and legal) channels, RF power limits and other behavior for the country you&#8217;re in&#8230;</p>
<p>The first thing I tried was to create a file (<code>/etc/modprobe.d/cfg80211</code>) containing the string:</p>
<p><code>options cfg80211 ieee80211_regdom=ZA</code></p>
<p>This was a step in the right direction, but it turns out that only US, EU and JP regulatory information is hard-coded into the kernel. If one of those won&#8217;t work for you, you need the new <i>Wireless Central Regulatory Domain Agent</i> user-space utility. This little program is called by the cfg80211 module through udev and provides the missing regulatory info. So I grabbed and installed the <code>wireless-crda</code> package from Ubuntu, and put the following in <code>/etc/udev/rules.d/regulatory.rules</code>:</p>
<p><code>KERNEL=="regulatory*", ACTION=="change", SUBSYSTEM=="platform", RUN+="/sbin/crda"</code></p>
<p>Reloading all the wireless-related modules I observed CRDA doing it&#8217;s magic:</p>
<p><code>charlie kernel: [ 4801.596578] cfg80211: Using static regulatory domain info<br />
charlie kernel: [ 4801.596581] cfg80211: Regulatory domain: US<br />
charlie kernel: [ 4801.596583]  (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)<br />
charlie kernel: [ 4801.596585]  (2402000 KHz - 2472000 KHz @ 40000 KHz), (600 mBi, 2700 mBm)<br />
charlie kernel: [ 4801.596587]  (5170000 KHz - 5190000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)<br />
charlie kernel: [ 4801.596589]  (5190000 KHz - 5210000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)<br />
charlie kernel: [ 4801.596591]  (5210000 KHz - 5230000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)<br />
charlie kernel: [ 4801.596593]  (5230000 KHz - 5330000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)<br />
charlie kernel: [ 4801.596595]  (5735000 KHz - 5835000 KHz @ 40000 KHz), (600 mBi, 3000 mBm)<br />
charlie kernel: [ 4801.596597] cfg80211: Calling CRDA for country: ZA<br />
charlie kernel: [ 4801.617628] iwlagn: Intel(R) Wireless WiFi Link AGN driver for Linux, 1.3.27ks<br />
charlie kernel: [ 4801.617631] iwlagn: Copyright(c) 2003-2008 Intel Corporation<br />
charlie kernel: [ 4801.617706] iwlagn 0000:03:00.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18<br />
charlie kernel: [ 4801.617734] iwlagn 0000:03:00.0: setting latency timer to 64<br />
charlie kernel: [ 4801.617908] iwlagn: Detected Intel Wireless WiFi Link 5100AGN REV=0x54<br />
charlie kernel: [ 4801.639541] iwlagn: Tunable channels: 13 802.11bg, 24 802.11a channels<br />
charlie kernel: [ 4801.640028] wmaster0 (iwlagn): not using net_device_ops yet<br />
charlie kernel: [ 4801.640575] phy0: Selected rate control algorithm 'iwl-agn-rs'<br />
charlie kernel: [ 4801.640591] wlan0 (iwlagn): not using net_device_ops yet<br />
charlie kernel: [ 4801.644881] cfg80211: Regulatory domain changed to country: ZA<br />
charlie kernel: [ 4801.644883]  (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)<br />
charlie kernel: [ 4801.644885]  (2402000 KHz - 2482000 KHz @ 40000 KHz), (N/A, 2000 mBm)<br />
charlie kernel: [ 4801.644888]  (5170000 KHz - 5250000 KHz @ 20000 KHz), (300 mBi, 1700 mBm)<br />
charlie kernel: [ 4801.644890]  (5250000 KHz - 5330000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)<br />
charlie kernel: [ 4801.644892]  (5490000 KHz - 5710000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)<br />
charlie kernel: [ 4801.644894]  (5735000 KHz - 5835000 KHz @ 20000 KHz), (300 mBi, 3000 mBm)</code></p>
<p>Notice that cfg80211 loads with the US regulatiory domain, then calls CRDA, and while it&#8217;s waiting, iwlagn initializes the wireless device. Finally, cfg80211 switches to ZA, using the info obtained from user-space.</p>
<p>Unfortunately at this point <code>iw dev wlan0 info</code> showed the card was still using US channels. I discovered through experimentation that ZA channels were enabled if cfg80211 had enough time to switch from US to ZA before the iwlagn driver is loaded.</p>
<p>I filed <a href="http://www.intellinuxwireless.org/bugzilla/show_bug.cgi?id=2020">a bug report</a> and Luis Rodriguez promptly responded with <a href="http://www.intellinuxwireless.org/bugzilla/attachment.cgi?id=2056">a patch</a> deleting 3 lines from <code>net/wireless/reg.c</code>, fixing the problem.</p>
<p><strong>Update:</strong><br />
The patch seems to have been merged into kernel 2.6.30. I&#8217;ve upgraded to 2.6.30 from backports.org and now the CRDA magic Just Works (TM).</p>
]]></content:encoded>
			<wfw:commentRss>http://localloop.co.za/2009/06/getting-the-new-linux-wireless-regulatory-domain-stuff-to-work/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Requesting a DHCP hostname with Debian</title>
		<link>http://localloop.co.za/2009/02/requesting-a-dhcp-hostname-with-debian/</link>
		<comments>http://localloop.co.za/2009/02/requesting-a-dhcp-hostname-with-debian/#comments</comments>
		<pubDate>Thu, 05 Feb 2009 12:21:28 +0000</pubDate>
		<dc:creator>Simeon Miteff</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[/etc/network/interfaces]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[dhcp]]></category>
		<category><![CDATA[dhcp3-client]]></category>
		<category><![CDATA[dhcpcd]]></category>
		<category><![CDATA[hostname]]></category>

		<guid isPermaLink="false">http://localloop.co.za/?p=129</guid>
		<description><![CDATA[The DHCP server at my workplace allows clients to request a host name, and it then uses dynamic DNS updates to update the local DNS zone. To make this work on Debian, I added the hostname option to the LAN iface stanza in my /etc/network/interfaces file: iface eth0 inet dhcp hostname capybara Strangely, this option [...]]]></description>
			<content:encoded><![CDATA[<p>The DHCP server at my workplace allows clients to request a host name, and it then uses dynamic DNS updates to update the local DNS zone.</p>
<p>To make this work on Debian, I added the <code>hostname</code> option to the LAN <code>iface</code> stanza in my <code>/etc/network/interfaces</code> file:<br />
<code><br />
iface eth0 inet dhcp<br />
hostname capybara<br />
</code><br />
Strangely, this option is not supported with <code>dhcp3-client</code> (the ISC client, Debian&#8217;s default), so I had to install one of the alternatives listed in the <code>interfaces(5)</code> man page (pump, dhcpcd or udhcpc). I knew <code>dhcpcd</code> from my Gentoo days, so I tried it, and it worked.</p>
]]></content:encoded>
			<wfw:commentRss>http://localloop.co.za/2009/02/requesting-a-dhcp-hostname-with-debian/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

