How to install Amilo fsam7440 RF Kill Switch Driver in Ubuntu

The Amilo M 7440 doesn’t only use a hardware switch, it needs a software driver to turn the wireless on/off.

fsam7440 is a module for Linux Kernels 2.4/2.6 that allows you to change the status of the wireless card on a Fujitsu-Siemens Amilo M 7440 Laptop.


First, make sure you have the linux-headers-generic and build-essential packages installed.
Open a terminal, and enter:

sudo apt-get install linux-headers-generic build-essential

Now to install the fsam7440 - RF Kill Switch Driver for Fujitsu-Siemens Amilo M 7440 in Ubuntu 10.xx.
(this should work for 8.10, 9.04, 9.10, 10.04, and 10.10, and later versions)

Go here:
http://fsam7440.sourceforge.net/down.html
and download the Fsam7440 v0.4 Source Code

Place it in your Home directory

To extract it… in a terminal enter:

tar -xjvf fsam7440-0.4.tar.bz2

Next for it to compile without errors you need to edit 3 lines in the fsam7440.c file (in your ~/fsam7440-0.4 directory)…

So back in the terminal enter:

gedit ~/fsam7440-0.4/fsam7440.c

When gedit opens, find the line:
#include <linux/autoconf.h>
and change it to:

include <generated/autoconf.h>

Now you need to change the 2 instances of &proc_root to NULL

so find the Line:
remove_proc_entry(DRV_NAME, &proc_root);
and change it to:
remove_proc_entry(DRV_NAME, NULL);

and the line:
dir_base = create_proc_entry(DRV_NAME, S_IFDIR, &proc_root);
and change it to:
dir_base = create_proc_entry(DRV_NAME, S_IFDIR, NULL);

Save the fsam7440.c file.

Or, I’ve uploaded a pre-modified version that will compile properly here:
fsam7440-0.4.tar.bz2

To compile/install the driver… back in the terminal, enter:

cd ~/fsam7440-0.4
make
sudo make install

Now to test it works… still in the terminal, enter:

sudo modprobe fsam7440

If it works, but doesn’t survive a reboot…

Add the line:
fsam7440
to your /etc/modules file.

I want to thank you for that solution, it worked fine ooB for me after i was trying for at least one day to solve my problem with this module.
Finally, i found your posting within the launchpad-bugreport.
Environment: Fujitsu Siemens Amilo M7440 with fresh installed Ubuntu Oneric Oclelot 11.10 (but KDE Desktop)

Welcome to the forum, and thanks for letting me know it helped :slight_smile:

Hello, please help me with this, I am a newbie with linux …

I get this:

make -C /lib/modules/2.6.32-41-generic/build SUBDIRS=/home/ares/fsam7440-0.4 modules make[1]: Entering directory `/usr/src/linux-headers-2.6.32-41-generic' CC [M] /home/ares/fsam7440-0.4/fsam7440.o /home/ares/fsam7440-0.4/fsam7440.c:40:32: error: generated/autoconf.h: No such file or directory make[2]: *** [/home/ares/fsam7440-0.4/fsam7440.o] Error 1 make[1]: *** [_module_/home/ares/fsam7440-0.4] Error 2 make[1]: Leaving directory `/usr/src/linux-headers-2.6.32-41-generic' make: *** [default] Error 2

Thanks.

Hi jazzu, and welcome to the forum :slight_smile:

What is the output from these 2 commands:

locate autoconf.h

and

sudo find / -name autoconf.h

The second command may take a short while to complete.

I get this:

locate autoconf.h
/usr/src/linux-headers-2.6.32-21-generic/include/linux/autoconf.h
sudo find / -name autoconf.h
/usr/src/linux-headers-2.6.32-21-generic/include/linux/autoconf.h
/usr/src/linux-headers-2.6.32-41-generic/include/linux/autoconf.h

Try using the unmodified version of fsam7440 from here:
http://prdownloads.sourceforge.net/fsam7440/fsam7440-0.4.tar.bz2
rather than my modified version.

So run these commands in sequence:

sudo apt-get install linux-headers-generic build-essential
wget http://prdownloads.sourceforge.net/fsam7440/fsam7440-0.4.tar.bz2
tar -xjvf fsam7440-0.4.tar.bz2
cd ~/fsam7440-0.4
make
sudo make install
sudo modprobe fsam7440

Sorry for being a pain …

make -C /lib/modules/2.6.32-41-generic/build SUBDIRS=/home/ares/fsam7440-0.4 modules make[1]: Entering directory `/usr/src/linux-headers-2.6.32-41-generic' CC [M] /home/ares/fsam7440-0.4/fsam7440.o /home/ares/fsam7440-0.4/fsam7440.c: In function ‘amilom7440_proc_cleanup’: /home/ares/fsam7440-0.4/fsam7440.c:168: error: ‘proc_root’ undeclared (first use in this function) /home/ares/fsam7440-0.4/fsam7440.c:168: error: (Each undeclared identifier is reported only once /home/ares/fsam7440-0.4/fsam7440.c:168: error: for each function it appears in.) /home/ares/fsam7440-0.4/fsam7440.c: In function ‘amilom7440_proc_init’: /home/ares/fsam7440-0.4/fsam7440.c:179: error: ‘proc_root’ undeclared (first use in this function) make[2]: *** [/home/ares/fsam7440-0.4/fsam7440.o] Error 1 make[1]: *** [_module_/home/ares/fsam7440-0.4] Error 2 make[1]: Leaving directory `/usr/src/linux-headers-2.6.32-41-generic' make: *** [default] Error 2

What if I change

#include
with
#include
at your modified version?

OK, use the modified driver … but change the

#include <generated/autoconf.h>

line, back to

#include <linux/autoconf.h>

Now I am wireless! Thank you very much!

You’re welcome :slight_smile: