Отвязка от Ростелеком камеры IPC-HFW1230SP/IPC-HDW1230SP

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

Взял за правило сохранять всю доступную информацию по препарируемым камерам. Бывает так, что посчитаешь что-то незначительным и не нужным, а потом вдруг оно надо, а нету. А чтобы не искать в своих “архивах” всё буду выкладывать на сайт.

Камера

тут будет фото и данные по SoС, памяти и т.п.

Инструменты

Утилиты

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

Материалы

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

u-boot
hi3516cv300 System startup


U-Boot 2010.06 (Jun 01 2020 - 08:20:12)

Check Flash Memory Controller v100 ... Found
SPI Nand(cs 0) ID: 0xc8 0x21 Name:"F50L1G41A"
Block:128KB Page:2KB Chip:128MB*1 OOB:64B ECC:8bit/512
ECC provided by Flash Memory Controller
SPI Nand total size: 128MB
MMC:
EMMC/MMC/SD controller initialization.
Card did not respond to voltage select!
No EMMC/MMC/SD device found !
*** Warning - bad CRC or NAND, using default environment

In:    serial
Out:   serial
Err:   serial
Hit any key to stop autoboot:  0
hi3516cv300-vc #
help
?       - alias for 'help'
base    - print or set address offset
bootm   - boot application image from memory
bootp   - boot image via network using BOOTP/TFTP protocol
bootss  - boot from snapshot image
cmp     - memory compare
cp      - memory copy
crc32   - checksum calculation
ddr     - ddr training function
ext2load- load binary file from a Ext2 filesystem
ext2ls  - list files in a directory (default /)
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls   - list files in a directory (default /)
fwupdate- fwupdate command allows to flash vc camera firmware from file on mmc or from memory.
getinfo - print hardware information
go      - start application at address 'addr'
help    - print command description/usage
hi_gpio - set hisilicon gpio states
loadb   - load binary file over serial line (kermit mode)
loady   - load binary file over serial line (ymodem mode)
loop    - infinite loop on address range
md      - memory display
mii     - MII utility commands
mm      - memory modify (auto-incrementing address)
mmc     - MMC sub system
mmcinfo - mmcinfo -- display MMC info
mtest   - simple RAM read/write test
mw      - memory write (fill)
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
rarpboot- boot image via network using RARP/TFTP protocol
reset   - Perform RESET of the CPU
saveenv - save environment variables to persistent storage
setenv  - set environment variables
sf      - SPI flash sub-system
tftp    - tftp  - download or upload image via network using TFTP protocol
ugzip   - Compress gzipfile with hardware IP
version - print monitor version
printenv
bootargs=mem=64M console=ttyAMA0,115200 rootfstype=ramfs mtdparts=hinand:1024K(boot),1024K(tech),5120K(kernel),16384K(app),-(config) hw_type=405 ubi.mtd=3,2048
bootcmd=hi_gpio $(hi_gpios); fwupdate mmc 0:1 firmware.bin --enable-legacy-fw --with-props; nand read 0x82000000 0x200000 0x500000; bootm 0x82000000; setenv bootargs $(bootargs) bkp=1; nand read 0x82000000 0x700000 0x500000; bootm 0x82000000
bootdelay=1
baudrate=115200
ethaddr=00:00:23:34:45:66
ipaddr=192.168.1.10
serverip=192.168.1.2
netmask=255.255.255.0
bootfile="uImage"
hi_gpios=60! 0! 73 27 72
stdin=serial
stdout=serial
stderr=serial
verify=n
ver=U-Boot 2010.06 (Jun 01 2020 - 08:20:12)

Environment size: 656/131068 bytes

Бэкап

Первым делом надо сделать резервную копию текущей прошивки. Благо соответствующие команды в загрузчике присутствуют. Для того, чтобы дамп успешно скопировался в каталог tftp-сервера, нужно, чтобы компьютер, где он запущен, и камера находились в одной сети. Смотрим значение ipaddr и serverip и меняем, если нужно, или меняем адрес компьютера.

У меня локальная сеть 192.168.1.х и адрес 192.168.1.10 не занят, поэтому с адресом камеры всё в порядке. Адрес моего компьютера 192.168.1.128 и либо можно изменить его в настройках сетевой карты и поменять последний октет, чтобы получилось 192.168.1.2, либо поменять значение serverip.

