A Wireless Problem on Fedora
By David M. Balean
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.
=====================================================================