Отвязка от Ростелеком камеры IPC-C22E-S2

Отвязка от Ростелеком

Если с камерой от ДОМ.РУ всё обстоит довольно просто – нужно только штатными средствами прошить оригинальную прошивку, то Ростелеком постарался на славу! Прошивка совсем другая и надо менять её полностью.

Инструменты

Материалы

Утилиты

  • Putty — программа для работы через UART.
  • ConfigTool — поисковая утилита для камер Dahua.

Исходные данные

u-boot
IPL geaba80f
D-0a
128MB
BIST0_0001-OK
Load IPL_CUST from SPINAND
u16Pba: 0006
crc OK

IPL_CUST geaba80f
u16Pba: 0009
Load UBOOT from SPINAND
  decomp_size=0x00074400


U-Boot 2015.01 (May 17 2021 - 15:28:41)

Version: I6g#######
I2C:   ready
DRAM:
WARNING: Caches not enabled
SPINAND_I:  SPINAND: _MDrv_SPINAND_GET_INFO: Found spinand INFO
(0xA1), (0xE4), (0x7F),
SPINAND: board_nand_init: CIS contains part info
128 MiB
MMC:   MStar SD/MMC: 0
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Net:   MAC Address 00:30:1B:BA:02:DB
Auto-Negotiation...
AN failLink Status Speed:10 Full-duplex:0
Status Error!
sstar_emac
Warning: sstar_emac using MAC address from net device

gpio debug MHal_GPIO_Pad_Set:599
gpio[12] is 1
gpio debug MHal_GPIO_Pad_Set:599
gpio[13] is 1
gpio debug MHal_GPIO_Pad_Set:599
gpio[63] is 0
gpio debug MHal_GPIO_Pad_Set:599
gpio[62] is 0
gpio debug MHal_GPIO_Pad_Set:599
gpio[52] is 0
gpio debug MHal_GPIO_Pad_Set:599
gpio[6] is 1
gpio debug MHal_GPIO_Pad_Set:599
gpio[7] is 1
gpio debug MHal_GPIO_Pad_Set:599
gpio[6] is 0
_[sdmmc_0] Err: #Cmd_8 (0x000001AA)=>(E: 0x0008)(S: 0x00000000)__(L:913)
_[sdmmc_0] Err: #Cmd_55 (0x00000000)=>(E: 0x0008)(S: 0x00000000)__(L:913)
_[sdmmc_0] Err: #Cmd_1 (0x00000000)=>(E: 0x0008)(S: 0x00000000)__(L:913)
Card did not respond to voltage select!
Invalid device index:part 0:1
SigmaStar #
help
?       - alias for 'help'
aes     - Control Mstar AES engine
base    - print or set address offset
bootm   - boot application image from memory
bootp   - boot image via network using BOOTP/TFTP protocol
chpart  - change active partition
cmp     - memory compare
cp      - memory copy
crc32   - checksum calculation
dbg     - set debug message level. Default level is INFO
dcache  - enable or disable data cache
debug   - Disable uart rx via PAD_DDCA to use debug tool
dhcp    - boot image via network using DHCP/TFTP protocol
dstar   - script via SD/MMC
eeprom  - EEPROM sub-system
env     - environment handling commands
estar   - script via network
estart  - EMAC start
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls   - list files in a directory (default /)
fatread - FAT fatread with FSTART
fatsize - determine a file's size
fwupdate- fwupdate command allows to flash vc camera firmware from file on mmc or from memory.
go      - start application at address 'addr'
gpio    - Config gpio port
help    - print command description/usage
i2c     - I2C sub-system
icache  - enable or disable instruction cache
initDbgLevel- Initial varaible 'dbgLevel'
loop    - infinite loop on address range
macaddr - setup EMAC MAC addr
md      - memory display
mm      - memory modify (auto-incrementing address)
mmc     - MMC sub system
mmcinfo - display MMC info
mssdmmc - Mstar SD/MMC IP Verification System
mstar   - script via TFTP
mtdparts- define flash/nand partitions
mw      - memory write (fill)
mxp     - MXP function for Mstar MXP partition
nand    - NAND sub-system
nboot   - boot from NAND device
nm      - memory modify (constant address)
ping    - send ICMP ECHO_REQUEST to network host
printenv- print environment variables
readcis - Read cis block content
reset   - Perform RESET of the CPU
riu     - riu  - riu command

