car-dvr.info

Видеорегистраторы => BlackVue => BlackVue DR500GW-HD => Тема начата: welder от 10 Октября 2013, 19:19:33

Название: Обновление загрузчика U-BOOT с поддержкой MMC
Отправлено: welder от 10 Октября 2013, 19:19:33

Собрал для нашего рега u-boot  с поддержкой mmc и успешно обновил. Очень помог в этом JTAG). Обновлял из самого же u-boot через uart, но думаю что возможно обновить и через telnet/ssh.
Итак, что нам это дает?
Теперь можно загурзжать rootfs  с карты памяти. При том что монтировать его в режиме rw.
Это дает нам вносить изменения в прошивку на лету. Т.е. менять разные настройки, звуковые файлы и тд., не перезаписывая при этом всю корневую файловую систему. Также мы не будем ограничены в размере корневой файловой системы, и вполне возможно можно будет устанавливать на рег приложения))
Так же процесс обновления прошивки будет проходить на карте памяти, не трогая при этом внутренюю память nand.
Просто разворачиваем cramfsImage на отдельную партицию на карте памяти вставляем в рег и у нас новая прошивка.
если что то пошло не так, то процесс отката будет очень простой, надо будет просто на карту развернуть предыдущий образ с прошивкой.  И это при том что на NAND можно будет хранить копию rootfs, в случае если карта памяти будет отcутствовать, или партиция удалена, рег загурзится с NAND.
Также теперь не надо будет боятся бэд блоков, которые так свойственны  NAND.

Вот лог загрузки с новым u-boot:
(кликните для показа/скрытия)
 
видим mmc в u-boot:
(кликните для показа/скрытия)

Надо будет еще немного допилить, и проверить обновление u-boot через ssh.


Название: Re: Обновление загрузчика U-BOOT с поддержкой MMC
Отправлено: macabre от 10 Октября 2013, 19:27:30
так-с... а на 550-й можно применить со стертым mnt/nand?
Название: Re: Обновление загрузчика U-BOOT с поддержкой MMC
Отправлено: welder от 10 Октября 2013, 19:42:27
*Сообщение от macabre [+]
так-с... а на 550-й можно применить со стертым mnt/nand?
Не совсем понял что надо применить?  u-boot обновить? если там стерта nand то надо подключение по JTAG.
Название: Re: Обновление загрузчика U-BOOT с поддержкой MMC
Отправлено: MiO_970 от 10 Октября 2013, 19:46:08
welder, там загрузчик на нанде есть а все остальное стерто. Но там еще засада нет полноценной прошивки. Макар просто немца немного нервничать заставил :))
Название: Re: Обновление загрузчика U-BOOT с поддержкой MMC
Отправлено: welder от 10 Октября 2013, 19:51:41
Не совсем понимю о чем речь) у меня нет 550ого, даже не знаю что там за загрузчик))
Название: Re: Обновление загрузчика U-BOOT с поддержкой MMC
Отправлено: macabre от 10 Октября 2013, 20:25:02
Миш, да еще неизвестно, кто больше нервничает, немец или я... так лохануться, до сих пор места себе не найду.  ~O~
хорошо, немец нормальный оказался. даже за свой счет мне отправил рег  )oO
Название: Re: Обновление загрузчика U-BOOT с поддержкой MMC
Отправлено: MiO_970 от 10 Октября 2013, 20:26:43
Та я представляю...
Название: Re: Обновление загрузчика U-BOOT с поддержкой MMC
Отправлено: welder от 10 Октября 2013, 22:41:12
перенес rootfs на сд карту. ext3 в режиме rw
раз корень в режиме rw то теперь туда можно перенсти и раздел с прикладным ПО.

Welcome to MontaVista(R) Linux(R) Professional Edition 5.0.0 (0702774).
# mount
rootfs on / type rootfs (rw)
/dev/root on / type ext3 (rw,data=ordered)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
tmpfs on /var/volatile/tmp type tmpfs (rw,sync)
/dev/root on /dev/.static/dev type ext3 (rw,data=ordered)
tmpfs on /dev type tmpfs (rw)
devpts on /dev/pts type devpts (rw)
/dev/mmcblk0p1 on /mnt/mmc type vfat (rw,fmask=0022,dmask=0022,codepage=cp437,iocharset=iso8859-1)
/dev/mtdblock4 on /mnt/nand type yaffs2 (rw)
Название: Re: Обновление загрузчика U-BOOT с поддержкой MMC
Отправлено: Andrey_E от 11 Октября 2013, 11:37:43
welder, радостная весть!
Имею DR500GW с тремя BAD в NAND-е, которые (как мне кажется) мешают регистратору работать с GPS. Хотел бы попробовать загрузку с карты памяти. Не поделитесь ли подробностями? UART имею, с основами работы в терминале знаком.
Название: Re: Обновление загрузчика U-BOOT с поддержкой MMC
Отправлено: GAS от 11 Октября 2013, 11:44:49
Я весь во внимании...
Название: Re: Обновление загрузчика U-BOOT с поддержкой MMC
Отправлено: welder от 11 Октября 2013, 12:54:04
Andrey_E, У тебя бэд блоки на разделе с ядром, рутом, или прикладным ПО?
Если ядро не надо грузить с карты, то по идее u-boot не надо обновлять, достаточно поменять переменные загрузки u-boot.
Постараюсь написать небольшую инструкцию для всех.
Название: Re: Обновление загрузчика U-BOOT с поддержкой MMC
Отправлено: Andrey_E от 11 Октября 2013, 14:16:49
welder,
*Сообщение от welder [+]
У тебя бэд блоки на разделе с ядром, рутом, или прикладным ПО?
Такими познаниями я не обладаю...

