Crappy USB Ethernet adapters and Linux

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

cd qf9700

(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.



Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s