run     - run commands in an environment variable
saveenv - save environment variables to persistent storage
secauth - Control Sstar security authenticate sequence
setenv  - set environment variables
sf      - SPI flash sub-system
sfbin   - for uploading sf image to a server(via network using TFTP protocol)
sigauth - Only verify digital signature without aes
srcfg   - sensor pin and mclk configuration.
tftpboot- boot image via network using TFTP protocol
ubi     - ubi commands
usb     - USB sub-system
usbboot - boot from USB device
ustar   - script via USB
version - print monitor, compiler and linker version
writecis- Search CIS in dram then write to spinand.
printenv
baudrate=115200
bootargs=mem=130840K console=ttyS0,115200 LX_MEM=0x7fc6000 mma_heap=mma_heap_name0,miu=0,sz=0x4000000 rootfstype=ramfs mtdparts=nand0:1536K(boot),512K(tech),5120K(kernel),16384K(app),-(config) hw_type=2010
bootcmd=nand read 0x22000000 0x200000 0x500000; bootm 0x22000000; setenv bootargs $(bootargs) bkp=1; nand read 0x22000000 0x700000 0x500000; bootm 0x22000000
bootdelay=0
ethact=sstar_emac
ethaddr=00:30:1b:ba:02:db
preboot=gpio output 12 1;gpio output 13 1;gpio output 63 0;gpio output 62 1;gpio output 52 0;gpio output 6 1;gpio output 7 1;gpio output 6 0; ; fwupdate mmc 0:1 firmware.bin --enable-legacy-fw --with-props
stderr=serial
stdin=serial
stdout=serial
usb_folder=images

Environment size: 724/131068 bytes

Подготовка

  • Разархивировать подготовленные файлы прошивки, скопировать их на карту памяти и вставить карту в камеру. Я использовал карту объёмом 16Gb, отформатированную в FAT32.
  • Подключить UART-адаптер к камере и компьютеру. Установить драйверы, если ещё не установлены.
  • Открыть Putty, выбрать COM-порт, на котором висит адаптер и задать параметры порта.
  • Подать питание на камеру.
  • Остановить загрузку нажатием клавиши Enter.
Отвязка от Ростелеком камеры IPC-C22E-S2

Бэкап

Если планов возвращаться на ростелекомовскую прошивку нет, то этот пункт можно пропустить. Тем более, что камера на процессоре SigmaStar, а методика раскирпичивания таких камер уже освоена и описана: Восстановление камер на процессорах SigmaStar.

На всякий случай уточню – дамп пишется непосредственно на карту памяти, уничтожая её файловую систему, и считать его можно потом тоже только определённым способом. Соответственно, если делать бэкап, то нужна вторая карта памяти, либо сделать бэкап, затем скинуть дамп на комп, затем отформатировать карту, положить на неё файлы прошивки и вставить в камеру.

mw.b 0x22000000 0xff 0x1000000;nand read 0x22000000 0x0 0x1000000;mmc write 0x22000000 0x0 0x8000
mw.b 0x22000000 0xff 0x1000000;nand read 0x22000000 0x1000000 0x1000000;mmc write 0x22000000 0x8000 0x8000
mw.b 0x22000000 0xff 0x1000000;nand read 0x22000000 0x2000000 0x1000000;mmc write 0x22000000 0x10000 0x8000
mw.b 0x22000000 0xff 0x1000000;nand read 0x22000000 0x3000000 0x1000000;mmc write 0x22000000 0x18000 0x8000
mw.b 0x22000000 0xff 0x1000000;nand read 0x22000000 0x4000000 0x1000000;mmc write 0x22000000 0x20000 0x8000
mw.b 0x22000000 0xff 0x1000000;nand read 0x22000000 0x5000000 0x1000000;mmc write 0x22000000 0x28000 0x8000
mw.b 0x22000000 0xff 0x1000000;nand read 0x22000000 0x6000000 0x1000000;mmc write 0x22000000 0x30000 0x8000
mw.b 0x22000000 0xff 0x1000000;nand read 0x22000000 0x7000000 0x1000000;mmc write 0x22000000 0x38000 0x8000

