[Plugin] Linuxserver.io - Unraid DVB


Recommended Posts

I do have Hauppauge WinTV-dualHD Dual Tuner that works great with LibreELEC drivers.

I also have Logitech C170 web camera, and I would like to use it, but with LibreELEC drivers it gives error:

[video4linux2,v4l2 @ 0x55ee04fa7700] ioctl(VIDIOC_STREAMON): No space left on device
/dev/video0: No space left on device

If I use any of other of two DVB drivers, this web camera works fine, but Hauppauge WinTV-dualHD Dual Tuner disappears and it works only with the LibreELEC driver.
Any advice how to make to work that two devices at the same time?

Edited by IGHOR
Link to comment
On 5/21/2020 at 10:39 PM, IGHOR said:

I do have Hauppauge WinTV-dualHD Dual Tuner that works great with LibreELEC drivers.

I also have Logitech C170 web camera, and I would like to use it, but with LibreELEC drivers it gives error:


[video4linux2,v4l2 @ 0x55ee04fa7700] ioctl(VIDIOC_STREAMON): No space left on device
/dev/video0: No space left on device

If I use any of other of two DVB drivers, this web camera works fine, but Hauppauge WinTV-dualHD Dual Tuner disappears and it works only with the LibreELEC driver.
Any advice how to make to work that two devices at the same time?

If I just copy module from LibreELECT unRAID version to official one, will it work with modprobe command at boot?

Link to comment
21 minutes ago, IGHOR said:

If I just copy module from LibreELECT unRAID version to official one, will it work with modprobe command at boot?

I have used modprobe before for devices I couldn't get to show up at boot.  If you know how to get the module for it then the only thing to remember is that UNRAID unpacks into memory at boot so you may need to copy the module every time before you modprobe.

Link to comment
5 minutes ago, mkfelidae said:

I have used modprobe before for devices I couldn't get to show up at boot.  If you know how to get the module for it then the only thing to remember is that UNRAID unpacks into memory at boot so you may need to copy the module every time before you modprobe.

I got it already. And I understand, I would just add script that doing it to my config at boot. So it may work? Worth to try?

Edited by IGHOR
Link to comment
1 minute ago, IGHOR said:

Read-only file system, looks like without modifying bzmodules file there is no way

Someone further up in this thread said that they used mksquashfs to add a firmware file for one of their devices.I'm not sure how it worked but look through the forum you should be able to find somebody that has done it.

Link to comment
4 hours ago, mkfelidae said:

@CHBMB I went to try out your combined Nvidia / DVB build based on 6.7.1rc2 but the Unraid Nvidia plugin no longer shows that particular build.  Do you have a link somewhere to that build that I can try and install myself?

I AM THE CAT!!! 

 

So, starting with the NVIDIA build for 6.8.3 AND the DVB Build for 6.8.3 I was able to smush the DVB drivers into the NVIDIA Build, I had to modprobe the specific driver (em28xx) for my Hauppage WinTV-Dual-USB as I didn't manage to get it to auto-load  but it works, SEE!:

1146693967_DVBProof1.thumb.png.6a611128912ba266c71526131539f007.png

493391150_HWTranscodeProof1.thumb.png.401aac6c5adc6851fae20848bc336c5a.png

 

1302655723_NvidiaProof1.thumb.png.a0ed8f26dd4b815447b2a47ca1fdcd45.png

 

273955332_DVBProof2.thumb.png.d52712fc9aa75f0abc1043a9c9ed7efc.png

 

 

my only problem is that my DVB adapter, a hauppage WINTV-Dual-USB do not show up in the UNRAID DVB plugin but plex does detect and stream from it just as well as it did previously.

 

