Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Linuxtv out-of-tree kernel modules #4144

Open
wants to merge 80 commits into
base: master
Choose a base branch
from

Conversation

th0ma7
Copy link
Contributor

@th0ma7 th0ma7 commented Aug 22, 2020

Motivation: Long-term goal of providing media_tree kernel modules for various DVB dongles.
Linked issues: Redo of previous PR #4080

Checklist

  • Build rule all-supported completed successfully
  • Package upgrade completed successfully
  • New installation of package completed successfully

IMPORTANT

  1. This PR also include changes in spksrc.checksum.mk code in order to allow multiple package target checksums. See change at commit 560e379 This is being used to manage different git hash downloads based on kernel compatibility for LinuxTV snapshots. TODO: Remove this patch and rebase on master following merge of Enhance checksum verification for multiple files #4566
  2. This PR also produces two different package versions: one for 3.10 kernels using a specific git hash, and the other for 4.4 kernel using latest git hash available.

Compatible kernels and DSM versions

  • 4.4.59+ (DSM-6.2.3)
  • 4.4.15+ (DSM-6.1)
  • 3.10.105 (DSM-6.2.3)

Incompatible kernels (<3.10)

  • 3.6.11 (SRM-1.2) - northstarplus
  • 3.4.35 (DSM-6.2.3) - armv7l - hi3535
  • 3.2.40 (DSM-6.2.3) - armada370, armada375, armadaxp, comcerto2k, evansport
  • 2.6.32 (DSM-6.2.3) - 88f6281, qoriq

Unsuccessful builds

  • alpine (DSM-6.2.3 - 3.10.105 - armv7)
  • armada38x (DSM-6.2.3 - 3.10.105 - armv7)
  • monaco (DSM-6.2.3 - 3.10.105 - armv7)
  • armada37xx (DSM-6.2.3 - 4.4.59 - armv8)
  • rtd1296 (DSM-6.2.3 - 4.4.59 - armv8)

Successful builds

make -j2 arch-dakota-1.2 arch-ipq806x-1.2
  • dakota (SRM-1.2 - 4.4.60)
  • ipq806x (SRM-1.2 - 4.4.60)

make -j6 arch-apollolake-6.2.3 arch-broadwellnk-6.2.3 arch-denverton-6.2.3 arch-geminilake-6.2.3 arch-purley-6.2.3 arch-v1000-6.2.3
  • apollolake (DSM-6.2.3 - 4.4.59)
  • broadwellnk (DSM-6.2.3 - 4.4.59)
  • denverton (DSM-6.2.3 - 4.4.59)
  • geminilake (DSM-6.2.3 - 4.4.59)
  • purley (DSM-6.2.3 - 4.4.59)
  • v1000 (DSM-6.2.3 - 4.4.59)

make -j7 arch-avoton-6.2.3 arch-braswell-6.2.3 arch-broadwell-6.2.3 arch-bromolow-6.2.3 arch-cedarview-6.2.3 arch-dockerx64-6.2.3 arch-grantley-6.2.3
  • avoton (DSM-6.2.3 - 3.10.105)
  • braswell (DSM-6.2.3 - 3.10.105)
  • broadwell (DSM-6.2.3 - 3.10.105)
  • bromolow (DSM-6.2.3 - 3.10.105)
  • cedarview (DSM-6.2.3 - 3.10.105)
  • dockerx64 (DSM-6.2.3 - 3.10.105)
  • grantley (DSM-6.2.3 - 3.10.105)

@th0ma7
Copy link
Contributor Author

th0ma7 commented Aug 25, 2020

@ymartin59 finally got something in a runnable state using out-of-tree kernel module builds. Your thoughts would be appreciated. Currently only works with 4.4.x kernels (and not really looking into making this work for older kernels neither).

Basically the intent is to have a generic linuxtv package with, by default:

  • contains all the updated modules from the linux-media tree built for the running kernel
  • uses a generic linuxtv.sh script I've created to load/unload modules
  • calls the generic startup script to load a basic set of modules (e.g. high-level v4l .ko)

Idea are then:

  1. to create subsequent "empty" packages to load, lets say, modules for a Hauppauge dongle (i.e. linuxtv-hauppauge). The package only contains the start-stop-status script which calls the generic linuxtv.sh scripts from the main package with the list of modules to load for the corresponding vendor DVB "dongles" in the right order.
  2. come-up with a way to create a configuration pannel so you select your usb dvb dongle which then calll the load/unload script accordingly (no clue how to do that).

@th0ma7 th0ma7 mentioned this pull request Jan 20, 2021
3 tasks
@th0ma7 th0ma7 force-pushed the linuxtv branch 2 times, most recently from 585be38 to bca8120 Compare January 22, 2021 15:06
@th0ma7 th0ma7 force-pushed the linuxtv branch 3 times, most recently from dd2aace to d669e96 Compare January 30, 2021 14:32
@th0ma7 th0ma7 mentioned this pull request Jan 30, 2021
3 tasks
@th0ma7 th0ma7 mentioned this pull request Mar 2, 2021
3 tasks
@th0ma7 th0ma7 changed the title [wip] Linuxtv out-of-tree kernel modules Linuxtv out-of-tree kernel modules Mar 6, 2021
@th0ma7
Copy link
Contributor Author

th0ma7 commented Mar 6, 2021

@hgy59 and @ymartin59 PR is now ready for your review and merge.
No more changes needed.
This PR is dependent of #4420

th0ma7 added 24 commits May 1, 2021 15:39
@th0ma7 th0ma7 mentioned this pull request Sep 16, 2021
3 tasks
th0ma7 added a commit to th0ma7/spksrc that referenced this pull request May 6, 2022
th0ma7 added a commit to th0ma7/spksrc that referenced this pull request Jun 13, 2022
@micenusa
Copy link

Is there any hope to have DVB support in DSM 7.0? I have 3 tuners to test:Xbox Tv tuner, Avermedia and Win tv-dual HD. If I can help, please let me know!

@belgio99
Copy link

belgio99 commented Dec 1, 2023

Crossposting here as well since it could be helpful for someone:

I managed to make the Hauppauge WinTV-dualHD (and possibly other devices?) work with DSM 7.

I'm currently using it flawlessly with DSM 7.2.1 and Plex. Unless you're using Geminilake as I am, you'll have to compile the drivers yourself, but what I wrote may help you on how to do it.
Details and guide at https://github.com/belgio99/dsm7-dvb-drivers
(My repo gives a general idea on how I did it: depending on your architecture and CPU family, your mileage may vary).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants