Jman420

Adding NEC USB 3.0 Driver Support

Recommended Posts

I am working on trying to add support for my NEC D720202 (USB 3.0 Controller) and I think that I need to build (or possibly rebuild) a kernel module in order to add the support to XPEnology. My plan is to try to compile the NEC D720202 driver as a kernel module on a VM and use 'insmod' to install it on my NAS. I found this tutorial which talks about a similar process: http://hallard.me/how-to-install-kernel-modules-on-synology-ds1010-dsm-4-1/ but I don't see the source code for DSM 5.0 build 4582, which is what I am running and would like to use to compile the module. Does anyone know where I can get the 4582 source code, or whether the 4458 build is good enough for this?

Edited by Guest

Share this post


Link to post
Share on other sites

Thanks Vortex. I'll let you guys know how it goes.

 

Update: Great success! I managed to compile and replace the xhci-hcd kernel module with one that includes support for my USB 3.0 controller. A Guide will be coming soon.

Share this post


Link to post
Share on other sites

So I don't think I'm going to make a guide for this. I'm not sure what exactly I've done to my XPEnology Installation, but I can't seem to undo the support I've added. Weird thing is that I've completely formatted and re-installed XPEnology without replacing the default xhci-hdc.ko file and my NEC USB 3.0 Controller is still recognized. I even tried re-compiling the DSM Kernel without the process below and re-installed the module, but I can still access my USB 3.0 ports. Very strange, but I'm not arguing since it all seems to be working smoothly.

 

For the compiled modules: https://www.dropbox.com/sh/0dfjxv51vdzhvw9/AAADGtUS6Jl9RsbVUOGlm-Apa?dl=0

The module I installed is xhci-hcd.ko.xpen. You can rename this file to xhci-hcd.ko and replace the module on your XPEnology machine (see below). I've also attached the module I compiled from the unmodified DSM 5.0 code (xhci-hcd.ko.syno) just for comparison sake. I'm not sure if the two modules are different at all. Maybe since I compiled on Ubuntu 14.04 the support is automatically added.

 

A quick overview of the process:

  • 1. Create Ubuntu VM (I used Azure)
    2. Install necessary packages: apt-get install build-essential ncurses-dev libc6-i386
    3. Download necessary toolchain & DMS source code and extract
    4. Add xhci-hcd.c to source/linux-3.x/drivers/usb/host/
    5. Modify Makefile to include the xhci-hcd.c file in the xhci-hcd module
    6. Compile the DSM Kernel
    7. Replace the /lib/modules/xhci-hcd.ko file on the XPEnology with the source/linux-3.x/drivers/usb/host/xhci-hcd.ko file from the VM
    8. Reboot the XPEnology

 

Resource Links:

http://hallard.me/how-to-install-kernel-modules-on-synology-ds1010-dsm-4-1/

http://www.tyan.com/manuals/LinuxUSB3DriverPortingManual.pdf

http://xpenology.com/wiki/en/building_xpenology

http://www.filewatcher.com/m/xhci-hcd.c.55800-0.html

Share this post


Link to post
Share on other sites

Hi,

I know its old, but can you compile a new xhci driver to replace, or new image 5.2-5592.1? As the old one is missing from dropbox (works very well) and i cant do it by my self :sad:

Regards,

grequ22

Share this post


Link to post
Share on other sites

These drivers should be included in the current boot image. I haven't had to replace the USB 3 drivers since we switched to xpenoboot.

Share this post


Link to post
Share on other sites

Yes, you are right - it should include it, but wont :sad:

Somehow original image for 5.2-5565.2 didnt work, and new one also dont recognize it.

About a month ago ive searched google and downloaded "XPEnoboot_DS3615xs_5.2-5565.3-006342a.img" which works very well.

Ive searched history by time of creating the file (iso) and ive came exactly to this thread, so i thought it would be it.

Regards

Share this post


Link to post
Share on other sites

I just verified that the USB 3.0 ports on my live server (which is running on hardware) are functioning. Not sure what problem you are experiencing, but I am not going to go through the process of re-compiling another driver. All the articles and info that I used are in the links I provided above.

Share this post


Link to post
Share on other sites