Por si alguien tiene los mismos problemas que yo, dos cosas importantes:
- Es necesario cargar un firmware para la capturadora durante el arranque. En Ubuntu, esto se consigue instalando el paquete linux-firmware-nonfree.
- El módulo de la capturadora tiene un bug: si un programa intenta acceder a ella antes de que se haya cargado el firmware, no podrá y la capturadora se quedará 'tonta' hasta que no vuelvas a reiniciar el ordenador. En mi caso, uso tvheadend y este arranca al inicio, jodiendo el tema. En mi caso para solucionarlo he desactivado el arranque automático y en su lugar lo he sustituido por un script en bash que comprueba que se ha cargado el firmware correctamente y entonces lanza tvheadend. Para ello sigue los siguientes pasos:
# update-rc.d -f apache2 remove
Crea el siguiente script, yo lo he puesto en /opt/tvheadend.sh
#!/bin/bash
# Ejecutar tvheadend SOLO despues de haber cargado el firmware en la
# en la tarjeta de video
regex="tda1004x: found firmware revision .. -- ok"
for i in 1 2 3 4 5
do
a=$(dmesg)
if [[ $a =~ $regex ]]
then
echo "Firmware loaded. Booting tvheadend..."
/usr/bin/tvheadend -f -u hts -g video
exit 0
fi
echo "Firmware not loaded. Waiting 1 sec."
$(sleep 5)
done
echo "Firmware not loaded."
exit 0
Si usas una distribución distinta, o un backend de TV distinto a tvheadend, simplemente tienes que cambiar la linea "/usr/bin/tvheadend -f -u hts -g video" por el comando necesario para arrancar el backend.
Luego tienes que hacer que el script sea ejecutable:
chmod +x /opt/tvheadend.sh
Y por último, se ha de llamar a este script en el arranque, por lo que has de añadirlo al archivo /etc/rc.local, que podría quedar así:
#!/bin/sh -eVolviendo a arrancar, tvheadend podrá acceder a la capturadora sin problemas.
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
/opt/tvheadend.sh
exit 0