Howto: ndiswrapper, NetworkManager and WPA2 on Fedora Core 5

An interesting article on linux.com gave me the last bit of info to get WiFi (or is it Wi-Fi?) with WPA2 working between my Acer Ferrari 4005 laptop and Speedtouch 716 ADSL modem. I run kernel 2.6.16-1.2080_FC5 and the Gnome desktop. I have not verified if this works with the latest 2.6.17-1.2157_FC5 kernel (update: seems to work reasonably ok with the latest FC5 kernel).

Here are the ingredients:

Ndiswrapper
Install ndiswrapper and configure it. The version I have is 1.18. I’m assuming you have the livna yum repo installed. If not get it from rpm.livna.org and install ndiswrapper with a simple “yum install ndiswrapper kmod-ndiswrapper”. Next get Acer’s 64bit WinXP WiFi driver here. Unpack the driver somewhere and import the driver into ndiswrapper with:

ndiswrapper -i bcmwl5.inf

Add the following lines to /etc/modprobe.conf:

alias eth1 ndiswrapper
options ndiswrapper if_name=eth1

I use “eth1” as my WiFi interface. If you use another change accordingly. In case you run a recent FC5 kernel you also need to blacklist the bcm43xx module to prevent it from interfering with the ndiswrapper module. Add the following line to /etc/modprobe.d/blacklist:

blacklist bcm43xx

You can now manually load the ndiswrapper and check /var/log/messages if all went well. The messages I get in /var/log/messages are:

Jul 18 15:27:08 laptop kernel: eth1: ndiswrapper ethernet device 00:14:c4:92:34:6a using driver bcmwl5, 14A2:3246.2.conf
Jul 18 15:27:08 laptop kernel: eth1: encryption modes supported: WEP; TKIP with WPA, WPA2, WPA2PSK; AES/CCMP with WPA, WPA2, WPA2PSK

Wpa_supplicant
Install wpa_supplicant with:

yum install wpa_supplicant wpa_supplicant-gui

The version I have is 0.4.8 from updates-testing. It should become available as a regular update for FC5. If it’s not (yet) get it from updates-testing with:

yum –enable=updates-testing install NetworkManager

Once installed create or modify /etc/wpa_supplicant/wpa_supplicant.conf and make it look like this (so delete anything that’s different):

ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=wheel
update_config=1

network={
ssid=”name_of_your_access_point”
psk=”yourverysecretpassword”
proto=RSN
key_mgmt=WPA-PSK
pairwise=CCMP
}

Network services
Verify that NetworkManager, NetworkManager-gnome and NetworkManager-glib are installed. If they are not then install them with:

yum install NetworkManager

Make sure that the “network” service is disabled. Instead the “wpa_supplicant”, “NetworkManager” and “NetworkManagerDispatcher” services need to be run when you boot your box. You can easily turn off the “network” service and turn on the “wpa_supplicant”, “NetworkManager” and “NetworkManagerDispatcher” by executing from a terminal the command:

ntsysv –level 5

Configure the eth1 network device
Start system-config-network and add a new wireless device by clicking on “New” then click on “Wireless connection”. Click on the ndiswrapper entry followed by “Forward”. On the next page make sure “Mode” shows “Managed”. On the line with “Network name (SSID)” click on “specified” and enter the name of your Access Point. This name should be the same as you specified in the wpa_supplicant.conf file. Leave the rest as is and click “Forward”. On the next page select DHCP or enter a static IP address and click “Forward”. On the final page check the settings and if all is ok click on “Apply”. Save the setup by clicking on “File” -> “Save” or just press Ctrl+S.

Testing your setup
Make sure the ndiswrapper module is loaded, manually stop the network service with:

/sbin/service network stop

Next make sure that the LAN cable is removed from the laptop (if you have any attached). Then start wpa_supplicant, NetworkManager and NetworkManagerDispatcher with:

/sbin/service wpa_supplicant start
/sbin/service NetworkManager start
/sbin/service NetworkManagerDispatcher start

If all goes well you should now see a successful authentication using WPA2 and the assigment of an IP address to the laptop via DHCP. Enjoy!

Secure remote folders with fuse and sshfs

Install the SSH filesystem rpm called sshfs:

Now add the users to the fuse group that are allowed to use this neat trick. In this example I’ll add myself to the fuse group:

Load the fuse module:

Make the directory where you want to mount the remore folder using sshfs:

Mount the remotefolder:

You can now work transparantly in the /home/patrick/remotefolder. When you are done and want to unmount the folder all you need to do is:

You can also add the remotefolder to /etc/fstab:

The fuse module should be loaded automagically. If it doesn’t load it manually with:

Preventing the accidental rm -rf /

Eons ago when I started to explore Linux and F/OSS as an enthousiastic newbie, I made the mistake, twice, of accidentally typing in:

While what I actually wanted to do was:

The consequences of such a mistake are severe since you literally deleted the entire filesystem. To prevent this from happening there is a neat little trick:

When you (accidentally) try to delete the root filesystem / you will be asked by the rm command to confirm your action. This way there is a safety that prevents you from deleting the root filesystem without any questions asked.