Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия | Следующая версия Следующая версия справа и слева | ||
custom_firmware [2014/12/08 16:44] Alexander |
custom_firmware [2015/02/07 13:35] Vladimir Manov |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
====== Внесение изменений в прошивку медиацентров TVIP ====== | ====== Внесение изменений в прошивку медиацентров TVIP ====== | ||
- | :!: Информация актуальна для медиацентров на ОС Linux с bin-прошивками. | + | **Для медиацентров TVIP S213/S300/S310:** [[custom_firmware:bin]] |
- | + | \\ | |
- | ===== mktvipfw ===== | + | **Для медиацентров TVIP S400:** [[custom_firmware:ota]] |
- | Для извлечения прошивки понадобится утилита mktvipfw. Для linux/i386 она доступна по адресу: [[http://update.tvip.ru/utils/mktvipfw.gz]] | + | |
- | + | ||
- | <code> | + | |
- | mktvipfw - Tool for making/extracting tvip_firmware, version: 2.0.0 | + | |
- | + | ||
- | Usage: mktvipfw [OPTION] | + | |
- | + | ||
- | Available options: | + | |
- | -h print this text and exit | + | |
- | -b add 0xFF bytes to the end of images if it size is not divided by 1024 | + | |
- | -a <blockname>=<filename> use file for block name when creating firmware | + | |
- | -t <type> device type | + | |
- | -v <version> firmware version | + | |
- | -x <fileName> extract firmware file to current directory | + | |
- | -p <prefix> use <prefix> for .bin and .info file instead of default | + | |
- | </code> | + | |
- | + | ||
- | + | ||
- | ===== Добавление файлов в прошивку ===== | + | |
- | + | ||
- | Текущая прошивка для медиацентров TVIP доступна по адресу: http://update-main.netsol.su/stb/___DEVICE_ID___/linux/release/tvip_firmware.bin, где ___DEVICE_ID___ - это модель устройства (например s300) | + | |
- | + | ||
- | + | ||
- | * TVIP S213 [[http://update-main.netsol.su/stb/s213/release/tvip_firmware.bin]] | + | |
- | * TVIP S300 [[http://update-main.netsol.su/stb/s300/release/tvip_firmware.bin]] | + | |
- | * TVIP S310 [[http://update-main.netsol.su/stb/s310/release/tvip_firmware.bin]] | + | |
- | + | ||
- | Распаковка прошивки: | + | |
- | + | ||
- | <code> | + | |
- | ./mktvipfw -x tvip_firmware-s300.bin | + | |
- | Extracting firmware "tvip_firmware-s300.bin" | + | |
- | good fw header | + | |
- | type = s300, ver = 1.1.0 | + | |
- | blockName = kernel | + | |
- | blockName = rootfs | + | |
- | blockName = splash | + | |
- | blockName = uboot | + | |
- | + | ||
- | $ ls -la | + | |
- | total 31540 | + | |
- | drwxr-xr-x 3 vovan vovan 4096 Feb 7 15:09 . | + | |
- | drwxr-xr-x 22 root root 4096 Feb 1 06:40 .. | + | |
- | -rw-rw-r-- 1 vovan vovan 3441630 Nov 6 16:59 kernel.img | + | |
- | -rwxrwxr-x 1 vovan vovan 61894 Nov 6 16:44 mktvipfw | + | |
- | -rw-rw-r-- 1 vovan vovan 28499968 Nov 6 16:59 rootfs.img | + | |
- | -rw-rw-r-- 1 vovan vovan 2764854 Nov 6 16:59 splash.img | + | |
- | -rw-rw-r-- 1 vovan vovan 327684 Nov 6 17:45 uboot.img | + | |
- | -rw-r--r-- 1 vovan vovan 34706580 Nov 5 14:40 tvip_firmware-s300.bin | + | |
- | </code> | + | |
- | + | ||
- | Чтобы извлечь файлы прошивки, необходимо смонтировать образ rootfs(Начиная с версии прошивки 3.1.0 - монтирование образа rootfs невозможно. см ниже) и скопировать файлы из него: | + | |
- | <code> | + | |
- | sudo mount -t cramfs -o loop ./rootfs.img /tmp/rootfs/mc | + | |
- | sudo cp -aR /tmp/rootfs /tmp/newrootfs | + | |
- | </code> | + | |
- | Теперь в каталог /tmp/newrootfs/ можно вносить необходимые изменения. | + | |
- | + | ||
- | Сборка нового образа rootfs из каталога /tmp/newrootfs/: | + | |
- | <code> | + | |
- | sudo mkcramfs /tmp/newrootfs newrootfs.img | + | |
- | Directory data: 23960 bytes | + | |
- | Everything: 27856 kilobytes | + | |
- | Super block: 76 bytes | + | |
- | CRC: 318254da | + | |
- | </code> | + | |
- | :?: для ubuntu утилита mkcramfs входит в пакет cramfsprogs | + | |
- | + | ||
- | Сборка прошивки с новым образом rootfs: | + | |
- | + | ||
- | <code> | + | |
- | ./mktvipfw -a kernel=kernel.img -a rootfs=newrootfs.img -a splash=splash.img -a uboot=uboot.img -t s300 -v "my_provider_1.1.0" | + | |
- | Using default prefix "tvip_firmware-s300-my_provider_1.1.0" for filenames | + | |
- | Writing tvip_firmware-s300-my_provider_1.1.0.bin | + | |
- | Writing block "kernel" from "kernel.img" | + | |
- | Writing block "rootfs" from "newrootfs.img" | + | |
- | Writing block "splash" from "splash.img" | + | |
- | Writing block "uboot" from "uboot.img" | + | |
- | Successfully written tvip_firmware-s300-my_provider_1.1.0.bin | + | |
- | Writing tvip_firmware-s300-my_provider_1.1.0.info | + | |
- | Successfully written tvip_firmware-s300-my_provider_1.1.0.info | + | |
- | </code> | + | |
- | + | ||
- | + | ||
- | ===== Распаковка rootfs начиная с прошивки 3.1.0 ===== | + | |
- | + | ||
- | Для распаковки образа rootfs прошивки 3.1.0 и выше потребуется модифицированный пакет cramfstools http://sourceforge.net/projects/cramfs/ | + | |
- | + | ||
- | patch: | + | |
- | <code> | + | |
- | --- linux/cramfs_fs.h_orig 2002-02-20 11:03:32.000000000 +0300 | + | |
- | +++ linux/cramfs_fs.h 2014-06-26 17:56:28.454219511 +0400 | + | |
- | @@ -18,7 +18,7 @@ | + | |
- | */ | + | |
- | #define CRAMFS_MODE_WIDTH 16 | + | |
- | #define CRAMFS_UID_WIDTH 16 | + | |
- | -#define CRAMFS_SIZE_WIDTH 24 | + | |
- | +#define CRAMFS_SIZE_WIDTH 26 | + | |
- | #define CRAMFS_GID_WIDTH 8 | + | |
- | #define CRAMFS_NAMELEN_WIDTH 6 | + | |
- | #define CRAMFS_OFFSET_WIDTH 26 | + | |
- | </code> | + | |
- | + | ||
- | Бинарная сборка утилит [[http://update.tvip.ru/utils/cramfs-1.1_i386.tgz|cramfstools]] для платформы linux i386 | + | |
- | + | ||
- | Распаковка rootfs в папку current_rootfs: | + | |
- | <code> | + | |
- | ./cramfsck -x current_rootfs rootfs.img | + | |
- | </code> | + | |
- | Создание образа rootfs | + | |
- | <code> | + | |
- | cd current_rootfs | + | |
- | ../mkcramfs . ../newrootfs.img | + | |
- | </code> | + |