Jump to content
saarg

[Deprecated] tobbenb's Docker Template Repository - WebGrab+Plus

773 posts in this topic Last Reply

Recommended Posts

These are all deprecated! Use the linuxserver ones instead, as I have moved them there.

 

I have made a couple of Docker containers that I wanted to share with you. All of the containers use phusion/baseimage:0.9.15.

  •  
    • Oscam is a card server and client used to read TV subscription card for decoding of DVB streams.
    • WebGrab+Plus is a XML EPG Grabber that can be used together with Tvheadend.

 

If you want to use any of them you have to add this in the template repositories box on the Docker page:

 

https://github.com/tobbenb/docker-containers/tree/templates
 

 

The tvheadend containers and oscam container are now deprecated. Pleas use the linuxserver ones as I have moved on to them. You can find it in CA.

 

Latest V6 Mediabuilds Available

This will be needed to provide drivers and firmware if you are using a DVB-T(2) or DVB-S(2) Source.  Download them here.

 

Tvheadend Unstable & Tvheadend 4 stable

Tvheadend is compiled from the Git source with support for HDHomerun and transcoding.

It works to pass a DVB card through to the container with the --device tag if you use a version of Unraid with media drivers installed.  If you want to try this, you have to add the --device tag in the  Extra parameters box in advanced view of the docker template like this for each of your tuners listed in /dev/dvb:

 

--device=/dev/dvb
 

 

The above example is for all tuners. No need to specify multiple adapters anymore.

 

You can also just choose the Tvheadend template that ends in DVB-Tuners. The --device tag is already filled in and you do not have to do anything else to the template.

You also have to change the owner:group on the /dev/dvb folder so the docker has the right permission to use the adapter. This you can do by either put this in your go file:

chown -R nobody:users /dev/dvb
 

Or you can install the MediaTreeCheck plugin in the bottom of this post. Support for the plugin is in this thread http://lime-technology.com/forum/index.php?topic=40295.0

 

Tvheadend needs to use Host as network type if you use IPTV and I would guess HDHomerun. If you pass through a DVB card (If you manage) you can run it in bridge mode and map port 9981 and 9982.

 

Here is a link to the documentation for 4.0 http://docs.tvheadend.org/#tvheadend-40-user-guide

And this is for unstable http://docs.tvheadend.org/#tvheadend-42-user-guide

 

I added some sort of support for XMLTV in tvheadend-unstable. You need a working config for this to work.

After you start the container you should have a .xmltv folder in the appdata folder you chose for tvheadend.

1. Copy the config file to this folder.

2. Edit the config and find this line:

cachedir=
 

Remove everything behind = and make it look like this:

cachedir=/tmp/.xmltv/cache
 

 

Now save the file.

3. Go to the Tvheadend configuration --> Channel/EPG --> EPG Grabber Modules and enable your grabber.

4. It should now download the EPG data and after it's done you can go on to configure the correct sources for EPG in the Channels tab.

 

/data:

If you use WebGrab+Plus you have to add a volume that maps to /data inside the container. The reason for this is that the tv_grab_wg script that imports the epg data created by WebGrab+Plus looks in the /data folder for guide.xml. You have to use the same volume mapping in the WebGrab+Plus container also.

 

/config

is where Tvheadend will store the configuration files. This you can not change on the container side.

 

/recordings

is where Tvheadend will store the recordings. You do not have to use this inside the container. You can use whatever you want as long as you set the same path in the settings for recordings in Tvheadend.

 

Tvheadend Stable

Tvheadend stable is installed from the Tvheadend APT repository. The version in the container is 3.4.28~geb79aee.

HDHomerun does not work with this version. This version will not be updated as it's old. Please update to the stable version 4.

 

It works to pass a DVB card through to the container with the --device tag if you use a version of Unraid with media drivers installed. If you want to pass the DVB card, you have to add the below to the Extra parameters box in advanced view of the docker template:

 

--device=/dev/dvb/
 

 

Tvheadend needs to use Host as network type if you use IPTV. If you pass through a DVB card (If you manage) you can run it in bridge mode and map port 9981 and 9982.

 

