Небольшая задачка для пытливых администраторов. Итак, у нас имеется сервер IPTV (ясное дело, не того, которое мы под другим брендом предоставляем Интернет-провайдерам) с одноядерным процессором семейства Intel, 2Гб оперативной памяти и видеокартой Nvidia GeForce4 MX440 (AGP 8X). Суть работы сервера: на основном экране в полноэкранном режиме проигрывается телеканал при помощи VLC, а далее сигнал через S-Video выход передается на аналоговый коммутатор и распределяется по не цифровым телевизорам внутри здания. Конечно, это не полноценное кабельное телевидение, можно сказать, что это просто такая конфигурация с неограниченным количеством зеркалируемых мониторов. Но суть не в этом. Канал в IPTV идет с такими параметрами качества/разрешения, что мощности сервера в полной мере достаточно и никаких заминок не возникает. Одна проблема: управляется сервер операционной системой Windows Vista.
Понятное дело, как-то не хорошо пользоваться коммерческой операционной системой, если все вокруг у нас open source, поэтому на днях мы приняли решение о переводе сервера на Linux. Дистрибутивом был избран Debian, ибо Ubuntu я в последнее время на дух не переношу, Fedora/OpenSUSE/Mageia — слишком замысловато, а Gentoo и подобные «from scratch» — работы на трое суток с нашим-то аппаратным обеспечением. Итак, раунд первый. Устанавливаем Debian. За основу был взят релиз Jessie в версии 8.2. Установилось все очень быстро и без вопросов, понравилось то, что в сравнении с предшествующим релизом пользователю дается возможность выбора между множеством окружений рабочего стола. Мы выбираем Xfce, ибо Gnome и KDE для нас излишне ресурсоемкие и будут отхватывать кусок оперативной памяти у vlc.
Главное веселье началось после установки ОС. S-Video выход успешно поднялся, да так, что лучше бы и не поднимался вовсе. Кстати, тогда мы пробовали не с Nvidia, а с ATI примерно того же периода (выглядела привлекательнее, поэтому выбор и пал на нее). На экране тестового телевизора что-то, конечно, похожее на рабочий стол вырисовалось, но все это было черно-белым (а выход там четырехконтактный, так что экспериментировать со штекерами излишне), ужасно дрыгало по вертикали и горизонтали, а еще объекты повторялись до четырех раз подряд. Я даже вспомнил свой старенький Горизонт в квартире родителей, который перед тем, как кануть в Лету, как раз так и делал. Ok, пробуем установить драйвера от производителя вместо свободного аналога (вообще, скажу по секрету: в свободных драйверах поддержка S-Video и композитного выхода почти всегда реализована через пятую точку, так как в сравнении с VGA/DVI/HDMI эти выходы используются реже всего, а, соответственно, и отклик от потребителей имеют минимальный), именующегося xserver-xorg-video-ati. Упс! Проприетарные драйвера ATI-то есть, да не про нашу честь. То есть, нашу видеокарту давным-давно выбросили из поддержки, а установка версии при выборе пакета ничего не дает, то есть в репозитории таковые уже не сохранились. Ну отлично. Сборка драйвера из исходников с сайта производителя у меня никогда не удавалась, не стал исключением и этот случай. Ok, меняем видеокарту.
Чего у нас на складе есть, так это видеокарт AGP, так как ныне их и применить-то практически некуда. Нашли вышеупомянутую Nvidia. После установки ее в сервер графика не поднялась вообще, а мне было настолько лень разбираться с причинами, что я просто переустановил всю операционную систему заново (благо, занимает это меньше времени, чем поиск и устранение неисправностей на старой). Конечно, новая установка была красивее: тут и меню grub'а без засечек, и экран приветствия сразу в максимальном доступном для DVI-монитора разрешении. Есть, что правда, одна проблема: S-Video здесь именуется TV-0, имеет кучу параметров типа яркости, контрастности и прочего непосредственно из xrandr, однако на экран телевизора независимо от настроек выводится черный экран и ничего более. Драйвер nouveau тоже не справился с задачей. Ok, начинаем искать проприетарные драйвера.
Хваленая мною Nvidia меня огорчила. В отличие от Gentoo, в Debian 8.2 драйвера nvidia-glx-legacy-96xx выпилены под корень, то есть поддержки «искаропки» нет и больше не будет. Попытка сборки драйвера с сайта AMD приводит к требованию откатить gcc с 4.9 на 4.8, однако мы-то знаем, что откат пакетов в скором времени приведет к превращению Jessie в Wheezy, где драйвера, столь нам нужные, итак имеются. Поковырялся полдня — результат никакой: драйвера от wheezy не подходят, собрать свои не дает gcc, а в репозитории для нас ничего не осталось. Ok, Wheezy так Wheezy.
Увы и ах, в отличие от Ubuntu, Debian не дает возможности скачать предыдущие релизы. Искать debian-7.8.0-i386-netinst.iso мне пришлось на одном из азиатских зеркал, где старые релизы не удаляют. Спасибо администраторам таких зеркал — благодаря им я схожу с ума немножечко медленнее, чем мог бы (а «Яндексу» не спасибо; выпилили все, кроме 8.2). Репозитории для Wheezy есть, так что проблем с установкой не будет. Начинаем. Тут у нас уже, конечно, никто не спросит об окружении рабочего стола, однако после установки на выбор будет предоставлено либо использование Gnome 3, либо Gnome Classic (aka Gnome 2). С первым у нас не срослось: во-первых, он слишком ресурсоемкий, а во-вторых, никакие окна не прорисовываются, видно только рамку и тени. Добавляем в /etc/apt/sources.list репозитории «contrib» и «non-free», обновляем кеш и устанавливаем все, что связано с nvidia-legacy-96xx не забывая при этом про «nvidia-xconfig», который поможет нам с первым запуском. Итак, идем в reboot.
После настройки через nvidia-settings (выбирать только нужно twin-view, а то потом даже перетянуть ошибочно открывшееся не там окно не выйдет) сохраняем новый xorg.conf, кладем его в /etc/X11 и перезагружаемся. Монитор уже можно отключить, но есть один минус: процесс загрузки компьютера не виден, на экран телевизора вывод изображения начинается только с запуском X11. Замечательно! Теперь пришло время VLC.
А вот с VLC у меня произошло досадное недоразумение: во время его установки я что-то неудачно пошевелил и компьютер ушел в reboot. Соответственно, нормально плеер не встал и падал при открытии плейлиста. Удалил я его полностью, потом все зависимости. Установил заново, но ничего не дало результата. Запустил скрипт поиска поврежденных пакетов — мартышкин труд. На этом этапе я немного психанул и переустановил всю систему еще один раз заново. После очередной установки драйверов и vlc (но уже без разрывов) я снова столкнулся с той же проблемой. Оказалось, что такое неадекватное поведение у VLC воспроизводится в том случае, если
а) завершается воспроизведение,
б) нажать на кнопку остановки,
в) если какой-то из источников в плейлисте не ответил или ответил не тем, чего от него ожидалось.
Проще говоря, при любой остановке воспроизведения VLC завершается вместо перехода в дежурный режим. Честно говоря, меня это не особенно волнует, так как плейлист состоит из двух источников и переключать его не придется (один с курсом валют и временем, другой без), но разбираться все-таки буду и дальше.
Вот так я провел вторую часть новогодних праздников. Это только Debian, а были еще промежуточные установки Windows Vista (чтобы проверить работоспособность видеокарты Nvidia, так как на нашем складе частенько можно найти то, что было исправным при списании, а во время бережного складского хранения пришло в негодность), Windows XP (больше ничего на CD у нас не было, а DVD-привод почему-то не захотел сначала видеть диск с Vist'ой) и безграничное время, потраченное на изучение BIOS'а в попытках найти установку с USB-флешки (как выяснилось, USB-HDD — это не оно, нужно HDD-1 при одном установленном жестком диске).