Цитата:
Если все находится в гугле, то, что вы тут забыли?
Исключите из гугла этот сайт. ))
Ещё один вариант сохранения разделов "без выпаивания SPI Flash". )) По мотивам, так сказать "ссылок в вебе".
1. Надо найти прошивку регистратора и разобрать:
Код:
$ unzip ./Прошивка_регистратора.bin
Archive: ./Прошивка_регистратора.bin
inflating: custom-x.cramfs.img
inflating: InstallDesc
inflating: logo-x.cramfs.img
inflating: romfs-x.cramfs.img
inflating: user-x.cramfs.img
inflating: web-x.cramfs.img
2. Выбрать образ cramfs из раздела web:
Код:
$ tail -c+65 < web-x.cramfs.img > web-x.cramfs
3. Смонтировать полученный образ web-x.cramfs - mount ./web-x.cramfs /mountpoint
4. Скопировать содержимое раздела из /mountpoint в другой какой-нибудь пустой каталог (/mountpoint01), куда добавить символические ссылки на желаемые mtdblockX из каталога /dev
Код:
$ cd ./mountpoint01
ln -s /dev/mtdblock0 my_mtdblock0
...
5. (Пункт по желанию) Здесь ещё хорошо добавить ссылку в каталог web-а на файл никсовых паролей и на конфигурационный каталог )) А ну как забудешь!
6. Собрать новый образ cramfs:
Код:
./mkcramfs ./mountpoint01 ./новый_образ_web_cramfs.img
7. Добавить данные по размещению в регистраторе, числа-адреса взять, например, из вывода ядра, или из данных имеющейся прошивки, то есть из исходного web-x.cramfs.img (binwalk покажет)
Код:
$ mkimage -A arm -O linux -T ramdisk -n "linux" -e 0xB80000 -a 0xA00000 -d новый_образ_web_cramfs.img web-x.cramfs.img
здесь вот эти 0xB80000 и 0xA00000 взяты из dmesg:
Код:
...
7 cmdlinepart partitions found on MTD device hi_sfc
Creating 7 MTD partitions on "hi_sfc":
0x000000000000-0x000000080000 : "boot"
0x000000080000-0x000000480000 : "romfs"
0x000000480000-0x000000a00000 : "user"
0x000000a00000-0x000000b80000 : "web"
0x000000b80000-0x000000e80000 : "custom"
0x000000e80000-0x000000ec0000 : "logo"
0x000000ec0000-0x000001000000 : "mtd"
Fixed MDIO Bus: probed
...
8. Создать файл (c разрешениями на исполнение) InstallDesc:
Код:
{
"UpgradeCommand": [
{
"Command": "Burn",
"FileName": "web-x.cramfs.img"
}
],
"Hardware": "Сюда_Напечатать_Свою_Хардварю",
"Vendor": "Сюда_Напечатать_Своего_Вендора"
}
Свою_Хардварю и Своего_Вендора взять там:
Код:
$ cat /mnt/custom/ProductDefinition
{
"Vendor" : "Свой_Вендор",
"Hardware" : "Своя_Хардваря",
...
9. Упаковать эти два файла (InstallDesc, web-x.cramfs.img) в zip-архив:
Код:
$ zip -D -X update-web.bin *
10. Записать на флешку этот update-web.bin в корень. Файловая система на флешке - та, которую понимает ваш регистратор. И обновиться сделанным обновлением.
Теперь всегда можно через веб эти файлы образов качнуть, и работе веба мешать не будет.