После записи дампа нужно в Linux проделать следующие операции, чтобы получить файлы, пригодные для дальнейшего использования в случае необходимости.

sudo dd bs=512 count=32768 if=/dev/sdd of=./c22ep_s2_dump0.bin
sudo dd bs=512 skip=32768 count=32768 if=/dev/sdd of=./c22ep_s2_dump1.bin
sudo dd bs=512 skip=65536 count=32768 if=/dev/sdd of=./c22ep_s2_dump2.bin
sudo dd bs=512 skip=98304 count=32768 if=/dev/sdd of=./c22ep_s2_dump3.bin
sudo dd bs=512 skip=131072 count=32768 if=/dev/sdd of=./c22ep_s2_dump4.bin
sudo dd bs=512 skip=163840 count=32768 if=/dev/sdd of=./c22ep_s2_dump5.bin
sudo dd bs=512 skip=196608 count=32768 if=/dev/sdd of=./c22ep_s2_dump6.bin
sudo dd bs=512 skip=229376 count=32768 if=/dev/sdd of=./c22ep_s2_dump7.bin
При первой попытке отвязки такой камеры прошил только загрузчик, наивно полагая, что остальное прошью уже из него с помощью макросов. Ошибка была в том, что упустил два важных момента. Первый – проводной сети у камеры нет, а значит использовать tftp не получится и второй – в родном загрузчике отсутствует команда fatload для чтений данных с карты памяти, а значит считать дампы с карты тоже не выйдет.
Нужная команда есть в ростелекомовском загрузчике, поэтому пришлось посредством I2C залить в камеру первый кусочек бэкапа и повторить процесс, но уже с заливкой всех частей прошивки.

Прошивка

Общая метода уже описана в статье Восстановление камер Dahua, поэтому здесь повторяться не буду и приведу только конкретные шаги. Тем более, что ничего резать и высчитывать не надо – вся информация предоставлена. В двух словах: нужно залить на флешку заранее подготовленные части прошивки, а затем, после перезагрузки и входа в оригинальный загрузчик, подправить переменные окружения.

mw.b 0x22000000 0xff 0x1000000
fatload mmc 0 0x22000000 dhboot-min.bin
nand erase 0x0 0x200000
nand write 0x22000000 0x0 0x200000

mw.b 0x22000000 0xff 0x1000000
fatload mmc 0 0x22000000 dhboot.bin
nand erase 0x340000 0x100000
nand write 0x22000000 0x340000 0x100000

mw.b 0x22000000 0xff 0x1000000
fatload mmc 0 0x22000000 partition-x.cramfs.bin
nand erase 0x1C00000 0x100000
nand write 0x22000000 0x1C00000 0x100000

mw.b 0x22000000 0xff 0x1000000
fatload mmc 0 0x22000000 pd-x.squashfs.bin
nand erase 0x1D00000 0x100000
nand write 0x22000000 0x1D00000 0x100000

mw.b 0x22000000 0xff 0x1000000
fatload mmc 0 0x22000000 kernel.bin
nand erase 0x2200000 0x300000
nand write 0x22000000 0x2200000 0x300000

mw.b 0x22000000 0xff 0x1000000
fatload mmc 0 0x22000000 web-x.squashfs.bin
nand erase 0x2900000 0x100000
nand write 0x22000000 0x2900000 0x100000

mw.b 0x22000000 0xff 0x1000000
fatload mmc 0 0x22000000 romfs-x.squashfs_0.bin
nand erase 0x3300000 0x1000000
nand write 0x22000000 0x3300000 0x1000000

mw.b 0x22000000 0xff 0x1000000
fatload mmc 0 0x22000000 romfs-x.squashfs_1.bin
nand erase 0x4300000 0x100000
nand write 0x22000000 0x4300000 0x100000

Переменные окружения

