• Stars
    star
    372
  • Rank 114,858 (Top 3 %)
  • Language
    C
  • Created over 3 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Synology DSM 7 USB serial drivers

Missing USB serial drivers for DSM 7

Import from Jadahl.com (Oct 2022)

Since the website Jadahl.com, another good source of DSM modules, has been offline for some time and doesn't look like it might be coming back, I retrieved all modules that were posted there (via https://web.archive.org) and added them to this repository. Thank you very much to the person that ran it 😊

Supported drivers

  • cp210x
  • ch341
  • pl2303 (not for all platforms)
  • ti_usb_3410_5052 (not for all platforms)

Supported platforms

See the modules/ directory.

Drivers for DSM 7.0 are available for most platforms, drivers for DSM 7.1 are slowly being added. If you're missing drivers for a particular platform, please open an issue and I see what I can do (please also add the kernel version of your platform to your issue, you can find that out with uname -a from a terminal).

Which platform does my Synology use?

Find your Synology model on this page and check the "Package Arch" column (second last).

Downloading a module

Github is a bit confusing if you want to download binary files like this repository provides.

For instance, if you go to this page, the links to the .ko files are not download links, they will just bring you to the information page for that particular file.

From there, you can download the actual binary module file using the "Download" button in the bottom square in the page.

Installation

NB: the following steps will require SSH access and administrator rights. For the latter, either use sudo for each command or use su to log in as root.

  • The kernel modules for each supported platform can be found in modules/. Copy the required files to your Synology and move them to /lib/modules
  • To get DSM 7 to load the modules at boot time, copy the included file usb-serial-drivers.sh to /usr/local/etc/rc.d
  • Make sure that the file has executable permissions: chmod +x /usr/local/etc/rc.d/usb-serial-drivers.sh

You don't need to reboot your NAS for the modules to load, just execute the script after you completed the previous steps:

# /usr/local/etc/rc.d/usb-serial-drivers.sh start

Alternative method of loading modules at boot

This method is explained in this comment by @GravityRZ:

  • Create a file named 95-usb-serial.conf in the directory /usr/lib/modules-load.d

  • Set the correct permissions for the file: sudo chmod 644 /usr/lib/modules-load.d/95-usb-serial.conf

  • Edit the file and add the modules that need to be loaded at boot. All modules require that usbserial.ko is loaded too, so make sure to add that first.

    For example, to load the ch341.ko module, add the following to the file:

    usbserial.ko
    ch341.ko
    

Building from source

I've built these modules in an Ubuntu 18.04.5 virtual machine on my Synology NAS.

To set up the build environment, I followed the steps in this document. The different NAS targets/platforms can be installed next to each other.

To build the modules for a particular platform, I follow these steps:

