Precompiled Kernel-Modules for the D-Link DNS-320 and DNS-325

A while back i wrote a tutorial on how to compile additional kernel-modules for the D-Link DNS-320 and DNS-325. From time to time i get asked if it would be possible to compile module XYZ. In this post I’m publishing the past results of my compilation sessions. If you need further modules, i can provide them on request.


Do you miss a module? Just ask me!

72 thoughts on “Precompiled Kernel-Modules for the D-Link DNS-320 and DNS-325”

  1. Hi Uli,
    I want to start IPv6 on DNS-320, but all Yours modules ipv6 produce an error
    of the type:
    insmod: cannot insert ‘./ipv6.ko’: unknown symbol in module
    The same is on both distributions ffp and debian.
    Can You help me?

    Thanx in advance.


    1. Hello, ak2428!

      Have you sorted the problem of running IPv6 on your DNS-320?? The problem with missing symbol boils down to loading another prerequisite .ko that defines the missing symbol. However, due to the very minimal error reporting done by insmod I have not yet found out what the module dependencies are. Have you?

      1. Hello

        I also wich to add ipv6.
        But so far, no luck.
        Don’t we need to recompile the kernel with ipv6 option enabled?

  2. I’m on a DNS-325 and have installed openVPN throu funpkg
    I got an error note: Cannot open TUN/TAP dev /dev/net/tun: No such file or directory (errno=2)

    Is it the tun.ko file that’s missing? and then how do I install it? can I just create those directorys?

    Please help!


  3. Hi Uli, and congrats for this wonderful website !

    I’m trying to use my dns320 as a firewall/router but iptables needs a few insmod before running…

    Can you build and publish them, plz ?

    Thanks in advance,

  4. Hi Uli
    I’ve recently bought a DNS-320 box and I found your work and Fonz’s very useful. I pretended to use the box as a simple storage device, but thanks to you both i’m thinking about completely substitute my old PIII debian server with DNS-320. The only thing that DNS-320 lacks is Unison syncing program, wich I use a lot. I’ve found some (little) atempts to compile such app for DNS-320, but the links to the binaries are broken. Seems to be some trouble with ocaml dependencies. It would be great if you take a look at Unison and consider if it worths your effort and experience.

    Another topic I had’nt found is if there is an *easy* way to increase RAM of DNS-320.


    1. Hi Ricard,

      i didn’t suceed in compiling it yet, i’ve had the same ocaml problems. Maybe it works using OPTWare and then paking a package for optware, but i haven’t tried that yet.

      No there is no easy way to upgrade the Memory, sorry.


  5. Hi Uli,
    I want to up microadsb usb /dev/ttyACMx (USB ACM device – USB Abstract Control Model driver for USB modems and ISDN adapters) on DNS-320.
    Can you build and publish module cdc-acm.ko for kernel

    1. Module was compiled by “tutorial on how to compile additional kernel-modules for the D-Link DNS-320 and DNS-325”.

    2. Hi,

      anybody got cdc-acm.ko for Kernel ?
      usbserial.ko loaded but there are no suitable devices in /dev/tty

      (DNS 325, funplug07, fhem, CUL V3 from busware)

      1. is there now a support for ARM-devices?

        How about Google Drive or other cloud storage for DNS-320?

  6. Grüss Dich, Uli !
    Now after installing the Fonz FunPlug on my DNS-325, I have discovered that the Bonjour services are advertised via avahi daemon. Correct? Do you think that the current (I’m running 1.02b03 beta FW) incorrect Bonjour/Zeroconf advertisements could be fixed with running a custom kernel module?
    What’s wrong with current service advertisements I did document in D-Link forum:
    And I believe that is the reason, why my Mac doesn’t like the DNS-325 as much as it does the AirPort Extreme’s AirDisk.

  7. Is it possible for someone to compile ejabberd or another jabber server with all of it’s dependencies for me? Currently am setting up a DNS-320 after running a DNS-323 for the last few years.


  8. Hi Uli,

    that’s a great job!

    Coul you possibly compile uvcvideo driver? I just wanted to see if this is a good solution for home cctv.

    all the best

  9. Is there a way I can mount an ntfs external HDD as read/write, not just read/only on the DNS-320?.
    Maybe a ntfs-3g.ko, or is there an ntfs.ko for the DNS-320, which allows read/write?

  10. Hi Uli,

    any chances to build yet another module: fuse.ko ?

    I want to use truecrypt and it seems to me that it is last thing I’m missing.

    Many thanks in advance,

  11. Hi

    Just wondering if anyone has any luck with getting iptables working on their DNS-320?

    I’m getting

    # iptables -L
    iptables v1.4.9: can’t initialize iptables table `filter’: Table does not exist (do you need to insmod?)
    Perhaps iptables or your kernel needs to be upgraded.

    Any ideas?

  12. Hi,

    I’d love to see a hfsplus kernel module 🙂

    Thank you for sharing all your previous work so far !


  13. Could you please compile the following modules? My plan is to connect a USB webcam to my DNS-325…
    – videodev.ko
    – spca5xx.ko
    – pwc.ko
    – ov511.ko

    Best regards, Chris

  14. Hi,

    any chance for a wireless-n kernel module?

    I deleted my build environment three weeks ago and am looking for a solution to connect my dns 320 wirelessly.


  15. I have successfully built the v4l modules of the D-Link 2.6.22 kernel, and the latest standalone pvrusb2 module for my WinTV HVR-1900 device. The modules load fine, but apparently the device needs to load some custom firmware. Any idea how I can get the module to load the firmware?

    I always get the kernel errors (the correct firmware is in /lib/firmware):

    pvrusb2: Hardware description: WinTV HVR-1900 Model 73xxx
    pvrusb2: ***WARNING*** Device fx2 controller firmware seems to be missing.
    pvrusb2: Did you install the pvrusb2 firmware files in their proper location?
    pvrusb2: request_firmware unable to locate fx2 controller file v4l-pvrusb2-73xxx-01.fw
    pvrusb2: Failure uploading firmware1
    pvrusb2: Device initialization was not successful.
    pvrusb2: Giving up since device microcontroller firmware appears to be missing.

  16. Hi not sure this is the right place to comment but now i try.
    Anyone know if it’s posible to run TOR and/or PGP on my DNS-320 2.02b1 FW that i’m planning on getting fun_plug 0.7 on thanks


    1. Tor runs without any problems on my own dns-320.
      You can take it directly from the optware repositories .

  17. Hello I’m just new user of DNS320 and I would like to ask: Is possible using NTFS for internal harddrives through some plugin. I have another Linux-based devices and most of them can handle it. Thank you

    1. Still looking for the library, but in the meantime I observed the Load_Cycle_Count for a few days and it seems that with my WD30EZRX this is not really an issue. I have 452 Power_On_Hours with 871 Load_Cycle_Count. If my computation is correct this means that it would require 17 years to reach the 300.000 limit that has been reported as a design limitation for WD Green hard drives.

    1. Hi, Have you managed to install OpenVPN on DNS-320 please? I’m interested to have this as well, especially without any public VPN SSL key (but using private personal SSL key only)? Thanks.

  18. Hello,

    I have DNS-320, and installed fun_plug 0.5.
    I am trying to write to a USB disk with no success. I loaded usb-storage and ntfs but nothing. Any ideas what might be wrong ?

  19. Hello,

    I am looking for iptables modules, I didn’t find it anywhere, could some one explain to me how should I do?

    I have this erreor:
    # iptables -L
    iptables v1.4.9: can’t initialize iptables table `filter’: Table does not exist (do you need to insmod?)
    Perhaps iptables or your kernel needs to be upgraded.

    D-Link DNS 320


  20. Hi, me too i am looking for iptables modules, i tried to compile the kernel but we can’t in dns 320 because we cannot reboot in a new kernel can sombody help me pleze i really need it thanks!

  21. hi Uli, and you all folks !

    our DNS-320 or similar can have lots of functions, NAS, for me, APACHE for others, etc… but the only thing they all need to become truly secure, is iptables

    Please, please Uli, can that be done ??

  22. I know this post is old but if it’s possible I’d like a precompiled driver/net/tun.ko module for kernel v2.6.31.8

    I’ve just update my DNS-325 with last firmware (v1.04) and tun.ko of this page don’t work anymore.

    Really thx.

    1. +1 Bil
      Please recompile for the kernel since I really want to use OpenVPN and it cannon start without the compiler tun.ko

      … Sorry, ‘Auth’ password cannot be read from a file
      … Exiting

  23. Do you have the mppe kernel module for dns-325? #15 Wed May 25 15:23:11 CST 2011 armv5tej

    I am trying to get a pptp client session running.

    Thank you for any help.

  24. Hi,

    anybody got cdc-acm.ko for Kernel ?
    usbserial.ko loaded but there are no suitable devices in /dev/tty

    (DNS 325, funplug07, fhem, CUL V3 from busware)

  25. @Uli:

    Could you please compile the modules required to run a usb wifi dongle?


    Thanks in advance!

  26. Hi, I’m trying to build modules for the dns-320l using the tutorial.
    However after the make menuconfig, I’m unable to get the requested drivers to be built. make modules always builds the same 12 modules.
    How should I do to build, for example snd-usb-audio.ko?

    1. Replying myself: configure the drivers as modules in menuconfig, and build.
      Thanks for this site.

  27. Hi, nbd.ko, the Network Block Device kernel module would be great. Meanwile, I will try to build it myself using your tutorial. Thanks!

    1. Hi, I can build the module but can’t load it. Any ideas?

      # insmod nbd.ko
      insmod: error inserting ‘nbd.ko’: -1 Invalid module format

      # modinfo dns320_GPL/dns320_GPL/linux-
      filename: dns320_GPL/dns320_GPL/linux-
      license: GPL
      description: Network Block Device
      vermagic: mod_unload ARMv5
      parm: nbds_max:How many network block devices to initialize. (int)
      parm: debugflags:flags for controlling debug output (int)

Leave a Reply

Your email address will not be published. Required fields are marked *

Exit mobile version