Reply

Re: Q: compiling kernel modules on OS6 (dvb_hdhomerun)

IcyK
Tutor

Q: compiling kernel modules on OS6 (dvb_hdhomerun)

I'm trying to get the hdhomerun working under OS6 but no success...

I downloaded the GPL sources for 6.0.6 and unpacked them in /home/admin/linux.
then made a symlink in usr/src/linux pointing to /home/admin/linux

did ap-get install build-essentials

Then in /usr/src/linux:
- make oldconfig (lots of questions, did 'enter' on each one of them)
- make
- make modules

Did NOT make install any of it.


Then downloaded the dvbhdhomerun stuff per cvs, according to http://sourceforge.net/apps/trac/dvbhdhomerun/ , http://sourceforge.net/apps/trac/dvbhdh ... i/Building and http://dvbhdhomerun.cvs.sourceforge.net ... iew=markup .

In the end tried modprobe dvb_hdhomerun but :
# modprobe dvb_hdhomerun
modprobe: can't load module dvb_hdhomerun_core (extra/dvb_hdhomerun_core.ko): invalid module format


However:
# modinfo dvb_hdhomerun_core.ko
filename: dvb_hdhomerun_core.ko
description: HDHomeRun Driver Core Module
author: Villy Thomsen
license: GPL
vermagic: 3.0.74.RNx86_64.2.1 SMP mod_unload
parm: hdhomerun_debug_mask:Mask for debug output

depends:




# modinfo dvb_hdhomerun_fe.ko
filename: dvb_hdhomerun_fe.ko
description: DVB frontend for HDHomeRun
author: Villy Thomsen
license: GPL
vermagic: 3.0.74.RNx86_64.2.1 SMP mod_unload
depends: dvb_hdhomerun_core



# modinfo dvb_hdhomerun.ko
filename: dvb_hdhomerun.ko
description: HDHomeRun Driver
description: HDHomeRun driver
description: HDHomeRun Driver Core Module
author: Villy Thomsen
author: Villy Thomsen
author: Villy Thomsen
license: GPL
license: GPL
license: GPL
vermagic: 3.0.74.RNx86_64.2.1 SMP mod_unload
parm: adapter_nr:DVB adapter numbers
depends: dvb_hdhomerun_fe,dvb_hdhomerun_core


Can anyone give me a pointer on what's going wrong?

I'm trying this on the NAS itself.
Message 1 of 6
IcyK
Tutor

Re: Q: compiling kernel modules on OS6 (dvb_hdhomerun)

After some research I now think the cause is the absence of CONFIG_DVB_CORE=m in the kernel .config.

Can anyone give me a pointer whether (and how) it is possible to hack a homebrew kernel in the Readynas?
It will be a kernel built on the nas itself with the kernel and .config from the Netgear GPL package for OS 6.0.6, the only change being CONFIG_DVB_CORE=m

I bought this (used) Ultra 2 specific for this purpose (to play with, that is) and if all goes wrong the only loss is the purchase price.
I do have some experience with soldering and RS232/TTL connections.

Or is it possible to hack the homebrew kernel in a regular firmware binary?

Thanks in advance!
Message 2 of 6
IcyK
Tutor

Re: Q: compiling kernel modules on OS6 (dvb_hdhomerun)

Update:
With some help I managed to boot another kernel with dvb_core enabbled (first as boot option, later on as default). HDHomerun is doing fine on the nas now (the uptime being 7 days).
Message 3 of 6
ozieboy
Aspirant

Re: Q: compiling kernel modules on OS6 (dvb_hdhomerun)

Hi IcyK,

I hope you don't mind me raising this thread again. Can you please advise the steps you use to compile the kernal modules. I have os 6.1.1 on my readynas ultra 2 and I am trying to install virtualBox.

I have the 6.6.6 src.zip image downloaded from the GPL.

Any help is greatly appreciated, anyone for that matter.

Regards,

Gurinder.
Message 4 of 6
Cliff_MI
Guide

Re: Q: compiling kernel modules on OS6 (dvb_hdhomerun)

I am trying to get TVheadend and a Silicon Dust homerun tuner to work with the ReadyNAS to be a DVR.

Had anyone be able to get dvb_hdhomerun to install and work?

I have OS 6.2.2 and I tried to get the config files form the GPL code but did not see it.

I get the errors with /lib/module/build no config created.

I installed and used the linux-headers-amd64

I used the headers for 3.2 kernel and copied them to the /usr/src/3.0.101X/build location (just copied the build directory)
It ran through the make process but nothing else

but it would not install using make install (says it did but nothing in modules.dep)

I tried to modprobe the dvb_hdhomerun driver after that
Error I got -modprobe: module dvb_hdhomerun not found in modules.dep

I am still a newbie with all the module things with linux.

If anyone has a good process describing how to get the build environment to work I would appreciate it. All the searches that I did for build modules leave
something out that I am missing.

I know a little of the apt-get and digging around with linux, but I just don't understand all the dependencies and location of files
also the kernel version for the readynas is a little odd 3.0.104.X is it really a 3.0 kernel vs current 3.2. Also do I need to rebuild the kernel to get the dvb stuff into it.

