markf n00b
Joined: 23 Jun 2007 Posts: 16
|
Posted: Tue Jul 03, 2007 4:59 pm Post subject: wpa_supplicant on ipw3945 - working at last |
|
|
This is just a "how i did it" guide for anyone else having problems with wpa_supplicant and ipw3945.
I've had a rough couple of days trying to get ipw3945 working with wpa_supplicant on my compaq nx9420 laptop, but now it's working perfectly, and i can use fixed IP or dhcp easily. It also works from boot (this post was originally in reply to someone who couldn't get their's to work on boot, but realised i drifted off the subject somewhat).
I found what helped me in the end was manually running
Code: | modprobe ipw3945; echo 0x800 > /sys/bus/pci/drivers/ipw3945/debug_level |
to bring up ipw3945 with extra debugging, which then gave me messages in /var/log/messages that "ieee80211_crypt_tkip: could not allocate crypto API arc4".
The solution to that was to make sure the crypto stuff wasn't loaded as modules, but compiled into the kernel. After that, wireless worked fine.
Some additional info on my setup:
- I only have "ipw3945" in /etc/modules.autoload.d/kernel-2.6:
- On boot up i notice udev doing some magic with ipw3945.
- versions:
uname -r = 2.6.21-gentoo-r3
net-wireless/wpa_supplicant = 0.5.7
net-wireless/ipw3945 = 1.2.1
- config files:
/etc/conf.d/net:
Code: | modules=( "wpa_supplicant" )
wpa_supplicant_eth1="-D wext"
## these 3 work for dhcp - GENERIC to eth1
# wpa_timeout_eth1=60
# config_eth1=( "dhcp" )
# dhcpcd_eth1="-t 5"
## these 3 are for fixed IP over wireless at home
config_YOURSID=( "10.0.0.3/24 brd 10.255.255.255" )
routes_YOURSID=( "default via 10.0.0.1" )
dns_servers_YOURSID=( "10.0.0.1" )
|
/etc/wpa_supplicant/wpa_supplicant.conf:
Code: | ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
network={
scan_ssid=1
ssid="YOURSID"
key_mgmt=WPA-PSK
proto=WPA
pairwise=TKIP
group=TKIP WEP104 WEP40
psk=00000000000000000000000000000000000000000000000000000000000000000
priority=5
} |
note the psk 64 byte value is got from
Code: | wpa_passphrase YOURSID yoursecretphrase |
i did also link net.eth1 to lo in /etc/init.d/ to create a startup script, but i'm pretty sure that i don't need this, as the modules and daemon get started from issuing "modprobe ipw3945".
In /etc/modules.d/ipw3945, everything is commented out (never changed this)
and in /etc/modules.d/ipw3945d i have
Code: | install ipw3945 /sbin/modprobe --ignore-install ipw3945; sleep 0.5; /etc/init.d/ipw3945d start
remove ipw3945 /etc/init.d/ipw3945d stop; /sbin/modprobe -r --ignore-remove ipw3945 |
as they were setup when installed (i.e. i didn't change anything).
A couple of extra notes regarding my nx9420, in the bios i had to disable a WAN/LAN setting which stops my WAN when i have a LAN cable plugged in.
Also, i had to boot into my windows partition and enable the wireless, as i couldn't get the wifi blue light on, nor was the switch on my laptop working from within Gentoo. I had a lot more success after enabling this in windows and rebooting. This was a one off, i think the hp app that stops the wireless does a very good job of it in windows and i couldn't get it going in gentoo until i'd undone this change.
I did this primarily because I was getting the Kill Switch errors. However, i still get them:
Code: | ipw3945: Radio Frequency Kill Switch is On:
Kill switch must be turned off for wireless networking to work. |
in /var/log/messages, but the wireless works regardless.
And now i notice that i can switch off my wireless with the button, which changes "iwconfig"'s output from:
Code: | eth1 IEEE 802.11g ESSID:"YOURSID" |
to
Code: | eth1 radio off ESSID:"YOURSID" |
To stop and start my wireless, i issue "modprobe ipw3945" (-r to stop it).
This fires off wpa_supplicant and wpa_cli as needed. while down, you can change your wpa_supplicant.conf file and then restart ipw3945 to get the changes read.
Well, i hope this helps someone out there if they've been ripping their hair out like i was. |
|