У меня есть (немного старая, но все еще рабочая) аналогово-цифровая карта тюнера Hauppauge WinTV-HVR-1110. Я не пользовался ею много лет, но помню, что в Ubuntu 10.04 она прекрасно работала в Linux. Недавно я ее откопал и хочу использовать для записи VHS-кассет через свой старый видеомагнитофон.
Я нашелруководство по HVR-1110 на сайте LinuxTV. Но он был написан для версии 14.04 и предлагает выполнить (среди прочих команд):
sudo apt-get install linux-firmware-nonfree
Который у меня не работает на 16.04. Пакета больше нет linux-firmware-nonfree
. Похоже, его удалили из репозиториев.
Как мне установить и запустить тюнер в версии 16.04?
решение1
Я понял это, в основном основываясь напредыдущая ссылка на страницу LinuxTVно с несколькими измененными шагами.
Примечание: это относится конкретно к карте HVR-1110, но, вероятно, применимо и к другим подобным типам тюнеров.
1. Физически установите карту.
Очевидно, что карта должна быть установлена в слот PCI вашего компьютера. Убедитесь, что вы выключили его, прежде чем сделать это.
Мне также нравится выключать блок питания с помощью его выключателя, но оставлять сам кабель подключенным. Теоретически это должно означать, что земля все еще подключена, но питание не может включиться. Вы бы хотели, чтобы земля была подключена, чтобы уменьшить вероятность поджарить что-нибудь статическим зарядом.
2. Проверьте драйвер saa7134
Драйвер saa7134 должен загрузиться автоматически, вы можете проверить это с помощью:
$ sudo modprobe -r saa7134
Что должно вернуть:
modprobe: FATAL: Module saa7134 is in use.
Это сообщение об ошибке указывает на то, что модуль уже загружен (и не может быть загружен повторно), что свидетельствует о доступности модуля.
Введите следующую команду, чтобы убедиться, что карта WinTV HVR-1110 зарегистрирована как устройство:
$ sudo dmesg | grep "saa"
Что должно дать что-то похожее на
[ 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
Здесь мы видим, что система ищет dvb-fe-tda10046.fw
файл, но не может его найти.
Если вы используете немного другую карту, вывод выше может дать вам подсказку о том, какой файл вам нужен. Вы можете изменить следующий шаг, чтобы получить нужный вам файл вместо файла для HVR-1110.
3. Загрузите пакет linux-firmware-nonfree
Пакета linux-firmware-nonfree
больше нет в репозиториях, я не совсем уверен, почему, но я читал что-то, что предполагает, что он может быть несовместим с новыми версиями ядра. Так что, вероятно, мы не хотим устанавливать весь пакет. К счастью, нам нужен только один файл прошивки из него - так что мы можем установить только его.
Давайте возьмем пакет из архива Launchpad и вытащим файл dvb-fe-tda10046.fw
.
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
Теперь скопируем файл прошивки туда, где он должен быть:
sudo cp dvb-fe-tda10046.fw /lib/firmware
Теперь мы можем удалить его из нашей папки загрузок.
rm dvb-fe-tda10046.fw
4. Перезагрузка
На этом этапе вам придется перезапустить систему.
После резервного копирования вы сможете запустить это и увидеть, что прошивка загрузилась:
$ 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
Успех! Теперь это все, что вам нужно для установки карты. Вы можете использовать любой понравившийся вам инструмент DVB для сканирования и настройки телепередач - я не буду повторять многочисленные руководства, доступные для этого, но выможно начать здесь.
Бонус: Аналоговая запись
Я специально хотел записывать с аналогового входа. Мне пришлось немного повозиться, чтобы наконец разобраться, поэтому я поделюсь командой, которая сработала у меня с HVR-1110.
Во-первых, TVTime оказался действительно полезен для просмотра аналогового входа тюнера, поэтому установите его с помощью:
sudo apt install tvtime
Затем вы можете просто запустить TVTime из Dash, вы должны иметь возможность выбрать «Composite1» в качестве входа.
Для записи я попробовал несколько вещей, но обнаружил, что это работает достаточно хорошо:
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
Вам понадобится mencoder
установить.
Это выгрузит сырой видеофайл uyvy, который можно будет воспроизвести в VLC, но он не будет сжат. Он займет много места на диске (мой использовал около 1 ГБ в минуту). Затем вам придется использовать кодек по вашему выбору для сжатия, вы можете сделать это с помощью ffmpeg. Также можно будет напрямую кодировать с помощью mencoder, если вы предпочитаете.