Now I would like to point out that there is no polish on this setup,  I have to manually modprobe the driver after boot time at this point, before I start my plex docker (thank you LSIO for the docker, that was the last thing that I needed to make this thing work, the official plex docker wouldn't do the HW transcode) and that, after testing this issue it does not go away on a reboot.

 

Here is how I did it, bask in the simple power of duct-tape based jank:

  1. I first downloaded both NVIDIA and DVB plugins.
  2. Then I selected the LibreElec 6.8.3 (because that is what works with my tuner) build in the DVB plugin and installed it
  3. Reboot the server
  4. I then confirmed that my DVB device was showing in the DVB plugin
  5. Sifting through the syslog (check my snip it helps to show what I mean) I wrote down the dvb driver that my device was being assigned to (the snip is from after the combination but it is identical to the way that it would be from the before combination)
  6. Then I copied the bzfirmware and bzmodules files from my flash share
  7. I then installed the NVIDIA 6.8.3 build in the NVIDIA plugin
  8. Reboot the server
  9. I confirmed that my Graphics card was showing in the NVIDIA plugin
  10. I copied the bzfirmware and bzmodules files from my flash share (yes, i did this twice, once for the DVB setup and once for the Nvidia setup)
  11. I then unpacked both of them in windows into separate folders (you could do this in whatever you want but i like the simplicity of the windows GUI)
  12. I then copied the contents of the DVB bzfirmware into the NVIDIA bzfirmware folder chosing NOT to overwrite any existing files
  13. I then copied the contents of the DVB bzmodules \4.19.107-Unraid\kernel\drivers\media to the same folder in the NVIDIA bzmodules folder
  14. I then shared both folders to a linux VM I spun up for this and used mksquashfs to zip them both back up (make sure to use the -all-root option to avoid contaminating the permissions of the output bzfirmware and bzmodules files)
  15. I then copied the two brand new bz files on top of the ones in my flash drive
  16. After a final reboot (and some related troubleshooting that led me to migrate my plex container to the LSIO version) all I have to do is modprobe my driver back in after boot EVERY SINGLE TIME! and start my plex container

 

My next task will be to setup a user script that runs on array start to modprobe that driver so I don't have to do it by hand but it is almost midnight here and I have to work in the morning.

 

1879393269_SYSLOGsnip1.png.1fd4245f729d30ec940d18c3e633a8b3.png

Edited by mkfelidae
better formatting
Link to comment
On 5/25/2020 at 8:21 AM, mkfelidae said:

my only problem is that my DVB adapter, a hauppage WINTV-Dual-USB do not show up in the UNRAID DVB plugin but plex does detect and stream from it just as well as it did previously.

How did you utilize the DVB card?

With my build of the nVidia and DVB drivers my DigitalDevices Card only shows up if I start TVHeadend (the kernel modules is loaded if the card is needed) and TVHeadend requires direct access to the path '/dev/dvb'.

Link to comment
57 minutes ago, ich777 said:

How did you utilize the DVB card?

I have a script that calls:

     modprobe em28xx

When the array is started.  Then I have my Plex docker setup for an autostart delay of 30 seconds, to give the script time to fire and for modprobe to load not only em28xx but all of its dependencies such as the dvb_core driver.

 

For me, /dev/dvb, isn't an actual path until the modprobe script fires.  That is the real reason my Plex docker has an autostart delay, the docker crashes on start if the drivers haven't been loaded and /dev/dvb hasn't been created.

 

When I said that my USB stick doesn't show up in the dvb plugin, I meant it ONLY doesn't show up in the adapters list on the plugin GUI.  If I had to take a guess why, it would be that the GUI is looking for the devices at boot time, but that the device doesn't show as a dvb device until I load the driver at array start.

 

I hope this helps, if not let me know.

Link to comment
On 5/25/2020 at 2:33 AM, mkfelidae said:

@CHBMB I went to try out your combined Nvidia / DVB build based on 6.7.1rc2 but the Unraid Nvidia plugin no longer shows that particular build.  Do you have a link somewhere to that build that I can try and install myself?

I could probably dig it out from somewhere, I gave up playing around with DVB and Nvidia combined as I don't have DVB hardware and never got any answers more detailed than "It doesn't work" which made progress impossible.  I'm amenable to working with someone to get it working, but chucking builds out without decent testing with constructive /useful feedback is largely pointless, as from my perspective it should have worked.

 

 

  • Haha 1
Link to comment
6 hours ago, mkfelidae said:

When I said that my USB stick doesn't show up in the dvb plugin, I meant it ONLY doesn't show up in the adapters list on the plugin GUI.  If I had to take a guess why, it would be that the GUI is looking for the devices at boot time, but that the device doesn't show as a dvb device until I load the driver at array start.

 

That's because I've written routines into the plugin to parse the cards/adapters and output it to the plugin screen, this happens at boot rather than every time the page loads.

Link to comment
1 minute ago, CHBMB said:

I could probably dig it out from somewhere, I gave up playing around with DVB and Nvidia combined as I don't have DVB hardware and never got any answers more detailed than "It doesn't work" which made progress impossible.  I'm amenable to working with someone to get it working, but chucking builds out without decent testing with constructive /useful feedback is largely pointless, as from my perspective it should have worked.

I would love to see you and @ich777 collaborate as he just released a docker container that builds a combined NVIDIA / DVB kernel from scratch.  It does not seem to work completely with either plugin as it probably doesn't have the code or scripts needed to interface with the plugins correctly but it did create a functional kernel that allowed me to use a Hauppage WinTV-dualHD AND provide an NVIDIA GPU to plex to offload transcoding.

 

 

  • Like 1
Link to comment

I'm trying to install, but it is just stuck at "Updating available builds". How can I fix this? Thanks.

 

The log says the connection timed out.

 

*4091 upstream timed out (110: Connection timed out) while reading response header from upstream

Edited by ilikepie71
Link to comment
On 5/26/2020 at 9:57 PM, CHBMB said:

 

That's because I've written routines into the plugin to parse the cards/adapters and output it to the plugin screen, this happens at boot rather than every time the page loads.

Hey @CHBMB eventually you can use this, feel free to use as much as you want from it ;)

