Hauppauge PCIe quad tuner not found Ubuntu 20.04

Server Version#: 1.19.3.2852-219a9974e amd64 [installed,local]
Player Version#:
Tuner Make/Model: Hauppauge model 165100, rev B4I6
Guide/Lineup name:
Using XMLTV?:
Channel number/Name:

Installing new version of config file /etc/apt/sources.list.d/plexmediaserver.list …
PlexMediaServer install: PlexMediaServer-1.19.3.2852-219a9974e - Installation starting.
PlexMediaServer install:
PlexMediaServer install: Now installing based on:
PlexMediaServer install: Installation Type: New
PlexMediaServer install: Process Control: systemd
PlexMediaServer install: Plex User: plex
PlexMediaServer install: Plex Group: plex
PlexMediaServer install: Video Group: render
PlexMediaServer install: Metadata Dir: /var/lib/plexmediaserver/Library/Application Support
PlexMediaServer install: Temp Directory: /tmp
PlexMediaServer install: Lang Encoding: en_US.UTF-8
PlexMediaServer install: Transcoding HW: Found <<-- doesn’t this imply Plex sees the tuner?
PlexMediaServer install:
PlexMediaServer install: Completing final configuration.
Created symlink /etc/systemd/system/multi-user.target.wants/plexmediaserver.service → /lib/systemd/system/plexmediaserver.service.
PlexMediaServer install: PlexMediaServer-1.19.3.2852-219a9974e - Installation successful. Errors: 0, Warnings: 0
Processing triggers for libc-bin (2.31-0ubuntu9) …
Processing triggers for mime-support (3.64ubuntu1) …

May 25, 2020 13:07:43.750 [0x7fc05cf7d700] INFO - [I] SAT2IP - discover_satip_servers(): no servers found
May 25, 2020 13:07:44.174 [0x7fc05cf7d700] INFO - [I] v4l::DeviceGetList_impl. getting v4l device list
May 25, 2020 13:07:44.174 [0x7fc05cf7d700] WARN - [E] v4l::DeviceGetList_impl. open failed on frontend /dev/dvb/adapter0/frontend0 (13)
May 25, 2020 13:07:44.174 [0x7fc05cf7d700] WARN - [E] v4l::DeviceGetList_impl. open failed on frontend /dev/dvb/adapter1/frontend0 (13)
May 25, 2020 13:07:44.174 [0x7fc05cf7d700] WARN - [E] v4l::DeviceGetList_impl. open failed on frontend /dev/dvb/adapter2/frontend0 (13)
May 25, 2020 13:07:44.175 [0x7fc05cf7d700] WARN - [E] v4l::DeviceGetList_impl. open failed on frontend /dev/dvb/adapter3/frontend0 (13)
May 25, 2020 13:07:44.179 [0x7fc05cf7d700] INFO - [I] onetv_factory::DeviceGetListEx >>
May 25, 2020 13:07:44.179 [0x7fc05cf7d700] INFO - [I] onetv_factory::DeviceGetListEx. Found device 2352:25925
May 25, 2020 13:07:44.179 [0x7fc05cf7d700] INFO - [I] onetv_factory::DeviceGetListEx. Found device 5451:91
May 25, 2020 13:07:44.179 [0x7fc05cf7d700] INFO - [I] onetv_factory::DeviceGetListEx. Found device 7531:2
May 25, 2020 13:07:44.179 [0x7fc05cf7d700] INFO - [I] onetv_factory::DeviceGetListEx. Found device 5118:25344
May 25, 2020 13:07:44.179 [0x7fc05cf7d700] INFO - [I] onetv_factory::DeviceGetListEx. Found device 7531:3
May 25, 2020 13:07:46.228 [0x7fc05b77a700] INFO - [I] web_service_t::process_device_discovery

nuplex:~# apt list | grep ^plex

plexmediaserver/now 1.19.3.2852-219a9974e amd64 [installed,local]

dmesg shows the following
[ 11.333642] tveeprom: Hauppauge model 165100, rev B4I6, serial# 4036150387
[ 11.333643] tveeprom: MAC address is 00:0d:fe:92:c4:73
[ 11.333643] tveeprom: tuner model is SiLabs Si2157 (idx 186, type 4)
[ 11.333644] tveeprom: TV standards NTSC(M) ATSC/DVB Digital (eeprom 0x88)
[ 11.333644] tveeprom: audio processor is CX23888 (idx 40)
[ 11.333645] tveeprom: decoder processor is CX23888 (idx 34)
[ 11.333645] tveeprom: has no radio, has IR receiver, has no IR transmitter
[ 11.333646] cx23885: cx23885[0]: hauppauge eeprom: model=165100
[ 11.341652] cx25840 9-0044: cx23888 A/V decoder found @ 0x88 (cx23885[0])
[ 11.972962] cx25840 9-0044: loaded v4l-cx23885-avcore-01.fw firmware (16382 bytes)
[ 12.005644] cx23885: cx23885_dvb_register() allocating 1 frontend(s)
[ 12.005645] cx23885: cx23885[0]: cx23885 based dvb card
[ 12.005646] cx23885: dvb_register(): board=57 port=1
[ 12.022627] si2157 8-0060: Silicon Labs Si2147/2148/2157/2158 successfully attached
[ 12.022635] dvbdev: DVB: registering new adapter (cx23885[0])