/data:

If you use WebGrab+Plus you have to add a volume that maps to /data inside the container. The reason for this is that the tv_grab_wg script that imports the epg data created by WebGrab+Plus looks in the /data folder for guide.xml. You have to use the same volume mapping in the WebGrab+Plus container also.

 

/config

is where Tvheadend will store the configuration files. This you can not change on the container side.

 

/recordings

is where Tvheadend will store the recordings. You do not have to use this inside the container. You can use whatever you want as long as you set the same path in the settings for recordings in Tvheadend.

 

WebGrab+Plus

For configuring WebGrab+Plus I suggest you take a look at the website http://www.webgrabplus.com/.

The ini files for each site available for grabbing is created in you config folder on first run. You will then have to copy the ini for your site to the root folder of the config folder. In the WebGrab+Plus configuration file you will have to set the correct path for the guide.xml to /data/guide.xml or else Tvheadend will not find it, as explained earlier.

 

/config

is where WebGrab+Plus will store the configuration files. This you can not change on the container side.

 

/data:

is where the guide.xml will be stored. This you can not change on the container side. Remember that you have to use the same folder on the host (Unraid) side as the /data volume in Tvheadend. WebGrab+Plus writes to the guide.xml and Tvheadend reads guide.xml.

 

WebGrab+Plus runs as a cron job once a day at 02:02 in the night (I never remember what is AM and PM  ;) )

You can change this yourself by adding a file in the configuration folder called mycron and it has to contain this line:

02 02 * * * /wg++/update.sh 2>&1 | /usr/bin/logger -t WebGrab++
 

The first number is the minute, the second is the hour and so on. It is important to have an empty line in the end, or else the import will not work. Instead of trying to explain how you can modify the start time, I'll give you a good link instead  :)http://www.adminschoice.com/crontab-quick-reference

The files will be read when the container starts. After you have started the container you can delete the file again, but if you want to keep your own scheduling after an update of the container it's best to leave the mycron file in the configuration folder.

 

Oscam

If you are going to use a USB card reader in Oscam, you will have to use the same method as used for passing through DVB cards in the Tvheadend container.

So that means you have to add the --device tag in Extra parameters box in advanced view of the docker template like below.

 

--device=/dev/ttyUSB0
 

 

The name of the device changes depending on the device you use.

If you have a PCSC card reader the above will look a little different. First you have to find your reader in Tools --> System Devices in the unRaid gui. It's listed in the USB devices section like below.

 

Bus 013 Device 002: ID 076b:3021 OmniKey AG CardMan 3121
 

 

What you need of the info is the Bus and Device number. So in the above example it's Bus 013 and Device 002. The device tag will look like below.

 

--device=/dev/bus/usb/013/003
 

 

So first the Bus number and then the device number.

In the Oscam config you most likely can use 0 in the device tag of the reader. You can check this by exec into the container like below after connecting to your server via SSH.

 

docker exec -it Oscam /usr/bin/pcsc_scan
 

 

It shows you Reader 0:  OMNIKEY AG CardMan 3121 00 00. So it's 0 you should put in the device tag in Oscam.

After you have found the number, you can just hit CTRL+C and you will get back to the shell.

 

/config

is where Oscam will store the configuration files. This you can not change on the container side.

 

You have to map port 8888 to use the webinterface of oscam. I think there might be some other containers using the same port, and you then have to specify another port for the host (Unraid) side, but leave 8888 for the container side.

For each port you define in Oscam, you have to map the same port in the template.

 

 

I hope this was enough information to get you started with the containers  :D

Edited by saarg

Share this post


Link to post

Changelog

 

Tvheadend templates

14.02.2016

    - Changed to only two templates for each version of Tvheadend. In newer version of docker you can pass through everything under /dev/dvb/ with only one tag (--device=/dev/dvb/).

 

23.05.2015

    - Added templates with pre-filled extra parameters to pass through 1-4 DVB Tuners. This removes the need for users to add the extra parameters to pass through their tuners.

      Thanks to CHBMB for the idea. If you need templates for more than 4 tuners, please let me know and I'll add it.

 

Tvheadend 4 Stable

09.01.2016

    - Made some changes internally in the docker.

    - Added support for XMLTV. You add a config the same way as described for tvheadend unstable.

 

20.12.2015

    - Updated to version 4.0.8.

 

30.10.2015

    - Updated to version 4.0.7.

 

06.10.2015

    - Updated to version 4.0.6.

 

11.08.2015

    - Initial release.

    - Latest stable version is 4.0.5.

 

Tvheadend-unstable

09.01.2016

    - Updated to latest version.

 

02.01.2016

    - Updated to latest version.

    - Made some changes internally in the docker. Hopefully I didn't screw anything up for the users  ;D

 

31.12.2015

    - Updated to latest version.

 

13.12.2015

    - Updated tvheadend to todays version.

    - After a request the xmltv package is now directly from the source instead of a ubuntu package. The version in this update is 0.5.67. Because of this you have to choose your xmltv grabber again in tvheadend as the location is changed from /usr/bin to /usr/local/bin.

 

06.12.2015

    - Updated tvheadend to todays version.

 

19.11.2015

    - Updated to the latest unstable commit.

    - Added support for using XMLTV. Se above post for how to use.

 

30.10.2015

    - Updated tvheadend to todays version.

 

09.08.2015

    - Updated tvheadend to todays version.

    - Updated to phusion 0.9.17.

    - Removed disable SSH as it's disables by default in phusion.

 

10.06.2015

    - Updated tvheadend to 4.1-182~gfb6b56c

   

19.05.2015

    - Changed the build to version 4.1.4.

    - Added ffmpeg to /usr/bin so it's possible to use pipe:// for those that need it. Re-built as my own build of ffmpeg didn't work. Now using static build git version g451be67.

 

Oscam-test

05.04.2015

    - Initial release.

    - The container now use a version of oscam that I compiled with support for libusb and pcsc. For pcsc card readers to work there is a bit to do. Instructions will come later when I remember what I did to get it working.

    - Changed to phusion/baseimage 0.9.16.

    - You will have to push the "Check for update" button before the tobbenb-beta templates show in the template list.

 

 

WebGrab+Plus

09.01.2016

    - Updated to beta 56.12 and SiteIni.Pack_2016.01.05.

 

24.03.2015

    - Changed user to nobody. Existing files and folders will automatically get the right permissions after the update.

    - Added config file and also a working example so a grab starts at first container start.

    - Changed so grabbing starts when the container starts so it's easier to trigger a grab.

    - Removed symlinks to wget.bat and wget.exe in the config folder. Files are now copied on first start. You will have to delete the symlinks manually and then restart the container. After that the files will be copied.

 

Oscam

14.02.2016

    - Added pcscd as a service so it's now possible to pass through a pcsc card reader. See above post for info.

 

09.01.2016

    - Made some changes internally in the docker.

    - Oscam is now compiled from source.

 

Share this post


Link to post

if you use a version of Unraid with media drivers installed.

 

is this a thing ?

 

If you are one of those people that build unRAID on top of a full Slackware system, then yes.. at least I'd imagine that is what he is referring to :)

Share this post


Link to post

if you use a version of Unraid with media drivers installed.

 

is this a thing ?

 

If you are one of those people that build unRAID on top of a full Slackware system, then yes.. at least I'd imagine that is what he is referring to :)

 

and if you're not (which let's face it, is mostly everyone) then this would be better off in a VM with passthrough (providing of course you have equipment capable of passthrough, which is gonna be more people than compile their own unraid)

Share this post


Link to post

if you use a version of Unraid with media drivers installed.

 

is this a thing ?

 

If you are one of those people that build unRAID on top of a full Slackware system, then yes.. at least I'd imagine that is what he is referring to :)

 

and if you're not (which let's face it, is mostly everyone) then this would be better off in a VM with passthrough (providing of course you have equipment capable of passthrough, which is gonna be more people than compile their own unraid)

 

There is a media build of UnRAID 6 Beta 12 here:

 

