Code: Select all
Gentoo linux # lspci
00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS/940GML and 945GT Express Memory Controller Hub (rev 03)
00:01.0 PCI bridge: Intel Corporation Mobile 945GM/PM/GMS/940GML and 945GT Express PCI Express Root Port (rev 03)
00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 01)
00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 01)
00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 (rev 01)
00:1c.3 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 4 (rev 01)
00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #1 (rev 01)
00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #2 (rev 01)
00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #3 (rev 01)
00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI #4 (rev 01)
00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 01)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e1)
00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 01)
00:1f.2 IDE interface: Intel Corporation 82801GBM/GHM (ICH7 Family) Serial ATA Storage Controller IDE (rev 01)
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 01)
01:00.0 VGA compatible controller: nVidia Corporation Unknown device 0098 (rev a1)
03:00.0 Ethernet controller: Broadcom Corporation BCM4401-B0 100Base-TX (rev 02)
03:01.0 FireWire (IEEE 1394): Ricoh Co Ltd Unknown device 0832
03:01.1 Class 0805: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 19)
03:01.2 System peripheral: Ricoh Co Ltd Unknown device 0843 (rev 01)
03:01.3 System peripheral: Ricoh Co Ltd R5C592 Memory Stick Bus Host Adapter (rev 0a)
03:01.4 System peripheral: Ricoh Co Ltd xD-Picture Card Controller (rev 05)
0c:00.0 Network controller: Intel Corporation Unknown device 4222 (rev 02)

