После публикации статьи «Девайсы и аусвайсы» (см. МК №41(212)) мой почтовый ящик опустел. Очевидно, читатели закачивали драйвера, устанавливали патчи, читали HOWTO, в общем, занимались обычным для пользователя Linux делом. Затем пришло осторожное письмо, мол, забыл я описать настройку ТВ-тюнера. Да не забыл вовсе, нет у меня такого девайса, я и телевизор по причине занятости смотрю редко. Поэтому и не считаю данное устройство таким уж необходимым в хозяйстве. В следующем письме уже прозвучало требование рассказать, как же его настроить. После третьего я уже думал, как же много тюнеров развелось у народа. Единственный выход из такой ситуации это удовлетворить требования пользователя, пока совсем не закидали мой почтовый ящик. Стал я думать, как же выйти из такой ситуации. Все дело в том, что мои знакомые делятся, как назло, на два лагеря: у одних Linux, а у других TВ-тюнер, и никого не переманишь в противоположный. Ну что ж, пошел я к своему другу, захватив по дороге пару веских аргументов. Я не скажу, что он просиял от моей идеи, но под влиянием принесенных аргументов оттаял и после последнего сдался. Так я получил во временное пользование AverТV Studio.
Установка прошла на удивление без осложнений, без применения заранее запасенной дрели и молотка. Единственный минус в том, что до кабеля наружной ТВ-антенны далековато, и пришлось ставить комнатную, что добавило мучений впоследствии. Дело в том, что сигнал с комнатной антенны и так получался слабый, а для внутреннего TВ-тюнера ситуация осложняется его довольно низкой чувствительностью. Но запускаем Linux. Проснувшийся демон kudzu объявил, что он нашел карту видеозахвата. И все? А где сам ТВ-тюнер, а где FM-тюнер? Ну ладно, разберемся сами.
Посмотрим, что есть в системе для работы с данным типом устройств. Помучивши различными вариантами запросов всеведущие apropos и find, я обнаружил, что не так уже и много. Но в процессе поиска нашелся каталог с документацией, расположенный в /usr/src/linux-2.4.18-3/Documentation/video4linux. Запомните выражение «video4linux» пригодится для поиска информации, оно встречалось в Интернете повсеместно. В данном каталоге можно найти всю необходимую информацию о ручной настройке TВ-тюнера, разобраться с маркировкой чипов, на которых они построены. Первоначально почитайте все файлы readme в каталоге btТV, в них кратко описан процесс настройки. Но один момент понятен сразу, наличие данного каталога свидетельствует о том, что ядро поддерживает такие девайсы, и все может обойтись без поиска патчей, а так как поддержка всех возможных устройств включена в ядро по умолчанию, то и без перекомпиляции. Может, года два назад я бы и ринулся сразу в бой, но нынче Linux стал более приближен к пользователю, и потому я надеялся сперва найти в Интернете какую-нибудь программку, автоматизирующую данный процесс. У каждого Linux'оида есть свой сайт, с которого он начинает поиск необходимых программ в Интернете; кто поначалу заходит на http://www.freshmeat.net, кто на http://www.linuxlinks.com, я начинаю с http://linux.tucows.com. Итак, набрав в строке браузера необходимую ссылку, я погрузился в недра Мировой Сети. И нашлась такая программка, называется она gcbtТV (http://sgulsuner.hypermart.net). Она представляет собой скрипт на языке Perl, распакуйте и запустите его (под root) ./gcbtТV, или, если не получится, # perl ./gcbtТV и вы увидите окно программы (Рис. 1). В начале своей работы программа должна создать необходимые файлы устройств /dev/video*, если не получилось, то создайте их вручную с помощью скрипта MAKEDEV, находящегося в каталоге с документацией. Для тестирования результата данный скрипт использует программу просмотра телевидения xawТV, которую включает в основной дистрибутив каждый производитель. Поэтому сначала необходимо настроить ее. Для этого создайте в домашнем каталоге файл .xawТV такого содержания (дополнительные опции, как всегда, в man xawТV):
Последний параметр необязательный, он указывает на телевизионный канал. Разобраться с работой программы gcbtТV не составит труда, но дело вот в чем: не получилось у меня настроить с ее помощью работу. Поэтому, вздохнув, принялся за чтение документации. Из нее стало ясно, что тем, у кого ядро ниже версии 2.3.34, необходимо посетить сайт http://www2.lm-sensors.nu/~lm78/download.html, где необходимо скачать более новую версию модуля i2c, а потом отправиться за модулем btТV на http://bytesex.org/btТV.
Вся дальнейшая работа заключается в подборе соответствующих модулей ядра. Для начала выполните команды #/sbin/modprobe i2c-dev и /sbin/modprobe tuner type=3. Последняя требует некоторого объяснения. Откройте файл Cardlist в каталоге с документацией, найдите раздел, начинающийся с tuner.o. Вот это и есть необходимые модули для определения марки тюнера. Четвертой по списку идет такая запись: type=3 Philips SECAM. Как вы знаете, в нашей стране принят стандарт вещания SECAM, поэтому и был выбран данный модуль; если работа не пойдет, то посмотрите в списке еще номера 22 и 24, больше упоминания о SECAM в файле нет. Следующим этапом попробуем найти модуль, нужный btТV. Теперь смотрим в начало списка (btТV.o). Вот здесь уже практически никаких подсказок разве что название может промелькнуть, совпадающее с маркой тюнера. Поэтому подбирайте по порядку с первого /sbin/modprobe btТV card=1. Теперь запустите в другом терминале известную уже программу xawТV и поковыряйтесь с настройкой каналов с помощью кнопок «вверх-вниз». Если не получилось, выгружайте модуль btТV #/sbin/rmmod btТV и загружайте следующий, и так до победного конца. У меня нормально заработало на 1 и, как ни странно, на 42, на других изображение либо было неустойчивым, либо черно-белым. О дополнительных опциях загружаемых модулей можно прочитать в файле Insmod-options; например, для того чтобы автоматически отключался звук при пропадании телевизионного сигнала, можно добавить опцию аutomute=1 к модулю btТV. С изображением разобрались, а вот звука пока нет. Как стало понятно из документации, некоторые модели тюнеров имеют отдельный декодер звука, модули к которому необходимо загружать отдельно. Но с этим вопросом мне повезло больше открыв файл Cards (в нем можно найти список всех тюнеров, поддерживаемых на данный момент), я нашел следующие строки:
Позиция Sound как раз и указывает на используемый декодер, поэтому его и загружаем: #/sbin/modprobe ТVaudio tda9840=1. И звук заработал. Если у вас другая модель тюнера, то просмотрите в файле Insmod-options остальные модели декодеров звука и пробуйте загрузить их по порядку.
Но загружать вручную модули дело хлопотное и идеологически неправильное. Для того чтобы соответствующие модули загружались автоматически при загрузке системы, добавьте соответствующие строки в файл /etc/modules.conf, взяв за образец файл Modules.conf, находящийся в каталоге с документацией, просто добавив в него номер используемого тюнера, btТV и модель декодера звука:
Теперь перезагрузитесь и проверьте; если все прошло успешно, самое время выяснить, какие можно использовать программы для просмотра теле- и радиопередач. Обзор будет кратким, так как у меня за столь короткое время не созрели собственные требования к такого рода программам, к тому же некоторые отказались компилироваться, а разбираться времени не было. Как говорится, дружба дружбой, но чужой девайсик долго у себя задерживать просто не люблю. Итак, первая уже упоминавшаяся xawТV (Рис. 2). Позволяющая кроме просмотра ТВ-программ, снять копию экрана одним нажатием клавиши. Да, управлять работой программы удобнее с помощью горячих клавиш (их описание можно найти в man'e), но можно и с помощью меню Options (Рис. 3). В придачу к ней существует утилитка scanТV, предназначенная для автоматического поиска программ, после запуска задающая вопросы о регионе (ставьте europe-east) и о формате вещания, после сканирования создает тот самый файл .xawТV. Недалеко от нее отошла программка opТV. Следующая программа, заслуживающая внимания GnomeТV (Рис. 4), позволяющая дополнительно просматривать телетекст, но, как я понял из релиза, уже два года ей никто не занимался. Одной из наиболее функциональных и удобных в использовании программ на сегодняшний день (из тех, которые я нашел) является kwinТV. Но под KDE3 ее удалось установить с большим скрипом, и все равно она вылетала через секунду после своего запуска. Это вообще сейчас распространенная проблема: многие программы, отлично работавшие раньше, сейчас трудно установить, так как системой используются совсем другие библиотеки, библиотеки же совместимости, имеющиеся в моем Red Hat'e, не всегда помогают. А самая продвинутая программа называется Zapping. Она построена по модульному принципу, это позволяет подключить к ней все что угодно. Так же, как и предыдущая, поддерживает Lirc (Linux Infrared Remote Control ПО, позволяющее пользоваться пультом дистанционного управления), умеет сохранять передачи в формате .avi и имеет расширенный встроенный VBI-декодер. Найти ее можно по адресу http://zapping.sourceforge.net/download.php, там же есть подробное описание упоминаемого декодера. Есть интересная, но бесполезная программа aaТV, выводящая изображение с помощью букв и цифр (Рис. 5). А для захвата изображения лучше всего использовать программу btТVgrab. Для тех, кто имеет встроенный FM-тюнер и хочет услышать из него хоть какой-то звук, самое время воспользоваться программами rdj, radiodj, xmradio, gtuner и kmyradio. Последние две, наверное, самые лучшие. Все, на этом краткий обзор заканчиваю.
Впрочем, когда я уже хотел относить тюнер, вдруг вспомнил о том, что в рекламе AltLinux особенно давили на мультимедийную направленность, причем отмечалась поддержка как раз рассматриваемых устройств. Соблазн проверить работу в каком-нибудь другом дистрибутиве я не смог преодолеть и потому потратил час на установку. Под рукой у меня оказался, только не смейтесь AltLinux 1.1 Junior. Да, продвинутые линуксоиды его и за дистрибутив то не считают, один даже написал, что как будто перешел с Запорожца на Мерседес, сменив его. От себя могу сказать, что задачи, для которых он выпущен, т.е. завершенность, легкость в установке и использовании для непродвинутого пользования, а также упор на офисность и мультимедийность и вообще все необходимое для того, чтобы заменить Windows в офисе и дома без необходимости начального изучения системы (а Linux надо изучать) он выполняет на все сто. Конечно, он не подходит для разработки программ и установки на сервер. Это, кстати, и написано на коробке. А для разработчиков ко второй версии прилагается дополнительный developer-диск. Так вот, загрузился, набрал в командной строке #xawТV. И что вы думаете? Запустилась программа scanТV, после окончания работы которой я уже смотрел телепередачи. И все. Вспомнив два дня, проведенные в борьбе с системой, честно говоря, начинаешь задумываться о переходе на локализованные дистрибутивы.
Вот в принципе и все, что я успел накопать за время общения с данным устройством. Дальше, думаю, сможете разобраться сами. Отдельно хочу отметить, что web-камеры у меня тоже нет :-), но принцип поиска и настройки здесь аналогичен. Отдельно хочу выразить благодарность своему лучшему другу Александру Житнюку за предоставленный для испытания тюнер.