http://lime-technology.com/forum/index.php?topic=32640.msg342314#msg342314

 

I presume this is what you need,  yeah?

 

 

Share this post


Link to post

if you use a version of Unraid with media drivers installed.

 

is this a thing ?

 

If you are one of those people that build unRAID on top of a full Slackware system, then yes.. at least I'd imagine that is what he is referring to :)

 

and if you're not (which let's face it, is mostly everyone) then this would be better off in a VM with passthrough (providing of course you have equipment capable of passthrough, which is gonna be more people than compile their own unraid)

 

There is a media build of UnRAID 6 Beta 12 here:

 

http://lime-technology.com/forum/index.php?topic=32640.msg342314#msg342314

 

I presume this is what you need,  yeah?

 

I think maybe there could be a link to that in the first comment for this repo, because that would seem like a perfect marriage for this.

Share this post


Link to post

Now you need to rely on two people to get the Tvheadend working with hdhomerun.

Would this be easier to be done in a VM?

Share this post


Link to post

Now you need to rely on two people to get the Tvheadend working with hdhomerun.

Would this be easier to be done in a VM?

 

  Drivers for hdhomerun are in the docker. Tvheadend- stable did not load for me but Tvheadend-Unstable did. My hdhomerun prime shows up. I can not answer much more because I have never used the program and have to learn how to set it up.  The modified unraid files are only needed to use hardware that requires kernel drivers like a tuner card in your unraid pc.

 

Reed.

Share this post


Link to post

Thinking out loud here, but i was wondering if drivers can be made into a slackpack or not and added like extras get added at boot time ?

 

is this possible or not ?

 

if it were it could make the reliance on a specially compiled kernel less of an issue.

 

it's probably not possible though, but oh if it were.

Share this post


Link to post

**Sorry for this long post***

 

This is my experience so far, help would be greatly appreciated

 

1. I have moved to the Media Build of Beta 12 linked above.

 

