-   Linux - Newbie (
-   -   How to load a firmware file in CentOS with udev / hotplug? (

ptemmerman 11-10-2008 04:07 AM

How to load a firmware file in CentOS with udev / hotplug?
Hi folks.

I've got a laptop with the Intel PRO/Wireless 3945ABG/BG Network Connection Adapter, and in order to make it work with Linux, one step I need to do is copy a the network adapters firmware to the appropriate folder. This is what the readme file says about that:


In addition to having the firmware_loader support in your kernel, you
must also have a working hotplug and udev infrastructure configured.
The steps for installing and configuring hotplug and udev are very
distribution specific.

Once you have the firmware loader in place (or if you aren't sure and
you just want to try things to see if it works), you need to install
the microcode file into the appropriate location.

Where that appropriate location is depends (again) on your system
distribution. You can typically find this location by looking in the
hotplug configuration file for your distro:

% grep \"^FIRMWARE_DIR\" /etc/hotplug/firmware.agent

This should give you output like:

Problem is that I do not have hotplug on my system. Some Googling learned me that Hotplug is not used anymore on Centos 5 and that it is replaced by udev, is this true?

If so, how can I get this to work with udev? Where should I place the firmware file? Should I modify some udev scripts in order to get it picked up?

Thanks for your help.

P.S.: I love Linux, but it hurts me to see that it is still such a pain to get wireless working under Linux. It's not that Intel is not supporting Linux (and some hacks needs to be used in order to get everything working), because the files and instructions I got here come straight from Intel. In Windows this wireless network card works straight away. To give you an idea what is needed in order to get it working under Linux (ideally, if Murphy is not involved):

1. Install the mac80211 subsystem
This involves patching the kernel source and compile the kernel module. Although, you get a note that says that starting version 2.0 of mac80211, it is also necessary to recompile the whole kernel and that they are looking into a way of solving this.

2. Get hotplug to get the network cards firmware picked up.

Nice, my system aint using Hotplug

3. Load the driver using iwlwifi

Although the steps seem pretty straightforward, it is way too cumbersome in order to get internet working on your laptop. Not to speak about the fact that recompiling the kernel is not that trivial for most people, certainly if you get some nice compile errors such as:


drivers/net/wireless/hostap/hostap_ioctl.c: In function ‘prism2_ioctl_giwrange’:
drivers/net/wireless/hostap/hostap_ioctl.c:1098: error: ‘struct iw_range’ has no member named ‘scan_capa’
drivers/net/wireless/hostap/hostap_ioctl.c:1098: error: ‘IW_SCAN_CAPA_ESSID’ undeclared (first use in this function)
drivers/net/wireless/hostap/hostap_ioctl.c:1098: error: (Each undeclared identifier is reported only once
drivers/net/wireless/hostap/hostap_ioctl.c:1098: error: for each function it appears in.)
make[4]: *** [drivers/net/wireless/hostap/hostap_ioctl.o] Error 1
make[3]: *** [drivers/net/wireless/hostap] Error 2
make[2]: *** [drivers/net/wireless] Error 2
make[1]: *** [drivers/net] Error 2

Don't get me wrong, I've been using Linux for the last couple of years now and I don't want to go back to Windows whatsoever. But what does bother me is that I've been struggling with this a whole afternoon, just in order to get internet, and I'm sure that it just works in Windows.
Btw, if anyone knows a solution to the compilation error..I'm still looking in to it.

ptemmerman 11-10-2008 04:08 AM

And just after I pressed POST, I realized that this might actually belong in the wireless forum, rather then where it is now. :-)


Harsha_t 05-06-2009 01:50 PM

Even i am facing the same problem

I have the same problem here. Did you figure out a way of configuring WiFi on your laptop?

Best regards,

farslayer 05-06-2009 02:56 PM
the microcode images are the firmware.

CentOS specific

All times are GMT -5. The time now is 03:10 AM.