Code: Select all
# cd
wget http://www.teledisnet.be/web/vca08867/linux/ipw3945/ipw3945-ebuildset.tar.bz2
tar -xjvf ipw3945-ebuildset.tar.bz2 -C /Code: Select all
# ls -lR /usr/local/portage/net-wireless/
/usr/local/portage/net-wireless/:
total 0
drwxr-xr-x 3 root root 136 fév 25 19:06 ipw3945
drwxr-xr-x 3 root root 136 fév 26 12:43 ipw3945d
drwxr-xr-x 3 root root 144 fév 25 11:17 ipw3945-firmware
/usr/local/portage/net-wireless/ipw3945:
total 8
drwxr-xr-x 2 root root 88 fév 25 19:06 files
-rw-r--r-- 1 root root 1971 fév 26 12:50 ipw3945-0.0.69.ebuild
-rw-rw-r-- 1 root portage 132 fév 26 12:54 Manifest
/usr/local/portage/net-wireless/ipw3945/files:
total 4
-rw-rw-r-- 1 root portage 63 fév 26 12:54 digest-ipw3945-0.0.69
/usr/local/portage/net-wireless/ipw3945d:
total 8
drwxr-xr-x 2 root root 88 fév 26 12:43 files
-rw-r--r-- 1 root root 492 fév 26 13:39 ipw3945d-0.7.16.ebuild
-rw-rw-r-- 1 root portage 133 fév 26 13:39 Manifest
/usr/local/portage/net-wireless/ipw3945d/files:
total 4
-rw-rw-r-- 1 root portage 63 fév 26 13:39 digest-ipw3945d-0.7.16
/usr/local/portage/net-wireless/ipw3945-firmware:
total 8
drwxr-xr-x 2 root root 96 fév 25 11:17 files
-rw-r--r-- 1 root root 605 fév 25 12:15 ipw3945-firmware-1.13.ebuild
-rw-rw-r-- 1 root portage 145 fév 25 12:15 Manifest
/usr/local/portage/net-wireless/ipw3945-firmware/files:
total 4
-rw-rw-r-- 1 root portage 66 fév 25 12:15 digest-ipw3945-firmware-1.13Code: Select all
# ls -l /usr/portage/licenses/ | egrep 'Intel-bin|ipw3945'
-rw-r--r-- 1 root root 2109 fév 26 12:25 Intel-bin
-rwxr-xr-x 1 root root 2109 fév 25 10:56 ipw3945-fwCode: Select all
# emerge -s ipw3945
Searching...
[ Results for search key : ipw3945 ]
[ Applications found : 3 ]
* net-wireless/ipw3945 [ Masked ]
Latest version available: 0.0.69
Latest version installed: 0.0.69
Size of downloaded files: 155 kB
Homepage: http://ipw3945.sourceforge.net
Description: Intel(R) PRO/Wireless 3945 Network Connection driver for Linux
License: GPL-2
* net-wireless/ipw3945-firmware [ Masked ]
Latest version available: 1.13
Latest version installed: 1.13
Size of downloaded files: 59 kB
Homepage: http://ipw3945.sourceforge.net
Description: Microcode for the Intel PRO/Wireless 3945ABG Network Connection Adapter
License: ipw3945-fw
* net-wireless/ipw3945d [ Masked ]
Latest version available: 0.7.16
Latest version installed: 0.7.16
Size of downloaded files: 55 kB
Homepage: http://ipw3945.sourceforge.net
Description: Intel PRO/Wireless 3945ABG Network Connection Regulatory Daemon
License: Intel-binCode: Select all
# grep net-wireless /etc/portage/package.keywords
>=net-wireless/ieee80211-1.1.11 ~x86
=net-wireless/ipw3945d-0.7.16 ~x86
net-wireless/ipw3945-firmware ~x86
net-wireless/ipw3945 ~x86Code: Select all
/bin/sh /usr/portage/net-wireless/ieee80211/files/remove-old /usr/src/linuxCode: Select all
Your kernel source contains an incompatible version of the
ieee80211 subsystem, which needs to be removed before
ieee80211-1.1.12 can be installed. This can be accomplished by running:
# /bin/sh /usr/portage/net-wireless/ieee80211/files/remove-old /usr/src/linux
Please note that this will make it impossible to use some of the
in-kernel IEEE 802.11 wireless LAN drivers (eg. orinoco).Code: Select all
# emerge -av ipw3945
These are the packages that I would merge, in order:
Calculating dependencies ...done!
[ebuild N ] net-wireless/ieee80211-1.1.12 -debug 65 kB
[ebuild N ] net-wireless/ipw3945-firmware-1.13 60 kB [1]
[ebuild N ] net-wireless/ipw3945d-0.7.16 56 kB [1]
[ebuild N ] net-wireless/ipw3945-0.0.69 156 kB [1]
Total size of downloads: 337 kB
Portage overlays:
[1] /usr/local/portage
Do you want me to merge these packages? [Yes/No]Code: Select all
# modprobe ipw3945
# /sbin/ipw3945d # The wireless LED is put on, the card activated and the initscript launchedI appended the following lines to /etc/modules.d/ipw3945Intel's ipw3945 Install wrote:3. AUTOMATIC DAEMON LOADING VIA MODPROBE
-----------------------------------------------
There are some typical steps that are fairly generic in order
to automate the launching of the daemon you can use your
distribution's modprobe configuraiton. To do this, you need to copy
ipw3945.ko into your depmod path. This is typically done via:
# cp ipw3945.ko /lib/modules/$(uname -r)
# depmod -a
Now, when you run modprobe it will load the module (and any depdencies,
such as ieee80211.ko) and modprobe -r will remove the module. The next
step is to automate the launching and unloading of the regulatory
daemon. To do this, you typically place the following two lines into
your /etc/modprobe.conf or into a new file /etc/modules.d/ipw3945:
# echo install ipw3945 /sbin/modprobe --ignore-install ipw3945 ; \
sleep 0.5 ; /sbin/ipw3945d --quiet >> /etc/modules.d/ipw3945
# echo remove ipw3945 /sbin/ipw3945d --kill ; \
/sbin/modprobe -r --ignore-remove ipw3945 >> /etc/modules.d/ipw3945
NOTE: The \ above is to continue the entered line to the next line (the
lines added to the file are wider than 80 columns and so would wrap)
On some distributions you then may need to run the 'modules-update'
script.
To verify if the above is working, you can type:
# modprobe ipw3945
# ps -C ipw3945d
If you see a running 'ipw3945d' then it launched the daemon for you.
Code: Select all
install ipw3945 /sbin/modprobe --ignore-install ipw3945 ; sleep 0.5 ; /sbin/ipw3945d --quiet
remove ipw3945 /sbin/ipw3945d --kill ; /sbin/modprobe -r --ignore-remove ipw3945Code: Select all
cd /usr/local/portage/net-wireless/ipw3945
cp ipw3945-0.0.69.ebuild ipw3945-0.0.70.ebuild
ebuild ipw3945-0.0.70.ebuild digest
emerge -av ipw3945Code: Select all
install ipw3945 /sbin/modprobe --ignore-install ipw3945 ; sleep 0.5 ; /sbin/ipw3945d --quiet
remove ipw3945 /sbin/ipw3945d --kill ; /sbin/modprobe -r --ignore-remove ipw3945
It was a real pleasurermh3093 wrote:i have not tried your e-build but I do have ipw3945 working with 2.6.16-rc4-mm2, thanks for beating me to ebuild, i will try it out!
Code: Select all
install ipw3945 /sbin/modprobe --ignore-install ipw3945 ; sleep 0.5 ; /sbin/ipw3945d --quiet
remove ipw3945 /sbin/ipw3945d --kill ; /sbin/modprobe -r --ignore-remove ipw3945you have to remove the module with 'modprobe -r ipw3945"VinzC wrote:It was a real pleasurermh3093 wrote:i have not tried your e-build but I do have ipw3945 working with 2.6.16-rc4-mm2, thanks for beating me to ebuild, i will try it out!. So Andrew Morton sources include built-in support for ipw3945?
/etc/modules.d/ipw3945I have tried it too. It works at least when loading the module while rmmod ipw3945 produces an error message saying the module is in use. But in turn the RF-Kill switch works without unloading the module. You just have to restart the init script when the wireless is enabled again.Code: Select all
install ipw3945 /sbin/modprobe --ignore-install ipw3945 ; sleep 0.5 ; /sbin/ipw3945d --quiet remove ipw3945 /sbin/ipw3945d --kill ; /sbin/modprobe -r --ignore-remove ipw3945
Wierd. You could perhaps use /etc/init.d/local.stop to wipe the file out after the driver is removed.echalon wrote:I'm not sure why, but I had to create an init script to manually delete the /var/run/ipw3945d.pid file at shutdown or else it would not start up automatically with the automatic modprobe at boot.
It's my very first, big contribution and [bug=124180]I have submited three ebuilds to Gentoo Bugzilla[/bug]. I'm glad I could help.echalon wrote:Thanks for your work!
Using the ipw driver in /etc/conf.d/net* Starting eth1
* Starting wpa_supplicant on eth1 ...
ioctl[IPW_IOCTL_WPA_SUPPLICANT]: Operation not supported
ioctl[IPW_IOCTL_WPA_SUPPLICANT]: Operation not supported
Failed to set encryption.
ioctl[IPW_IOCTL_WPA_SUPPLICANT]: Operation not supported
Failed to set encryption.
ioctl[IPW_IOCTL_WPA_SUPPLICANT]: Operation not supported
Failed to set encryption.
ioctl[IPW_IOCTL_WPA_SUPPLICANT]: Operation not supported
Failed to set encryption.
ioctl[IPW_IOCTL_WPA_SUPPLICANT]: Operation not supported
ioctl[IPW_IOCTL_WPA_SUPPLICANT]: Operation not supported
[ ok ] * Starting wpa_cli on eth1 ...
[ ok ] * Backgrounding ...
Code: Select all
wpa_supplicant_eth1="-Dipw"
Code: Select all
eth1 Available private ioctls :
set_power (8BE0) : set 1 int & get 0
get_power (8BE1) : set 0 & get 80 char
set_mode (8BE2) : set 1 int & get 0
get_mode (8BE3) : set 0 & get 80 char
set_preamble (8BE4) : set 1 int & get 0
get_preamble (8BE5) : set 0 & get 16 char
reset (8BE7) : set 0 int & get 0
monitor (8BE6) : set 2 int & get 0
Code: Select all
cd /usr/src/linux
bzcat <path_to>/ipw3945-0.0.70.patch.bz2 | patch -p1


