I’ve been attempting to get Suse 10 working with my wireless network again after I upgraded the network security to WPA-PSK (TKIP).
Problem
- Wireless network being detected in KInternet as a WEP network.
- KInternet doesn’t appear to support WPA.
- Unable to authenticate with Wireless network using WPA-PSK.
Most Importantly:
- Ampersands in the WIRELESS_WPA_PSK setting of wireless interfaces config file (/etc/sysconfig/network/ifcfg-wlan-yourNICsMacAddy) can not have an ‘&’ character in them. Characters after the ‘&’ will be ignored.
Solution:
- Configure your wireless interface in YAST such that it refers to the WPA-PSK network you are directly connecting to. For example, specify the SSID of the access point rather than ‘any’.
- Disable KInternet from launching on KDE login.
- Cleanup the wireless interfaces config file (/etc/sysconfig/network/ifcfg-wlan-yourNICsMacAddy), remove WEP passwords from the previous configuration.
- Set USERCONTROLsetting to ‘no’. Disabling KInternet from launching at logon in Yast previously should have set this automatically.
- In WIRELESS_WPA_PSK setting, precede the ampersand with the ‘‘ escape character.
- Use hwdown / hwup to restart the interface.
- Do an ifstatus
interfaceName to ensure that the reconnection is successful.
Troubleshooting steps
- Read documentation for the hw{up, down, status} commands & ifcfg-wireless configuration file.
- Learnt that the paramater to use with hw… commands are the filenames found in /etc/sysconfig/hardware/hwcfg-*
- Opened a command shell, sudo as root user.
- Took down the device with /sbin/hwdown hwcfg-bus-pci-00:02:0a.0 (enter this command while your in the /etc/sysconfig/hardware directory so you can get tab completion to fill in the hwcfg name including escape sequences.
- Did a hwup (essentially this and the previous step give me a clean slate)
- Did an ifup-dhcp eth1
- Got the following
icarus-lx:/etc/sysconfig/hardware # /sbin/ifup eth1
eth1 device: Intel Corporation PRO/Wireless LAN 2100 3B Mini PCI Adapter (rev 04)
eth1 configuration: wlan-id-your:wNICs:MAC:addy
scripts/ifup-wireless: line 515: 2: command not found
eth1 starting wpa_supplicant
Line 7: Invalid passphrase length 7 (expected: 8..63) ‘charsUp‘.
Line 7: failed to parse psk ‘”charsUp‘.
Line 8: WPA-PSK accepted for key management, but no PSK configured.
Line 8: failed to parse network block.
Failed to read configuration file ‘/var/run/wpa_supplicant-eth1.conf’.
DHCP client is already running on eth1
ERROR: Warning: Could not set up default route via interface
Command ip route replace to default via 192.168.1.254 returned:
. RTNETLINK answers: Network is unreachable
Configuration line: default 192.168.1.254 – –
This needs NOT to be AN ERROR if you set up multiple interfaces.
See man 5 routes how to avoid this warning.
I’ve modified the output for security reasons, but just pretend in this case my WPA passkey is charsUp&BeyondTheAmpersand. The error message (Line 7:…) is telling me that the password is too short, rather that its not reading past the ampersand sign.
- Modified the /etc/sysconfig/network/ifcfg-wlan-00:00:00:00 with the correct password
- Bought down the interface with ifdown.
- Bought down the hardware device with hwdown
- Bought up the hardware device with hwup, which automatically does an ifup on the connected interface
- Do a ifstatus to verify that you are now connected to the network. The last few lines should look similiar to
bssid=ap’s:mac:address
ssid=apName
pairwise_cipher=TKIP
group_cipher=TKIP
key_mgmt=WPA-PSK
wpa_state=COMPLETED
ip_address=ip.assigned.by.dhcp
Supplicant PAE state=AUTHENTICATED
suppPortStatus=Authorized
EAP state=SUCCESS
Useful Commands
/usr/sbin/hwinfo – displays a list of hardware devices and the parent devices to which they are joined
Its worth noting I managed to get by with just the simple hwup, down, status & ifup-dhcp, ifdown, ifdown-dhcp and ifstatus commands to resolve the problem. /usr/sbin/iwconfig was not required.
Useful Files and Directories
/etc/sysconfig/hardware/hwcfg-…. – The filenames of the hardware config files. Specify this filename when running the hwup/down/status commands
/etc/sysconfig/network/ifcfg-wlan-… – The config files for the wireless interfaces