Как стать автором
Обновить

Загружаем OpenIPC по сети на камеру без удаления заводской прошивки

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров16K
Всего голосов 60: ↑60 и ↓0+60
Комментарии7

Комментарии 7

Если быстро нажимать CTRL+C, то попадём в командную строку загрузчика, который

Который запросит пароль.
На этом для 99% дошедших до этого уровня квеста, всё и закончится.

Ну кто-то снимет дамп и найдет пароль в uboot (во многих камерах на проце Anyka). Кто-то использует стандартный пароль HI2105CHIP если камера от вендора CamHi. Кто-то использует фастбут через https://github.com/OpenIPC/burn чтобы загрузить другой бут (для hisilicon или goke). Кто-то перешьет бут от старой версии (вендор XM). Квест на то и квест чтобы не сдаться.

Не скажу, что детально смотрел, но вот что бросается в глаза сразу по сетевым настройкам:

setenv bootargsnfs 'mem=35M console=ttyAMA0,115200 panic=20 root=/dev/nfs rootfstype=nfs ip=dhcp nfsroot=192.168.1.3:/mnt/nfsroot,v4,nolock,tcp rw ip=192.168.1.10:192.168.1.3:192.168.1.1:255.255.255.0::eth0'

  1. Не уверен, что опция "v4" будет работать со всеми nfs серверами, скорее, наоборот, создаст проблемы. Странно, кстати, почему "v4", надо вроде "nfsvers=4". Может, я не в курсе трендов... В общем, "nfsvers=3" избавит от головняка. Особенно учитывая, что строка в /nfs/exports сервера в статье настроена для v3 :) А так - в конфиге ядра есть опции CONFIG_NFS_V3=... и CONFIG_NFS_V4=... , надо смотреть, что там прописано. Там еще должно быть:
    CONFIG_ROOT_NFS=y
    CONFIG_NFS_COMMON=y
    CONFIG_NFS_FS=y
    CONFIG_IP_PNP=y
    CONFIG_INET=y

    Иначе работать с NFS не получится. В необходимости последних двух опций не уверен, но первые три точно нужны.

  2. "ip=dhcp", при этом все айпишники статические. Зачем эта опция? Работать будет, конечно, поскольку dhcp сервер наверняка не поднят, но вводит в заблуждение.

  3. Зачем "panic=20"? При отладке nfs загрузки эта строка убьет массу времени впустую на ожидание. Лучше убрать, или написать "panic=5" хотя бы. Ядро сбросится при зависании, обязательно, там вроде 3 сек по дефолту :)

atftp --get -r uImage.xm530 -l /tmp/uImage.xm530 192.168.1.1

Зачем разнесены tftp и nfs серверы на разные айпишники? Зачем вообще было вешать tftp сервер на шлюз?

Далее. Вот дефолтные настройки в u-boot:

ethaddr=00:12:41:00:00:01

ipaddr=192.168.1.10

netmask=255.255.255.0

serverip=192.168.1.107

Зачем нужно было менять дефолтные айпишники клиента и nfs сервера (см. выше в моем комменте)? Новички с ума сойдут, пытаясь понять, в чем дело
Зачем статический MAC прописывать? Они рандомные генерятся сами, ну или во всяком случае, должны, не знаю, как там настроено, лень копать и смотреть. В данном случае при загрузке двух или более камер в одной подсетке получится геморрой и для опытного сетевика (одинаковые MAC-и для нескольких девайсов), а для новичка, не умеющего копать wireshark-ом - непреодолимое препятствие.
В общем, совет. Попробуйте прошить дефолтную прошивку обратно, а потом по Вашей же статье самому пройтись и повторить написанное. Сбились - прошивайте снова дефолтную и начинайте сначала. Вы же для помощи людям писали статью, правильно?
Я своим студентам-подаванам примерно то же самое пытался объяснить год назад, немного помню, на чем обычно спотыкаются :)

А на Dahua/Hikvision(Hiwatch) такое бывает?

Многие модели из этих брэндов имеют поддерживаемые процессоры, но надо смотреть каждую конкретную камеру. Например dahua dh-ipc-hdw1220sp имеет поддерживаемый проц HI3516CV100.

Вот, пример Hikvison:
https://mixatronik.ru/videonablyudenie/openipc/zapusk-openipc-na-kamere-hikvision-ds-2cd2345f-is

Спасибо.
Просто в описаниях поддержки ни одного упоминания не увидел, закрались сомнения...

Зарегистрируйтесь на Хабре, чтобы оставить комментарий