Запуск OpenIPC на камере Ростелеком IPC-C22E-S2 v2

OpenIPC

Несмотря на схожее название, эта камера не имеет ничего общего с камерой IPC-C22E-S2, про отвязку которой от сервисов различных провайдеров на сайте есть несколько статей. Кто является производителем железа не ясно и вряд ли это вообще Dahua. В связи с этим, не очень понятно, где искать оригинальную прошивку и существует ли она в принципе.

Как всегда, в подобной ситуации, выручает OpenIPC, благо аппаратная платформа в списке поддерживаемых и сборка для препарируемой модели есть даже в репозитории проекта OpenIPC Builder.

OpenIPC Builder позволяет получить дамп, в котором уже прописаны основные настройки и нет необходимости делать это вручную. Таким образом, сразу после прошивки, получаем работающее устройство.

Инструменты

Материалы

Утилиты

  • Putty — программа для работы через UART.

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

u-boot
IPL g40bd5ed
D-0a
HW Reset
SPI 54M
128MB
BIST0_0001-OK
MXP found at 0x0000f000
offset:00010000
Checksum OK

IPL_CUST g40bd5ed
MXP found at 0x0000f000
offset:00020000
XZ decomp_size=0x00045e44


U-Boot 2015.01 (Mar 22 2023 - 07:52:09)

Version: I6g#######
I2C:   ready
DRAM:
WARNING: Caches not enabled
MMC:   MStar SD/MMC: 0
nor_flash_mxp allocated success!!
Flash is detected (0x0B05, 0xC8, 0x40, 0x18)
SF: Detected nor0 with total size 16 MiB
MXP found at mxp_offset[2]=0x0000F000, size=0x1000
can not found mxp record: UBOOT_ENV
Flash is detected (0x0B05, 0xC8, 0x40, 0x18)
SF: Detected nor0 with total size 16 MiB
*** 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:603
gpio[78] is 1
gpio debug MHal_GPIO_Pad_Set:603
gpio[79] is 1
gpio debug MHal_GPIO_Pad_Set:603
gpio[14] is 1
gpio debug MHal_GPIO_Pad_Set:603
gpio[15] is 0
gpio debug MHal_GPIO_Pad_Set:603
gpio[52] is 0
gpio debug MHal_GPIO_Pad_Set:603
gpio[47] is 0
gpio debug MHal_GPIO_Pad_Set:603
gpio[46] is 0
gpio debug MHal_GPIO_Pad_Set:603
gpio[47] is 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
btime   - Show booting time
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 /)
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
mw      - memory write (fill)
mxp     - MXP function for Mstar MXP partition
nm      - memory modify (constant address)
ping    - send ICMP ECHO_REQUEST to network host
printenv- print environment variables
reset   - Perform RESET of the CPU
riu     - riu  - riu command

run     - run commands in an environment variable
saveenv - save environment variables to persistent storage
sdstar  - script via sd package
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 and aes
srcfg   - sensor pin and mclk configuration.
test_sig- Test runAuthenticate2

tftpboot- boot image via network using TFTP protocol
uart    - UART sub-system
version - print monitor, compiler and linker version
printenv
baudrate=115200
bootargs=mem=130840K console=ttyS0,115200  LX_MEM=0x7fe0000 mma_heap=mma_heap_name0,miu=0,sz=0x4000000 rootfstype=ramfs mtdparts=NOR_FLASH:320K(boot),64K(tech),5120K(kernel),8192K(app),-(config) hw_type=2501
bootcmd=sf probe 0; sf read 0x22000000 0x60000 0x500000; bootm 0x22000000; setenv bootargs $(bootargs) bkp=1; sf read 0x22000000 0x560000 0x500000; bootm 0x22000000
bootdelay=0
ethact=sstar_emac
ethaddr=00:30:1b:ba:02:db
preboot=gpio output 78 1;gpio output 79 1;gpio output 14 0;gpio output 15 0;gpio output 52 0;gpio output 47 0;gpio output 46 0;gpio output 47 1;
stderr=serial
stdin=serial
stdout=serial