sudo rm -fr /toolkit/build_env/ds.$platform-7.0/source
sudo /toolkit/pkgscripts-ng/PkgCreate.py -X 0 -P 1 -v 7.0 --min-sdk 7.0 -p $platform $module
cp -v /toolkit/build_env/ds.$platform-7.0/source/$module/*.ko /tmp

Replace $platform with the NAS platform, for example apollolake. Replace $module with the source directory name (found in sources/ in this repository) relevant for that particular platform. For example, apollolake requires the 4.4.x sources.

Put together, to build for apollolake, the commands become:

sudo rm -fr /toolkit/build_env/ds.apollolake-7.0/source
sudo /toolkit/pkgscripts-ng/PkgCreate.py -X 0 -P 1 -v 7.0 --min-sdk 7.0 -p apollolake 4.4.x
cp -v /toolkit/build_env/ds.apollolake-7.0/source/$module/*.ko /tmp

Due to some concurrency issues that I haven't bothered to look into, the second step (PkgCreate) sometimes fails with a compilation error. If that happens, start over.

The last step will copy the driver modules to /tmp

Disclaimer

I don't/can't test every driver. Use at your own peril.

Attribution

I'm using the source code (as-is) for the drivers included in the Linux kernel from the Synology Open Source Project and the Synology Toolchain GPL sources.

More Repositories

1

quotefixformac

QuoteFix for Apple Mail —
Python
192
star
2

top-level-await

Use `await` at your Node.js code's top level!
JavaScript
126
star
3

node-mbox

mbox file parser for Node.js
JavaScript
68
star
4

ToggleProxy

Mac OS X menu item for quickly enabling/disabling proxies.
Python
42
star
5

bosch-xmpp

Protocol implementation for Bosch XMPP protocols
JavaScript
38
star
6

nefit-easy-http-server

HTTP server to access Nefit/Bosch XMPP backend over HTTP
JavaScript
38
star
7

node-instapaper

Instapaper API client for Node.js
JavaScript
34
star
8

node-benchr

Node.js benchmark runner
JavaScript
27
star
9

node-metrohash

Node.js bindings for MetroHash
C++
25
star
10

node-monkeypatch

Slightly easier monkeypatching
JavaScript
22
star
11

node-trakt-api

Trakt API v2 client for Node.js
JavaScript
21
star
12

nefit-easy-core

Core functionality to implementation communications with Nefit/Bosch backend.
JavaScript
20
star
13

nefit-easy-client

Nefit Easyâ„¢ client for Node.js
JavaScript
15
star
14

nefit-easy-commands

High-level command implementation for Nefit Easyâ„¢ clients.
JavaScript
14
star
15

homebridge-klikaanklikuit

Homebridge plugin for KlikAanKlikUit outlets
JavaScript
14
star
16

homebridge-nefit-easy

Homebridge plugin for Nefit Easyâ„¢
JavaScript
14
star
17

nefit-easy-cli

Command line interface for communications with Nefit/Bosch backend.
JavaScript
14
star
18

buffered-ext-list-sencha-touch-2

Buffered Ext.List for Sencha Touch 2
JavaScript
13
star
19

name.klep.homekitty

HomeyKit 3.0
JavaScript
13
star
20

node-port-mux

TCP port multiplexer: run multiple services through the same port
JavaScript
13
star
21

node-sabnzbd

Node interface for SABnzbd
JavaScript
11
star
22

qbittorrent

Node.js qBittorrent API client
TypeScript
11
star
23

name.klep.homekit-controller

HomeKit Controller — Allow Homey to control HomeKit-enabled devices
JavaScript
9
star
24

react-boilerplate

React.js (+ Express + Browserify) boilerplate
JavaScript
9
star
25

name.klep.sonoff

Homey driver for Sonoff devices
HTML
7
star
26

homey-mocks

Mock objects for Homey pairing/setting pages
JavaScript
7
star
27

node-kaku-rpi

Node.js KlikAanKlikUit (KaKu) driver for Raspberry Pi
JavaScript
7
star
28

homey-app-upload

Homey App Upload
JavaScript
4
star
29

name.klep.transitions

Homey app — Flexible Time Transitions
JavaScript
4
star
30

node-dsmr-parser

Dutch Smart Meter Requirements protocol parser
JavaScript
4
star
31

supergenpass-cli

CLI wrapper around supergenpass-lib
JavaScript
4
star
32

socks-proxy

SOCKS5 proxy with whitelisting and built-in admin
JavaScript
3
star
33

node-rewriting-proxy

A Node.js-based request/response rewriting HTTP proxy
JavaScript
3
star
34

node-filtering-proxy

Standalone Node.js based HTTP/HTTPS proxy with request/response modification
JavaScript
2
star
35

ancs2mqtt

Use an ESP32 to relay iOS notifications to MQTT
C++
2
star
36

name.klep.flow-event-bus

Homey app to implement a flow event bus
JavaScript
2
star
37

css-tabs

Dirt-simple CSS tabs
2
star
38

NPMJSSearch

Makes searching search.npmjs.org from Chrome easier.
JavaScript
2
star
39

homey-log-to-file

Capture stdout/stderr of Homey app to a logfile
JavaScript
2
star
40

node-nzb-name-parser

NZB filename parser for Node
CoffeeScript
1
star
41

name.klep.homekit.presence

HomeKit occupancy accessory to provide presence status for Homey users
JavaScript
1
star
42

node-nzb-cleanup

Clean up NZB file names
JavaScript
1
star
43

blurizr

Make a Hip Blurry Backgroundâ„¢ from any photo, directly in your browser!
1
star
44

package-bundler

Bundle a Node.js package into a single file.
JavaScript
1
star
45

FeedbackSlider

Sencha Touch 2 implementations of Ext.slider.Slider and Ext.field.Slider with textual feedback.
JavaScript
1
star
46

bas64r

Client side data-URL generator using HTML5 API's
1
star