setenv serverip 192.168.1.128
save
Перед манипуляциями с tftp-сервером отключайте Брандмауэр Windows или, если используете какой-то другой, то его, либо ставьте порт UDP 69 в исключения.

Снимать дамп будем частями по 16 Мб, но вся память не нужна, т.к. в прошивке Ростелеком она, в основном, пустая и имеет смысл сохранить только первые 32 Мб.

mw.b 0x82000000 0xff 0x1000000
nand read 0x82000000 0x0 0x1000000
tftp 0x82000000 rt-ipc-hdw1230sp0.bin 0x1000000

mw.b 0x82000000 0xff 0x1000000
nand read 0x82000000 0x1000000 0x1000000
tftp 0x82000000 rt-ipc-hdw1230sp1.bin 0x1000000

На всякий случай выкладываю и дамп прошивки Ростелеком. Мало ли, вдруг кто-то захочет обратно вернуться. Только надо серийник поправить в редакторе. И ещё вырезал из дампа загрузчик, который позволяет восстановить окирпиченную камеру через HiTool. Статья об этом будет чуть позже.

Прошивка и настройка загрузчика

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

Необходимые материалы предоставил и помог ценными советами камрад fobos с форума dahuacctv.com
mw.b 0x82000000 0xff 0x1000000
tftp 0x82000000 ipc1230sp-boot+.bin
nand erase 0x0 0x1000000
nand write 0x82000000 0x0 0x1000000

reset

После перезапуска, не дожидаясь приглашения, сразу жмём кнопку * и попадаем в загрузчик. Приглашения нет, потому что вывод в консоль в загрузчике отключен. За это отвечает параметр dh_keyboard. По умолчанию он равен 1, но если хочется видеть лог загрузки и загрузчика и ядра, то можно выставить его в 0.

Для понимания, что и как, введём команду printenv и увидим следующее:

Отвязка от Ростелеком камеры IPC-HFW1230SP/IPC-HDW1230SP
Environment size: 990/131068 bytes
dhboot # printenv
bootargs=mem=256M console=ttyS0,115200 root=/dev/mtdblock7 rootfstype=squashfs
bootcmd=kload 0x82000000; bootm 0x82000000
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"
quickstart=0
wifiaddr=00:12:34:56:78:91
mp_autotest=0
HWID=IPC-HDBW1230E-S2:01:02:05:60:28:00:01:00:00:00:00:320:00:00:00:00:00:00:00:00:100
hwidEx=00:03:00:00:00:00:00:00:00:00:00:00:00:00:00:00
ID=000000000000000000
devalias=DH-IPC-HFW1230SP-0280B
da=tftp 0x82000000 dhboot.bin.img; flwrite;nand protect off;tftp dhboot-min.bin.img;flwrite
dr=tftp 0x82000000 romfs-x.squashfs.img; flwrite
dk=tftp 0x82000000 kernel.img; flwrite
du=tftp 0x82000000 user-x.squashfs.img; flwrite
dw=tftp 0x82000000 web-x.squashfs.img; flwrite
dp=tftp 0x82000000 partition-x.cramfs.img;flwrite
dc=tftp 0x82000000 custom-x.squashfs.img; flwrite
up=tftp 0x82000000 update.img; flwrite
tk=tftp 0x82000000 uImage; bootm
dh_keyboard=1
appauto=1
sysbackup=1
loglevel=4
pd=tftp 0x82000000 pd-x.squashfs.img; flwrite
stdin=serial
stdout=serial
stderr=serial
ver=U-Boot 2010.06-svn6470 (Dec 11 2018 - 16:27:39)

Environment size: 990/131068 bytes

Как видим, всё получилось и загрузчик у нас теперь Dahua, но нет важных параметров: MAC-адреса (ethaddr) и ID. Корректный MAC позволит работать в сети, а правильный ID даст возможность подключиться к облаку.

MAC-адрес есть на шильдике, а ID берётся из QR-кода на корпусе ИК-фильтра. Только точки из него надо убрать. Ниже QR-кода есть те же цифры, что и зашифрованы в нём, но не все. Если считать код, то там цифр больше и тестировал именно такой ID. Будет ли облако работать с укороченным, не проверял.

Поскольку загрузчик теперь другой то и serverip тоже другой – дефолтный, а не тот, который задали на предыдущем шаге. Выставим заодно и его в нужное значение.

setenv ID 6F079F7B09000000           // значение берётся из QR-кода
setenv ethaddr 08:ed:ed:00:00:00     // значение берётся с шильдика 