Environment size: 652/4092 bytes

Подготовка

Для прошивки понадобится подключиться к разъёму UART. Проводного сетевого интерфейса нет, поэтому брать дампы будем с карты памяти. Карту памяти нужно отформатировать в FAT32 и положить на неё дампы загрузчика, ядра и файловой системы:

  • u-boot-ssc335de-nor.bin
  • uImage.ssc335de
  • rootfs.squashfs.ssc335de

Загрузчик берём стандартный, а ядро и систему – из репозитория Builder.

Коннектор используется такой же, как для Dahua и Uniview, но у него придётся подогнуть или откусить крайнюю лапку, которая всё равно не используется, т.к. на плате всего 3 отверстия и лишняя лапка будет мешать.

Прошивка

Подаём питание на камеру и останавливаем загрузку нажатием клавиши Enter. Далее вводим команды прошивки.

mw.b 0x21000000 0xff 0x50000
fatload mmc 0:1 0x21000000 u-boot-ssc335de-nor.bin
sf probe 0
sf erase 0x0 0x50000
sf write 0x21000000 0x0 0x50000

mw.b 0x21000000 0xff 0x200000
fatload mmc 0:1 0x21000000 uImage.ssc335de
sf erase 0x50000 0x200000
sf write 0x21000000 0x50000 0x200000

mw.b 0x21000000 0xff 0x500000
fatload mmc 0:1 0x21000000 rootfs.squashfs.ssc335de 
sf erase 0x250000 0x500000
sf write 0x21000000 0x250000 0x500000

sf erase 0x750000 0x8b0000
reset

После перезапуска останавливаем загрузку и задаём MAC-адрес беспроводного интерфейса. Взять его можно с наклейки камеры. Если не задать, то система возьмёт MAC из чипа Wi-Fi.

setenv wlanmac e6:0f:76:d3:a2:62
save

Подключение к сети

Параметры подключения к Wi-Fi хранятся в двух переменных: wlanssid – SSID сети и wlanpass – пароль сети. Присвоить значения этим переменным можно тремя способами:

В загрузчике

Останавливаем запуск загрузчика и прописываем параметры своей Wi-Fi сети:

setenv wlanssid MyWiFi
setenv wlanpass 31592078
save
reset

В системе

Не останавливаем загрузку и входим в систему под пользователем root с паролем 12345. Задаём значения переменных загрузчика:

fw_setenv wlanssid MyWiFi
fw_setenv wlanpass 31592078
reboot

С помощью QR-кода

На сайте OpenIPC существует специальный инструмент: Wireless Network QR Code Generator. Вводим параметры своей сети и жмём кнопку Generate QR Code. Объектив камеры направляем на полученный QR-код и ждём пока камера скажет “Device ready”. Подготовить QR-код лучше заранее, потому что камера ищет его только в первые несколько секунд после включения.

После подключения к сети камера получит адрес, который можно узнать в консоли, командой ifconfig, в интерфейсе роутера – в разделе выданных адресов или просканировать сеть утилитой Advanced IP Scanner.

Веб-интерфейс

В браузере вбиваем полученный адрес и видим предложение поменять дефолтный пароль 12345 на сложный. После выполнения этой процедуры попадаем в веб-интерфейс OpenIPC.

В разделе Preview можно полюбоваться на изображение, которое выдаёт камера, а увидеть видеопоток можно в VLC, открыв в нём RTSP URL: rtsp://root:пароль@192.168.1.214/stream=0

Если нужно, можно включить ONVIF и/или NETIP. Параметры для переключения режима день/ночь настроены, но автоматическое переключение не включено, т.к. требуется настроить пороги срабатывания, а делается это опытным путём, ориентируясь на значение освещённости в конкретный момент.

Оцените статью
( Пока оценок нет )
МихаТроник
Добавить комментарий