Всем любителям ОГРОМНЫХ и красивых пультов посвещается...
Compro VideoMate M1F http://www.comprousa.com/russian/product/m1f/m1f.htmlPCI Analog TV/FM Card with Windows Media Center Remote Control
Если ты приобрел
TV-tuner Compro M1F он же VideoMate Vista M1F, тогда поздравляю - ты счастливый обладатель чудо-тюнера который с разбегу не поддерживается ядром в Ubuntu. На момент написания этой статьи,
речь идет о Ubuntu 10.10 и соответственно, предыдущих версиях системы.
Ubuntu 11.04 (
kernel version 2.6.38) должна будет поддерживать Compro VideoMate M1F.
http://www.mjmwired.net/kernel/Documentation/video4linux/CARDLIST.saa7134184 183 -> Compro VideoMate Vista M1F [185b:c900]
т.е. значение
card=183, а дальше как для любого тюнера.
Но пока....
Все кто стали "счастливыми обладателями" этого устройства и хотят пользоваться им в Ubuntu, наверное уже знают, что заставить ПОЛНОЦЕННО работать этот тюнер - задача не простая. Я, как
рядовой пользователь Ubuntu, потратил достаточно времени для этого. Поэтому настаиваю, что это устройство заслуживает отдельной темы на этом форуме.
ПОЕХАЛИ!
У счастливого обладателя Compro VideoMate M1F есть два способа чтоб заставить этот тюнер работать в Ubuntu - простой и
правильный способ.
ПРОСТОЙ СПОСОБ.
Это способ настройки как для любого другого тюнера в Ubuntu. После долгих проб и ошибок Вы поймете, что этот тюнер сможет работать или только как ТВ или только как радио, а Ваш огромный и красивый пульт будет бесполезен (т.е. просто не будет работать).
"Простой способ" - способ настройки быстрый, но
устройство будет работать не полноценно.В итоге. Смотрим ТВ, если хотим радио — перезапускаем модуль ядра с другими параметрами... и
без пульта.
Прочитать об этом можно здесь:
https://forum.ubuntu.ru/index.php?topic=83874.msg730458#msg730458здесь:
http://www.ubuntu.vrn.ru/index.php?topic=84.msg1559#msg1559 и конечно на сайте производителя этого тюнера:
http://www.comprousa.com/forums/viewtopic.php?p=10641#p10641 По последней ссылке, Вы сможете получить вразумительный ответ тех. поддержки:
"As hard as we've tried to bring the support of Linux to M1F, we regret to inform you that the original chip manufacturer had ceased the support of the chipset. "
Как говорится - без комментариев....
ПРАВИЛЬНЫЙ СПОСОБ НАСТРОЙКИ
Правильный способ настройки Compro VideoMate M1F в Ubuntu потребует от Вас терпения, внимания, и пару часов времени для достижения результата.
Зато,
Вы получите полноценную работу тюнера, с пультом и всеми "благами цивилизации".
Да, да, да! Мы сейчас соберем с Вами
СВОЕ ядро для Ubuntu 10.10, с поддержкой драйверов для тюнера Compro VideoMate M1F.Пусть рядовой пользователь не впадает в уныние. На самом деле, пересобрать свое ядро (если знать как это делать) -
не сложно! Повторюсь - надо терпения, внимания, и пару часов времени для достижения результата (Да и время в основном понадобиться компьютеру а не Вам).
Кстати, эту статью для Вас написал не программист, а простой пользователь Ubuntu, который все ниже изложенное проделал сам и получил положительный результат!
Да, прошу "продвинутых" юзеров не слишком критично подходить к тому что я напишу далее.
Повторяю, ПРОСТОЙ ПОЛЬЗОВАТЕЛЬ Ubuntu
Основные этапы:1. Сборка своего ядра с поддержкой тюнера Compro VideoMate M1F.
1.1. Установка исходников ядра и других необходимых пакетов.
1.2. Патч ядра (драйвер для тюнера Compro VideoMate M1F).
1.3. Компиляция и сборка .deb пакетов ядра.
2. Установка нового ядра в системе.
3. Настройка модуля для правильной работы тюнера.
4. Настройка программ для работы с тюнером и как включить звук с тюнера.
5. Настройка пульта ДУ для Compro VideoMate M1F.
6. Диван, пиво и футбол...
1. Сборка своего ядра с поддержкой тюнера Compro VideoMate M1F.
Теорию смотрим здесь:
http://wiki.debian.org/DebianRussian/make-kpkgЗдесь:
http://linuxopen.ru/2008/04/16/kompiliruem-jadro-v-debian-ili-ubuntu..htmlЗдесь:
https://help.ubuntu.ru/wiki/build_kernel1.1. Установка исходников ядра и других необходимых пакетов.Исходники ядра для Ubuntu лучше брать "родные". Проверено, парни из команды разработчиков Ubuntu вносят много своих правок в ядро.
Ubuntu 10.10 использует ядро 2.6.35.
В репозитарии есть пакет -
linux-source-2.6.35 "Linux kernel source for version 2.6.35 with Ubuntu patches" - нам он и нужен. После его установки в нужной нам директории появятся исходники ядра с которыми мы будем работать. Способ установки исходников через .deb пакет, хорош тем, что Вы всегда будете иметь последнюю версию от разработчиков Ubuntu.
Приступаем к установке.
Пуск >> Стандартные >> Терминал.В окне Терминала вводим команды:
~$ sudo suВводим свой пароль админа.
Получаем консоль root вида:
root@YourPC:/home/user#
Установка необходимых пакетов для компиляции ядра. Для начала обновим списки пакетов:
# apt-get updateУстановим нужные нам пакеты:
# apt-get install linux-source-2.6.35 kernel-package libncurses5-dev fakeroot wget bzip2 build-essentialЧитаем что пишет, говорим "y" где просит.
Если все прошло удачно, в папке /usr/src появится файл (и папка) с названием linux-source-2.6.35.tar.bz2
Окно терминала не закрываем, оно нам понадобиться до самого конца работ над ядром.
1.2. Патч ядра (драйвер для тюнера Compro VideoMate M1F).Для удобства дальнейшей работы, запустим
nautilus с правами root. Для чего в Терминале даем команду
# nautilus /usr/srcВ открывшемся (с правами root) окне nautilus, в папке
src видим ссылку на файл
linux-source-2.6.35.tar.bz2Распаковываем в эту папку (ждем - распаковывается не быстро)
Получаем после распаковки папку
linux-source-2.6.35 (2)Переименовываем ее (чтоб не путаться и для улобства) в
linux-2.6.35Ставим папке linux-2.6.35 (и всему вложенному в нее) права доступа root - чтение и запись.
В папку src копируем архив с патчем
compro2-6-35.bz2 и ставим права доступа root - чтение и запись.
Для выхода из nautilus нажать "Ctrl+C" в окне Терминала.
Какой такой патч?
A тот, который прикреплен к этой статье. (Читай внимательно 6-й пункт и смотри что под ним...)
Этот патч я не писал,
Я ЕГО ПЕРЕПИСАЛ для ядра linux-2.6.35.
Исходники:
http://www.spinics.net/lists/linux-media/msg20184.htmlhttps://patchwork.kernel.org/patch/105753/ Далее в терменале выполняем команды:
# cd /usr/src
# ln -sf linux-2.6.35 linux
# cd /usr/src/linuxПрименим скачанный патч на исходники:
# bzip2 -dc /usr/src/compro2-6-35.bz2 | patch -p1 --dry-runЭта команда выполнит проверку без применения патча.
Должны получить следующий отчет:
root@YourPC:/usr/src/linux# bzip2 -dc /usr/src/compro2-6-35.bz2 | patch -p1 --dry-run
patching file Documentation/video4linux/CARDLIST.saa7134
patching file drivers/media/IR/keymaps/Makefile
patching file drivers/media/IR/keymaps/rc-videomate-m1f.c
patching file drivers/media/video/saa7134/saa7134-cards.c
patching file drivers/media/video/saa7134/saa7134-input.c
patching file drivers/media/video/saa7134/saa7134.h
patching file include/media/rc-map.h
root@YourPC:/usr/src/linux#
Эсли нет ошибок (!!!)
Применяем патч.
# bzip2 -dc /usr/src/compro2-6-35.bz2 | patch -p1Должны получить следующий отчет:
root@YourPC:/usr/src/linux# bzip2 -dc /usr/src/compro2-6-35.bz2 | patch -p1
patching file Documentation/video4linux/CARDLIST.saa7134
patching file drivers/media/IR/keymaps/Makefile
patching file drivers/media/IR/keymaps/rc-videomate-m1f.c
patching file drivers/media/video/saa7134/saa7134-cards.c
patching file drivers/media/video/saa7134/saa7134-input.c
patching file drivers/media/video/saa7134/saa7134.h
patching file include/media/rc-map.h
root@YourPC:/usr/src/linux#
УРА!!! Вы сделали патч ядра.
1.3. Компиляция и сборка .deb пакетов ядра.Конфигурирование ядра.
Неплохой идеей будет использование существующего конфигурационного файла работающего ядра и для нового.
Для этого в Терминале (Вы все еще должны быть
в директории linux (root@YourPC:/usr/src/linux#)):
# make clean && make mrproper
# cp /boot/config-`uname -r` ./.configДалее даем команду:
# make menuconfigпосле которой загрузится графическое меню конфигурации ядра. Выбираем в меню конфигуратора пункт
"Load an Alternate Configuration File" и нажимаем "Оk". Затем нажмете "Exit", будет задан вопрос "
Do you wish to save your new kernel configuration?", отвечаем утвердительно "Yes".
Процесс компиляции и сборки .deb пакетов ядра.
Сборка ядра выполняется всего в две команды:
# make-kpkg clean
# fakeroot make-kpkg --initrd --append-to-version=-fortuner kernel_image kernel_headersПосле --append-to-version=, вместо "fortuner" можно написать любое название, какое Вам угодно, но оно должно начинаться со знака минус (-) и не иметь пробелов. Процесс компиляции и сборки .deb пакетов может занят довольно продолжительное время. Все будет зависить от конфигурации ядра и возможностей Вашего процессора.
У меня все длилось ПОЛТОРА ЧАСА.
Когда удачно завершится сборка ядра, в каталоге /usr/src будут созданы два .deb пакета:
linux-image-2.6.35.......-10.00.Custom_i386.deb - собственно само новое ядро и
linux-headers-2.6.35........-10.00.Custom_i386.deb - заголовки ядра.
Эти пакеты теперь могут быть установлены на другой системе и собирать их заново уже не будет необходимости.
ВАЖНО!!! После удачного завершения сборки пакетов, почистите папку /usr/src. Симлинк
linux и сама папка
linux-2.6.35 вам уже больше не понадобятся, а места папка занимает много. Так же, если вы больше не собираетесь пересобирать ядро, удалите пакет
linux-source-2.6.35 из системы (через Менеджер пакетов Synaptic) - этим вы уменьшите количество трафика, в случае обновления ядра.
2. Установка нового ядра в системе.
Для установки нового ядра надо установить два .deb пакета:
linux-headers-2.6.35........-10.00.Custom_i386.deb - заголовки ядра и
linux-image-2.6.35.......-10.00.Custom_i386.deb - собственно само новое ядро.
Всё, инсталяция завершена, меню загрузчика, установка нового рамдиска и ядра будут сделаны автоматически. Остается только перезагрузиться:
# rebootВНИМАНИЕ!!! .deb пакет ядра не гарантирует его правильную загрузку и работу.
Поэтому, если вдруг что-то пошло не так... при неудачной загрузке с нового ядра, например.
При следующем старте
Grub нажмите клавишу "ESC" и выберите в меню "старое " ядро.
Для манипуляций с меню загрузчика Grub, пользуйтесь пакетом
Менеджер загрузки (startupmanager) - его надо установить, есть в репозитариях.
Для других Ubuntu (в которых корректно работает 33 ядро):
http://www.ubuntu.vrn.ru/index.php?topic=84.msg1564#msg1564Для скачки патча для ядра 2.6.33 там надо зарегистрироваться.
3. Настройка модуля для правильной работы тюнера.
Ставим свое ядро, загружаемся с него.
Создать файл с названием
saa7134.conf в папке /etc/modprobe.d (естественно надо права админа)
Содержание файла:
alias char-major-81 videodev
alias char-major-81-0 saa7134
options i2c-algo-bit bit_test=1
options saa7134 card=181 tuner=59 secam=dk
options tuner secam=d
Важными здесь есть параметры card и tuner.
Для нашего патча и ядра значение должно быть
card=181 tuner=59.
Перезагружаемся. Настраиваем ТВ, радио и пульт.
4. Настройка программ для работы с тюнером и как включить звук с тюнера.
Для просмотра ТВ можно использовать
Tvtime, для прослушивания радио -
Gnomeradio (Есть в репозитарии.)
Особенности настроек этих программ можно найти в Интернет. Плюс тут я кое что добавил
https://forum.ubuntu.ru/index.php?topic=122493.msg978531#msg978531Я хочу обратить Ваше внимание на то, что в Ubuntu 10.10
в этих программах у вас не будет регулироваться звук (Имеется ввиду, не будут работать регуляторы громкости внутри программ). Звук с ТВ-тюнер Вам придется регулировать на уровне системы "в целом" т.е. через устройство
"Master" или пультом. Подробнее об этом здесь:
https://forum.ubuntu.ru/index.php?topic=117594.msg888569#msg888569В Ubuntu звук с тюнера подключается через перемычку, которая идет в комплекте с тюнером (добиться звука через PCI у меня не получилось, об этом чуть ниже). Звуковой разъем платы Compro VideoMate M1F соединяем с входом "CD" на материнской или звуковой плате (на материнке вход "СD" как правило подписан, но... ПОСМОТРИТЕ в доках где он ..., а то там много куда этот разъемчик наденется...
).
Если звука нет - он может быть выключен программно для "СD" (кстати,
по умолчанию он обычно выключен...). Для того чтоб включить
вход "CD", воспользуйтесь пакетом
gnome-alsamixer (есть в репозитариях), снимите галочку "Mute" и
отрегулируйте уровень громкости для входа "CD".
Да, кстати, можно не ставить
gnome-alsamixer...
Управление Вашей звуковой системой доступно из Терминала.... ГЫ.
Заходим в терминал и даем команду:
~$ alsamixerОткроется регулятор громкости каналов в текстовом режиме. Жмем F5 (Появится список всех устройств). Клавишами "влево" и "вправо" выбираем нужный канал. Клавиша "М" - включает/выключает канал. Клавиши "вверх" и "вниз" - регулируют громкость выбранного канала.
Да, добиться звука через PCI в Ubuntu, для Compro VideoMate M1F, у меня не получилось.
Как я понимаю, теоретически, звук через PCI и в Ubuntu должен работать, иначе зачем ALSA видит наш тюнер как звуковое устройство в системе? НО.... Работать - не работает, а глюков добовляет.... Поэтому,
отключаем ТВ-тюнер как звуковое устройство в системе (!!!).
Пуск >> Система >> Параметры >> Звук. Откроется интерфейс "Параметры звука" (Этот интерфейс доступен и через регулятор громкости на панели задач).
В "Параметры звука", сверху выбираем вторую вкладку "
Устройства" и в ней видим список звуковых устройств которые нашла ALSA. Нас интересует устройство с названием типа "
SAA7134............." (короче, то что показано с эмблемкой телевизора.).
Для этого устройства ставим внизу "
Профиль: ОТКЛЮЧЕНО". Закрыли окно. Проверенно, такое казалось бы нелогичное действие, а выключает огромное количество "глюков" (Например, шум при запуске профиля пользователя и т.д.).
5. Настройка пульта ДУ для Compro VideoMate M1F.
5.1. Установка
lircСтандартно:
$ sudo apt-get install lircВАЖНО!!! На запрос настройки - пропустить без настройки(!!!).
5.2. Заменить (с правами админа) содержание файлов в /etc/lirc/
lircd.conf
hardware.conf Готовые файлы настоек Lirc для Compro VideoMate M1F в прикрепленном архиве
Lirc_ComproM1F.tar.bz2В файле
hardware.conf проверить и установить свой номер устройства
REMOTE_DEVICE="/dev/input/event6"
Для чего командой в терминале:
$ cat /proc/bus/input/devicesполучаем:
I: Bus=0001 Vendor=185b Product=c900 Version=0001
N: Name="saa7134 IR (Compro VideoMate Vi"
P: Phys=pci-0000:03:00.0/ir0
S: Sysfs=/devices/pci0000:00/0000:00:1e.0/0000:03:00.0/input/input6
U: Uniq=
H: Handlers=kbd event6
....
Имейте ввиду, при подключении или переподключении новых устройств ввода к Вашему ПК,
этот номер может измениться и как следствие перестанет работать пульт, так что заново правим файлик hardware.conf.
Тут я добавил способ, как "намертво" привязать номер к устройству:
https://forum.ubuntu.ru/index.php?topic=122493.msg1163199#msg11631995.3. Заменить в своей папке /home/user/ содержание файла
.lircrc(Название файла .lircrc начинается с точки, это значит, что он скрытый, чтоб его увидеть в nautilus -
Вид >> Показать скрытые файлы)
В этом файле команды для Приложений, которыми будем управлять с пульта.
Я запрограммировал работу пульта на:
Выключение компьютера с пульта - KEY_POWER
Просмотр ТВ через Tvtime - KEY_CAMERA
Прослушивание радио через Gnomeradio - KEY_RADIO
Проигрыватель VLC (для просмотра IPTV) - KEY_VIDEO
Проигрыватель Totem - KEY_TUNER
Для выхода из вышеперечисленных программ продублирована кнопка - KEY_CLEAR
Кнопки громкости, переключения каналов и fullscreen - продублированы для удобства.
Для VLC и Totem надо в соответствующих разделах меню этих программ,
включить поддержку работы пульта через lirc (поставить нужные галочки).
Кстати, в Linux можно научить Ваш пуль очень многому (в отличие от всем известной
другой системы
). Большинство программ изначально написаны с поддержкой пульта через lirc. Для этого вам достаточно внести соответствующие команды в Ваш файл .lircrc.
В Интернет можно найти много информации по этому поводу.
5.4. Сервис irexec нужно поместить в автостарт.
Пуск >> Система >> Параметры >> Запускаемые приложения. Команда:
irexec -d5.5. Перезагрузка и вперед!
6. Диван, пиво и футбол... P.S. Для желающих разместить на своем сайте выше написанное, ПОЖАЛУЙСТА. Только не забудьте указать эту ссылку:
https://forum.ubuntu.ru/index.php?topic=122493А то, вроде как, красть чужое не красиво.