Currently you can build your own Kernel/Images in this container with/without Nvidia and with/without DVB drivers (currently I've only inclueded the DigitalDevices, LibreELEC and XBOX One USB Stick drivers) also you can choose wich driver version to install wether it's nVidia the runtimes or the DVB driver versions, added also a option that you completely can build it yourself.

The plugins from Linuxserver.io also work but the version numbers are not shown and it shows that no DVB kernel driver is detected but it works all perfectly fine.

 

Btw also the problem from @mkfelidae was solved with this (but I think it was eventually because he merged your two builds together so that the kernel module/driver wasn't loaded when it was needed).

 

 

 

Edited by ich777
Link to comment
5 hours ago, ich777 said:

Hey @CHBMB eventually you can use this, feel free to use as much as you want from it ;)

Currently you can build your own Kernel/Images in this container with/without Nvidia and with/without DVB drivers (currently I've only inclueded the DigitalDevices, LibreELEC and XBOX One USB Stick drivers) also you can choose wich driver version to install wether it's nVidia the runtimes or the DVB driver versions, added also a option that you completely can build it yourself.

The plugins from Linuxserver.io also work but the version numbers are not shown and it shows that no DVB kernel driver is detected but it works all perfectly fine.

 

Btw also the problem from @mkfelidae was solved with this (but I think it was eventually because he merged your two builds together so that the kernel module/driver wasn't loaded when it was needed).

 

 

 

We've already been building Nvidia in a container for a while, DVB I've been kind of stuck with real life stuff, if someone who uses DVB actually wanted to collaborate with us, that would be awesome.  The whole idea of me supporting something I don't actually use at all is pretty untenable.

  • Like 1
Link to comment
5 hours ago, CHBMB said:

We've already been building Nvidia in a container for a while, DVB I've been kind of stuck with real life stuff, if someone who uses DVB actually wanted to collaborate with us, that would be awesome.  The whole idea of me supporting something I don't actually use at all is pretty untenable.

Completely understandable and that's why I created this container... ;)

I don't think many people will use it but I think it has it's place.

 

I like the idea that everyone can build it's own custom kernel with a few clicks (but can also produce more problems than it solves).

If you give me a little tutorial an how the plugins from linuxserver.io work i could integrate that into my container but I think this wouldn't be compatible since you got two seperate plugins one for DVB and one for nVidia.

 

Since I'm not really familar with creating plugins it will take some time to release my own...

 

Currently the DVB plugin from linuxserver.io looks like this:

grafik.png.10560d4529e9cc0ed060a0c4d6bc226a.png

 

and the nVidia plugin linuxserver.io looks like this with the build from my container:

grafik.png.e85d12c105001cecfa1a817fc53c65bf.png

 

But everything is working just fine.

Link to comment
13 hours ago, ich777 said:

Completely understandable and that's why I created this container... ;)

I don't think many people will use it but I think it has it's place.

 

I like the idea that everyone can build it's own custom kernel with a few clicks (but can also produce more problems than it solves).

If you give me a little tutorial an how the plugins from linuxserver.io work i could integrate that into my container but I think this wouldn't be compatible since you got two seperate plugins one for DVB and one for nVidia.

 

Since I'm not really familar with creating plugins it will take some time to release my own...

 

Currently the DVB plugin from linuxserver.io looks like this:

grafik.png.10560d4529e9cc0ed060a0c4d6bc226a.png

 

and the nVidia plugin linuxserver.io looks like this with the build from my container:

grafik.png.e85d12c105001cecfa1a817fc53c65bf.png

 

But everything is working just fine.

Ok, so I have some idea, send me a PM, or better yet, hop on the linuxserver discord and ping me and we can chat about how to move forward. ;)

 

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.