Update: I have started to compile this driver against different kernels to help out some users (please see comments below for a link to files and more information). I have now edited this document to include a place where you should start if you’re using the pre-compiled kernel module. This place has been marked in Orange text.
The following explains only part of the hassle I experienced while attempting to get the F5D9010 Version 3000 card working under a fresh install of Debian Testing. I started by compiling and installing the Open Source rt2500 drivers using Debian APT and module-assistant. This was due to my own jumping ahead of things after I read a few forum posts that seemed to suggest this would work. My card however has the rt2600 chipset inside of it (thank you lspci, should have asked you first), and will not work with these drivers.
After a lot of messing around, I finally came upon a post that suggested rt61 drivers would work for this card, however the link to download them was broken. Eventually I located the drivers at this site:
http://web.ralinktech.com/ralink/Home/Support/Linux.html
These are the drivers that you want to download:
RT2501PCI/mPCI/CB(RT61:RT2561/RT2561S/RT2661)
Should these drivers go offline for whatever reason, I have mirrored them here:
http://melknight.net/2007_1003_RT61_Linux_STA_V1.1.1.0.tgz
However, I experienced a few issues with the README file instructions on my setup. So here I will outline, step for step, what I did to get this working.
First you need to download that file to a directory on your freshly installed Debian machine. You must have build-essential installed, as well as all kernel headers and source tree. Check out Google for that tutorial.
You will also have to install the tofrodos package, wireless-tools and pcmcia support. To do so, enter the following command:
$ apt-get install tofrodos wireless-tools pcmcia-cs pcmciautils
NOTE: The following directions are for Linux kernel 2.6 ONLY! I was unable to test on a 2.4 kernel so I can’t say if it will work properly using the README instructions or not.
To decompress the file, enter the command:
$ tar -xvzf 2007_1003_RT61_Linux_STA_v1.1.1.0.tgz $ cd ./Module
To setup the Makefile for the 2.6 kernel, do:
$ cp Makefile.6 ./Makefile
This is where things really got annoying, I didn’t realize that make wasn’t taking care of all my files, and was exiting with an error. Make sure you pay close attention to the output from make! There is a bug in the rtmp_main.c file that will cause this compilation to fail, in order to fix it you must edit that file and change a line.
$ nano rtmp_main.c
Search (Ctrl+W in nano) for this line:
return pci_module_init(&rt61_driver);
And replace it with this line:
return pci_register_driver(&rt61_driver);
That should save you a lot of headaches.
Now make the program:
$ make all
Everything should go according to plan, and make should exit successfully now you need to copy some files. Ensure that the following directory exists:
$ ls /etc/Wireless/RT61STA/
If you get an error that the directory does not exist, go ahead and make it with:
$ mkdir /etc/Wireless $ mkdir /etc/Wireless/RT61STA/
Now copy the firmware over:
$ cp rt2561.bin /etc/Wireless/RT61STA/ $ cp rt2561s.bin /etc/Wireless/RT61STA/ $ cp rt2661.bin /etc/Wireless/RT61STA/
And run the dos2unix command on the following file, and copy to your RT61STA directory:
$ dos2unix rt61sta.dat $ cp rt61sta.dat /etc/Wireless/RT61STA/rt61sta.dat
In the README file, it says with exclamation marks, to check if this file (rt61sta.dat) is binary before loading the drivers.
Of course this doesn’t actually explain what you’re supposed to have. In fact it must NOT be binary.
This will be your config file for your card, this is where I set my SSID.
If you’re like me, then all of this has been compiling on a much better, faster, desktop PC. Now is the time to unplug your hard drive, put it back into your laptop, and boot. If you are doing this straight from the laptop, ignore what I just said.
Now you need to insert the module into the kernel, and bring up your card
$ /sbin/insmod rt61.ko $ /sbin/ifconfig ra0 inet 192.168.0.1 up $ /sbin/ifconfig
If you see your network card listed after running /sbin/ifconfig then it worked, if not, go back through the instructions and check that everything went according to plan. Pay particular attention to the results of make all.
Everything below this line applies to those that have installed the pre-compiled kernel modules!
Now it’s time to setup your network. I am going to assume that you have no security (WEP,WPA,WPA2, other) running on your wireless router. So all you need to do is enter a SSID and you will connect. I am also going to assume that your router is setup with a DHCP server so that you can easily grab an IP address. If you don’t know what this is, don’t worry, most routers have one running (unless you disabled it, which you probably didn’t, since you don’t know what it is
First, you need to add the appropriate line to your /etc/network/interfaces file, to tell linux how to deal with this card. Execute the following commands:
$ ifconfig ra0 down $ echo iface ra0 inet dhcp >> /etc/network/interfaces
Then edit the file /etc/Wireless/RT61STA/rt61sta.dat and replace the line:
SSID=AP350
With
SSID=YOUR_NETWORK_SSID
Save the file and bring your network card back up:
$ ifconfig ra0 up $ ifup ra0
If everything has gone according to plan, your network card will now connect to your router and grab an IP address. If it does not, run this command:
$ iwconfig ra0
Ensure that the entry does NOT show ESSID=”" but rather ESSID=”YOUR_NETWORK_SSID”
If your ESSID is still blank, something else is going on, I don’t know what. Try to run the command :
$ iwconfig ra0 essid YOUR_NETWORK_SSID
Then bring your network card down, and up again with:
$ ifdown ra0 $ ifconfig ra0 down $ ifconfig ra0 up $ ifup ra0
Now you should have a perfectly working, non-ndiswrapper installation of drivers for your F5D9010 Version 3000 card!
For the record, ndiswrapper drivers may work, but I had absolutely no success getting them to do so. I installed according to instructions, and everything went smooth (read: no errors) but still couldn’t get my device recognized. All of the other reports of this I read about had less than desireable results for this chipset as well. To my knowledge, to date, this is the only comprehensive tutorial on getting this card to work with any linux distribution. Please pass this around, link to it, whatever, so that word will spread and those that have failed to get help in the past will be able to get their card working.
Thanks for taking the time to read this tutorial, please let me know if you spot any bugs, would like to add more information, or if this just works for you.
Guess who just brightened up my day?
Thanks a lot!
Great! Glad I could help. Now if you figure out how to get WPA supplicant working properly (it too is failing to compile, I’m not a C programmer so I’m not sure what’s wrong) PLEASE let me know.
So far I can only get non-encrypted connections working. My current setup involves connecting through a workstation to the Internet using a SSH tunnel between the laptop and the workstation. That’s a pain if the workstation gets shut off by my son, so I would really like WPA working.
I have been fighting w/ wifi for days now. I started to do what you said but did not get as far as make all after replacing the line in the code. BUT I get tons of errors w/ make all. So I am unable to go further. I’m just ready to give up and stay hooked to the lan…I’ve bought 2 cards. One is usb prism3 (not working) and the new one i just bought is a belkin mimo g+ pcmcia. My old Dell wifi card just won’t work. It’s broadcom. I’ve tried everything I can think of. I’m fairly new to linux even though I’ve worked w/ it for about 6 years.
I’m tired of fighting with it. If you have any other help, please me and the others out there trying to get this thing to work. Thanks for your very detailed information here. Too bad it won’t work for me even though we have the same card.
Well that’s just not going to do.
Tomorrow I’m going to try compiling drivers on a few different distro’s starting with Debian Etch and Testing, and put those kernel modules up somewhere. Hopefully they work for the majority of people on these systems. Let me know if you have any other distro’s that you (or anyone else) is interested in, and I will see what I can do. Make sure to include your kernel information (you can get this by running ‘uname -a’ from a command prompt, please remember to leave out the quotes), as well as the version of linux that you are using (I don’t know if this will matter, but some distros have different kernel patches, and I’d rather not have to deal with that.
Brittany, you should have received an email from me regarding this, please let me know if you have any requests.
thanks.
I have started a new project page at assembla.com and have uploaded one pre-compiled version of the kernel module. This will only work if you have a 2.6.18-5-486 kernel running. To see your kernel version, please run the command:
uname -r
Note BEFORE installing this, make sure you are running the right kernel version, AND that you are running Debian, I have no other way to test with other machines at this exact moment (stayed up till 3:30am on it, hope someone uses it!)
If you feel like testing, please comment here with your results,
if you have another kernel you need it compiled for let me know here. More to come in the near future.
To get this file visit:
http://svn2.assembla.com/svn/F5D9010V3000/releases/
Make SURE to read the README file in that releases/ directory, as it gives important information regarding each compiled module. Also, there is a README file in each release, read that for installation instructions.
Thanks, have fun, and use Linux so my other friend will stop telling me no one uses it.
Peace and love,
distatica.
Good day!,
Dude where ever this driver came from you are the best , i run a brutal os it’s an off ver of debian called underground an it’s a nightmare to get configured , any way i didn’t see a contact in the readme so i’m not sure who to thank Thank you Thank you Thank you
Glad I could be of assistance, have fun
Hi, hoping your method will get my card up and running but I get stuck at ‘make’. After running $make all, i get the error: ***No rule to make target ‘modules’. Stop. Any ideas whats going wrong? Cheers.
What distribution of Linux are you running?
Could you please copy and paste the entire output from make? Particularly the if there are any errors just after entering a directory.
I am not a developer by the way, I will try to help best I can but let me be very up front about that part, today I shoveled 2 feet of snow off a steel roof, and tomorrow I’m going to grout a bathtub, neither involves hardware.
Also, I’ve been very busy between family, work and a few projects; so I haven’t had time to compile drivers for other distributions like I would have wanted to. Maybe this will eventually get packaged so it’s not such a pain.
I’m very new to the Linux world and was wondering. Do you think that this would work on CentOs 5 as well? I have the same card and can not find anything about getting this thing to work. Thanks.
I am very new to the linux family and was wondering if you think that this would work on centOS 5 as well? The Kernel is the same. Thanks.
I imagine that the steps will be almost exactly the same. I run CentOS at work and can make a virtual test server if need be, feel free to let me know if you have any issues and I’ll try to get back to you a heck of a lot sooner than this.