Eu tenho uma placa sintonizadora analógica/digital Hauppauge WinTV-HVR-1110 (um pouco antiga agora, mas ainda funcionando). Não o uso há anos, mas lembro que no Ubuntu 10.04 ele funcionava bem no Linux. Recentemente, descobri-o e quero usá-lo para gravar algumas fitas VHS em meu antigo videocassete.
Achei umguia para o HVR-1110 no site LinuxTV. Mas foi escrito para 14.04 e diz para executar (entre outros comandos):
sudo apt-get install linux-firmware-nonfree
O que não funciona para mim em 16.04. Não há linux-firmware-nonfree
mais pacote. Parece que foi removido dos repositórios.
Como posso instalar a placa sintonizadora e executá-la em 16.04?
Responder1
Eu descobri isso, principalmente com base nolink anterior para a página LinuxTVmas com algumas etapas modificadas.
Nota: Isto é especificamente para a placa HVR-1110 - mas provavelmente pode se aplicar a outros tipos semelhantes de placa sintonizadora.
1. Instale fisicamente a placa
Obviamente a placa precisa ser instalada no slot PCI da sua máquina. Certifique-se de desligá-lo antes de fazer isso.
Também gosto de desligar a fonte de alimentação no interruptor, mas deixar o cabo conectado. Em teoria, isso deveria significar que o aterramento ainda está conectado, mas a energia não pode ser ligada. Você gostaria que a terra estivesse conectada para reduzir a chance de fritar algo com carga estática.
2. Teste o driver saa7134
O driver saa7134 deve ser carregado automaticamente, você pode verificar isso com:
$ sudo modprobe -r saa7134
O que deve retribuir:
modprobe: FATAL: Module saa7134 is in use.
Esta mensagem de erro indica que o módulo já foi carregado (e não pode ser recarregado), indicando que o módulo está disponível.
Emita o seguinte comando para validar se a placa WinTV HVR-1110 foi registrada como um dispositivo:
$ sudo dmesg | grep "saa"
O que deve dar algo semelhante a
[ 4.061052] saa7134: saa7130/34: v4l2 driver version 0, 2, 17 loaded
...
[ 4.061175] saa7134: saa7133[0]: subsystem: 0070:6700, board: Hauppauge WinTV-HVR1110 DVB-T/Hybrid [card=104,autodetected]
...
[ 8.890761] saa7134 0000:06:01.0: DVB: registering adapter 0 frontend 0 (Philips TDA10046H DVB-T)...
[ 14.099329] saa7134 0000:06:01.0: Direct firmware load for dvb-fe-tda10046.fw failed with error -2
[ 14.099338] saa7134 0000:06:01.0: Direct firmware load for dvb-fe-tda10045.fw failed with error -2
Aqui podemos ver que o sistema está procurando o dvb-fe-tda10046.fw
arquivo, mas não consegue encontrá-lo.
Se você estiver usando um cartão ligeiramente diferente, a saída acima poderá lhe dar uma pista sobre o arquivo que você precisa. Você pode modificar a etapa a seguir para fornecer o arquivo necessário em vez daquele do HVR-1110.
3. Baixe o pacote linux-firmware-nonfree
O linux-firmware-nonfree
pacote não está mais nos repositórios, não sei bem por que, mas li algo sugerindo que pode ser incompatível com versões mais recentes do kernel. Portanto, provavelmente não queremos instalar o pacote inteiro. Felizmente, só precisamos de um único arquivo de firmware - para que possamos instalar exatamente isso.
Vamos pegar o pacote de um arquivo do Launchpad e extrair o dvb-fe-tda10046.fw
arquivo.
cd ~/Downloads
wget http://launchpadlibrarian.net/182181877/linux-firmware-nonfree_1.16_all.deb
ar p linux-firmware-nonfree_1.16_all.deb data.tar.xz | unxz | tar x ./lib/firmware/dvb-fe-tda10046.fw --strip-components=3
Agora vamos copiar o arquivo do firmware para onde ele precisa estar:
sudo cp dvb-fe-tda10046.fw /lib/firmware
Agora podemos removê-lo da nossa pasta de downloads
rm dvb-fe-tda10046.fw
4. Reinicialize
Você precisará reiniciar neste ponto.
Depois de fazer o backup, você poderá executar isso e ver que o firmware foi carregado:
$ sudo dmesg | grep "tda1004x"
[ 9.134105] tda1004x: setting up plls for 48MHz sampling clock
[ 11.534099] tda1004x: timeout waiting for DSP ready
[ 11.594099] tda1004x: found firmware revision 0 -- invalid
[ 11.594100] tda1004x: trying to boot from eeprom
[ 13.982081] tda1004x: timeout waiting for DSP ready
[ 14.082077] tda1004x: found firmware revision 0 -- invalid
[ 14.082079] tda1004x: waiting for firmware upload...
[ 33.314053] tda1004x: found firmware revision 29 -- ok
Sucesso! Agora isso deve ser tudo que você precisa para instalar a placa. Você pode usar qualquer ferramenta DVB que desejar agora para digitalizar e sintonizar transmissões de TV - não vou repetir os muitos guias disponíveis para isso, mas vocêpoderia começar aqui.
Bônus: gravação analógica
Eu queria especificamente gravar a partir da entrada analógica. Demorei um pouco para finalmente descobrir isso, então compartilharei o comando que funcionou para mim com o HVR-1110.
Em primeiro lugar, o TVTime foi realmente útil para visualizar a entrada analógica do sintonizador, então instale-o com:
sudo apt install tvtime
Então você pode simplesmente executar o TVTime a partir do Dash, você poderá selecionar "Composite1" como entrada.
Para registrar, tentei algumas coisas, mas descobri que funcionou bem:
sudo nice --10 mencoder tv:// -v -tv driver=v4l2:norm=PAL:width=720:height=576:outfmt=uyvy:device=/dev/video0:input=1:fps=25:buffersize=500:alsa:amode=1:forcechan=2:audiorate=48000:adevice=plughw.SAA7134:forceaudio:immediatemode=0 -ovc raw -vf format=uyvy -aspect 4:3 -noautoexpand -oac pcm -o /home/sean/Videos/VCR4.avi
Você precisará mencoder
instalado.
Isso irá despejar um arquivo de vídeo uyvy bruto, que poderá ser reproduzido no VLC, mas não será compactado. Ocupará muito espaço em disco (o meu usou cerca de 1 GB por minuto). Você terá então que usar o codec de sua escolha para compactá-lo. Você pode fazer isso com o ffmpeg. Também seria possível codificar diretamente com o mencoder, se preferir.