Where can I find the correct configuration for the kernel? do I need to make the kernel from scratch?

Thanks for any help.

Cliff
Message 5 of 6
IcyK
Tutor

Re: Q: compiling kernel modules on OS6 (dvb_hdhomerun)

It's probably best to keep it simple: use the 6.3.3 firmware image and kernel sources from this post: https://community.netgear.com/t5/ReadyNAS-Beta-Release/OLD-EARLY-ACCESS-ReadyNASOS-6-3-3-T153-Beta-1...

 

Be aware you have to change the kernel on the hidden internal flash. If this goes wrong, you probably end up with a bricked nas.

 

Upgrade firmware to 6.3.3

 

Just to be sure: backup your module tree after nas is back online, running 6.3.3 :

 

 

cp -Rpv /lib/modules/3.12.36.RNx86_64.2.2 /lib/modules/3.12.36.RNx86_64.2.2-backup

 

Install utils to built from source:

 

 

apt-get install build-essential libncurses5-dev

 

 

 

 

 

Download kernel sources and extract to /home/cliff/linux-3.12.36-38 

 

copy the Netgear config to the kernelsource root:

 

 

cd /home/cliff/linux-3.12.36-38

cp .arch/x86/configs/readynas_defconfig ./.config

Be sure to keep the original readynas_defconfig intact and unchainged.

 

Then add the DVB_core module to the kernel:

 

From /home/cliff/linux-3.12.36-38 :

 

 

make nconfig

go to Device Drivers --> Multimedia support

select Digital TV support and press space bar

then select DVB Network Support and press space bar

 

Both should show an asterisk between the brackets now.

 

Press F6 (Save) and F9 (exit).

 

The kernel config is OK now.

 

Now enter

 

make

and grab some lunch. Process could take 45 - 60 minutes.

 

 

after completion, the new compressed kernel image can be found in

linux-3.12.36-38/arch/x86/boot

with the name bzImage.

 

You now have to boot your nas with this new kernel. This is the tricky part that can lead to a bricked unit. If it goes wrong your nas won't boot anymore. Ever.

 

First you have to make the internal flashdrive to show up. Arter done that, be very careful what you do. You have to edit SYSLINUX.CFG, and I've experienced twice that the file got scrambled. In that case, the nas won't boot anymore. I found the following procedure to work.

 

First, let the internal flash show:

 

echo -n "1-1:1.0" > /sys/bus/usb/drivers/usb-storage/bind

This makes the internal flash show up in /media/USB_FLASH_1

 

 

Now copy the new compressed kernel to the flash, under a UNIQUE name; mine is k3-12-36.dvb

 

 

cp /home/cliff/linux-3.12.36-38/arch/x86/boot/bzImage /media/USB_FLASH_1/k3-12-36.dvb

Be sure to use old-school MS-DOS 8.3 file name format.

 

 

Now you have to add an option to the boot menu in SYSLINUX.CFG.

First, copy the oringinal file. Go to /media/USB_FLASH_1 and

 

cp SYSLINUX.CFG SYSLINUX.CFG.org

Now add a boot item, using a editor (vi or nano), so the last lines of SYSLINUX.CFG look like

 

label TestDisks
kernel kernel
append initrd=initrd.gz console=ttyS0 reason=test_disks

label Kernel-DVB
kernel k3-12-36.dvb
append initrd=initrd.gz console=ttyS0 reason=normal

(the label TestDisks is the last label from the original SYSLINUX.CFG).

 

Save the file and go back one directory (to /media).

Check the file SYSLINUX.CFG is still readable:

from /media:

cat ./USB_FLASH_1/SYSLINUX.CFG

if the file is readable, do

sync
sync

(so twice)

and reboot immedaitely after that.

 

If the file is not readable, start over from the original one you copied.

 

After reboot, the nas still uses the 'old' kernel. To change to the new one, shutdown and let it boot in the bootmenu. Using the led patterns from the manual, you can detect when the cycle has vome to TestDisks; the one after that is your new kernel.

 

When it boots the new kernel without problems (and has ran for hlf a day or so), you can change the default boot option at the top of SYSLINUX.CFG to Kernel-DVB.

And while you're at it, change the baudrate in the first line from 9600 to 115200 if you want to use a serial connection (OS6 uses 115200, where 4.x.x. uses 9600).

 

At last, when the new kernels seems to work OK, install the new modules.

Go to the sourceroot /home/cliff/linux-3.12.36-38 and enter

 

make modules
make modules_install

make modules_install will overwrite the original modules in /lib/modules/3.12.36.RNx86_64.2.2 so you need to verify yourself whether all modules from the backup directory are still in the new directpory and if not, copy them yourself.

 

In the new /lib/modules/3.12.36.RNx86_64.2.2 is a link to the location of the source you used, so when you compile dvb_hdhomerun it will find the correct kernel files.

 

 

The hdhomerun kernel modules are kernel-dependent, so when you upgrade to a new kernel you have to recompile them.

 

Good luck, please let us know how it worked out.

 

 

 

 

 

 

 

Message 6 of 6
Top Contributors
Discussion stats
  • 5 replies
  • 2363 views
  • 1 kudo
  • 3 in conversation
Announcements