28 апреля 2011 г.

azbox. что внутри прошивки?

этот ресивер работает на операционной системе линукс, версия Linux MMP 2.6.15 sigma
не смотря на относительную древность ядра системы в этой коробке есть Wlan соединение (бэкпортированный ralink модуль), окромя простого Lan.
есть возможность установить внутренний накопитель с SATA интерфейсом. здесь описание некоторых дисков, протестированных и установленых на сей севайс.
отформатировать диск можно и на компе, файловая система ext2 или ext3 поддерживается коробкой без проблем. диск можно отформатировать и после установки. желательно устанавливать 2.5 дюйма или 3.5 с небольшим энергопотреблением, например WD из серии "Green" т.к. возможны зависания при большом потреблении энергии - железка может стать восприимчивой к внешним помехам.

винчестер автоматически монтируется (прикручивается), но если у вас уже были какие фильмы или мультики на диске и вы встраиваете его в таком состоянии, то azbox ожидает их в определённых каталогах:

/DATA/hdb1/download <- чего скачали, будет здесь
/DATA/hdb1/movie <- директорий для фильмов
/DATA/hdb1/music <- музыка
/DATA/hdb1/picture <- для картинок
/DATA/hdb1/recordfile <- каталог для записи передач
/DATA/hdb1/upnp <- для расшарки (судя по всему)

нетестированные версии фирмвари можно найти здесь
актуализацию официальной фирмвари можно производить через интернет (если есть соединение), или с усб флешки (также и снапшоты).

на девайсе можно делать изменения установок. следует учитывать то, что если вы его отключите совсем, то все установки обнулятся. т.е. если вам нужно было сделать установки для самба-сервера в каталоге /etc , то ничему не удивляйтесь, если было отключено питание.

для этой железки есть много небольших программок для локального и внешнего использования.
например есть файловый менеджер Midnight Commander (mc), для работы с файлами. двуоконный интерфейс знаменитого некогда Norton Commander - удобно управлять файлами, редактировать, копирвать, удалять и пр.

а есть программы для редактирования списка каналов. это можно делать на вашем компьютере.

команды для работы с файлом:

работаем в линукс-консоли, как делается в виндах - ни малейшего понятия. если у вас вдруг нет линукса, не отчаивайтесь, линукс у вас есть на azbox.

файл-патч состоит из трёх блоков: хедер, контрольная сумма и основной кусок.

для извлечения хедера файла:

dd if=patch.bin of=header.bin bs=40 count=1




для извлечения контрольной суммы файла:

dd if=patch.bin of=md5sum.bin bs=8 skip=5 count=2


выделяем файл (файловую систему) без данных хедера и контрольной суммы:

dd if=patch.bin of=patch.cramfs.bin bs=56 skip=1


там как раз находятся все файлы для апдейта системы.

парамтеры программы dd:
if=<входной файл>
of=<конечный файл>
bs=<размер блока в байтах>
count=<число блоков>
skip=<пропустить блоков>

то есть, команда


dd if=patch.bin of=header.bin bs=40 count=1


с входным файлом patch.bin записывает результат в header.bin с размером блока 40 байт, количеством 1 штука. размер файла header.bin будет 40 байт.

после того, как основные данные для обработки после команды

dd if=patch.bin of=patch.cramfs.bin bs=56 skip=1


записаны в файл patch.cramfs.bin, начинаем прикручивание этого файла, как файла-имиджа к операционной системе. например, можно прикрутить любой iso имидж
без поджарки диска. для этого достаточно примонтировать диск к монтировочному пункту:

mount -o loop cdImage.iso /mnt


пользователь с привелегиями прикручивает файл cdImage.iso к пункту прикрутки в системе /mnt

или для нашего случая
mount -o loop patch.cramfs.bin /mnt


прикрутить файл patch.cramfs.bin как имидж к системе. после процесса монтировки в директории /mnt появится содержимое имиджа, которое можно редактировать.

пример. результат команды du для того, чтобы узнать количество занимаемого места:


du -h


ну, или выдать список файлов и директориев корневого каталога имиджа:

ls -l


total 112
-rw-r--r-- 1 user root 924 Jan 1 1970 command.seq
drwxr-xr-x 1 root root 272 Jan 1 1970 DISK1
drwxr-xr-x 1 root root 428 Jan 1 1970 DISK2
drwxr-xr-x 1 root root 24 Jan 1 1970 FLASH
-rw-r--r-- 1 root root 33 Jan 1 1970 loader.build_date
drwxr-xr-x 1 root root 204 Jan 1 1970 MMP
-rwxr-xr-x 1 root root 4613 Jan 1 1970 postPatch
-rwxr-xr-x 1 user root 1085 Jan 1 1970 prePatch
-rwxr-xr-x 1 user root 199 Jan 1 1970 restoreMac
-rw-r--r-- 1 root root 103265 Jan 1 1970 Update.list


самые интересные файлы настроек для установки новой фирмвари:

postPatch
prePatch
restoreMac