setenv serverip 192.168.1.128

save

Прошивка прошивки

Теперь всё готово для прошивки штатным образом. Вводим команду run up и ждём окончания процесса, а после этого перезапускаем камеру командой reset.

run up
............
reset
Отвязка от Ростелеком камеры IPC-HFW1230SP/IPC-HDW1230SP

После перезапуска камера станет доступна по адресу 192.168.1.108 и будет в неинициализированном состоянии. Надо инициализировать – задать пароль и можно настраивать.

Отвязка от Ростелеком камеры IPC-HFW1230SP/IPC-HDW1230SP
Положительного результата удалось добиться только после совместного мозгового штурма с камрадом @ABATAPA

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

  1. montajnik007

    Добрый день, решился прошить по инструкции. Но похоже что-то пошло не так и после последнего действия при загрузке выходит только это:
    hi3516cv300 System startup
    U-Boot 2010.06-svn6470 (Dec 11 2018 – 16:27:39)
    Похоже кирпич) Подскажите есть варианты воскресить?

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

      Она жива 🙂 Просто у загрузчика отключен вывод в консоль. Если бы было только hi3516cv300 System startup, то кирпич, а так, скорее всего нет и всё нормально. После подачи питания надо сразу давить * не дожидаясь приглашения и всё будет.

      Ответить
      1. montajnik007

        Отлично, сработало) Инициализировал в ConfigTool и зашел на Web-морду. Единственный нюанс с маком, вводил вроде все по инструкции но стал 90 и все нули. На выходных потестю с регистраторои Орбита. Большое спасибо за ваш труд!!!!

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

          Пожалуйста!
          С таким MAC-ом могут быть проблемы при работе в сети. Так что лучше всё-таки пофиксить.

          Ответить
      2. Александр

        Здравствуйте.
        Знакомый принес камеру с такой проблемой.
        При подключении к UART вывод – “hi3516cv300 System startup” и более ничего. Ни на какие кнопки не реагирует.
        Похоже что залили не ту прошивку или по какой-то причине дальше загрузчик не стартует. Не подскажете что с ней можно сделать?

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

          Здравствуйте! В этих моделях отключен вывод лога в консоль, поэтому то, что ничего не видно ещё ни о чём не говорит. Консоль ждёт нажатия только первые несколько секунд, так что может не успеваете просто либо проблема в адаптере или подключении. Если система таки стартует, то на сетевом порту должен быть линк, должен щёлкать ИК-фильтр и загораться и гаснуть ИК-подсветка. Если ничего из этого не происходит, то вероятно камера окирпичена. Так бывает при заливке не всей родной прошивки, а только первой части загрузчика, например, либо при наличии бэдов на флешке, что приводит к сдвигу дампа, и как следствие, невозможности загрузки.
          Полечить просто – залить ростелекомовский загрузчик через HiTool или Burn. Про HiTool и именно эту модель есть статья: Восстановление камеры IPC-HFW1230SP/IPC-HDW1230SP. Про Burn есть инструкция и видосик на GitHub.

          Ответить
          1. Александр

            Спасибо за ссылку на статью! Буду пробовать.
            А не подскажите еще. Есть камера IPC322SR3-VSPF28-C. Такая же беда. Лежит уже давно, никак руки не доходят. Нет у Вас случайно прошивки на эту камеру?

          2. mixatronik автор

            Пожалуйста! Эта камера шьётся аналогично камере IPC2122SR3-RUO. Родную прошивку найти не удалось либо её вообще нет, но зато шьётся прошивка от камеры Dahua: Отвязка от Ростелеком камеры IPC2122SR3-RUO . Совместимость не полная, но всё решаемо и есть большой плюс – работает облако!

  2. Александр

    Этот метод подойдёт к любой камере IPC-HFW1230SP с прошивкой Ростелекома или есть различия исходя из серийного номера?

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

      Вот чего не знаю, того не знаю. Таких камер пока восстановил не очень много и статистики не набралось. До сих пор всё проходило удачно. У некоторых, правда, был какой-то непонятный глюк с bootargs, но ещё не понял по какой причине он возникает. И даже этот глюк путём шаманства лечится, но опять же, не совсем понятно почему лечится именно так. Так что, практически результат тоже есть, но и научный интерес тоже есть, а там уж кому что – или восстановить и запустить в работу или ковыряться дальше.
      Статья не закончена, а когда этот момент настанет, то и все ответы будут, надеюсь.

      Ответить
      1. worlock

        Благодарю за инструкцию и файлы!
        Удалось отвязать две камеры с положительным исходом.

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

          Рад помочь!

          Ответить
  3. Reyz

    Уважаемый mixatronik!
    Огромное спасибо за проделанный труд! Можно попросить у вас фото штрих-кода для ID (например, K42LB на борту несёт 3 наклейки,одна на объективе 17 символов с точками, вторая в правом углу (мелкая 15 символов) и последняя на плате после снятия объектива).

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

      Надо понимать, что тут всё на уровне догадок, но я же чётко указал откуда сам брал код – с корпуса ИК-фильтра. Это как раз 17 символов с точками, но точки надо убрать.
      На самом деле, для этой модели облако не так уж и актуально. Слота под карту памяти у неё нет, а значит писать придётся на регистратор. Ну а там своё облако.

      Ответить
  4. Алексей

    Здравствуйте! А вы можете помочь удаленно спроцессом отвязки камер? По незнанию купил пару таких, а теперь вот в печали… Приобрел вроде все необходимое, подпоялся на плате и выполнил подключение через Putty, бежит бесконечно отладочная информация, но никаких команд веести не могу

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

      Как понимаю уже не акутально. 🙂

      Ответить
    2. Сергей

      Алексей добрый день помогите разобраться у меня такая же проблема как у вас камера у меня IPC-HFW1230SP и тоже при подключении циклически бегут какие то данные на ” * ” ни как не реагирует

      Ответить
  5. Алексей

    у меня прогресс
    но на моменте выполнения команды runup выдает вот такое
    dhboot # run up
    Hisilicon ETH net controler
    miiphy_register: non unique device name ‘0:1’
    miiphy_register: non unique device name ‘0:2’
    UP_PORT : phy status change : LINK=DOWN : DUPLEX=FULL : SPEED=100M
    UP_PORT : phy status change : LINK=UP : DUPLEX=FULL : SPEED=100M
    Download Filename ‘update.img’.
    Downloading: *
    ARP Retry count exceeded; starting again

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

      Недоступен tftp-сервер или в его каталоге нет искомого файла. Если первое, то смотреть в сторону брандмауэра, если второе, то положить файл. Ещё может быть, что неправильно задан IP-адрес сервера, то бишь компа, но тут могу посоветовать только повнимательнее читать мануал 🙂

      Ответить
      1. Алексей

        Уже разобрался😀 ip сервера поправил и все завелись отлично! Спасибо Вам большое за отличную инструкцию) спасаете людей)

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

          Всегда пожалуйста!

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

    Добрый день, mixatronik!
    Пытался отвязать камеру и получил кирпич.
    Вот что было последнее:

    bootdelay=1
    baudrate=115200
    ethaddr=00:00:23:34:45:66
    netmask=255.255.255.0
    bootfile=”uImage”
    hi_gpios=60! 72 27 0! 73
    stdin=serial
    stdout=serial
    stderr=serial
    verify=n
    ver=U-Boot 2010.06 (Feb 20 2020 – 08:38:06)
    serverip=192.168.1.39
    ipaddr=192.168.1.111

    Environment size: 658/131068 bytes
    hi3516cv300-vc # mw.b 0x82000000 0xff 0x1000000
    hi3516cv300-vc # tftp 0x82000000 ipc1230sp-boot+.bin
    Hisilicon ETH net controler
    MAC: 00-00-23-34-45-66
    PHY not link.
    hi3516cv300-vc # nand erase 0x0 0x1000000

    NAND erase: device 0 offset 0x0, size 0x1000000
    Erasing at 0xfe0000 — 100% complete.
    OK
    hi3516cv300-vc # nan
    nand – NAND sub-system

    hi3516cv300-vc # nand erase 0x0 0x1000000

    NAND erase: device 0 offset 0x0, size 0x1000000
    Erasing at 0xfe0000 — 100% complete.
    OK
    hi3516cv300-vc # nand write 0x82000000 0x0 0x1000000

    NAND write: device 0 offset 0x0, size 0x1000000
    pure data length is 16777216, len_incl_bad is 16777216
    16777216 bytes written: OK
    hi3516cv300-vc # reset
    resetting …

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

      Добрый! В чате уже подсказали, что и как, но напишу и здесь. Строка PHY not link буквально означает, что связи нет и, соответственно, передача дампа невозможна. Значит и записывать нечего, поэтому и имеющееся стирать не стоит. Надо разбираться почему нет связи и только после её восстановления продолжать.
      Тем не менее, дерьмо случается, но выход есть: Восстановление камеры IPC-HFW1230SP/IPC-HDW1230SP, поэтому можно смело экспериментировать.

      Ответить
  7. Rinat

    Огромное спасибо за проделанную работу! Удачно отвязал камеру от ростелекома.

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

      Рад помочь!

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

    Добрый день. А русский язык в родную прошивку Dahua 1230SP как-то добавить можно? Если да, то как? Благодарю.

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

      Добрый! Честно говоря, по моему мнению, русификация, в данном случае, нужна не более чем никому 🙂 Переводить там особо нечего. Там ведь не высокохудожественный текст, а тупо параметры. Соответственно, вообще не интересовался этим вопросом. Может и можно что-то сделать, но зачем?

      Ответить
  9. Николай

    Здравствуйте. При остановке загрузки с помощью “*” камера почему то не получает ip адрес и не определяется роутером. При обычной загрузкой ip получает и пингуется но как я понимаю команды для считывания и загрузки конфиги недоступны. Как быть?

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

      Привет! Само собой. Для получения адреса должен работать DHCP-клиент, а в загрузчике его нет. Но в загрузчике есть переменная ipaddr, которая задаёт адрес камеры и переменная serverip, которая задаёт адрес сервера, то бишь компьютера, на котором запущен tftp-сервер. Нужно присвоить им правильные значения и всё будет.
      Вообще говоря, в статье, в разделе Бэкап, подробно расписано что к чему.

      Ответить
  10. Goshan

    А с такой моделькой сталкивались?
    ipc-hfw1230sp v2
    я так полагаю эта статья не подойдет под v2 и нужна прошивка под v2?

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

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

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

    Подтверждаю, метод рабочий и ещё раз выражаю огромную благодарность автору.
    Без танцев с бубном не обошлось, признаю, с другой стороны, новый опыт и новые знания.
    В частности, у меня собственно прошивка никак не заливалась, но тут сам виноват, это был мой косяк с сетевым интерфейсом (не пинговалась вообще никак ни при каких конфигурациях и настройках)
    Связался с автором, он не счёл за труд ответить, помог раскирпичить (есть отдельная инструкция), взял отдельный ноут и всё завелось без проблем.
    Ещё раз спасибо!

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

      Пожалуйста!

      Ответить
      1. Сергей

        подскажите пожалуйста ,начал отвязывать камеру ,по инструкции ,сделал бекаб всё сохранилось ,прошил загрузчик ,тоже всё залилось ,грузится в загрузчик ,но при вводе команды run up .пишет нет такой команды tru help но только потом посмотрел на наклейку а там написано другая модель IPC-HFW1231SNM ,и сразу вы пишите что лог загрузки отключен ,а здесь в этой камере не отключен.вам не попадалась такая камера ,

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

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

          Ответить
          1. Сергей

            процессор такой же как описание в этой теме hi3516cv300 при прошивки загрузчика ,написало типа загрузка выполнена ,после перезагрузки ,идёт лог загрузки ,да и ip адрес камеры и сервера не изменился ,я тоже подумал что не прошился загрузчик ,но написало что успешно залилось ,и дальше грузится ,не окирпичилась. и активный лан порт и tftp сервер её видит ,заливал несколько раз загрузчик и почему то команда run up в этой камере не работает,может другая команда здесь нужна

          2. mixatronik автор

            Загрузка – это загрузка. Это просто передача в оперативку. Она ни на что не влияет. Главное – запись. Если из оперативки дамп записан на флешку, то при следующем включении запустится именно он. И тут либо-либо: либо загрузится, либо кирпич. Скопируй сюда вывод printenv. Насчёт run up – неправильный вывод. Команды загрузчика потому и называются командами загрузчика, что код, ими выполняемый, является его частью. Поэтому не может так получиться, что загрузчик есть, а команды в нём нет. она может выполняться с ошибкой, например, при отсутствии сети, но совсем отсутствовать не может.

  12. Сергей

    Добрый день mixatronik принесли камеру от РТ IPC-HFW1230SP помогите отвязать. Если есть возможность то удаленно. Заранее спасибо!!!

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

      Добрый! Удалённо – никак. Камеру разбирать надо и всё такое прочее.

      Ответить