DViCO have released two variants of the FusionHDTV Dual4 tuner card. This little tutorial relates to Revision 2 of the board, which is basically just a USB PCI-card with two USB tuners on it.
Firstly we need to get Mercurial installed, along with a few other bits and bobs. Mercurial is a version control programme. Apt-get will install it, along with required dependencies. Note that they are back-ticks around uname -r, not apostrophes.
# sudo apt-get install mercurial gcc build-essential linux-headers-`uname -r`
Navigate through to your home directory:
# cd ~
Clone the v4l-dvb tree
# hg clone http://www.linuxtv.org/hg/v4l-dvb
This may take a while, depending on several things. Next we need to change to the v4l-dvb directory and compile/install the v4l drivers.
# cd v4l-dvb # make # sudo make install
Reboot and the card should now be fully functional, recognised as two separate tuners.
Next you need to configure LIRC to use the IR-receiver in the TV-card. Find out which event it's connected to by running
dmesg |grep IR-receiver
It should bring up two lines ending in /input/input and then two different numbers. Pick one of them - it doesn't matter which.
You now need to edit /etc/lirc/hardware.conf
REMOTE="Custom" REMOTE_DRIVER="devinput" REMOTE_DEVICE="/dev/input/event7" LOAD_MODULES="true"
Change the 7 to whatever number you decided on from the two that dmesg offered.
Put the following into /etc/lirc/lircd.conf
begin remote name DVICO_DUAL_TUNER bits 16 eps 30 aeps 100 one 0 0 zero 0 0 pre_data_bits 16 pre_data 0x1 gap 199991 toggle_bit_mask 0x16000000 toggle_bit 0 begin codes ok 0x0160 up 0x067 down 0x06C left 0x069 right 0x06A setup 0x008D guide 0x016D dtv 0x0179 mp3 0x0187 dvd 0x0185 profile 0x016C back 0x009E 1 0x0002 2 0x0003 3 0x0004 4 0x0005 5 0x0006 6 0x0007 7 0x0008 8 0x0009 9 0x000A 0 0x000B return 0x001C vol_up 0x0073 vol_down 0x0072 ch_up 0x0192 ch_down 0x0193 pc_off 0x0074 tv_off 0x0164 replay 0x00A5 skip 0x00A3 mute 0x0071 open 0x0086 info 0x0166 live_tv 0x0182 rec 0x00A7 dvd_menu 0x008B snapshot 0x00D4 alt_tab 0x000F screen 0x0174 play 0x00A4 stop 0x0080 rew 0x00A8 ff 0x00D0 screen 0x0174 16:9_4:3 0x0173 end codes end remote
If the remote works (check by running irw at a command prompt and press a few buttons on the remote), but only the number-keys and the arrows work, you need to stop HAL from taking control of the IR-receiver.
Navigate through to /usr/share/hal/fdi/preprobe/20thirdparty and check what files are there. It's likely that there is a lirc.fdi file there. It needs to be edited. The existing lirc.fdi is very similar to this, just the contains_ncase=“IR-receiver” is different.
<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
<device>
<match key="info.product" contains_ncase="IR-receiver">
<merge key="info.ignore" type="bool">true</merge>
</match>
</device>
</deviceinfo>
You should now have full remote-control capabilities (check again with irw).
You now need to assign keyboard keys to the buttons on the remote.
Under your profile /home/username there will be a hidden file called .lircrc
Mine looks like this - note that some buttons aren't mapped:
begin remote = DVICO_DUAL_TUNER prog = mythtv button = ok config = Return repeat = 0 delay = 0 end begin remote = DVICO_DUAL_TUNER prog = mythtv button = up config = Up repeat = 0 delay = 0 end begin remote = DVICO_DUAL_TUNER prog = mythtv button = down config = Down repeat = 0 delay = 0 end begin remote = DVICO_DUAL_TUNER prog = mythtv button = left config = Left repeat = 0 delay = 0 end begin remote = DVICO_DUAL_TUNER prog = mythtv button = right config = Right repeat = 0 delay = 0 end begin remote = DVICO_DUAL_TUNER prog = mythtv button = setup config = S repeat = 0 delay = 0 end begin remote = DVICO_DUAL_TUNER prog = mythtv button = guide config = G repeat = 0 delay = 0 end begin remote = DVICO_DUAL_TUNER prog = mythtv button = dtv config = d repeat = 0 delay = 0 end begin remote = DVICO_DUAL_TUNER prog = mythtv button = mp3 config = m repeat = 0 delay = 0 end begin remote = DVICO_DUAL_TUNER prog = mythtv button = dvd config = v repeat = 0 delay = 0 end begin remote = DVICO_DUAL_TUNER prog = mythtv button = profile config = p repeat = 0 delay = 0 end begin remote = DVICO_DUAL_TUNER prog = mythtv button = back config = backspace repeat = 0 delay = 0 end begin remote = DVICO_DUAL_TUNER prog = mythtv button = 0 config = 0 repeat = 0 delay = 0 end begin remote = DVICO_DUAL_TUNER prog = mythtv button = 1 config = 1 repeat = 0 delay = 0 end begin remote = DVICO_DUAL_TUNER prog = mythtv button = 2 config = 2 repeat = 0 delay = 0 end begin remote = DVICO_DUAL_TUNER prog = mythtv button = 3 config = 3 repeat = 0 delay = 0 end begin remote = DVICO_DUAL_TUNER prog = mythtv button = 4 config = 4 repeat = 0 delay = 0 end begin remote = DVICO_DUAL_TUNER prog = mythtv button = 5 config = 5 repeat = 0 delay = 0 end begin remote = DVICO_DUAL_TUNER prog = mythtv button = 6 config = 6 repeat = 0 delay = 0 end begin remote = DVICO_DUAL_TUNER prog = mythtv button = 7 config = 7 repeat = 0 delay = 0 end begin remote = DVICO_DUAL_TUNER prog = mythtv button = 8 config = 8 repeat = 0 delay = 0 end begin remote = DVICO_DUAL_TUNER prog = mythtv button = 9 config = 9 repeat = 0 delay = 0 end begin remote = DVICO_DUAL_TUNER prog = mythtv button = return config = m repeat = 0 delay = 0 end begin remote = DVICO_DUAL_TUNER prog = mythtv button = vol_up config = ] repeat = 0 delay = 0 end begin remote = DVICO_DUAL_TUNER prog = mythtv button = vol_down config = [ repeat = 0 delay = 0 end begin remote = DVICO_DUAL_TUNER prog = mythtv button = ch_up config = PgUp repeat = 0 delay = 0 end begin remote = DVICO_DUAL_TUNER prog = mythtv button = ch_down config = PgDown repeat = 0 delay = 0 end begin remote = DVICO_DUAL_TUNER prog = mythtv button = pc_off config = repeat = 0 delay = 0 end begin remote = DVICO_DUAL_TUNER prog = mythtv button = tv_off config = repeat = 0 delay = 0 end begin remote = DVICO_DUAL_TUNER prog = mythtv button = replay config = < repeat = 0 delay = 0 end begin remote = DVICO_DUAL_TUNER prog = mythtv button = skip config = > repeat = 0 delay = 0 end begin remote = DVICO_DUAL_TUNER prog = mythtv button = mute config = | repeat = 0 delay = 0 end begin remote = DVICO_DUAL_TUNER prog = mythtv button = open config = o repeat = 0 delay = 0 end begin remote = DVICO_DUAL_TUNER prog = mythtv button = info config = i repeat = 0 delay = 0 end begin remote = DVICO_DUAL_TUNER prog = mythtv button = live_tv config = l repeat = 0 delay = 0 end begin remote = DVICO_DUAL_TUNER prog = mythtv button = rec config = repeat = 0 delay = 0 end begin remote = DVICO_DUAL_TUNER prog = mythtv button = dvd_menu config = q repeat = 0 delay = 0 end begin remote = DVICO_DUAL_TUNER prog = mythtv button = snapshot config = repeat = 0 delay = 0 end begin remote = DVICO_DUAL_TUNER prog = mythtv button = alt_tab config = repeat = 0 delay = 0 end begin remote = DVICO_DUAL_TUNER prog = mythtv button = play config = p repeat = 0 delay = 0 end begin remote = DVICO_DUAL_TUNER prog = mythtv button = stop config = Esc repeat = 0 delay = 0 end begin remote = DVICO_DUAL_TUNER prog = mythtv button = rew config = , repeat = 0 delay = 0 end begin remote = DVICO_DUAL_TUNER prog = mythtv button = ff config = . repeat = 0 delay = 0 end begin remote = DVICO_DUAL_TUNER prog = mythtv button = screen config = repeat = 0 delay = 0 end begin remote = DVICO_DUAL_TUNER prog = mythtv button = 16:9_4:3 config = Ctrl+W repeat = 0 delay = 0 end