Предыстория
На днях перестал вещать один из NetUP стримеров. «Завис», подумал я (есть у них такая «особенность»), и пошел перезагружать его. Т.к. у этих стримеров не предусмотрено кнопки включения-выключения питания, или кнопки Reset, перезагружаются они только выдергиванием шнура питания.
Через некоторое время, после того, как я вернул ему питание, стример вывел надпись на LCD панели: «Checking HDD filesystem...». Оставил его в таком состоянии с мыслью, что проверит диск и запустится. Однако ни через час, ни через два этого не произошло. На стримере продолжала показываться надпись о проверке HDD. Через консольный кабель подключиться не удалось. Так же не к чему не привели последующие перезагрузки. Решил достать жесткий диск и проверить его на bad block'и. Нашлось не малое количество секторов, для которых не удалось сделать Remap или Erase.
Вывод простой: нужно менять жесткий диск. С самой заменой проблем нет, не рабочий вытащил, рабочий поставил. Но теперь у нас на руках голая железка без ОС (прошивки).
О том, как установить прошивку «с нуля» и пойдет дальнейший рассказ.
Вырианты
Лично я вижу только 3-й вариант как это сделать:
- Обратиться в техподдержку NETUP
- Клонировать HDD с другого стримера
- Разобраться с прошивкой, что она из себя представляет, и как ее установить
Первый вариант подойдет тем, кто купил данную продукцию менее года назад, т.к. техподдержка предоставляется в течение года после покупки. А так же тем, кто оплачивает техподдержку NetUP. Меня этот вариант не устраивает, т.к. покупали более года назад, а оплачивать год техподдержки ради часа работы не вижу смысла.
Второй вариант вполне приемлем. Нужно только погасить один из рабочих стримеров, клонировать его диск какой-нибудь программой. Но мне не хотелось демонтировать из стойки другой стример, а во-вторых, не хотел останавливать вещание других каналов (абонентам это не нравится).
Третий вариант мне вполне подходил по всем выше перечислимым критериям. Плюс, это просто интересно и познавательно.
Подготовка
Для привидения стримера к рабочему состоянию, нам потребуется:
- USB флешка
- Консольный кабель
- Роутер
- Образ прошивки
- Образ LiveFlash
Теперь по каждому пункту отдельно.
USB флешка подойдет любого размера, начиная от 128 Мб, т.к. образ LiveFlash, занимает около 100 Мб.
Консольный кабель для подключения к стримеру и изменения настроек BIOS. Видео выхода на стримере нет.
Стример нужно подключить к роутеру, чтобы после загрузки с флешки можно было подключиться к нему по SSH для дальнейшей работы.
Образ прошивки загружается с сайта netup.tv, раздел «Личный кабинет > Файлы > Стабильная версия». Я использовал версию firmware-streamer-standalone.1.11.117.
Образ LiveFlash так же с сайта. Раздел «Личный кабинет > Файлы > Общедоступные файлы». Там два образа, LiveFlash и LiveCD, но CD привода у стримера нет. В общем, я думаю подойдет любой дистрибутив Linux, который способен загрузиться с флешки. В образе от NetUP я не увидел ничего особенного, чего не было бы в других дистрибутивах. Но я пользовался им.
Начнем
Прошивка
Как оказалось, образ прошивки — это tar.gz архив. Поэтому распаковываем архив.
tar -xvf firmware-streamer-standalone.1.11.117
В архиве четыре файла: filesystem, info, initrd.img и vmlinuz.
filesystem — это, как можно догадаться из названия, образ файловой системы, упакованный в Squashfs.
info — тут содержится информация о прошивке: контрольные суммы, версия, ревизия, тип и дата создания.
initrd.img и vmlinuz — это RAM диск и ядро.
Все эти файлы нам потом понадобятся.
LiveFlash
Тут все просто. Записываем скачанный образ на флешку. Я сделала это через dd:
dd if=liveflash.img of=/dev/sdb bs=1M
Загрузка
Нужно подключить консольный кабель, патч-корд к роутеру, вставить флешку в стример и запустить его.
Теперь нужно сделать то, чего нет в документации. Нам нужно загрузиться с USB Flash, для это в BIOS нужно указать ее первой в очереди загрузки. Чтобы увидеть процесс загрузки и в нужный момент нажать клавишу «Del», подключаемся через консольный кабель к стримеру. Это можно сделать через HyperTerminal, putty и т.д. Лично я использовал minicom. В параметрах соединения помимо номера COM порта нужно указать скорость/четность/биты 115200 8N1, а также отключить аппаратное и программное управление потоком. В документации это нет, точнее есть подключение консольным кабелем на скорости 19200 8N1, но при таких настройках порта сообщений POST и самого BIOS мы не увидим. Так можно подключиться только к рабочему стримеру, например если у него нет сетевого соединения для доступа по SSH.
После того, как мы попали в BIOS и выставили загрузку с USB Flash, выходим из BIOS'а с сохранением параметров. F4, если не ошибаюсь, или через пункт меню «Save & Exit». Теперь стример будет загружаться с флешки. Но тут есть один нюанс: дело в том, что в меню загрузчика LiveFlash по умолчанию выбран пункт «Boot from local harddrive», что конечно нас не устраивает, т.к. диск у нас пока пустой. При скорости последовательного порта в 115200 меню загрузчика не видно. Поэтому сразу после того, как стример ушел в перезагрузку, меняем скорость на 19200 и видим загрузчик флешки. Выбираем самый верхний пункт «Boot LiveFlash» и нажимаем «Enter».
После того, как стример загрузился с LiveFlash, нужно зайти на WEB интерфейс роутера и посмотреть, какой IP-адрес он получил. Далее при помощи любого SSH клиента, подключаемся к стримеру с логином root и паролем netup123.
Диск
Вот мы и подключены к нашему стримеру по SSH, а точнее — к Live системе, которая запущена на нашем стримере.
Первое, что нам нужно сделать, это разбить жесткий диск на разделы, отформатировать и смонтировать их в нужные каталоги.
Разбивать следующим образом: первый раздел 5 Гб., второй все остальное (если честно, то для меня осталось загадкой, для чего NetUP использует диски объемом в 1 Тб, если используется максимум 15 Гб дискового пространства). Разбить на разделы, можно при помощи утилиты fdisk, которая присутствует в системе.
fdisk /dev/sda
Пользоваться fdisk'ом достаточно просто, тут я этого описывать не буду, т.к. это выходит за рамки статьи.
Поле того, как разделы созданы и новая таблица разделов записана на диск, их нужно отформатировать:
mkfs.ext3 /dev/sda1
mkfs.ext3 /dev/sda2
Теперь монтируем:
mount /dev/sda1 /mnt/flash
mount /dev/sda2 /mnt/hdd
Все, мы готовы приступить к установки прошивки на эти диски.
Загрузчик
На стримерах используется GRUB. Устанавливать его необходимо с опцией --root-directory=/mnt/flash, т.к. необходимо, чтобы каталог /boot и конфигурационные файлы загрузчика были на sda1:
grub-install --root-directory=/mnt/flash /dev/sda
Загрузчик установлен, далее необходимо в директории /mnt/flash/boot/grub создать файл menu.lst в котором указываем опции загрузки ядра. Полное содержание файла:
timeout 3
title NetUP IPTV
root (hd0,0)
kernel /boot/vmlinuz root=/dev/ram0 selinux=0 init=/linuxrc vmalloc=256m ro netup_flash=sda1 netup_hdd=sda2
initrd /boot/initrd.img
title Recovery
root (hd0,0)
kernel /boot/vmlinuz root=/dev/ram0 selinux=0 init=/recovery ro
initrd /boot/initrd.img
Файлы прошивки
Фалы filesystem и info, ранее извлеченные из прошивки, нужно загрузить на стример в директорию в директорию /mnt/flash. А файлы vmlinuz и initrd.img в /mnt/flash/boot. Для этого можно использовать scp например, лично я использовал SFTP в Midnight Commander.
Полуфинал
Собственно, на этом и все. Можно набрать «reboot» в консоли стримера, извлечь флешку и ждать, когда загрузится наш стример. Он распакует файловую систему, создаст себе файл подкачки и т.д. Это будет стандартная прошивка, со стандартными настройками. Если есть желание изменить настройки по умолчанию, то ниже я расскажу, как это сделать.
Настройки
Настроек не так много:
- IP адреса интерфейсов
- Маршрутизация
- Пароль
- Часовой пояс
В прошивке используется Aufs, поэтому чтобы заставить прошивку применять наши настройки достаточно создать соответствующие файлы конфигурации, которые будут «накладываться поверх» стандартных файлов настройки.
Создадим директорию, в которую поместим наши файлы конфигурации:
mkdir /mnt/hdd/netup/sysconfig
IP адреса интерфейсов
Файл network.cfg. Запись в нем имеет вид:
eth3 172.16.0.9 255.255.255.0
Можно сразу прописать адреса которые используются на стримере, что бы потом не пришлось входить на стример под стандартными адресами.
Маршрутизация
Файл routes.cfg. Имеет вид:
Так же можно прописывать несколько маршрутов, по одному в каждой строчке.
Пароль
Файл password.cfg. Тут записывается пароль, который будет использоваться для доступа по WEB, SSH и FTP. Пароль записывается в открытом виде.
Часовой пояс
Файл timezone. Пример записи:
Итог
На этом все. Как видно, нет не чего сложного в том, чтобы установить прошивку на «голый» стример. Времени это занимает очень мало, и если делать это через службу техподдержки, то уйдет пол дня переговоров в hotline.
Так что, сделать это самому интересно, быстро и, что не мало важно, бесплатно.
Автор: KsenZ