More than 8 tuners limit
Added by Stephen Neal over 8 years ago
Hi all
In a fit of madness I decided to add more than 8 tuners to my TV Headend set-up. I hit the default kernel limit of 8 tuners max. Downloaded Media_Build, ran both kconfig (to allow me to alter the number of max tuners as a config option) and then also tried hard coding the media_build/linux/drivers/media/dvb-core/dvbdev.h to force 16 tuners. I ran make and then sudo make install, and I'm pretty certain my changes to dvbdev.h were included as I made a mistake with a comment that got flagged during make.
I have 3 x PS3 Play TV Dual DVB-T tuners (and all 6 adaptors have worked in a set-up before together) I have 3 x August T210v1 DVB-T2 tuners. Again they all work together in an 8 tuner or less set-up.
I still only see 7 or 8 adaptor max - depends on the order I plug them in.
When the final Play TV is the last one to be connected I get : [ 14.724168] dvb-usb: found a 'Sony PlayTV' in cold state, will try to load a firmware
[ 14.725472] dvb-usb: downloading firmware from file 'dvb-usb-dib0700-1.20.fw'
[ 14.749171] dvb-usb: found a 'Geniatech T220 DVB-T/T2 USB2.0' in warm state.
[ 14.766468] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
[ 14.802629] dvb-usb: MAC address: ff:ff:ff:ff:ff:ff
[ 15.246159] dvb-usb: schedule remote query interval to 150 msecs.
[ 15.246165] dvb-usb: Geniatech T220 DVB-T/T2 USB2.0 successfully initialized and connected.
[ 15.246195] dvb-usb: found a 'Geniatech T220 DVB-T/T2 USB2.0' in warm state.
[ 15.246722] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
[ 15.274452] dvb-usb: MAC address: ff:ff:ff:ff:ff:ff
[ 15.449643] dvb-usb: found a 'Sony PlayTV' in warm state.
[ 15.450412] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
[ 15.610402] dvb-usb: schedule remote query interval to 150 msecs.
[ 15.610416] dvb-usb: Geniatech T220 DVB-T/T2 USB2.0 successfully initialized and connected.
[ 15.610521] dvb-usb: found a 'Geniatech T220 DVB-T/T2 USB2.0' in warm state.
[ 15.610882] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
[ 15.634794] dvb-usb: MAC address: ff:ff:ff:ff:ff:ff
[ 16.107093] dvb-usb: schedule remote query interval to 150 msecs.
[ 16.107106] dvb-usb: Geniatech T220 DVB-T/T2 USB2.0 successfully initialized and connected.
[ 16.468754] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
[ 16.908266] dvb-usb: schedule remote query interval to 50 msecs.
[ 16.908287] dvb-usb: Sony PlayTV successfully initialized and connected.
[ 16.908498] dvb-usb: found a 'Sony PlayTV' in cold state, will try to load a firmware
[ 16.908623] dvb-usb: downloading firmware from file 'dvb-usb-dib0700-1.20.fw'
[ 17.397533] dvb-usb: recv bulk message failed: -110
[ 17.509638] dvb-usb: found a 'Sony PlayTV' in warm state.
[ 17.514908] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
[ 17.761610] dvb-usb: recv bulk message failed: -110
[ 17.972378] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
[ 18.257439] dvb-usb: recv bulk message failed: -110
[ 18.348160] dvb-usb: schedule remote query interval to 50 msecs.
[ 18.348165] dvb-usb: Sony PlayTV successfully initialized and connected.
[ 18.348285] dvb-usb: found a 'Sony PlayTV' in cold state, will try to load a firmware
[ 18.348318] dvb-usb: downloading firmware from file 'dvb-usb-dib0700-1.20.fw'
[ 18.929350] dvb-usb: found a 'Sony PlayTV' in warm state.
[ 18.929701] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
[ 19.395775] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
[ 19.402828] dvb-usb: Sony PlayTV error while loading driver (-23)
[ 19.403220] usbcore: registered new interface driver dvb_usb_dib0700
[ 19.402828] dvb-usb: Sony PlayTV error while loading driver (-23) seems to suggest that the final PS3 Play TV isn't correctly initialised.
lsusb -t seems to confirm this, as one of the three PS3 Play TV instances doesn't have a Driver loaded (Port 3: Dev 10 connected to Port 5: Dev 6 hub).
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
|__ Port 3: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/8p, 480M
|__ Port 2: Dev 3, If 0, Class=Vendor Specific Class, Driver=dw2102, 480M
|__ Port 3: Dev 4, If 0, Class=Vendor Specific Class, Driver=dw2102, 480M
|__ Port 4: Dev 11, If 0, Class=Wireless, Driver=btusb, 12M
|__ Port 4: Dev 11, If 1, Class=Wireless, Driver=btusb, 12M
|__ Port 5: Dev 6, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 1: Dev 8, If 0, Class=Vendor Specific Class, Driver=dvb_usb_dib0700, 480M
|__ Port 2: Dev 9, If 0, Class=Vendor Specific Class, Driver=dvb_usb_dib0700, 480M
|__ Port 3: Dev 10, If 0, Class=Vendor Specific Class, Driver=, 480M
|__ Port 6: Dev 7, If 0, Class=Vendor Specific Class, Driver=dw2102, 480M
If I leave an August T210v1 to be the last to be plugged in I get the following :
lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
|__ Port 3: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/8p, 480M
|__ Port 2: Dev 10, If 0, Class=Vendor Specific Class, Driver=, 480M
|__ Port 3: Dev 2, If 0, Class=Vendor Specific Class, Driver=dw2102, 480M
|__ Port 4: Dev 9, If 0, Class=Wireless, Driver=btusb, 12M
|__ Port 4: Dev 9, If 1, Class=Wireless, Driver=btusb, 12M
|__ Port 5: Dev 4, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 1: Dev 6, If 0, Class=Vendor Specific Class, Driver=dvb_usb_dib0700, 480M
|__ Port 2: Dev 7, If 0, Class=Vendor Specific Class, Driver=dvb_usb_dib0700, 480M
|__ Port 3: Dev 8, If 0, Class=Vendor Specific Class, Driver=dvb_usb_dib0700, 480M
|__ Port 6: Dev 5, If 0, Class=Vendor Specific Class, Driver=dw2102, 480M
Where you can see that there is a Driver-less instance at Port 2: Dev 10
And in dmesg
[ 42.085234] dvb-usb: found a 'Geniatech T220 DVB-T/T2 USB2.0' in warm state.
[ 42.085635] dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
[ 42.085966] dvb-usb: Geniatech T220 DVB-T/T2 USB2.0 error while loading driver (-23)
Any tips? Could it be that my new media_build hasn't 'taken'?
Any hints on how to proceed? Currently running Ubuntu 14.04.3 LTS with kernel 3.19.0-47-generic
Replies (7)
RE: More than 8 tuners limit - Added by danny skjodt over 8 years ago
A default linux kernel supports max 8 tuners, recompile your kernel with support for more than 8.
RE: More than 8 tuners limit - Added by Stephen Neal over 8 years ago
Yep - recompiled my kernel and it's all good.
RE: More than 8 tuners limit - Added by Wild Penguin over 8 years ago
I can not see anything in the log indicating a failure.
What do you get in /dev/dvb/*/* ? Are all adapters registered there?
If not, this is not a tvheadend issue but a Linux Kernel issue (although it may still make sense to discuss it here to a certain limit, you may get better responses from other forums).
Just curious: Why do you need 8 tuners? Is not recrding 8 muxes at the same time enough?
As a related note, can the USB tuners record a whole MUX? Last time I looked into USB tuners, they couldn't - which is a major deal-breaker (when compared to PCI/PCIe tuners). Are all your tuners USB, or just some of them?
(If you really need to record 8 simultaneous channels, I'd look into something more robust than USB tuners - PCI, PCIe or mPCIe)
EDIT: I somehow didin't notice your last reply ... it seems you got the kernel compiled the right way, so never mind the noise =)
RE: More than 8 tuners limit - Added by Stephen Neal over 8 years ago
Yep - the issue is with the standard Linux kernel there is a max limit to the number of DVB adapters that can be installed of 8. I was trying to install 9 (as there are 9 muxes on DVB-T/T2 in London).
Recompiling the kernel with the max DVB adapters setting for 16 (I know I could have gone for 10 or 12 - but 16 felt right!) gives me 9 adapters (adapter0 to adapter 8)
Am using 3 x Dual DVB-T2 PS3 PlayTV modules (a tenner each on eBay) for my 6 DVB-T muxes (PSB1 & PSB2, COM4 & COM5, COM6 & Local) and 3 August T210v1s for the 3 DVB-T2 muxes (PSB3, COM7 and COM8)
I suppose there is no real point to have Local and COM8 (London Live has unwatchable bad picture quality on Local, and COM8 currently just carries QVC HD channels) - but it felt like a neat project. I've actually got them all virtualised using MuMuDVB, with TV Headend adding them as Automatic IPTV tuners (using the playlist.m3u link that MuMuDVB generates for each mux) - as this also allows me to use the same tuners outside of TV Headend.
RE: More than 8 tuners limit - Added by Cassio Simoes over 8 years ago
Hi, newbie here...
Could you describe the steps to recompile the kernel with 16 limit support?
Thanks
RE: More than 8 tuners limit - Added by Cassio Simoes over 8 years ago
I'm using the following kernel:
Linux tvh-2 4.2.0-42-generic #49-Ubuntu SMP Tue Jun 28 21:26:26 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
RE: More than 8 tuners limit - Added by Stephen Neal over 8 years ago
Can't remember exactly - but I followed the guide here : https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel and configured max_dvb_adaptors or whatever the option was called for 16 tuners not 8.