<?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>CURIOSITATIS CAPTIVUS &#187; hardware</title>
	<atom:link href="http://www.coreygallon.com/tag/hardware/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.coreygallon.com</link>
	<description>thesauri sapientiae et quisquiliae</description>
	<lastBuildDate>Thu, 26 Jan 2012 08:57:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Broadcom 43xx Wireless Card in Linux</title>
		<link>http://www.coreygallon.com/2007/02/broadcom-43xx-wireless-card-in-linux/</link>
		<comments>http://www.coreygallon.com/2007/02/broadcom-43xx-wireless-card-in-linux/#comments</comments>
		<pubDate>Sat, 17 Feb 2007 04:18:56 +0000</pubDate>
		<dc:creator>captivus</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[drivers]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[search engine fodder]]></category>
		<category><![CDATA[SEF]]></category>

		<guid isPermaLink="false">http://corey.shift8.net/2007/02/16/broadcom-43xx-wireless-card-in-linux/</guid>
		<description><![CDATA[Today I finally resolved what has been one of the most frustrated Linux issues I have faced yet &#8212; getting my bloody Dell Truemobile 1300 wireless card (stock in my Dell Inspiron 5100 notebook) to function in Linux. The problem has been that those bastards at Broadcom &#8212; the corporation that manufactures the controller for [...]]]></description>
			<content:encoded><![CDATA[<p>Today I finally resolved what has been one of the most frustrated Linux issues I have faced yet &#8212; getting my bloody Dell Truemobile 1300 wireless card (stock in my Dell Inspiron 5100 notebook) to function in Linux.  The problem has been that those bastards at Broadcom &#8212; the corporation that manufactures the controller for the card &#8212; have not released Linux drivers for this controller.  Prior to today, I have struggled trying to wrap my Windows driver in a piece of Linux software called <em>ndiswrapper</em>.  I have, as it turns out, found two ways to finally get the blasted card to work! <span id="more-18"></span></p>
<p>(Note:  Before following the procedures outlined below, I had downloaded a tested driver &#8212; as per the <a href="http://ndiswrapper.sourceforge.net/mediawiki/index.php/List">ndiswrapper wiki</a> &#8212; for the Dell Truemobile 1300 MPCI card.  The recommended driver can be found <a href="http://ftp.us.dell.com/network/R90501.EXE">here</a>.)</p>
<p>(Additional note:  This process was followed in Fedora Core 6 &#8212; I can only vouch for it working in this environment, although I imagine it will work in most distributions.)</p>
<p><strong>Solution 1:  bcm43xx-fwcutter</strong><br />
Today I found a fantastic little program called <em>bcm43xx-fwcutter</em>.  In essence, it extracts the driver from the Windows driver file, and incorporates it into Linux&#8217; native support for the bcm43xx controller.  After finding this gem, the entire process &#8212; including download and installation &#8212; took about 5 minutes.</p>
<p>Here is what I did:</p>
<p>1.)  Download bcm43xx-fwcutter from <a href="http://developer.berlios.de/project/showfiles.php?group_id=4547">BerliOS.de</a>.  (Note:  be sure to get the correct file for your version of the controller!)</p>
<p>2.)  Unarchive and compile the tool:<br />
<code>tar -xvf bcm43xx-fwcutter-006.tar.bz2<br />
cd ./bcm43xx-fwcutter-006<br />
make</code></p>
<p>3.)  Run the tool to extract the driver from the Windows driver file and install it in Linux:<br />
<code>bcm43xx-fwcutter -w /lib/firmware bcmwl5.sys</code></p>
<p>4.)  Remove the bcm43xx module from the kernel then add it back with the new driver:<br />
<code>rmmod bcm43xx<br />
modprobe bcm43xx</code></p>
<p>5.)  Configure the wireless card (substituting your interface name where appropriate):<br />
<code>iwlist eth1 scan<br />
iwconfig eth1 essid <em>(SSID here)</em><br />
iwconfig eth1 key restricted <em>(WEP key here)</em><br />
dhclient eth1</code></p>
<p>Voila!  It was a truly effortless process after having extracted the driver using bcm43xx-fwcutter.  My hat goes off to the developers &#8212; you lot have truly made Linux life much easier for owners of BCM43xx controller-based wireless cards!</p>
<p><em>Drawback to solution 1</em>: The bcm43xx driver &#8212; the driver used in the process above &#8212; will limit the wireless card to 11mbps.  GRRR!!</p>
<p><strong>Solution 2:  ndiswrapper</strong><br />
Ndiswrapper &#8212; available at SourceForge <a href="http://ndiswrapper.sourceforge.net">here</a> &#8212; is a linux-based wrapper for Windows wireless card drivers.  To quote the project page, &#8220;Some vendors do not release specifications of the hardware or provide a Linux driver for their wireless network cards. This project implements Windows kernel API and NDIS (Network Driver Interface Specification) API within Linux kernel. A Windows driver for wireless network card is then linked to this implementation so that the driver runs natively, as though it is in Windows, without binary emulation.&#8221;</p>
<p>Ndiswrapper can be a bit of a pain to implement, but I have managed to pare down the myriad instructions I found in various forums into several easy-to-follow steps.</p>
<p>1.)  Download ndiswrapper from <a href="http://downloads.sourceforge.net/ndiswrapper/ndiswrapper-1.37.tar.gz?modtime=1170451496&#038;big_mirror=0">its SourceForge project page</a>.  (As of this posting, the current version is 1.37)</p>
<p>2.)  Unarchive and compile ndiswrapper:<br />
<code>tar -zxvf ndiswrapper-1.37.tar.gz<br />
cd ./ndiswrapper-1.37<br />
make distclean<br />
make<br />
(As <em>root</em>) make install</code></p>
<p>3.)  Ensure that the native bcm43xx driver is unloaded and add it to the module blacklist:<br />
<code>rmmod bcm43xx<br />
vi /etc/modprobe.d/blacklist<br />
Add a line: <em>blacklist bcm43xx</em></code></p>
<p>4.)  Install the Windows driver:<br />
<code>ndiswrapper -i bcmwl5.inf</code></p>
<p>5.)  Run <em>depmod</em> and ensure that there are no errors:<br />
<code>depmod -a</code></p>
<p>6.)  Add the ndiswrapper module to the kernel:<br />
<code>modprobe ndiswrapper</code></p>
<p>7.)  Configure the wireless adapter (substituting your interface name where appropriate):<br />
<code>iwlist eth1 scan<br />
iwconfig eth1 essid <em>(SSID here)</em><br />
iwconfig eth1 key restricted <em>(WEP key here)</em><br />
dhclient eth1</code></p>
<p>8.)  Finally, to prevent having to reconfigure the card the next time I reboot, I edit <em>/etc/sysconfig/network-scripts/ifcfg-eth1</em> and add the following configuration strings:<br />
<code>ESSID=<em>(your SSID here)</em><br />
KEY=<em>(your WEP key here)</em></code></p>
<p>Additionally, add the following line to /etc/modprobe.conf:<br />
<code>options ndiswrapper if_name=eth1<br />
alias eth1 ndiswrapper</code></p>
<p>Ndiswrapper is a much better solution for operating BCM43xx controller-based wireless cards in Linux, in my opinion.  This is largely due to the wrapper&#8217;s ability to enable 802.11g (i.e. 54mbps) transfer rates for the card.  The bcm43xx driver limits the card to 802.11b rates (i.e. <= 11mbps).  (Note:  Because ndiswrapper creates a kernel module, if you upgrade your kernel you will have to rebuild the module for the new kernel.  Just recompile ndiswrapper and reinsert the kernel module.)</p>
<p>There it is!  I hope that my documentation of this process will help others who find themselves in a similar bind.</p>
<div style="text-align:center"><script type="text/javascript">
  addthis_url    = 'http%3A%2F%2Fwww.coreygallon.com%2F2007%2F02%2Fbroadcom-43xx-wireless-card-in-linux%2F';
  addthis_title  = 'Broadcom+43xx+Wireless+Card+in+Linux';
  addthis_pub    = 'coreygallon';
</script><script type="text/javascript" src="http://s7.addthis.com/js/addthis_widget.php?v=12" ></script></div>
]]></content:encoded>
			<wfw:commentRss>http://www.coreygallon.com/2007/02/broadcom-43xx-wireless-card-in-linux/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