После прошивки нужно перезагрузить камеру командой reset и снова войти в загрузчик. Теперь это уже родной загрузчик Dahua, поэтому останавливаем загрузку звёздочкой: *. Войдя в загрузчик задаём переменные. Значение ID берётся из QR-кода на корпусе ИК-фильтра (точки убрать), а MAC-адрес, он же wifiaddr – с наклейки. Теоретически ID тоже можно взять с наклейки. С ростелекомовским ID облако тоже вроде бы работает, но могут ведь и забанить такие идентификаторы, а ID из QR-кода хотя бы похож на родной, хоть и цифр в нём чуть больше. SC – это Security Code использующийся в качестве пароля администратора и пароля точки доступа Wi-Fi, которую запускает камера для того, чтобы можно было к ней подключиться. Можно задать своё значение, но не меньше 8 символов.

setenv HWID IPC-C22E-S2:01:02:0F:77:3B:00:01:10:01:01:04:400:00:02:00:00:04:01:00:01:80
setenv hwidEx 00:03:00:00:00:00:00:00:00:00:00:00:00:00:00:00
setenv devalias IPC-C22E-S2

setenv SC MXTR2023
setenv ID 7F0638DB0000000
setenv wifiaddr 6C:1C:71:00:00:00

save

Подключение

Подключение камеры к Wi-Fi и к облаку производится с помощью приложения IMOU или DMSS. Проще всего сделать это отсканировав QR-код, но ростелекомовский не подойдёт, т.к. содержит только ID, да и тот теперь неправильный. Правильный QR-код нужно сгенерировать каким-нибудь сервисом, например qrcoder.ru. Кодируемая строка должна иметь вид:

{SN:7F0638DB0000000,DT:IPC-C22EP-S2,SC:MXTR2023,NC:008}

где SN – ваш серийный номер, а SC – ваш Security Code. Остальное менять не нужно. Для этой строки QR-код выглядит так:

Отвязка от Ростелеком камеры IPC-C22E-S2

Полученный QR-код сканируется приложением и, после запроса параметров местной Wi-Fi сети, камера подключается к ней и добавляется в аккаунт. Подробнее тут: Подключение.

SC не должен быть слишком простым. С аналогичными камерами от МТС вполне прокатывает использование в этом качестве последних 8-ми символом серийного номера, но в камерах от РТ часто, а может и всегда, последние символы – это только цифры. С таким чисто цифровым SC добавление в облако не произойдёт.

Использование

Веб-морды у камеры нет, поэтому настраивать её можно только через ConfigTool, хотя там особо и настраивать то нечего.

Если планируется использовать девайс автономно – вести запись на карту памяти и смотреть трансляцию и запись через приложение, то на этом настройка закончена. Если же хочется передавать видео на регистратор или сервер видеонаблюдения, то тоже можно – и ONVIF и RTSP работают. Формат RTSP URL такой:

  • rtsp://admin:password@192.168.1.11/cam/realmonitor?channel=1&subtype=0 – 1-й поток;
  • rtsp://admin:password@192.168.1.11/cam/realmonitor?channel=1&subtype=1 – 2-й поток.
Отвязка от Ростелеком камеры IPC-C22E-S2
Для того, чтобы можно было такие камеры потом без проблем передавать или продавать другим людям без лишних объяснений, сваял инструкцию с интегрированным индивидуальным QR-кодом. В центре меняете QR-код на свой и справа снизу прописываете свои серийник и код безопасности. Последнее – просто для того, чтобы понимать, к какой камере относится конкретная распечатанная инструкция.

