January 9th, 2011

Он трогал то, что работало

или Хождение по граблям как привычный вид спорта.

Вчера часов в десять вечера меня что-то дёрнуло посмотреть на сайт прозводителя прошивки для моего дримбокса. Прошивка была замечательная, но авторы по каким-то личным обстоятельствам несколько месяцев назад друг с другом поссорились и поддержку прекратили. Причем ладно бы просто форум закрыли, но они ещё и веб-сервер с плагинами отключили. А я очень хотел доставить демультиплексор для AVI, а то ж безобразие какое – матрёшка играется, а avi нет. И ещё хотел попробовать, как он DVD из MPEG4 генерирует в каком-то хитром формате, с менюшечками, но без перекодирования в MPEG2. А ему для этого growisofs нужен был. А скачать уже неоткуда.

И тут вдруг оказалось, что форум опять заработал, и даже моя старая регистрация там действует. Но занимаются им теперь другие люди, которые как раз в конце декабря выпустили супер-пупер-новую прошивку, которая и поновее, и сайт с плагинами есть, и USB DVB-T-тюнеры поддерживает, как и предыдущая.

Ну и я радостно скачал новую прошивку и залил её в ресивер…И тут начались хождения по граблям. Не, бэкап-то я сделал, но полностью восстановить из него работоспособную старую версию нельзя. Назад дороги нет, придётся мучиться с новой.

Для начала отказался ставиться плагин для загрузки  с винчестера. Флеш-то в ресивере маленький, 64 мега всего, поэтому я давно уже пользуюсь внешним винчестером. После многократных попыток оказалось, что плагин этот вместо специально расчищенного для него первого раздела пытался ставиться на второй, но обнаружив там директорию с записанными телепередачами начисто отказывался с ним дальше работать. Всего каких-то часов пять экспериментов – и я понял не только почему он так делает, но и как это исправить. Баг в preinst-скрипте пакета. Связаться с меинтейнером пакета и спросить, почему он так сделал, не удалось: почтовый адрес не существует.

В общем, после лёгкого пинка мультизагрузчик поставился куда надо, создал новый загрузочный образ на винчестере, ресивер перегрузился… Индейская национальная изба. Меню мультизагрузчика не появляется, ресивер тупо грузится с флеша. Точнее, иногда он появляется, и даже может загрузиться с винчестера, но как-то очень не всегда.

Ещё часа три многократных перезагрузок, внимательного слежения за логами, перенаправленными по сети на соседнюю машину, подключения консоли к последовательному порту и вдумчивого изучения /sbin/init, который к счастью оказался sh-скриптом, ничего не прояснили. Пока характерные звуки из винчестера не навели меня на мысль, что он разгоняется очень не сразу. Итог: sleep 10 в нужном месте /sbin/init кардинально решил проблему.

Следующий шаг: подключение USB-тюнера. Воткнул, в логе появилась запись о новом USB-девайсе, и… всё. Модули не загрузились. Потому что добрые авторы прошивки положили их не в /lib/modules/2.6.18../updates/, как положено, а в соседнюю директорию /lib/modules/dvbt/.

И в меню показывается один-единственный USB-stick,  причем не мой. Его там можно подключить и отключить, но как выбрать другой – совершенно непонятно. Ну ладно, загрузил модули вручную, device nodes появились, dvbsnoop показывает параметры второго тюнера, но.. в меню его по-прежнему не видно.

Продолжаем ходить дальше.

Оригинал этой записи. Комментировать можно тут или там.

Любые материалы из этого блога запрещается использовать на сайте livejournal.ru в любой форме и любом объёме