NAND device: Manufacturer ID: 0xec, Chip ID: 0xf1 (Samsung NAND 128MiB 3,3V 8-bit)
Bad block table found at page 65472, version 0x01
Bad block table found at page 65408, version 0x01
nand_read_bbt: Bad block at 0x010c0000
nand_read_bbt: Bad block at 0x019a0000
nand_read_bbt: Bad block at 0x03420000
nand_read_bbt: Bad block at 0x04b00000

Это где?? и, о блин... их уже четыре..

И вопрос не в тему топика, но надеюсь не накажут: я в логах не нашел никакого упоминания о старте/работе/неработе GPS модуля. И файлы *.gps создаются нулевой длины. Как через терминал проверить работоспособность модуля GPS ?
Название: Re: Обновление загрузчика U-BOOT с поддержкой MMC
Отправлено: welder от 12 Октября 2013, 11:58:46
Три первых бэдблока попадают на rootfs, а четвертый на раздел с прикладным ПО. Так что u-boot впринципе обновлять не обязательно.  Можно для начала попробовать перенести только rootfs на карту памяти.

Чтобы проверить GPS, попробуй для начала посмотреть вывод с  порта:
cat /dev/tts/0
Название: Re: Обновление загрузчика U-BOOT с поддержкой MMC
Отправлено: Andrey_E от 12 Октября 2013, 12:15:42
*Сообщение от welder [+]
Можно для начала попробовать перенести только rootfs на карту памяти

Очень прошу инструкций
Название: Re: Обновление загрузчика U-BOOT с поддержкой MMC
Отправлено: welder от 12 Октября 2013, 12:54:37
Вот краткая инструкция:
Создаешь на карте памяти в конце primary раздел. мегабайт 200-300. Форматируешь его в ext3.
Я делал под linux программой gparted.
потом достаешь из архива с прошивкой которая у тебя установлена файл cramfsImage_DR500GW
монтируешь:
mount -t cramfs /home/welder/SD-card-ave-v1.1.1c/BlackVue/System/upgrade/cramfsImage_DR500GW /mnt
если не установлен модуль поддерживающий crmafs, то надо пересобрать ядро или извлечь его каким нибудь 7z.
Потом заходишь в mnt и копируешь все это на карту памяти в только что созданный раздел.
Далее подцепляешь uart, и заходишь в u-boot.
делаешь комманды:
setenv mmcargs 'mem=128M console=ttyS1,115200 root=/dev/mmcblk0p2 rootfstype=ext3 rw rootwait ip=off'
setenv mmcbootcall 'run nkl;set arg set bootargs ${mmcargs} ${sysmtdmap} ${optarg};run arg;set arg;bootm 82000000'
setenv tommc 'set bootcmd run mmcbootcall;saveenv;printenv'

saveenv
run tommc
reset.

все теперь загрузка должна будет пойти с карты памяти, об этом в логе будет строчки:
kjournald starting.  Commit interval 5 seconds
EXT3 FS on mmcblk0p2, internal journal
EXT3-fs: recovery complete.
EXT3-fs: mounted filesystem with ordered data mode.
VFS: Mounted root (ext3 filesystem).

или после загрузки посмотришь вывод комманды mount.

чтобы вернуться на загрузку с  nand, сделаешь в u-boot комманду: run tocram
чтобы обратно на загрузку с карты: run tommc
Название: Re: Обновление загрузчика U-BOOT с поддержкой MMC
Отправлено: Andrey_E от 15 Октября 2013, 18:00:42
welder,
Наконец-то я добрался до регистратора.. Проделал все вышеуказанное. Загрузка останавливается на строчках:

kjournald starting.  Commit interval 5 seconds
EXT3 FS on mmcblk0p2, internal journal
EXT3-fs: recovery complete.
EXT3-fs: mounted filesystem with ordered data mode.
VFS: Mounted root (ext3 filesystem).
Freeing init memory: 184K
Kernel panic - not syncing: No init found.  Try passing init= option to kernel.

Что это означает??

А в ответ на команду
cat /dev/tts/0
терминал "подвисает". Перенаправление же в файл дает мне файл нулевой длины. GPS модуль помер?


Название: Re: Обновление загрузчика U-BOOT с поддержкой MMC
Отправлено: welder от 16 Октября 2013, 11:30:39
А ты образ cramfs точно развернул на эту партицию, судя по логу маунтится она нормально, но не находит там главного процесса который загружает систему.

По поводу GPS, сложно сказать, помер он или нет, а у тебя кастомная прошивка стоит?
Название: Re: Обновление загрузчика U-BOOT с поддержкой MMC
Отправлено: Andrey_E от 16 Октября 2013, 12:35:22
welder,
Перепроверил уже раз пять. И разделы пересоздал, и права на запись-чтение проверил. Вроде бы все правильно.
Я распаковывал образ 7-Zip - ом, а создавал разделы и переносил на карточку загрузившись с Linux Live-CD. Видимо, я ошибаюсь в том чего не знаю или не понимаю..
Прошивка -- 1.1.1с. Я уже и контрольную перепрошивку сделал для надежности и устранения "непоняток".
Название: Re: Обновление загрузчика U-BOOT с поддержкой MMC
Отправлено: welder от 16 Октября 2013, 13:36:11
Andrey_E,
Если есть Linux Live CD то лучше примонтировать образ как я говрил командой:
mount -t cramfs /home/welder/SD-card-ave-v1.1.1c/BlackVue/System/upgrade/cramfsImage_DR500GW /mnt
и потом из /mnt скопировать на партицую сд карты. не знаю как там 7z все это дело распаковывает.

а gps вообще определяется в системе? помоему в этой версии прошивки можно было сделать сброс gps через веб интерфейс и потом увидеть о нем какую то информаци.
Название: Re: Обновление загрузчика U-BOOT с поддержкой MMC
Отправлено: Andrey_E от 16 Октября 2013, 14:28:24
*Сообщение от welder [+]
Если есть Linux Live CD то лучше примонтировать образ как я говрил командой:
Про неправильность 7-Zip я уже думал. Пробовал. Почему-то не прокатило: точка монтирования создается, но в ней пусто. Наверное, нужно другой CD попробовать.
*Сообщение от welder [+]
а gps вообще определяется в системе?
А что значит "определяется"? Как это "определение" увидеть? Нигде в логах упоминания о нем нет, файлы *.GPS -- нулевые, время/год -- 1970-й, скорость -- прочерки. Пляски с батарейкой не помогли (сейчас вообще без нее), сбросы через веб-интерфейс не помогают.
А если попробовать смонтировать и посмотреть содержимое раздела на рабочем регистраторе? Как это правильно сделать? У меня получилось только так:
mount -t ext3 /dev/mmcblk0p2 /mnt
рег ответил, что все хорошо, и ушел в перезагрузку. Оно и понятно: точка монтирования неправильная. Но я успел посмотреть: структура папок и файлов видна нормально.
Название: Re: Обновление загрузчика U-BOOT с поддержкой MMC
Отправлено: welder от 16 Октября 2013, 14:50:32

*Сообщение от Andrey_E [+]
Про неправильность 7-Zip я уже думал. Пробовал. Почему-то не прокатило: точка монтирования создается, но в ней пусто. Наверное, нужно другой CD попробовать.
можно для начала проверить поддерживает ли ядро cramfs:
cat /proc/filesystems |grep cramfs
если вывод пустой то не включена опция в ядре.
что касается точки монтирования, то она должна уже быть создана, перед тем как запускать команду mount.

*Сообщение от Andrey_E [+]
Пока у меня получилось только одно: после
mount -t ext3 /dev/mmcblk0p2 /mnt
рег ответил, что все хорошо, и ушел в перезагрузку.
немного не так, надо создать какой нить каталог в /mnt
mkdir /mnt/rootfs
mount -t ext3 /dev/mmcblk0p2 /mnt/rootfs
ls -la /mnt/rootfs
должно показать тоже самое что и: ls -la /

Там где то в веб интерфесе должно показывать какой чип gps и пр. эта информация выводится?


Название: Re: Обновление загрузчика U-BOOT с поддержкой MMC
Отправлено: Andrey_E от 16 Октября 2013, 15:39:13
*Сообщение от welder [+]
можно для начала проверить поддерживает ли ядро cramfs:
Увы, так и оказалось. Поищу другой CD.