2. Plugged in my DVB-T USB Stick (Realtek RTL2832 (DVB-T), it seems to be recognised OK.

 

Below is my UnRAID dmesg after plugging it in:

usb 1-1: new high-speed USB device number 6 using ehci-pci
usb 1-1: dvb_usb_v2: found a 'Crypto ReDi PC 50 A' in warm state
usb 1-1: dvb_usb_v2: will pass the complete MPEG2 transport stream to the software demuxer
DVB: registering new adapter (Crypto ReDi PC 50 A)
i2c i2c-0: Added multiplexed i2c bus 1
i2c i2c-0: Added multiplexed i2c bus 2
usb 1-1: DVB: registering adapter 0 frontend 0 (Realtek RTL2832 (DVB-T))...
fc0013: Fitipower FC0013 successfully attached.
Registered IR keymap rc-empty
input: Crypto ReDi PC 50 A as /devices/pci0000:00/0000:00:02.1/usb1/1-1/rc/rc0/input11
rc0: Crypto ReDi PC 50 A as /devices/pci0000:00/0000:00:02.1/usb1/1-1/rc/rc0
input: MCE IR Keyboard/Mouse (dvb_usb_rtl28xxu) as /devices/virtual/input/input12
rc rc0: lirc_dev: driver ir-lirc-codec (dvb_usb_rtl28xxu) registered at minor = 0
usb 1-1: dvb_usb_v2: schedule remote query interval to 400 msecs
usb 1-1: dvb_usb_v2: 'Crypto ReDi PC 50 A' successfully initialized and connected

 

I now also have /dev/dvb.

 

3. Load tvheadend-unstable docker with the following in Repository of the docker template as advised

 

--device=/dev/dvb:/dev/dvb tobbenb/tvheadend-unstable

 

This gets me the following error

 

Error response from daemon: 
Cannot start container 7a255fe79d84632530518584367268bd74669e8b8dfb3e680eaa9d8a94a502fa: 
error gathering device information while adding custom device "/dev/dvb": not a device node

The command failed

 

Container does not start.

 

4. I delve into the /dev/dvb mount point: its folder structure is as follows

 

/dev/dvb/
/dev/dvb/adapter0
/dev/dvb/adapter0/demux0
/dev/dvb/adapter0/dvr0
/dev/dvb/adapter0/frontend0
/dev/dvb/adapter0/net0

 

5. I try

--device dev/dvb/adapter0:/dev/dvb/adapter0 tobbenb/tvheadend-unstable

but I get the same error as above. - Container does not start.

 

6. I then try the following Hail Mary attempt:

--device=/dev/dvb/adapter0/demux0:/dev/dvb/adapter0/demux0 --device=/dev/dvb/adapter0/dvr0:/dev/dvb/adapter0/dvr0 --device=/dev/dvb/adapter0/frontend0:/dev/dvb/adapter0/frontend0 --device=/dev/dvb/adapter0/net0:/dev/dvb/adapter0/net0 tobbenb/tvheadend-unstable

 

This time I get no errors, the command runs successfully and tvheadend starts. However I can still not see my DVB-T card under Configuration/DVB inputs in the tvheadend WebUI.

 

#cuealmostcrying

 

7. I decide to try and look further so I attach to the tvheadend container:

 

docker exec -it Tvheadend-Unstable bash

 

inside in the container I have exactly the same /dev/dvb structure as above, but I still cannot see my DVB-T stick under tvheadend.

 

 

Anyone have any ideas or help to offer? I am now suffering from nerdrage being unable to figure this out!!

 

Again, apologies for the long post: I just wanted to be thorough!!

 

The Capt. 

Share this post


Link to post

 

There is a media build of UnRAID 6 Beta 12 here:

 

http://lime-technology.com/forum/index.php?topic=32640.msg342314#msg342314

 

I presume this is what you need,  yeah?

 

I think maybe there could be a link to that in the first comment for this repo, because that would seem like a perfect marriage for this.

 

I added the link to the first post. I didn't have the link at hand when I wrote the first post, and was a bit short of time.

Share this post


Link to post

Not working here!  Cant get the stable image to pull  says it cannot find it.

 

I forgot to mention that the stable build is not available yet. Sorry about that.

Share this post


Link to post

Thinking out loud here, but i was wondering if drivers can be made into a slackpack or not and added like extras get added at boot time ?

 

is this possible or not ?

 

if it were it could make the reliance on a specially compiled kernel less of an issue.

 

it's probably not possible though, but oh if it were.

 

That would be the easiest way to add it, but I fear it will not be so easy. I'll do some testing with my DVB cards when I have the time and have cleaned out my old Tvheadend server for play with docker  :)

I think it all depends on the kernel beeing buildt with media support.

Share this post


Link to post

**Sorry for this long post***

 

This is my experience so far, help would be greatly appreciated

 

1. I have moved to the Media Build of Beta 12 linked above.

 

2. Plugged in my DVB-T USB Stick (Realtek RTL2832 (DVB-T), it seems to be recognised OK.

 

Below is my UnRAID dmesg after plugging it in:

usb 1-1: new high-speed USB device number 6 using ehci-pci
usb 1-1: dvb_usb_v2: found a 'Crypto ReDi PC 50 A' in warm state
usb 1-1: dvb_usb_v2: will pass the complete MPEG2 transport stream to the software demuxer
DVB: registering new adapter (Crypto ReDi PC 50 A)
i2c i2c-0: Added multiplexed i2c bus 1
i2c i2c-0: Added multiplexed i2c bus 2
usb 1-1: DVB: registering adapter 0 frontend 0 (Realtek RTL2832 (DVB-T))...
fc0013: Fitipower FC0013 successfully attached.
Registered IR keymap rc-empty
input: Crypto ReDi PC 50 A as /devices/pci0000:00/0000:00:02.1/usb1/1-1/rc/rc0/input11
rc0: Crypto ReDi PC 50 A as /devices/pci0000:00/0000:00:02.1/usb1/1-1/rc/rc0
input: MCE IR Keyboard/Mouse (dvb_usb_rtl28xxu) as /devices/virtual/input/input12
rc rc0: lirc_dev: driver ir-lirc-codec (dvb_usb_rtl28xxu) registered at minor = 0
usb 1-1: dvb_usb_v2: schedule remote query interval to 400 msecs
usb 1-1: dvb_usb_v2: 'Crypto ReDi PC 50 A' successfully initialized and connected

 

I now also have /dev/dvb.

 

3. Load tvheadend-unstable docker with the following in Repository of the docker template as advised

 

--device=/dev/dvb:/dev/dvb tobbenb/tvheadend-unstable

 

This gets me the following error

 

Error response from daemon: 
Cannot start container 7a255fe79d84632530518584367268bd74669e8b8dfb3e680eaa9d8a94a502fa: 
error gathering device information while adding custom device "/dev/dvb": not a device node

The command failed

 

Container does not start.

 

4. I delve into the /dev/dvb mount point: its folder structure is as follows

 

/dev/dvb/
/dev/dvb/adapter0
/dev/dvb/adapter0/demux0
/dev/dvb/adapter0/dvr0
/dev/dvb/adapter0/frontend0
/dev/dvb/adapter0/net0

 

5. I try

--device dev/dvb/adapter0:/dev/dvb/adapter0 tobbenb/tvheadend-unstable

but I get the same error as above. - Container does not start.

 

6. I then try the following Hail Mary attempt:

--device=/dev/dvb/adapter0/demux0:/dev/dvb/adapter0/demux0 --device=/dev/dvb/adapter0/dvr0:/dev/dvb/adapter0/dvr0 --device=/dev/dvb/adapter0/frontend0:/dev/dvb/adapter0/frontend0 --device=/dev/dvb/adapter0/net0:/dev/dvb/adapter0/net0 tobbenb/tvheadend-unstable

 

This time I get no errors, the command runs successfully and tvheadend starts. However I can still not see my DVB-T card under Configuration/DVB inputs in the tvheadend WebUI.

 

#cuealmostcrying

 

7. I decide to try and look further so I attach to the tvheadend container:

 

docker exec -it Tvheadend-Unstable bash

 

inside in the container I have exactly the same /dev/dvb structure as above, but I still cannot see my DVB-T stick under tvheadend.

 

 

Anyone have any ideas or help to offer? I am now suffering from nerdrage being unable to figure this out!!

 

Again, apologies for the long post: I just wanted to be thorough!!

 

The Capt.

 

Thanks for trying that out. I would have thought that there might be some problems with permissions for the nobody user to see the adapter, and I guess I'm right.

Could yoube so kind and go back into the container and check which group the adapters belongs to? I would have to add the nobody user to the group of the adapter before it will show up.

Normally this is the video group, but when I passed through a USB card reader for Oscam, it did not have the same group in the container as in the host.

 

What happens if you use * after /dev/dvb/ when starting the container:

--device dev/dvb/*:/dev/dvb/* tobbenb/tvheadend-unstable

 

Not sure if you need the * on the container side though...

Share this post


Link to post

Thanks for trying that out. I would have thought that there might be some problems with permissions for the nobody user to see the adapter, and I guess I'm right.

Could yoube so kind and go back into the container and check which group the adapters belongs to? I would have to add the nobody user to the group of the adapter before it will show up.

Normally this is the video group, but when I passed through a USB card reader for Oscam, it did not have the same group in the container as in the host.

 

What happens if you use * after /dev/dvb/ when starting the container:

--device dev/dvb/*:/dev/dvb/* tobbenb/tvheadend-unstable

 

Not sure if you need the * on the container side though...

Firstly:

 

--device dev/dvb/*:/dev/dvb/* tobbenb/tvheadend-unstable

does not work, withor without the * on the container side.

 

Secondly:

 

If I attach to the container and cd to /dev/dvb/

 

ls -la gives

drwxr-xr-x  2 root root  120 Jan 13 21:12 adapter0

 

is there any other way I should be checking which group the adaptor belongs to?

 

 

Share this post


Link to post

OK I know this is a dirty fix but I wanted to check it out:

 

In the container I ran

chmod -R 777 /dev/dvb

 

still nothing happened after restarting the container.

 

Then I ran the same command in UnRAID itself. When I restarted the container I can now see my adapter!!

 

The problem is that this fix will not stick past a reboot of the server (and is probably not best practice)

 

 

Share this post


Link to post

What is the output of ls -la in unraid on /dev/dvb?

To change the permissions on boot you can add the chmod command to the go file.

 

But first I would like to try something.

1.  Check the group of the DVB adapter in Unraid with this command:

   

ls -la /dev/dvb/

 

2. If the adapter belongs to the root group you don't have to do this step. If not, you would have to type this command:

nano /etc/group

Find the group name in the list and note the number. Push Ctrl+x to quit.

 

3. Go into the container and execute this command where XX is the number from the previous point:

usermod -g XX nobody

 

4. Change back to the permissions that the DVB adapter had in Unraid before you changed it. Probably 755. Or just reboot unraid.

 

5. Restart the container.

 

Does it work now?

Share this post


Link to post

What is the output of ls -la in unraid on /dev/dvb?

To change the permissions on boot you can add the chmod command to the go file.

 

But first I would like to try something.

1.  Check the group of the DVB adapter in Unraid with this command:

   

ls -la /dev/dvb/

 

2. If the adapter belongs to the root group you don't have to do this step. If not, you would have to type this command:

nano /etc/group

Find the group name in the list and note the number. Push Ctrl+x to quit.

 

3. Go into the container and execute this command where XX is the number from the previous point:

usermod -g XX nobody

 

4. Change back to the permissions that the DVB adapter had in Unraid before you changed it. Probably 755. Or just reboot unraid.

 

5. Restart the container.

 

Does it work now?

 

The output of ls -la /dev/dvb is

 

drwxr-xr-x  2 root root  120 Jan 13 22:56 adapter0/

 

The owner and group is root.

 

You said not to proceed if that was the case, any further action I should take to help debug this?

Share this post


Link to post

Further action anyway:

 

nano /etc/group

shows the root group number as 0

 

I logged in to the container and ran

 

usermod -g 0 nobody

 

I then reset the permissions of /dev/dvb (this can be achieved by simply unplugging the adapter and plugging it back in.

 

When I restarted the container the adapter was not visible.

 

EDIT:

 

I then ran

 

usermod -g root nobody

 

to ensure it was adding nobody to the correct group, I checked it with

 

groups nobody

 

which showed that nobody was indeed a member of the root group but it still would not see the adapter on restarting the container.

Share this post


Link to post

I completely forgot to tell you why you should not proceed. Sorry about that.

As it belongs to root in both unraid and container, the only way to change it is to do the chmod 777 that you did.

I don't see any other ways to do it.

Just add the command you used to the go file and that should be it. I don't see that as a security issue, but I'm no security expert  ;)

Share this post


Link to post

I completely forgot to tell you why you should not proceed. Sorry about that.

As it belongs to root in both unraid and container, the only way to change it is to do the chmod 777 that you did.

I don't see any other ways to do it.

Just add the command you used to the go file and that should be it. I don't see that as a security issue, but I'm no security expert  ;)

 

I was looking around for info on this and I found some info in

 

https://docs.docker.com/reference/run/#runtime-privilege-and-lxc-configuration

 

Should the docker be running as "priviledged"? Will that do anything to change access? I am at work at the moment so I cannot test it.

 

Secondly (if the above offers no solution):

If I add a line to my /boot/config/go file, which of the following should it be:

 

chown -R nobody:users /dev/dvb

 

or

 

chown -R nobody:users /dev/dvb &

 

Is the & needed at the end of every line? I cannot see any examples to learn from on the forum/wiki.

 

Thanks,

 

The Capt

Share this post


Link to post

You can run it with the privileged option, but that means the container get full access to unraid and is a much bigger security risk than changing the permissions of the dvb adapter.

I would go for the go file version.

 

You do not need the & as it means to run it in the background. As you are just running a command that will exit right after execution there is no reason to add &.

Share this post


Link to post

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.