I'm sorry, I'm not sure I understand everythingrmh3093 wrote:VinzC: I still haven't been able to try your ebuild since I cant emerge ieee80211 but I was poking around and notice that the default Makefile comments out support for monitor mode and qos support. It an easy tweak for people using the ebuild, maybe you wanted to include it as a use flag option or something.
A big thanks indeed. Note you don't seem to have any problems compiling the driver while using the kernel built-in ieee80211 support. Is the kernel module of the latest version (>=1.1.11) - I mean does the built-in ieee80211 meet ipw3945 requirements? BTW how do you check a kernel module's version?rmh3093 wrote:Anyway, I hate using ebuilds for kernel drivers so I made a patch for the 2.6 kernel series which adds IPW3945 support. There are config options to add support for QoS and promiscuous mode.
Here is the kernel patch: ipw3945-0.0.70.patch.bz2Code: Select all
eth1 Available private ioctls : set_power (8BE0) : set 1 int & get 0 get_power (8BE1) : set 0 & get 80 char set_mode (8BE2) : set 1 int & get 0 get_mode (8BE3) : set 0 & get 80 char set_preamble (8BE4) : set 1 int & get 0 get_preamble (8BE5) : set 0 & get 16 char reset (8BE7) : set 0 int & get 0 monitor (8BE6) : set 2 int & get 0
* This patch applies cleanly against 2.6.15 and 2.6.16-rc5-mm2 so it should work with everything else. The IEEE80211 support in these kernels seems to be sufficient.
To apply this patch to your current kernel source:Code: Select all
cd /usr/src/linux bzcat <path_to>/ipw3945-0.0.70.patch.bz2 | patch -p1
actually when I first started using this module I had no problems getting ipw3945d to start via the entry in /etc/modules.d/ipw3945 but now it never starts, when my computer is done booting I can see ipw3945 is loaded.... weird.... i dont know what chould be causing this onedjtreble wrote:One out of three times the /sbin/ipw3945d --quiet fails to start, the module however loads fine.
I increased the sleep to 1.0, but that hasn't fixed it.
Is it just me?
Code: Select all
#!/sbin/runscript
depend() {
need bootmisc localmount
after modules coldplug hotplug
before net
}
checkconfig() {
if !(test -d /sys/bus/pci/drivers/ipw3945); then
eerror "Could not find Intel PRO/Wireless 3945ABG Network Connection"
eerror "Load the 'ipw3945' module"
return 1
fi
}
start() {
checkconfig || return 1
ebegin "Starting ipw3945d"
/sbin/ipw3945d --quiet
eend $? "Error loading ipw3945d"
}
stop() {
ebegin "Stopping ipw3945d"
/sbin/ipw3945d --kill
eend $? "Error loading ipw3945d"
}
EDIT:Hey,
am I missing something? When I try to emerge ipw3945, emerge fails to find the packages on the server. Any ideas?
Sorry if this is too obvious.