*Сообщение от welder [+]
какой чип gps и пр. эта информация выводится?
Да, выводится.
Название: Re: Обновление загрузчика U-BOOT с поддержкой MMC
Отправлено: welder от 16 Октября 2013, 16:21:17
*Сообщение от Andrey_E [+]
Увы, так и оказалось. Поищу другой CD.
Можно сделать еще проще.
можно прям на регистраторе подмаунтить. т.е. скопировать файл cramfsImage_DR500GW на сд карту, в корень.
потом загрузить регистратор c nand
mkdir /mnt/cramfs
mount -t cramfs /mnt/mmc/cramfsImage_DR500GW /mnt/cramfs
mkdir /mnt/rootfs
mount -t ext3 /dev/mmcblk0p2 /mnt/rootfs
rm -r /mnt/rootfs/*
cp -r /mnt/cramfs/* /mnt/rootfs
umount /mnt/crmafs
umount /mnt/rootfs

и попробовать загрузиться с карты


Название: Re: Обновление загрузчика U-BOOT с поддержкой MMC
Отправлено: Andrey_E от 17 Октября 2013, 13:51:32
Ну, в общем, под чутким руководством welder, у меня получилось загрузить DR500GW с карты памяти. Правда, моему горю это не помогло (хоть в логах и появилось "GPS started" но он так и не работает), расскажу что я сделал -- может кому из "виндусятников" пригодится, а для линуксоидов и так все понятно:
Изначально видеорегистратор был прошит кастомной прошивкой 1.1.1с, и все упоминаемые файлы и папки ессно, из ее дистрибутива.
1. Загрузившись с Linux Live CD (я пользовался Slitaz) переразбил карту памяти: создал в конце карты Primary раздел на 250 Мегабайт и отформатировал его в ext3, оставшееся место -- Primary, fat32
2. Загрузившись из-под Windows, в корень карты памяти положил файл cramfsImage_DR500GW из SD-card-ave-v1.1.1c\BlackVue\System\upgrade\
3. В корень карты памяти положил всю папку Blackvue из дистрибутива прошивки, после окончания копирования папку BlackVue\System\upgrade\ удалил (дабы не запустился процесс прошивки)
4. Подключившись UART-ом, входим под именем root, пароль pt, и выполняем:

mkdir /tmp/cramfs
mount -t cramfs /mnt/mmc/cramfsImage_DR500GW /tmp/cramfs
mkdir /tmp/rootfs
mount -t ext3 /dev/mmcblk0p2 /tmp/rootfs
cp -r /tmp/cramfs/* /tmp/rootfs
umount /tmp/cramfs
umount /tmp/rootfs
rm -r /tmp/cramfs
rm -r /tmp/rootfs

5. Перезагружаем регистратор по питанию, и сразу после подачи питания быстро нажимаем букву "d" в терминале, чтобы войти в загрузчик, набираем:

setenv mmcargs 'mem=128M console=ttyS1,115200 root=/dev/mmcblk0p2 rootfstype=ext3 rw rootwait ip=off'
setenv mmcbootcall 'run nkl;set arg set bootargs ${mmcargs} ${sysmtdmap} ${optarg};run arg;set arg;bootm 82000000'
setenv tommc 'set bootcmd run mmcbootcall;saveenv;printenv'
saveenv
run tommc
reset

6. Видеорегистратор перезагружается, и уже грузится с карты памяти.

Файл cramfsImage_DR500GW из корня карты можно удалить.
Вернуться на загрузку с NAND можно набрав в загрузчике команду
run tocram
перейти на загрузку с карты --
run tommc

Название: Re: Обновление загрузчика U-BOOT с поддержкой MMC
Отправлено: welder от 17 Октября 2013, 14:09:40
Andrey_E,
Отличная, подробная инструкция.
Теперь надо еще раздел nand перенести на карту памяти. Впринципе это не сложно, но при этом почему то запись регистратор не начинает, и не проговаривает сообщение о том что запись началась, хотя в процессах все запущено. С этим еще буду разбираться.
Ну а чтобы ядро грузануть с карты надо обновлять u-boot.
Название: Re: Обновление загрузчика U-BOOT с поддержкой MMC
Отправлено: Andrey_E от 17 Октября 2013, 14:40:53
welder,
ну раз уж я начал -- готов продолжать в качестве "подопытного". Уровень моих знаний --  думаю -- Вам понятен. Давайте соответствующие инструкции, обкатаем.
Название: Re: Обновление загрузчика U-BOOT с поддержкой MMC
Отправлено: DenisSharifulin от 17 Октября 2013, 14:50:47
Ребят вы бы ещё фоток наделали чтоб инструкция была полноценной.  yes
P.S. Если не трудно. Потом попросим Сашу или Макара они сверху прикрепят эту иструкцию OooO
Яндекс.Метрика
Flag Counter