postPatch - установки после патча
prePatch - подготовка к установке
restoreMac - для сохранения mac адресов вашей железки. тут можно и изменить mac адрес, если нужно

что есть в файле postPatch?
установки:
1. mac адреса
2. имени компа
3. для ssh и ftp соединений
4. дступных языков интерфейса
5. языка интерфейса по умолчанию.

то есть из фирмвари можно выкинуть ненужные языки интерфейса. оставить английский, немецкий и, может быть, прикрутив русский язык.

75K ./MMP/hd/System/Msg/Chinese_simple
75K ./MMP/hd/System/Msg/Chinese_traditional
98K ./MMP/hd/System/Msg/Dutch
199K ./MMP/hd/System/Msg/English
101K ./MMP/hd/System/Msg/French
95K ./MMP/hd/System/Msg/German
100K ./MMP/hd/System/Msg/Italian
82K ./MMP/hd/System/Msg/Japanese
55K ./MMP/hd/System/Msg/Korean
98K ./MMP/hd/System/Msg/Portuguese
98K ./MMP/hd/System/Msg/Spanish
1.1M ./MMP/hd/System/Msg

последняя строчка - общий размер директория Msg

116K ./MMP/hd/System/message-td210/Arabic
122K ./MMP/hd/System/message-td210/Bulgarian
122K ./MMP/hd/System/message-td210/Czech
121K ./MMP/hd/System/message-td210/Danish
129K ./MMP/hd/System/message-td210/Deutsch
124K ./MMP/hd/System/message-td210/Dutch
118K ./MMP/hd/System/message-td210/English
130K ./MMP/hd/System/message-td210/French
128K ./MMP/hd/System/message-td210/Hellenic
123K ./MMP/hd/System/message-td210/Hungarian
126K ./MMP/hd/System/message-td210/Italian
122K ./MMP/hd/System/message-td210/Polish
126K ./MMP/hd/System/message-td210/PortugueseB
129K ./MMP/hd/System/message-td210/PortugueseP
125K ./MMP/hd/System/message-td210/Russian
121K ./MMP/hd/System/message-td210/Serbian
123K ./MMP/hd/System/message-td210/Slovak
129K ./MMP/hd/System/message-td210/Spanish
125K ./MMP/hd/System/message-td210/Turkish
2.3M ./MMP/hd/System/message-td210
последняя строчка - общий размер директория message-td210

на пару мегабайт можно уменьшить этот фирмварь-файлик. если нужно будет очень сильно.

что нужно знать для сборки вашего файла? фирмварь состоить из трёх частей.
1. хедеры, чем они отличаются?
2. контрольная сумма основного блока, делается достаточно просто утилитой md5sum (после того, как измененный основной будет снова собран)
3. как собрать снова основной блок?

к первому вопросу:


hd header4295.bin


00000000 48 58 43 52 01 01 00 00 41 5a 42 6f 78 00 00 00 |HXCR....AZBox...|
00000010 00 00 00 00 00 00 00 00 00 00 00 00 09 00 00 00 |................|
00000020 c7 10 00 00 00 f0 df 02 |........|

10 c7 = 4295 версия фирмвари
02 df f0 00 = 48230400 размер основного блока


hd header4084.bin


00000000 48 58 43 52 01 01 00 00 41 5a 42 6f 78 00 00 00 |HXCR....AZBox...|
00000010 00 00 00 00 00 00 00 00 00 00 00 00 09 00 00 00 |................|
00000020 f4 0f 00 00 00 80 d4 02 |........|

0f f4 = 4084 версия фирмвари
02 d4 80 00 = 47480832 - основной блок

второй пункт уже был раскрыт - см. выше

третий пункт. при размонтировке файловой системы все изменения сохранятся в вашем файле patch.cramfs.bin автоматически, то есть достаточно после mount и манипуляций сделать umount

экперимент по разборке и сборке фирмвари без манипуляций:
извлекаем из фирмвари три файла:


dd if=azbox-0.9.4295.bin of=header4295.bin bs=40 count=1
dd if=azbox-0.9.4295.bin of=md5sum4295.bin bs=8 skip=5 count=2
dd if=azbox-0.9.4295.bin of=cramfs4295.bin bs=56 skip=1


мы получили файлы header4295.bin (40 байт) , md5sum4295.bin (16 байт), cramfs4295.bin (48230400 байт)

после этого склеиваем:


cat header4295.bin md5sum4295.bin cramfs4295.bin > myPatch4295.bin


размеры файлов вроде как совпадают:
48230456 байт azbox-0.9.4295.bin
48230456 байт myPatch4295.bin

но одинаковое ли их содержимое? для этого достаточно использовать утилитку md5sum:


md5sum azbox-0.9.4295.bin


e383e0fe5b899b898e93f55bc9b3fb2f azbox-0.9.4295.bin


md5sum myPatch4295.bin

e383e0fe5b899b898e93f55bc9b3fb2f myPatch4295.bin


вроде как всё совпадает.

продолжение следует ;)

Комментариев нет:

Отправить комментарий