Sunday, January 17, 2010

Linux USB Ethernet Driver (Davicom, dm9601)

Driver Patch for Linux kernel 2.6.31.X
Patch Author- Ankit Kapoor


[Update Sept 17, 2012]

---------------------------------------

Recently got to know that Google has deleted all user files while upgrading Goolge groups to a new version around 5-6 months back. Unfortunately, I missed to check reminder mails (a lot off) from Google and right now I don't have that patch file backed up anywhere else.
---------------------------------------

If you are trying to install Davicom Semiconductor's usb ethernet card driver for Linux kernel 2.6.31.X* (see post end), probably you have already downloaded dm9601-Linux2.6_1.tar from the meworks web site.

If during compilation of the driver you see following error messages:

/home/ankit/Soft/tars/dm9601/dm9601.c: In function ‘ctrl_callback’:
/home/ankit/Soft/tars/dm9601/dm9601.c:166: error: implicit declaration of function ‘warn’
/home/ankit/Soft/tars/dm9601/dm9601.c: In function ‘write_bulk_callback’:
/home/ankit/Soft/tars/dm9601/dm9601.c:527: error: implicit declaration of function ‘info’
/home/ankit/Soft/tars/dm9601/dm9601.c: In function ‘dm9601_tx_timeout’:
/home/ankit/Soft/tars/dm9601/dm9601.c:599: error: ‘struct net_device’ has no member named ‘priv’
...

...
...
/home/ankit/Soft/tars/dm9601/dm9601.c:1021: error: ‘struct net_device’ has no member named ‘tx_timeout’
/home/ankit/Soft/tars/dm9601/dm9601.c:1022: error: ‘struct net_device’ has no member named ‘do_ioctl’
/home/ankit/Soft/tars/dm9601/dm9601.c:1023: error: ‘struct net_device’ has no member named ‘hard_start_xmit’
/home/ankit/Soft/tars/dm9601/dm9601.c:1024: error: ‘struct net_device’ has no member named ‘set_multicast_list’
...
...
make[2]: *** [/home/ankit/Soft/tars/dm9601/dm9601.o] Error 1
make[1]: *** [_module_/home/ankit/Soft/tars/dm9601] Error 2

You can follow the steps given below to solve above issue.
1. Download driver(dm9601-Linux2.6_1.tar) from meworks. Move tar file to /tmp/
2. Download the patch dm9601_2.6.31.5-0.1.patch (right click and select SaveAs option). Move the patch file to /tmp/ folder.
3. cd /tmp/
3. tar -xvf dm9601-Linux2.6_1.tar
4. cd dm9601/
5. patch -p1 -i /tmp/dm9601_2.6.31.5-0.1.patch
You should get following output:
patching file dm9601.c
patching file dm9601.h
6. make (you should not get compilation errors now)7. sudo /sbin/modprobe/dm9601

see readme given with the driver tar file to configure the new ethernet interface.

*Note: I created and tested attached patch for kernel 2.6.31.5-0.1 on SUSE-11.2. If you are using some different kernel version but still getting same compilation errors as shown above, patching the driver with the attached patch file should also work for you.
Thank you.

9 comments:

  1. you made my day..exactly what i was looking for.
    laserjet 1000 driver

    ReplyDelete
  2. Hi.

    Link to patch is broken, can you upload it?

    Thank you very much.

    ReplyDelete
  3. i.

    Link to patch is broken, can you upload it?

    Thank you very much.

    ReplyDelete
  4. link to patch is broken >(

    ReplyDelete
  5. link is broken. could you upload it again? Thank you very much!

    ReplyDelete
  6. Broken Link .. need the patch file please...

    ReplyDelete
  7. Hi,

    Recently got to know that Google has deleted all user files while upgrading Goolge groups to a new version around 5-6 months back. Unfortunately, I missed to check reminder mails (a lot of) from Google and right now I don't have that patch file backed up anywhere else.

    ReplyDelete
  8. Huy .. y ahora? donde consigo el parche?...
    Gracias de todos modos
    Lucio

    ReplyDelete