Category Archives: MythTV

Hauppauge Nova-S-Plus and the 22KHz tone

Yes, this works:

http://www.whizzy.org/2010/08/hauppauge-wintv-nova-s-plus-on-linux/

I downloaded the patch from https://bugzilla.kernel.org/show_bug.cgi?id=9476 where it's included as the attachment at the top of the page.  For the record, the patch is this:

--- isl6421.c	2009-06-12 11:25:45.000000000 +0200
+++ isl6421.c	2009-06-12 14:16:52.000000000 +0200
@@ -89,6 +89,30 @@
 	return (i2c_transfer(isl6421->i2c, &msg, 1) == 1) ? 0 : -EIO;
 }
 
+static int isl6421_set_tone(struct dvb_frontend* fe, fe_sec_tone_mode_t tone)
+{
+    struct isl6421 *isl6421 = (struct isl6421 *) fe->sec_priv;
+    struct i2c_msg msg = {    .addr = isl6421->i2c_addr, .flags = 0,
+                	      .buf = &isl6421->config,
+              		      .len = sizeof(isl6421->config) };
+
+    switch (tone) {
+    case SEC_TONE_ON:
+        isl6421->config |= ISL6421_ENT1;
+        break;
+    case SEC_TONE_OFF:
+        isl6421->config &= ~ISL6421_ENT1;
+        break;
+    default:
+        return -EINVAL;
+    }
+
+    isl6421->config |= isl6421->override_or;
+    isl6421->config &= isl6421->override_and;
+
+    return (i2c_transfer(isl6421->i2c, &msg, 1) == 1) ? 0 : -EIO;
+}
+
 static void isl6421_release(struct dvb_frontend *fe)
 {
 	/* power off */
@@ -130,6 +154,7 @@
 
 	/* override frontend ops */
 	fe->ops.set_voltage = isl6421_set_voltage;
+	fe->ops.set_tone = isl6421_set_tone;
 	fe->ops.enable_high_lnb_voltage = isl6421_enable_high_lnb_voltage;
 
 	return fe;
  1. Get set up for compiling a kernel (there's documentation on the net about how to do that for your system).  Compile and install a 'vanilla' kernel to prove that it will work before applying the patch.
  2. cd /usr/src/linux/drivers/media/dvb/frontends
  3. patch < whatever/you/saved/the/patch
  4. recompile the kernel, reboot to use it, and then try to scan the extra transports using 'scan' or mythtv-setup or whatever.

(This post isn't finished yet)

MythTV vs lircd

I’ve got an IR receiver plugged in to the serial port, which works with minimyth, but lircd keeps saying
Jan 2 18:33:32 theboxhd lircd-0.8.6[2516]: caught signal
Jan 2 18:33:32 theboxhd lircd-0.8.6[2516]: closing '/dev/lirc0'
Jan 2 18:33:32 theboxhd lircd-0.8.6[3144]: lircd(devinput) ready, using /var/run/lirc/lircd
Jan 2 18:33:34 theboxhd lircd-0.8.6[3144]: accepted new client on /var/run/lirc/lircd
Jan 2 18:33:34 theboxhd lircd-0.8.6[3144]: initializing '/dev/lirc0'
Jan 2 18:33:34 theboxhd lircd-0.8.6[3144]: can't get exclusive access to events coming from `/dev/lirc0' interface

so I followed the instructions at http://www.lirc.org/html/devinput.html to make HAL ignore the IR device (in fact it will ignore any serial device) by creating the following in a new file called /etc/hal/fdi/preprobe/10-ignore-lirc.fdi:






true


(after getting clues about what key to use from lshal).
Restarting hal and running lshal confirms that HAL is now ignoring the IR device.
Restarting lirc … gives the same result as before. It still doesn’t have exclusive access to /dev/lirc0. Even after a reboot.

MythTV — getting the cards in the right order

Solved the problem without resorting to udev using the info on the MythTV wiki.

And added my solution to that wiki page. Copied here:

Another example (added November 2009, using MythTV 0.22 with a 2.6.31 kernel): a backend with two Hauppauge Nova-S-Plus DVB-S cards and a Hauppauge Nova-T 500 Dual DVB-T card. Adding these module options to /etc/modprobe.d/dvb.conf:

options cx88-dvb adapter_nr=0,1
options dvb-usb-dib0700 force_lna_activation=1 adapter_nr=2,3

makes sure that the DVB-S cards are always adapters 0 and 1, and the DVB-T card’s dual tuners show up as adapters 2 and 3. This is confirmed in the system log, where the adapters are numbered correctly despite being detected in a different order:

$ dmesg | grep "registering adapter"
[    7.163022] DVB: registering adapter 2 frontend 0 (DiBcom 3000MC/P)...
[    9.840541] DVB: registering adapter 0 frontend 0 (Conexant CX24123/CX24109)...
[    9.841996] DVB: registering adapter 1 frontend 0 (Conexant CX24123/CX24109)...
[   10.522401] DVB: registering adapter 3 frontend 0 (DiBcom 3000MC/P)...