A Wireless Problem on Fedora

By David M. Balean

Email Me


The Problem
The wireless network is hidden i.e. it doesn't broadcast its ESSID. Also it uses WPA-PSK. To avoid cables all over the place, not only laptops but the desktop computers want to access the wireless network. The desktops should join the network automatically when powered up. Fedora uses NetworkManager by default. Theotetically it should be possible to configure NetworkManager to do this but it didn't work for me. The wireless network had to be started manually by the user AFTER power up.The user has to enter the  password phrase for the network then the user is presented with yet another request for the password to the key ring which has to be denied and then finally the network becomes available. How useless can you get?
On my laptop I have Ubuntu at present. It uses WICD instead of NetworkManager and it starts up straight into the network which is what I want for my Fedora desktop (now using Fedora 11, x86_64 version). I downloaded both wicd-1.5.9.tar.gz and wicd-1.6.2.tar.gz because I think 1.5.9 is my laptop's version. Again, neither would work on start-up. Both recognised that there was a wireless network but 1.5.9 always refused to associate. Version 1.6.2 required the user to select "Network" and enter the network name (ESSID) but usually it failed to respond with anything other than "hidden" for the network. If it did respond with the correct name then it was possible to click on the "Connect" button to connect to the network. Clicking on "Connect" with "hidden" always failed although the status showed that it was at first trying to connect to the the correct network name before trying "hidden".
So, neither NetworkManager nor WICD got my vote.

The Cure
I had solved this problem a long while ago on early versions of Fedora and then reluctantly decided to go back to my cable connection because at each update I had to re-fix madwifi. I have now set up a solution based on my earlier fix. First remove all remnants of NetworkManager and WICD fron the computer then do the following:-

(1) As root, fix up /etc/sysconfig/network-scripts/ifcfg-wlan0 something like this:-
# WLAN Interface
DEVICE=wlan0
HWADDR=MY_HWADDR
ONBOOT=yes
BOOTPROTO=dhcp
TYPE=Wireless
USERCTL=yes
PEERDNS=yes
IPV6INIT=no
ESSID=MY_NETWORK_NAME
MODE=Managed
RATE=auto
CHANNEL=6
#WIRELESS_TURBO_MODE=1
DHCP_HOSTNAME=MY_HOSTNAME
NM_CONTROLLED=no
where:-
    MY_HWADDR is your wireless controller's hardware address ( 6  pairs of hex digits separated by colons)
    MY_NETWORK_NAME is the ESSID of your network WITHOUT inverted commas around it
    MY_HOSTNAME is the name of your computer
I'm not sure if WIRELESS_TURBO_MODE is recognised - I haven't checked it out.

(2) As root, comment out the last few lines of /etc/sysconfig/network-scripts/ifup-wireless and added a few lines as follows:-
# ESSID need to be last : most device re-perform the scanning/discovery
# when this is set, and things like encryption keys are better be
# defined if we want to discover the right set of APs/nodes.
# if [ -n "$ESSID" ] ; then
#     iwconfig $DEVICE essid "$ESSID"
# else
#     # use any essid
#     iwconfig $DEVICE essid any >/dev/null 2>&1
# fi
#

if [ -d /var/run/dhclient.pid ] ; then
    echo "Killing old dhclient"
    killall dhclient
fi

echo "Starting wpa_supplicant... device "$DEVICE
if [ -d /var/run/wpa_supplicant ] ; then
    echo "RESTARTING..."
    killall wpa_supplicant
else
    echo "STARTING..."
fi

wpa_supplicant -B -c/etc/wpa_supplicant/wpa_supplicant.conf -iwlan0 -Dwext

(3) As root, wrote or modified /etc/wpa_supplicant/wpa_supplicant.conf as follows:-
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=root

network={
    ssid="MY_NETWORK_NAME"
    scan_ssid=1
    proto=WPA
    key_mgmt=WPA-PSK
    pairwise=CCMP TKIP
    group=CCMP TKIP
    psk="MY_NETWORK_PASSKEY"
}
where:-
    MY_NETWORK_NAME is the ESSID of your network WITH inverted commas around it
    MY_NETWORK_PASSKEY is the WPA-PSK passphrase for the the network

If it works for you, make a copy somewhere safe because updating will almost certainly overwrite these files.

=====================================================================