ipw3945 wireless card
I'm currently using the CentOS Plus kernel on my installation:
[[email protected] ~]# uname -a
Linux esprit 2.6.18-92.1.6.el5.centos.plus #1 SMP Thu Jun 26 12:18:07 EDT 2008 x86_64 x86_64 x86_64 GNU/Linux
and this comes with an iwl3945 module already built into it. I'm unsure if the standard CentOS kernels do or not, as I've not currently got one installed - only the CentOS Plus ones. So, I needed to find out what version it was, so I could find the right iwl3945-ucode firmware. From dmesg, it was staring me in the face, since the firmware wasn't on the system - only the module was.
iwl3945: Intel(R) PRO/Wireless 3945ABG/BG Network Connection driver for Linux, 1.2.22ks
iwl3945: Copyright(c) 2003-2007 Intel Corporation
PCI: Enabling device 0000:10:00.0 (0000 -> 0002)
ACPI: PCI Interrupt 0000:10:00.0[A] -> GSI 17 (level, low) -> IRQ 185
PCI: Setting latency timer of device 0000:10:00.0 to 64
iwl3945: Detected Intel PRO/Wireless 3945ABG Network Connection
iwl3945: iwlwifi-3945-1.ucode firmware file req failed: Reason -2
iwl3945: Could not read microcode: -2
so, finding out the module version:
[[email protected] ~]# modinfo iwl3945
filename: /lib/modules/2.6.18-92.1.6.el5.centos.plus/kernel/drivers/net/wireless/iwlwifi/iwl3945.ko
license: GPL
author: Copyright(c) 2003-2007 Intel Corporation
version: 1.2.22ks
description: Intel(R) PRO/Wireless 3945ABG/BG Network Connection driver for Linux
srcversion: FE4714B501FE8E9C203D73A
alias: pci:v00008086d00004227sv*sd*bc*sc*i*
alias: pci:v00008086d00004222sv*sd*bc*sc*i*
depends: mac80211,compat
vermagic: 2.6.18-92.1.6.el5.centos.plus SMP mod_unload gcc-4.1
parm: antenna:select antenna (1=Main, 2=Aux, default 0 [both]) (int)
parm: disable:manually disable the radio (default 0 [radio on]) (int)
parm: hwcrypto:using hardware crypto engine (default 0 [software])
(int)
parm: debug:debug output mask (int)
parm: disable_hw_scan:disable hardware scanning (default 0) (int)
parm: queues_num:number of hw queues. (int)
parm: qos_enable:enable all QoS functionality (int)
module_sig: 883f3504863c7795c7adb72c4c65e112764209f5f73e1af31223ad37302e6f7766ba5e2917daf09d1fe8f3fdf08dc3e1ec9d92390cf4563b4fbb188
the most important bit here is version: 1.2.22ks. I checked the following website:
comparing the data of the 1.2.22.tgz with the iwlwifi-3945-ucode firmware and downloaded iwlwifi-3945-ucode-2.14.1.5.tgz. I then moved the firmware into the /lib/firmware directory, and then modprobe'd iwl3945 again. This time I had better results:
iwl3945: Intel(R) PRO/Wireless 3945ABG/BG Network Connection driver for Linux, 1.2.22ks
iwl3945: Copyright(c) 2003-2007 Intel Corporation
PCI: Enabling device 0000:10:00.0 (0000 -> 0002)
ACPI: PCI Interrupt 0000:10:00.0[A] -> GSI 17 (level, low) -> IRQ 185
PCI: Setting latency timer of device 0000:10:00.0 to 64
iwl3945: Detected Intel PRO/Wireless 3945ABG Network Connection
iwl3945: Tunable channels: 13 802.11bg, 23 802.11a channels
phy0: Selected rate control algorithm 'iwl-3945-rs'
as you can see, now no problem trying to load the firmware. This then gave me a wlan0 interface for me to use. I simply now just did:
service NetworkManager restart
so that the Network Manager applet in Gnome would now allow me to connect to wireless networks. I picked my network, and connected no problems. All sorted!