root@nuplex:~# apt-get install linux-firmware-hauppauge
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following NEW packages will be installed:
linux-firmware-hauppauge
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 7,350 kB of archives.
After this operation, 7,394 kB of additional disk space will be used.
Get:1 /kernel+mediatree+hauppauge/ubuntu focal/main amd64 linux-firmware-hauppauge all 0.1.6+focal [7,350 kB]
Fetched 7,350 kB in 2s (3,525 kB/s)
Selecting previously unselected package linux-firmware-hauppauge.
(Reading database … 70780 files and directories currently installed.)
Preparing to unpack …/linux-firmware-hauppauge_0.1.6+focal_all.deb …
Unpacking linux-firmware-hauppauge (0.1.6+focal) …
Setting up linux-firmware-hauppauge (0.1.6+focal) … <<–We know we have the right firmware because it’s for this distro

The frustrating part of this has been that I’ve installed Kaffeine and NextPVR on the same host after wiping the computer and starting over with Ubuntu 20.04. I have installed none of the hauppauge firmware nor have I done the PPA. Both applications see the tuners - and both record, schedule record, and playback. What is wrong with Plex?
Before posting this I downloaded Plex, again, and installed it. Again go to DVR setup and again, it fails to find any tuners.
There is a reasonable sized community here and there are a lot of folks who love this solution.
May 26, 2020 08:53:32.886 [0x7f023cff9700] INFO - [I] v4l::DeviceGetList_impl. getting v4l device list
May 26, 2020 08:53:32.886 [0x7f023cff9700] WARN - [E] v4l::DeviceGetList_impl. open failed on frontend /dev/dvb/adapter0/frontend0 (13)
May 26, 2020 08:53:32.886 [0x7f023cff9700] WARN - [E] v4l::DeviceGetList_impl. open failed on frontend /dev/dvb/adapter1/frontend0 (13)
May 26, 2020 08:53:32.887 [0x7f023cff9700] WARN - [E] v4l::DeviceGetList_impl. open failed on frontend /dev/dvb/adapter2/frontend0 (13)
May 26, 2020 08:53:32.887 [0x7f023cff9700] WARN - [E] v4l::DeviceGetList_impl. open failed on frontend /dev/dvb/adapter3/frontend0 (13)
May 26, 2020 08:53:32.890 [0x7f023cff9700] INFO - [I] onetv_factory::DeviceGetListEx >>

Have you tried following Hauppauge’s guide to install this? Hauppauge Support | Running WinTV TV tuners and HD PVR 2 under Linux

I don’t know what those other programs are doing but Hauppauge recommends installing the PPA and their drivers.

pcie quadhd are fully included in mainline kernel, 5.4 is fully supported.

What the ppa additionally provides is DVB-T/T2 auto signal detection.

However, if you have a DVB model, your device will not work without the si2168 demod firmware included in my linux-firmware-hauppauge package.

I think with Ubuntu 20.04 the first question when someone has a breakage is: Did you install Plex via “snap” or actual debian package?

PlexServerSetup-20200525.txt (21.6 KB)

Here’s the process I followed…but, yes, deb. no snap.

As a note. Upon reloading the server with Ubuntu 20.04 I’ve done ZERO firmware additions and the other programs can leverage the card just fine.

My very first iteration of this process did include the firmware on 20.04 with exactly the failures as I am currently seeing without the firmware.

The question, at least for me, comes down to the plex discovery process and it’s failure. The card is present, the card works, and other programs can leverage it. What is plex missing that the other application are not?

You don’t have a DVB model, so no firmware is required.

If the device works on the command line and everything else you use, then it’s a Plex issue.

Maybe the “plex” user is lacking group permissions and the other software you are testing that “just works” just runs as “you” so is all good.

interesting. I’ll check. Hadn’t thought of that.

So, I added plex to the group entry after seeing the permissions/ownership
video:x:44:nextpvr,plex

crw-rw----+ 1 root video 212, 4 May 26 08:48 /dev/dvb/adapter1/frontend0

