It took me about one and a half days, but I got it working on my Synology DS211+ (DSM 4.0)
At first follow hoon tune's instructions to compile tvheadend.
Then compile the SiliconDust driver/tools on your NAS.
#-- Download files to /opt
#-- Download SiliconDust driver/tools
#-- http://download.silicondust.com/hdhomerun/libhdhomerun_20120405.tgz
cd /opt
tar -xpf libhdhomerun_20120405.tgz
cd /opt/libhdhomerun
make
Based on the instructions of hoon tune here is what I did to compile the drivers (the kernel part) on Ubuntu 12.04:
#-- Ubuntu 12.04 needs the package libncurses5-dev, otherwise you get the error 'make menuconfig' requires the ncurses libraries
#-- apt-get install libncurses5-dev
#-- Download files to /home/administrator/Downloads
#-- Download Synology Kernel Sources -- has to match with the cpu in your NAS
#-- http://sourceforge.net/projects/dsgpl/files/Synology%20NAS%20GPL%20Source/1337branch/synogpl-1373-6281.tbz/download
#-- Download DSM Tool Chain -- has to match with the cpu in your NAS
#-- http://sourceforge.net/projects/dsgpl/files/DSM%204.0%20Tool%20Chains/Marvell%2088F628x%20Linux%202.6.32/
cd /home/administrator/Downloads
cp gcc421_glibc25_88f6281-GPL.tgz /usr/local/
cd /usr/local
tar -xpf gcc421_glibc25_88f6281-GPL.tgz –C /usr/local/
cd /home/administrator/Downloads
tar -xpf synogpl-1372-6281.tbz
#-- Compile DVB Core Driver
cd /home/administrator/Downloads/source/linux-2.6.32/
cp /home/administrator/Downloads/source/linux-2.6.32/synoconfigs/88f6281 /home/administrator/Downloads/source/linux-2.6.32/.config
make ARCH=arm \ CROSS_COMPILE=/usr/local/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi- menuconfig
#-- a menu appears, where you have to set the kernel config
#-- select System Type
#-- change the system type to ARM system type (Marvel Kirkwood) -- has to match with the cpu in your NAS
#-- select Marvell Kirkwood Implementations
#-- select Synology 6281 series NAS
#-- go back to main screen of kernel config
#-- select Device Drivers
#-- go to Multimedia support, press Y to include
#-- select Multimedia support
#-- go to DVB for Linux, press M to include as module
#-- go back to main screen and exit (yes to save the new config)
make ARCH=arm \ CROSS_COMPILE=/usr/local/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi- prepare scripts
make ARCH=arm \ CROSS_COMPILE=/usr/local/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi- modules
#-- Compile DVB Drivers for HDHomeRun
cd /home/administrator/src
cvs -z3 -d:pserver:anonymous@dvbhdhomerun.cvs.sourceforge.net:/cvsroot/dvbhdhomerun co -P dvbhdhomerun
cd /home/administrator/src/dvbhdhomerun/kernel
nano Makefile
#-- KERNEL_VERSION := 2.6.32.12
#-- KERNEL_DIR := /home/administrator/Downloads/source/linux-2.6.32
make ARCH=arm \ CROSS_COMPILE=/usr/local/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-
#-- dvb-core.ko
#-- /home/administrator/Downloads/source/linux-2.6.32/drivers/media/dvb/dvb-core
#-- dvb_hdhomerun_core.ko
#-- dvb_hdhomerun_fe.ko
#-- dvb_hdhomerun.ko
#-- /home/administrator/src/dvbhdhomerun/kernel
Copy the four driver files to /opt/dvb_native of your NAS
For the userspace part, copy the dvbhdhomerun folder from /home/administrator/src to /opt of your nas
#-- Download files to /opt
#-- compiling the userspace part requires cmake, which is not available through ipkg
#-- Download CMAKE Sources
#-- http://www.cmake.org/files/v2.8/cmake-2.8.8.tar.gz
cd /opt
tar -xpf cmake-2.8.8.tar.gz
cd /opt/cmake-2.8.4
./bootstrap
make
make install
#-- compile userspace part
cd /opt/dvbhdhomerun/userhdhomerun
nano CMakeLists.txt
#-- change LIBHDHOMERUN_PATH to where the compiled SiliconDust driver/tools are
#-- SET(LIBHDHOMERUN_PATH /opt/libhdhomerun)
make
I had to reorder the insmod commands in the startup script. Otherwise insmod of dvb_hdhomerun.ko fails
because of some symbols which can't be found.
insmod /opt/dvb_native/dvb-core.ko
insmod /opt/dvb_native/dvb_hdhomerun_core.ko
insmod /opt/dvb_native/dvb_hdhomerun_fe.ko
insmod /opt/dvb_native/dvb_hdhomerun.ko