Digital Devices DuoFlex C&T
Overview/Features
* PCI-e x1 (Bridge) * Recieve Dual DVB-C/DVB-T in high definition simultaneously * Independent descrambling of two transponders * DVB-C HDTV H264 decoding * DVB-T SD Mpeg2 decoding * Mixed Mode feature (2x DVB-C / 2x DVB-T / DVB-C & DVB-T)
Identification
PCI id: Multimedia controller: Device dd01:0003
and an extra PCI Bridge: PCI bridge: Intel Corporation N10/ICH 7 Family PCI Express Port 3 (rev 02)
Making it work
Update July 2013: Kernel driver support is a mess! After the driver author (Oliver Endriss aka UFO) submitted to mainline, mainline was refactored in a way which broke the drivers for many devices. For now, the author does not want to work on fixing this, and instead provides instructions on patching in the dev version. This does not always work for the latest kernels. If you are contemplating buying this hardware, prepare for extra frustration before everything works.
[UPDATE May 2013: AFAICT, recent(-ish - after 3.6.x at least) kernels have support for DuoFlex C/T out-of-the box, but if you have a CI you will need the media_build_experimental drivers below. Also a more recent card (miniPCIe, or Cine C/T/S2 card) might require it. So, unless you have a CI, test in-kernel drivers first, then please report here!]
copied from VDR Portal (See Link below)
This uses Sources from: http://linuxtv.org/hg/~endriss/ngene-octopus-test: - ngene: cineS2(v3/v4/v5), SatixS2, PCIe-Bridge, mini PCIe-Bridge - ddbridge: Octopus, Octopus LE, cineS2(v6) - DuoFlex-S2, DuoFlex-CT, CI
and from http://powarman.dyndns.org/hgwebdir.cgi/v4l-dvb-saa716x: - TT S2-6400
Compilable with Kernel 2.6.35 and higher (2.6.30 and below doesn't work for sure).
How to Compile:
1. Download modified media_build:
hg clone http://linuxtv.org/hg/~endriss/media_build_experimental
2. Download Drivers and Compile:
cd media_build_experimental make download make untar
3. optional: deselect unused modules:
make menuconfig
4. Build Drivers
make
5. install modules
make install modprobe ddbridge modprobe ngene
Scanning for Channels
DVB-C:
w_scan -fc -c DE -t 3 -F > channels.dvb
DVB-T:
w_scan -ft -c DE -t 3 -F > channels.dvb
The C/T card has two frontends, frontend0 is QAM for DVB-C and frontend1 is OFDM for DVB-T.
The above incorrect for at least my card, DD Octopus dual C/T card. Both tuners can receive both dvb-c and dvb-t, selectable via software, e.x. dvb-fe-tool. Only one frontend node is created per tuner, residing in /dev/dvb/adapterX depending on which adapter_alloc options was used - by default every tuner will get their own directory, otherwise they will share it with other tuners according to the option and their connection to the bridge (as frontendX, and demuxX).
Adding CI
There's experimental (i.e. might be buggy, annoying and difficult to set up) support for Flex CI in the experimental drivers above. Also, the module needed - cxd2099 - is in staging drivers in current kernels (at least >=3.9.x), but that one seems to not be usable at all since it has not redirect method support.
Copied from vdrportal.de (link below) and from [1]
Redirection of TS streams through CI modules is now supported through /sys/class/ddbridge/ddbridge0/redirect. It only works with cards based on the ddbridge PCIe bridge, not with nGene based cards.
It is set up in such a way that you can write "AB CD" to a "redirect" attribute and data from input B of card A is then piped through port D (meaning TAB (D+1) which uses output D and input 2*D for CI io) of card C and then shows up in the demux device belonging to input B (input (B&1) of TAB (B/2+1)) of card A.
OCTOPUS BRIDGE +----------------+ Tuner 0 -> Input 0 -> | | | Port 0 - TAB 1 | -> Output 0 Tuner 1 -> Input 1 -> | | +----------------+ Tuner 0 -> Input 2 -> | | | Port 1 - TAB 2 | -> Output 1 Tuner 1 -> Input 3 -> | | +----------------+ Tuner 0 -> Input 4 -> | | | Port 2 - TAB 3 | -> Output 2 Tuner 1 -> Input 5 -> | | +----------------+ Tuner 0 -> Input 6 -> | | | Port 3 - TAB 4 | -> Output 3 Tuner 1 -> Input 7 -> | | +----------------+
One can redirect currently one input to the CAM (or other, if several are installed) by:
echo "00 01" > /sys/class/ddbridge/ddbridge0/redirect
This will work for Input 0 if there's a CAM in Output 1 (TAB2). Note:: (Currently) you need to do this right after loading modules after reboot, before using the tuners in any way.
To find out your Input and Output numbers, look for this in dmesg:
DDBridge driver detected: Digital Devices Octopus DVB adapter HW 00010004 REG 00010001 DDBridge 0000:02:00.0: irq 44 for MSI/MSI-X Port 0 (TAB 1): DUAL DVB-C/T Port 1 (TAB 2): NO MODULE Port 2 (TAB 3): CI Port 3 (TAB 4): NO MODULE
To have device nodes in a usable configuration for software, see adapter_alloc parameter. For example, put this in modprobe.d/ddbridge.conf:
options ddbridge adapter_alloc=3
See also
- LinuxTV - driver patches
- Ubuntu PPA (dkms package)
- DDTuner.zip - System Driver
- Digital-Devices - manufacturer website
- VDR Portal - Driver installation Howto