restarted plex services

have this now.
root@zooplex:~# groups plex
plex : plex video render

Instant recognition of tuners - picture attached.

3 Likes

This issue is resolved. Many thanks!

@anon18523487 : Please note this and modify your packages preinst objective accordingly.

@NDInnovations

I am the author and maintainer of the Linux installation scripts.

May I have a brief summary of what’s missing, what’s needed, and under which conditions?

dmesg or whatever method you want to use to identify the card and the device path.

Ensure plex has been added as a secondary group member to allow it to access the device.

I think that’s about it. I marked the solution in this ticket.

grep of dmesg is problematic and unreliable at best.

I’m using a regex / automaton to parse, not an AI element.

It looks like I need be aware of /dev/dvb and preen info from there?

if true, may I have a sample ls -laR to work with?
I do not have that card here.

That seems reasonable. The tuner scan identifies the device path but the failure message doesn’t provide enough info (at least for my feeble mind) to identify it as a permissions issue.

Either way, the fix is super simple, how to identify it as an issue is probably the larger challenge.

Thank you for all the work.

root@zooplex:/dev/dvb# ls -laR
.:
total 0
drwxr-xr-x 6 root root 120 May 25 20:24 .
drwxr-xr-x 22 root root 4860 May 25 20:24 …
drwxr-xr-x 2 root root 120 May 25 20:24 adapter0
drwxr-xr-x 2 root root 120 May 25 20:24 adapter1
drwxr-xr-x 2 root root 120 May 25 20:24 adapter2
drwxr-xr-x 2 root root 120 May 25 20:24 adapter3

./adapter0:
total 0
drwxr-xr-x 2 root root 120 May 25 20:24 .
drwxr-xr-x 6 root root 120 May 25 20:24 …
crw-rw----+ 1 root video 212, 1 May 26 08:48 demux0
crw-rw----+ 1 root video 212, 2 May 26 08:48 dvr0
crw-rw----+ 1 root video 212, 0 May 26 08:48 frontend0
crw-rw----+ 1 root video 212, 3 May 26 08:48 net0

./adapter1:
total 0
drwxr-xr-x 2 root root 120 May 25 20:24 .
drwxr-xr-x 6 root root 120 May 25 20:24 …
crw-rw----+ 1 root video 212, 5 May 26 08:48 demux0
crw-rw----+ 1 root video 212, 6 May 26 08:48 dvr0
crw-rw----+ 1 root video 212, 4 May 26 08:48 frontend0
crw-rw----+ 1 root video 212, 7 May 26 08:48 net0

./adapter2:
total 0
drwxr-xr-x 2 root root 120 May 25 20:24 .
drwxr-xr-x 6 root root 120 May 25 20:24 …
crw-rw----+ 1 root video 212, 9 May 26 08:48 demux0
crw-rw----+ 1 root video 212, 10 May 26 08:48 dvr0
crw-rw----+ 1 root video 212, 8 May 26 08:48 frontend0
crw-rw----+ 1 root video 212, 11 May 26 08:48 net0

./adapter3:
total 0
drwxr-xr-x 2 root root 120 May 25 20:24 .
drwxr-xr-x 6 root root 120 May 25 20:24 …
crw-rw----+ 1 root video 212, 13 May 26 08:48 demux0
crw-rw----+ 1 root video 212, 14 May 26 08:48 dvr0
crw-rw----+ 1 root video 212, 12 May 26 08:48 frontend0
crw-rw----+ 1 root video 212, 15 May 26 08:48 net0

Now for the fun question.

  1. use udev if available to keep privilege level low
    -or-
  2. just slam into group?

If user plex is simply a member of group video then there should be zero problems.

cool. that’ll work for me.

  1. Scour /dev/dri - select current DRI goup (ubuntu loves to change)
  2. Add group video to cover PCIe tuner cards.
2 Likes

While I’ve got the lid open,

What other tuner devices should I be looking for / adding?

(I want to be somewhat smart about this in case there’s an oddball out there)

Well almost every hauppauge device in existence is in the Linux kernel now, with only a couple missing / in progress, so the list would be quite extensive. If you need an explicit list of all possible pcie id’s and usb vid:pid’s I can generate one or get one for you.

Feedback:

There’s no need for me to support an entire list of tuners by pci info yet at this point.

I have opted to take the same approach as the GPU cards and see how that plays.

PMS tracks the /dev/dri group for hardware transcoding. There is no predictable group. Some use render, while others still use video.

As for usb devices, udev picks them up and sets perms.

It is my hope, all the devices show up in the video group when appropriate drivers are added ? (( in the same spirit as Nvidia GPU cards & their drivers )

Is this sufficient or ???