Оцените статью
( 1 оценка, среднее 5 из 5 )
МихаТроник
Добавить комментарий


  1. Владимир

    Доброго дня. А есть чуть более подробная инструкция для чайников?
    Камеру разобрал, подпаялся к разъёму.
    Скопировал разархивированную прошивку на флешку.
    Запустил Putty, в графе Session выставил свой COM4 и скорость 115200, нажал Open – открылось окно сессии.
    А вот после этого всё дальше не пошло: подаю на камеру питание, в окне начинают в массовом порядке бегать надписи, но ни сразу ни потом нажатие Enter этот процесс не останавливает. Делаю я это соответственно из Win10… может, нужно было из-под Линукса?

    Ответить
    1. mixatronik автор

      Доброго! Камера точно этой модели?

      Ответить
  2. Владимир

    Естественно, с первого раза не получилось 🙂 Бэкап не сделал. Загрузчик прошился, но видимо что-то из файлов прошилось некорректно, т.к. при включении камера вроде и грузится, но диод мигать не начинает и, а просто горит, судя по логу в Putty, загрузка останавливается на стадии
    init: Unable to open persistent property directory /data/property errno: 2
    init: property_service started…
    init: minit [MVX2####g8f044dCM_MINIT#####XVN]
    И всё, камера просто так и стоит с горящим красным диодом, сеть WI-FI не появляется.

    Поделитесь кто-нибудь бэкапом плиз на почту megabyte-s@yandex.ru

    Ответить
    1. mixatronik автор

      Видимо да – что-то пошло не так… Все части прошивки заливал? И все они записались успешно? Ошибок не было? И переменные инициализированы?
      С восстановлением два варианта. Первый – штатный, но зависит от того, какая часть системы работает. К сожалению одного загрузчика для этого недостаточно. Мануал такой:
      1. Отформатируйте карту памяти в fat;
      2. Положите 2 файла из архива в корень карточки;
      3. отключите питание от камеры;
      4. вставьте карту;
      5. зажмите кнопку RESET, и с зажатой кнопкой подайте питание и удерживайте до тех пор пока камера не начнет перемигиваться красным и зеленым цветом.
      Нужные файлы вот: https://disk.yandex.ru/d/UiqUAlj1g5gcsA
      Если не сработало, то надо восстанавливать через I2C. Как именно описано в статье: Восстановление камер на процессорах SigmaStar. Надо залить в память камеры первый кусочек ростелекомовского дампа, в котором есть загрузчик и повторить процедуру, но уже внимательнее :). Заливается правда долго, но можно и вырезать – сам-то загрузчик маленький. Дамп смоуг скинуть только вечером – никуда не выкладывал его пока – дома на компе лежит.

      Ответить
      1. Владимир

        0) Судя по ростелекомовской наклейке, это именно IPC-C22E-S2. Дата производства указана 10.2022. Но есть некотрое отличие с той, что в этой статье: наклейка с ID находится не на объективе, а со сзади на плате, причём это не просто QR, а рядом с ним ещё и строчкой продублирован сам ID.
        1) На удержание кнопки при включении камера никак не реагирует. Видимо, всё плохо. Но попробую ещё раз с правильными файлами в правильной ФС карточки (было FAT32), чем чёрт не шутит.
        2) Части прошивки вроде заливал все. Ошибок не видел. Но заливались они как-то слишком стремительно, буквально 0,5…2 секунды, что несколько подозрительно. Ну и, судя по тому, что камера не запускается, где-то я всё-таки накосячил, т.к. чудес не бывает 🙂
        3) Переменные ввёл, но, к сожалению, не знаю, как понять, что они инициализированы. ID взял с наклейки на плате камеры, MAC – с наклейки РТ на подставке камеры, SC оставил как в статье. Может, можно попробовать повторить?

        Дамп не сделал только потому, что программатор CH341A только через 2 дня приедет на руки. О чём теперь, естественно, жалею.
        Не столько ценна сама камера, сколько из спортивного интереса хочется её поднять. Да и с программаторами интересно поработать.

        Ответить
        1. mixatronik автор

          Начну с конца. Для снятия дампа программатор не нужен, т.к. всё делается через консоль и пишется дамп на карту, но там хитро. Ну и насчёт возможности снятия дампа с НАНДов этим программатором мнения расходятся. Сам не пробовал, поэтому ничего сказать не могу.
          Насчёт инициализированы или нет, и имею ввиду, что прописаны и сохранены. Достаточно вызвать printenv, чтобы убедиться, что переменные на месте. Если нет, например HWID или он указан неверно, то камера не запустится.
          Шьются быстро все кроме предпоследнего бинарника, который весит 16 метров. Остальные мелкие.
          С родным ID бывает по разному – либо он в разных местах, либо его вообще нет. Кау же писал кажется, с ростелекомовским тоже работает.

          Если с переменными всё в порядке но не стартует и через зажатый резет не шьётся, то только snander поможет. Дамп скину.

          Ответить
          1. Владимир

            В общем, результаты такие: с карточки не шьётся, переменные не применились. Ввожу команды, никакой ошибки при этом не выдаётся, но после ввода reset и printenv всё становится вот так:

            bootargs=mem=128M console=ttyS0,115200 root=/dev/mtdblock12 rootfstype=squashfs
            bootcmd=kload 0x22000000; bootm 0x22000000
            bootdelay=1
            baudrate=115200
            ethaddr=00:12:34:56:78:9A
            ipaddr=192.168.1.108
            serverip=192.168.1.1
            gatewayip=192.168.1.1
            netmask=255.255.255.0
            bootfile=”uImage”
            wifiaddr=00:12:34:56:78:91
            mp_autotest=0
            UUID=tuya136991455963d822
            AUTHKEY=wc2QVH1BIK5APSQ9nV9Mz9vxYfAsQ6Cu
            ID=000000000000000000
            da=tftp 0x22000000 dhboot.bin.img; flwrite;tftp dhboot-min.bin.img;nand protect off;flwrite
            dr=tftp 0x22000000 romfs-x.squashfs.img; flwrite
            dk=tftp 0x22000000 kernel.img; flwrite
            du=tftp 0x22000000 user-x.squashfs.img; flwrite
            dw=tftp 0x22000000 web-x.squashfs.img; flwrite
            dp=tftp 0x22000000 partition-x.cramfs.img;flwrite
            dc=tftp 0x22000000 custom-x.squashfs.img; flwrite
            up=tftp 0x22000000 update.img; flwrite
            tk=tftp 0x22000000 uImage; bootm
            dh_keyboard=1
            appauto=1
            sysbackup=1
            loglevel=4
            pd=tftp 0x22000000 pd-x.squashfs.img; flwrite
            stdin=serial
            stdout=serial
            stderr=serial
            ethact=sstar_emac
            ver=U-Boot 2010.06-svn8061 (Nov 27 2021 – 10:11:10)

            Environment size: 1063/131068 bytes

            Пробовал ID и родной и ростелекомовский. Причём, если вызвать printenv без перезагрузки, то переменные меняются.

          2. mixatronik автор

            А-а-а-а-а-а! Позор на мои седины… Конечно переменные не сохранились. Команды save то нет!!! После ввода переменных надо её ввести… Поправил.
            З.Ы. Благодарю за фидбэк.
            З.З.Ы. Пардоньте…

          3. Владимир

            Воооот! Теперь у меня полный “дас ист фантастиш”. После сохранения переменных камера загрузилась, заморгал диод и нашлась приложением ImoU, подключилась к вайфаю и открылась в Конфиг Туле.
            Так что громадное спасибо за статью и за то, что помогли разобраться в том, что не понял!

          4. mixatronik автор

            Рад, что всё в порядке! И ошибку в статье исправили заодно…

  3. Евгений

    SigmaStar # fatload mmc 0 0x22000000 dhboot-min.bin
    _[sdmmc_0] Err: #Cmd_16 (0x00000200)=>(E: 0x0008)(S: 0x00000B00)__(L:913)
    ** Unrecognized filesystem type ** тут я перезагрузил камеру
    SigmaStar # ▒<▒8▒<8▒▒▒<
    это всё,я убил загрузчик?

    Ответить
    1. mixatronik автор

      Да нет. Убивается он только после nand erase 0x0.

      Ответить
      1. Евгений

        Я вводил эти команды
        mw.b 0x22000000 0xff 0x1000000
        fatload mmc 0 0x22000000 dhboot-min.bin
        nand erase 0x0 0x200000
        nand write 0x22000000 0x0 0x200000
        потом понял что файлы с карты не записываются, поробовал с другой картой и тоже ответ был Unrecognized filesystem type
        вот я и перезагрузил камеру.
        далее при загрузке такие символы ▒<▒8▒<8▒▒▒<

        Ответить
        1. mixatronik автор

          Основной мой посыл в том, что если команда fatload mmc 0 0x22000000 dhboot-min.bin закончилась неудачей, то не надо делать nand erase 0x0 0x200000 и nand write 0x22000000 0x0 0x200000, потому что раз с карты ничего не считалось, то и записывать нечего. В результате – кирпич. Другое дело, что эту камеру можно восстановить через snander, так что не всё потеряно.

          Ответить
  4. Pavel

    что может быть?, восстановил по инструкции, но теперь в терминал пишет такое:

    ▒▒0▒3ь2▒#s▒▒▒3▒J▒\J▒1B▒▒▒▒
    ▒1▒▒ͺJ▒
    -\J!j▒▒▒▒

    камера при этом пашет нормально видится в сети, подключается

    Ответить
    1. mixatronik автор

      Похоже на неправильную скорость – надо 115200. Либо плохой контакт.

      Ответить
      1. Pavel

        Да, все верно, по запаре забыл сменить скорость порта, стояла поумолчанию 9600 поставил 115200 и все пошло, спасибо большое!!!

        Ответить
        1. mixatronik автор

          Пожалуйста!

          Ответить
  5. алекс

    Доброго дня. А есть чуть более подробная инструкция для полных чайников? не совсем понятны шаги. вот как есть, верно ли? com порт у меня 3й, в параметрах порта бит в сек: 115200 выставил, биты: 8, четность: нет, стоповые биты: 1, упр пот: нет. в putty: connection type: serial. serial line: com3, speed: 115200 питание- остановка enter. вот что выдает:

    IPL geaba80f
    D-0a
    128MB
    BIST0_0001-OK
    Load IPL_CUST from SPINAND
    u16Pba: 0006
    crc OK

    IPL_CUST geaba80f
    u16Pba: 0009
    Load UBOOT from SPINAND
    decomp_size=0x00074400

    U-Boot 2015.01 (May 17 2021 – 15:28:41)

    Version: I6g#######
    I2C: ready
    DRAM:
    WARNING: Caches not enabled
    SPINAND_I: SPINAND: _MDrv_SPINAND_GET_INFO: Found spinand INFO
    (0xA1), (0xE4), (0x7F),
    SPINAND: board_nand_init: CIS contains part info
    128 MiB
    MMC: MStar SD/MMC: 0
    *** Warning – bad CRC, using default environment

    In: serial
    Out: serial
    Err: serial
    Net: MAC Address 00:30:1B:BA:02:DB
    Auto-Negotiation…
    AN failLink Status Speed:10 Full-duplex:0
    Status Error!
    sstar_emac
    Warning: sstar_emac using MAC address from net device

    gpio debug MHal_GPIO_Pad_Set:599
    gpio[12] is 1
    gpio debug MHal_GPIO_Pad_Set:599
    gpio[13] is 1
    gpio debug MHal_GPIO_Pad_Set:599
    gpio[63] is 0
    gpio debug MHal_GPIO_Pad_Set:599
    gpio[62] is 0
    gpio debug MHal_GPIO_Pad_Set:599
    gpio[52] is 0
    gpio debug MHal_GPIO_Pad_Set:599
    gpio[6] is 1
    gpio debug MHal_GPIO_Pad_Set:599
    gpio[7] is 1
    gpio debug MHal_GPIO_Pad_Set:599
    gpio[6] is 0
    _[sdmmc_0] Err: #Cmd_8 (0x000001AA)=>(E: 0x0008)(S: 0x00000000)__(L:913)
    _[sdmmc_0] Err: #Cmd_55 (0x00000000)=>(E: 0x0008)(S: 0x00000000)__(L:913)
    _[sdmmc_0] Err: #Cmd_1 (0x00000000)=>(E: 0x0008)(S: 0x00000000)__(L:913)
    Card did not respond to voltage select!
    Invalid device index:part 0:1

    что далее?

    Ответить
    1. mixatronik автор

      Если лог загрузки виден и команды консоль принимает, то значит подключено всё верно. Шаги в статье описаны: 1 – положить файлы прошивки на карту памяти, 2 – остановить загрузчик, 3 – ввести нужные команды.

      Ответить
  6. Андрей

    Поймал проблему.
    Подключился через UART, начал шить файлики с карточки.
    на файле – pd-x.squashfs.bin – ошибка чтения.
    А дальше никуда, после перезагрузки – U-boot:
    ***************
    IPL fd8e347
    D-0a
    128MB
    BIST0_0001-OK
    Load IPL_CUST from SPINAND
    CIS in Block00
    Need to search SNI
    Not find SNI

    BlSize 00004780
    Checksum OK

    IPL_CUST fd8e347
    runUBOOT()
    CIS in Block00
    Need to search SNI
    Not find SNI
    ChkHealthy: 0003: 0007: 0000
    ChkHealthy: 0004: 0007: 0000
    ChkHealthy: 0005: 0007: 0000

    Load BL from SPINAND
    -Verify CRC32 passed!
    -Decompress XZ
    u32HeaderSize=0x00000040
    u32Loadsize=0x00006948
    decomp_size=0x0000f294
    Disable MMU and D-cache before jump to UBOOT
    **************
    и по кругу, можно прервать, но ничего оттуда толкового не сделать, какие мои дальнейшие действия.

    Ответить
    1. mixatronik автор

      Сложность в том, что в родном загрузчике нет команд работы с памятью, соответственно надо вернуть ростелекомовский загрузчик через snander и повторить процедуру. Теоретически, через snander можно вообще всё прошить, но это будет ооочень долго.

      Ответить
      1. Андрей

        snander у меня не собрался (разбираться пока не стал), поэтому вопрос: – какой у вас дистрибутив Ubuntu?

        Ответить
        1. mixatronik автор

          Моя статья про snander устарела, если речь про неё. Сейчас там всё пакетами распространяется и детекция интерфейса автоматизирована и даже под винду есть инсталлятор. Хотел поправить статью, но как-то не о чем писать оказывается. Скачал, установил, подключил. Хотя какую-то камерку я из под винды шить так пытался и как-то не очень вышло. Не понял пока в чём дело.

          Ответить
          1. Андрей

            Подскажете может нужные пакеты?
            Или ссылочки под винду.
            Результаты своих ковыряний потом сюда выложу.

          2. mixatronik автор

            Вот драйвер, который нужно установить: https://github.com/OpenIPC/snander-mstar/tree/master/driver
            Вот пакеты под разные оси: https://github.com/OpenIPC/snander-mstar/releases/tag/latest
            Вот мануал по командам: https://github.com/OpenIPC/snander-mstar/tree/master

          3. Андрей

            Привет!
            Завел snander под виндой:
            ****
            C:\snander>snander -i
            SNANDer – Spi Nor/nAND programmER 1.8.0 by McMCC

            Found programmer device: WinChipHead (WCH) – CH341A
            Using I2C default speed mode

            spi_nand_probe: mfr_id = 0xa1, dev_id = 0xe4, dev_id_2 = 0x7f
            Get Status Register 1: 0x7c
            Get Status Register 2: 0x10
            Using Flash ECC.
            Detected SPI NAND Flash: FM FM25S01A, Flash Size: 128MB, OOB Size: 64B
            ****
            теперь, что бы не накосячить спрашиваю – как правильно записать загрузчик РТ (c22ep_s2_rt-boot.bin)
            с какого адреса и какую длину указывать?

            snander -a 0x000000 -l 0x200000 -e
            snander -a 0x000000 -l 0x200000 -w c22ep_s2_rt-boot.bin -v

          4. mixatronik автор

            Привет! Если дело дошло до snander-а, то накосячить невозможно. Косяк – то, что к этому привело 🙂
            Загрузчик пишется всегда с 0, а размер блока любой, но чтобы был больше размера самого загрузчика. Ещё для NAND размер стираемой/записываемой области памяти должен быть кратен определённой величине. То ли 20000, то ли 100000 – точно не помню,но если не угадаешь, то оно напишет. Главное – читать, что пишет.

          5. Андрей

            Всё, камера готова.
            snander – вещь!
            Прошил загрузчик, и после – все файлы прошивки, только с конца. Загрузчик записывал последним. На этот раз ошибок небыло, все прошло штатно.

          6. mixatronik автор

            Согласен. Автору – респект и уважуха! Если с размерами записываемых блоков не ошибаться, то можно и с конца, но с начала всё же надёжнее.

  7. Groh

    Подскажите а на IPC-C22E-S2 v2 сработает данный метод? Или это уже совсем другая камера?

    Ответить
    1. mixatronik автор

      Если говорить именно про метод, то сработает, т.к. он универсальный. Другое дело, что, скорее всего аппаратная платформа отличается, соответственно, предоставленная здесь прошивка не подойдёт. Надо искать какой модели Dahua это соответствует и искать прошивку для неё. Если это вообще Dahua.

      Ответить