th0ma7 / synology

Synology personnal hack, info, tools & source code
220 stars 67 forks source link

Experimental LinuxTV x86_64 build 20210113~f6e3542-1 for DSM-6.2.3 #8

Closed th0ma7 closed 3 years ago

th0ma7 commented 3 years ago

Placeholder for comments related to success on loading modules and making a DVB device to work on your Synology NAS.

Experimental LinuxTV packages for Synology 6.2.3 x86_64 archs available at:

It currently only loads high level modules:

The default start_stop calls my generic script located at /var/packages/linuxtv/target/bin/linuxtv.sh Modules are located at /var/packages/linuxtv/target/lib/modules Firmware are located under /var/packages/linuxtv/target/lib/firmware

In order to get your device working you will need to manually insmod the relevant modules in the right order and follow-up the dmesg output. It isn't that trivial but it should normally work.

For instance, Hauppauge WinTV would require the following modules to be loaded manually:

  1. em28xx_dvb
  2. em28xx
  3. lgdt3306a
  4. si2157

IMPORTANT NOTE: This is highly experimental at this stage, upon loading a module you might experience a NAS reboot (was hapening when trying to load DSM-6.1 modules against DSM-6.2.3 kernel).

Compatible kernels and DSM versions

Incompatible kernels & archs

Successful builds

Build errors under investigation (4.4.59+, armv8 arch)

Build errors under investigation (all 3.10.105)

Fixed build errors

th0ma7 commented 3 years ago

dmesg output at installation time:

[2249664.680281] rc_core: module verification failed: signature and/or required key missing - tainting kernel
[2249664.691889] WARNING: You are using an experimental version of the media stack.
                    As the driver is backported to an older kernel, it doesn't offer
                    enough quality for its usage in production.
                    Use it with care.
                 Latest git patches (needed if you report a bug to linux-media@vger.kernel.org):
                    321af22a3d2f6ed1fb1737c8588c01f6fec8a7b8 media: atomisp: convert comma to semicolon
                    480fad61d301f094976394c38d7d89ce324711bb media: zoran: convert comma to semicolon
                    5a402af5e19f215689e8bf3cc244c21d94eba3c4 media: ti-vpe: cal: fix write to unallocated memory
[2249664.771572] mc: Linux media interface: v0.10
[2249664.792446] videodev: Linux video capture interface: v2.00
[2249664.798783] WARNING: You are using an experimental version of the media stack.
                    As the driver is backported to an older kernel, it doesn't offer
                    enough quality for its usage in production.
                    Use it with care.
                 Latest git patches (needed if you report a bug to linux-media@vger.kernel.org):
                    321af22a3d2f6ed1fb1737c8588c01f6fec8a7b8 media: atomisp: convert comma to semicolon
                    480fad61d301f094976394c38d7d89ce324711bb media: zoran: convert comma to semicolon
                    5a402af5e19f215689e8bf3cc244c21d94eba3c4 media: ti-vpe: cal: fix write to unallocated memory
[2249664.945470] WARNING: You are using an experimental version of the media stack.
                    As the driver is backported to an older kernel, it doesn't offer
                    enough quality for its usage in production.
                    Use it with care.
                 Latest git patches (needed if you report a bug to linux-media@vger.kernel.org):
                    321af22a3d2f6ed1fb1737c8588c01f6fec8a7b8 media: atomisp: convert comma to semicolon
                    480fad61d301f094976394c38d7d89ce324711bb media: zoran: convert comma to semicolon
                    5a402af5e19f215689e8bf3cc244c21d94eba3c4 media: ti-vpe: cal: fix write to unallocated memory

Kernel module status:

$ /var/packages/linuxtv/scripts/start-stop-status status
Status of kernel modules... 
                           rc/rc-core.ko [rc_core]                OK
                                mc/mc.ko [mc]                     OK
                   v4l2-core/videodev.ko [videodev]               OK
                      common/tveeprom.ko [tveeprom]               OK
    common/videobuf2/videobuf2-common.ko [videobuf2_common]       OK
      common/videobuf2/videobuf2-v4l2.ko [videobuf2_v4l2]         OK
    common/videobuf2/videobuf2-memops.ko [videobuf2_memops]       OK
   common/videobuf2/videobuf2-vmalloc.ko [videobuf2_vmalloc]      OK
                    dvb-core/dvb-core.ko [dvb_core]               OK
LinuxTV is running

Manually activating modules for WinTV Dual Tuner:

$ sudo insmod /var/packages/linuxtv/target/lib/modules/4.4.59+/kernel/drivers/media/tuners/si2157.ko
$ sudo insmod /var/packages/linuxtv/target/lib/modules/4.4.59+/kernel/drivers/media/dvb-frontends/lgdt3306a.ko
$ sudo insmod /var/packages/linuxtv/target/lib/modules/4.4.59+/kernel/drivers/media/usb/em28xx/em28xx.ko
$ sudo insmod /var/packages/linuxtv/target/lib/modules/4.4.59+/kernel/drivers/media/usb/em28xx/em28xx-dvb.ko

Final dmesg output:

[2250032.863820] em28xx 1-3:1.0: New device HCW 955D @ 480 Mbps (2040:026d, interface 0, class 0)
[2250032.873475] em28xx 1-3:1.0: DVB interface 0 found: isoc
[2250032.930719] em28xx 1-3:1.0: chip ID is em28174
[2250034.051968] em28xx 1-3:1.0: EEPROM ID = 26 00 01 00, EEPROM hash = 0x3d790eca
[2250034.060380] em28xx 1-3:1.0: EEPROM info:
[2250034.065025] em28xx 1-3:1.0:    microcode start address = 0x0004, boot configuration = 0x01
[2250034.080476] em28xx 1-3:1.0:    AC97 audio (5 sample rates)
[2250034.086670] em28xx 1-3:1.0:    500mA max power
[2250034.091675] em28xx 1-3:1.0:    Table at offset 0x27, strings=0x0a72, 0x187c, 0x086a
[2250034.151655] em28xx 1-3:1.0: Identified as Hauppauge WinTV-dualHD 01595 ATSC/QAM (card=100)
[2250034.162021] tveeprom: Hauppauge model 204101, rev B2I6, serial# 11584195
[2250034.169740] tveeprom: tuner model is SiLabs Si2157 (idx 186, type 4)
[2250034.177061] tveeprom: TV standards PAL(B/G) NTSC(M) PAL(I) SECAM(L/L') PAL(D/D1/K) ATSC/DVB Digital (eeprom 0xfc)
[2250034.188754] tveeprom: audio processor is None (idx 0)
[2250034.194607] tveeprom: has no radio, has IR receiver, has no IR transmitter
[2250034.202540] em28xx 1-3:1.0: dvb set to isoc mode.
[2250034.258721] em28xx 1-3:1.0: chip ID is em28174
[2250035.379774] em28xx 1-3:1.0: EEPROM ID = 26 00 01 00, EEPROM hash = 0x3d790eca
[2250035.387955] em28xx 1-3:1.0: EEPROM info:
[2250035.392647] em28xx 1-3:1.0:    microcode start address = 0x0004, boot configuration = 0x01
[2250035.408055] em28xx 1-3:1.0:    AC97 audio (5 sample rates)
[2250035.414193] em28xx 1-3:1.0:    500mA max power
[2250035.419164] em28xx 1-3:1.0:    Table at offset 0x27, strings=0x0a72, 0x187c, 0x086a
[2250035.478660] em28xx 1-3:1.0: Identified as Hauppauge WinTV-dualHD 01595 ATSC/QAM (card=100)
[2250035.489364] tveeprom: Hauppauge model 204101, rev B2I6, serial# 11584195
[2250035.497064] tveeprom: tuner model is SiLabs Si2157 (idx 186, type 4)
[2250035.504376] tveeprom: TV standards PAL(B/G) NTSC(M) PAL(I) SECAM(L/L') PAL(D/D1/K) ATSC/DVB Digital (eeprom 0xfc)
[2250035.516081] tveeprom: audio processor is None (idx 0)
[2250035.521938] tveeprom: has no radio, has IR receiver, has no IR transmitter
[2250035.529822] em28xx 1-3:1.0: dvb ts2 set to isoc mode.
[2250035.735946] usbcore: registered new interface driver em28xx
[2250119.043793] em28xx 1-3:1.0: Binding DVB extension
[2250119.053645] i2c i2c-6: Added multiplexed i2c bus 9
[2250119.059219] lgdt3306a 6-0059: LG Electronics LGDT3306A successfully identified
[2250119.069606] si2157 9-0060: Silicon Labs Si2147/2148/2157/2158 successfully attached
[2250119.078378] dvbdev: DVB: registering new adapter (1-3:1.0)
[2250119.084909] em28xx 1-3:1.0: DVB: registering adapter 0 frontend 0 (LG Electronics LGDT3306A VSB/QAM Frontend)...
[2250119.096602] dvbdev: dvb_create_media_entity: media entity 'LG Electronics LGDT3306A VSB/QAM Frontend' registered.
[2250119.109189] dvbdev: dvb_create_media_entity: media entity 'dvb-demux' registered.
[2250119.118973] em28xx 1-3:1.0: DVB extension successfully initialized
[2250119.126263] em28xx 1-3:1.0: Binding DVB extension
[2250119.135568] i2c i2c-8: Added multiplexed i2c bus 10
[2250119.141336] lgdt3306a 8-000e: LG Electronics LGDT3306A successfully identified
[2250119.151882] si2157 10-0062: Silicon Labs Si2147/2148/2157/2158 successfully attached
[2250119.160883] dvbdev: DVB: registering new adapter (1-3:1.0)
[2250119.167353] em28xx 1-3:1.0: DVB: registering adapter 1 frontend 0 (LG Electronics LGDT3306A VSB/QAM Frontend)...
[2250119.178969] dvbdev: dvb_create_media_entity: media entity 'LG Electronics LGDT3306A VSB/QAM Frontend' registered.
[2250119.191548] dvbdev: dvb_create_media_entity: media entity 'dvb-demux' registered.
[2250119.201275] em28xx 1-3:1.0: DVB extension successfully initialized
[2250119.208561] em28xx: Registered (Em28xx dvb Extension) extension
[2250119.347099] si2157 9-0060: found a 'Silicon Labs Si2157-A30'
[2250119.404485] si2157 9-0060: firmware version: 3.0.5
[2250119.415953] em28xx 1-3:1.0: DVB: adapter 0 frontend 0 frequency 0 out of range (54000000..858000000)
[2250119.559570] si2157 10-0062: found a 'Silicon Labs Si2157-A30'
[2250119.616237] si2157 10-0062: firmware version: 3.0.5
[2250119.628062] em28xx 1-3:1.0: DVB: adapter 1 frontend 0 frequency 0 out of range (54000000..858000000)
th0ma7 commented 3 years ago

closing, now being tracked here https://github.com/SynoCommunity/spksrc/pull/4144