Unfortunately the Synology boxes don't come with support for mounting Macintosh filesystems, which in a environment of primarily macintoshes was disappointing.
I originally set out to compile the kernel modules on the synology box itself, but after some stuffing about I decided to do it using a Ubuntu virtual machine.
You should be able to do this the same way on the Synology, but note you will definitely need to download the toolchain from Synology. OPTWARE GCC WILL NOT WORK. (At least on the 1511+ which uses a Intel Atom processing in 64bit mode, the optware gcc is 32bit only. You will get an error about 64bit mode not compiled in). See this post
Next up you'll need to download the Synology DSM GPL sources to get the kernel source, I tried using the generic kernel from kernel.org but the version string on the Synology kernel is slightly different and won't load a module built against the generic sources.
Synology Boxvermagic: 184.108.40.206 SMP mod_unloadGeneric Kernelvermagic: 220.127.116.11
I guess you could do whatever configuration is required to get the same version, but it is easier to download the sources from Synology website.
Next up you'll need a basic development environment, in my case I used the netinstall of 11.04 and install the bare system. Install build-estential and you'll need ia32-libs if you are using a 64bit machine, as the Synology toolchain is 32bit.
Once you've done that, extract the Synology toolchain into /usr/local, which depending on what architecture you are using, you'll have a couple of processor specific toolchains, in my case for the 1511+ I have,
If you are using the 1511+, the kernel is 64bit so you want to use "x64_64-linux-gnu" for your cross compile.
Check your specific kernel type using "uname -a"
Next extract the GPL sources from Synology into a directory, I used /usr/local/src
Double check the version of linux kernel on your box by using "uname -a", in my case I am on "2.6.32"
Change into the specific kernel source directory for you kernel, in this example "/usr/local/src/linux-2.6.32"
You need to get the default setting for the kernel for your specific unit by copying the correct config from the "synoconfigs" directory. In this case,
cp synoconfigs/x86_64 .config
Run the following command
make ARCH=x86_64 CROSS_COMPILE=/usr/local/x86_64-linux-gnu/bin/x86_64-linux-gnu- menuconfig
Inside the config, select the modules you want to create (make sure you have them selected as modules), save your new config and run
make ARCH=x86_64 CROSS_COMPILE=/usr/local/x86_64-linux-gnu/bin/x86_64-linux-gnu- modules
I created the hfsplus module, which ended up in fs/hfsplus/hfsplus.ko
running modinfo on the new module gives the following
description: Extended Macintosh Filesystem
author: Brad Boyerdepends:
vermagic: 18.104.22.168 SMP mod_unload
Leave a comment if you want me to send you the compiled hfsplus.ko module. (compatible with 1511+)