So.. since I was in the need of connecting to Ethernet cable, and I didn’t have a network card, I’ve bought a USB Ethernet Adapter. On the box it even says USB 2.0.
In Ubuntu it gets detected, everything’s fine. Well… until I insert the network cable that is. At that point I get no connection. So I search the internet and guess what… It seems that the network adapter has a chip which needs custom Linux drivers. In 2015… custom Linux drivers!
Here’s the device as seen from lsusb:
ID 0fe6:9700 Kontron (Industrial Computer Source / ICS Advent) DM9601 Fast Ethernet Adapter
The linux kernel sees it as compatible with the dm9601 driver, but it’s not.
Searching on the internet, I find that this card has a special driver called qf9700 which I find on a obscure website. Of course, since it was written like 5 years ago, it doesn’t compile. I also find some patches for it, to make it compile in some newer kernels (read… like only 2 years ago), but they still don’t work. Finally on a forum, I find a way to make it compile by changing a structure in the module .c file.
So, I have now a working qf9700 for the linux kernel 3.19.0-21, in my Ubuntu 15.04 desktop.
The rest of the post explains how to install qf9700 in Linux kernel 3.19.0-21. It should work also in newer kernels, you only need to edit the Makefile to point to the appropiate directory.
Make sure you have the Linux kernel headers, as they’re required for compiling kernell modules
sudo apt-get install linux-headers-generic
So, download the qf9700-for-3.19.0-kernel.tar.bz2 file, and then:
tar xfjv qf9700-for-3.19.0-kernel.tar.bz2
(you may need to edit Makefile and set KERNEL_DIR and KERNEL_VERSION correctly)
After the module is compiled, in order to use it, do:
sudo rmmod dm9601
sudo insmod qf9700.ko
After the module is inserted, at least on my system, the driver keeps flooding dmesg output with ‘link down’ messages. In order to get rid of these messages, you have to disable the card (do ‘sudo ifconfig eth0 down’) and then reenable it (sudo ifconfig eth0 up).
Also, another downside is that the card only can connect in half-duplex 10 Mbps mode. So it will be quite slow. Slower than wireless.
All in all, it’s better to toss the device and buy another one with a supported chip. Much better.