Merge branch 'master' of github:OpenIPC/wiki

pull/60/head
Igor Zalatov 2022-10-14 19:23:39 +03:00
commit 38ae718608
8 changed files with 220 additions and 5 deletions

View File

@ -4,6 +4,27 @@
Questions and answers
----------------
### How to sign in into camera via SSH?
`ssh root@<camera_ip_address>`
There is no password by default.
### How to sign in into camera web UI?
Open http://<camera_ip_address>:85/ and sign in using default username _admin_ and default password _12345_.
You will be asked to change the password after successful login. __Please note, it will also change your ssh root password!__
### How to find information about the camera hardware and software?
Sign in on camera via `ssh` and run `ipctool`.
### I don't see ipctool on camera. Why?
You don't see it because initially it is not there, but there is a shell command of the same name. _(Since it's a shell command, it won't work from Web Console in web UI. Sign in to the camera via SSH and run the command in there.)_ When you run this command, the latest available version of `ipctool` utility gets downloaded into `/tmp/` directory and runs from there. Since the utility resides in `/tmp/`, it won't survive a reboot, thus won't take any useful space on the camera afterwards.
If you need to know what's in the command, search for `ipctool` in `/etc/profile` file.
### How to find original MAC address in a firmware dump
```
@ -12,10 +33,7 @@ strings dumpfile.bin | grep ^ethaddr
### How to configure ssh session authorization by key
__On the camera__: Open an ssh session and create a non-empty password for the root user. By default, in our firmware
the root user does not have a password. Keep in a mind that after you have created a password, all subsequent new ssh sessions
will require authorization with this password until the moment you set up the public key authorization,
as well as when trying to log in from a computer which does not povides such key. Don't forget it!
__On the camera__: Sign in into web UI on port 85 of your camera.
```
passwd
```

View File

@ -87,6 +87,12 @@ Tested on Gk7205v200:
| Hi3516Ev200 |
| Hi3518Ev200 | 64 | 65 | 47 |
### iSNATCH (HeySmart) mini "cube" camera
| Processor | IRCUT1 | IRCUT2 | IRSTATUS | IRLED | RESET |
|-------------|--------|--------|----------|----------|---------
| T10 | 25 | 26 | - | 19 | 60i |
### Netcam NVT boards
| Processor | IRCUT1 | IRCUT2 | IRSTATUS | IRLED |
@ -138,3 +144,9 @@ Tested on Gk7205v200:
| Processor | IRCUT1 | IRCUT2 | IRLED | DEVICE ID |
|-------------|--------|--------|-------|--------------------------|
| Hi3516Ev300 | 40 | 41 | 65 | unknown |
### Zosi
| Processor | IRCUT1 | IRCUT2 | IRSTATUS | DEVICE ID |
|-------------|--------|--------|--------------|---------------|
| Hi3518Ev200 | 61 | 60 | 1 (inverted) | ZG2622MW |

View File

@ -25,7 +25,8 @@ factory firmware images, one of the following methods must be used:
OpenIPC firmware installation using Coupler.
--------------------------------------------
Instructions for using [Coupler](https://openipc.github.io/coupler/) can be found in [the project's documenation](https://openipc.github.io/coupler/).
Instructions for using [Coupler](https://openipc.github.io/coupler/) can be
found in [the project's documenation](https://openipc.github.io/coupler/).
OpenIPC firmware installation via TFTP and UART, step by step.
--------------------------------------------------------------
@ -89,6 +90,8 @@ sudo tar -C /srv/tftp/ -xvf openipc.*.tgz
In order to make a connection to UART port you will need a
[serial port adapter][FTDI] for your PC.
![UART Module](../images/uart-module.webp)
__Before you connect that adapter to you camera, make sure that it's working
voltage is set to 3.3 volt!__
Sometimes, you only need to flip a jumper to achieve that. But in some cases you

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

View File

@ -109,6 +109,7 @@ In Russian
- [Ростелекомовская камера с NAND](ru/hardware-rtk-nand.md)
- [Полезные ссылки](ru/resources.md)
- [Обзоры камер разных производителей](ru/reviews.md)
- [Hikvision DS-2CD2345F-IS](ru/hikvision-ds-2cd2345f-is.md)
## Что можно прочитать про прошивку OpenIPC?
- [Часто задаваемые вопросы и ответы на них][faq1]

View File

@ -154,3 +154,15 @@ $ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/wsl/lib:/snap/bin
```
(с) SterX aka zalessky
### Чем отличаются базовая версия прошивки (Lite) от расширенной версии (Ultimate) ?
- поддержка NAND flash
- файловая система UBI
- поддержка WiFi
- сканер QR кода
- сетевой экран
- MQTT (на некоторых Lite то-же есть)
- ZeroTier
- WireGuard
- множество фич Majestic в т.ч. стрим на Youtube/Telegram и т.д.

View File

@ -0,0 +1,167 @@
# OpenIPC Wiki
[Оглавление](../index.md)
Hikvision DS-2CD2345F-IS
--------------
**Внимание, на данный момент это просто рабочие заметки, а НЕ полная инструкция к действию !**
Среди камер продаваемых Ростелекомом существует модель Hikvision DS-2CD2345F-IS. От большинства прочих отличается тем, что оригинальной прошивки для неё, судя по всему, нет. Но железо поддерживается OpenIPC и значит не всё потеряно.
## Текущая ситуация
- В настоящее время удалось запустить сборку для процессора hi3516av100, т.к. только в ней есть поддержка памяти NAND, а всё остальное идентично сборке для hi3516av100.
- Последняя протестированная работающая сборка - от 27.05.22 Сборка от 6.10.22 запускается, но в ней отсутствует eth0. Причина выясняется.
- В протестированной сборке отсутствует поддержка UBIFS, поэтому периодически настройки каеры слетают к дефолтным значениям.
- Переключение день/ночь реализовано дополнительным скриптом. Есть определённые проблемы на границах тёмного и светлого времени суток - в сумерках многократно переключается то в один то в другой режим.
- Микрофон не работает.
- Запись на карпту памяти не тестировал.
## Платформа
- процессор hi3516dv100
- сенсор ov4689
- объём ОЗУ 128Мб
- объём ПЗУ 128Мб
- тип ПЗУ NAND
## Прошивка
### Переменные окружения
```
setenv soc hi3516av100
setenv sensor ov4689
setenv totalmem 128M
setenv osmem 32M
setenv bootargs 'mem=32M console=ttyAMA0,115200 panic=20 root=/dev/mtdblock3 rootfstype=squashfs init=/init mtdparts=hinand:1024k(boot),1024k(env),2048k(kernel),5120k(rootfs),-(rootfs_data)'
setenv bootcmd 'setenv setargs setenv bootargs ${bootargs}; run setargs; nand read 0x82000000 0x200000 0x200000; bootm 0x82000000'
setenv ethaddr 00:12:34:56:78:90 //задать MAC-адрес камеры, если не задан
setenv ipaddr 192.168.1.10 //задать IP-адрес камеры, если не задан
setenv serverip 192.168.1.2 //задать адрес компа с TFTP-сервером
```
### Образы ядра и файловой системы
```
mw.b 0x82000000 0xff 0x1000000
tftp 0x82000000 uImage.${soc}
nand erase 0x200000 0x200000
nand write.i 0x82000000 0x200000 0x200000
mw.b 0x82000000 0xff 0x1000000
tftp 0x82000000 rootfs.squashfs.${soc}
nand erase 0x400000 0x500000
nand write 0x82000000 0x400000 0x500000
reset
```
Можно вводить команды одной строкой через **;**, но лучше построчно, чтобы контролировать выполнение.
### Первый запуск
После загрузки системы нужно войти под пользователем root без пароля и выполнить команду **firstboot**. Система выполнит необходимые операции и перезапустится. Если не перезапустилась, то сделать это командой **reboot**.
Затем снова войти в бут и почистить память:
```
nand erase 0x900000 0x7700000
reset
```
Эту же операцию нужно выполнить, если происходят сбои по вине неподходящей файловой системы. Но то же самое можно сделать и через веб-интерфейс.
### Веб-интерфейс
Веб-интерфейс по умолчанию доступен по порту **85**. Логин: **admin**, пароль: **12345**. При первом входе будет предложено задать новый сложный пароль. Сам использую англоязычный интерфейс, поэтому и все пункты меню буду приводить тоже на английском. Основная часть системы — стример **Majestic**. Он выполняет функции захвата и трансляции изображения и делает всё остальное, что с этим связано. Надо настроить.
#### Majestic->Majestic settings
##### ISP
- В поле **Path to sensor configuration file** выбрать **/etc/sensors/ov4689_i2c_1080p.ini**
##### VIDEO0
- Включить **Enable Video0**
- Выбрать **Video0 codec: h265**
- Задать **Video resolution: 1920×1080**
- Задать **Video frame rate: 25**
- Задать **Video bitrate: 2048**
- Задать **Send I-frame each 1 second: 1**
##### VIDEO1
- Включить **Enable Video1**
- Выбрать **Video0 codec: h265**
- Задать **Video resolution: 704×576**
- Задать **Video frame rate: 25**
- Задать **Video bitrate: 512**
- Задать **Send I-frame each 1 second: 1**
После проведения указанных манипуляций сохранить изменения — видео настроено. В разделе **Preview** картинку можно увидеть только для JPEG и MJPEG. Просмотр видео работает не всегда — баг это или фича, разбираемся.
Увидеть картинку можно через VLC, выбрав в меню пункт Открыть URL и введя одну из строк:
- rtsp://admin:password@ip-address:554/stream=0 — первый поток
- rtsp://admin:password@ip-address:554/stream=1 — второй поток
где: password — ваш пароль, ip-address — адрес камеры.
## Переключение день/ночь
При наступлении тёмного времени суток или выключении источников света, как правило, видеокамеры переходят в ночной режим. Происходит перевод изображения в чёрно-белый режим, отключается ИК-фильтр и включается ИК-подсветка. В обратной ситуации производятся обратные действия.
Система может определять отсутствие света либо по датчику, либо по изображению. Пока **Majestic** умеет работать только с датчиком. В этой модели камеры его нет. Значит надо задать параметры управляющих выходов, а управлять ими придётся с помощью скрипта.
### Настройка GPIO
- Включить **Enable night mode**
- Задать **GPIO pin1 of signal for IRcut filter: 105**
- Задать **GPIO pin2 of signal for IRcut filter: 104**
- Задать **GPIO pin to turn on night mode illumination: 114**
Теперь **Majestic** знает про **GPIO** и можно попробовать поуправлять переключением вручную из командной строки через **API**. Нужно войти в систему под пользователем **root** без пароля. Команды следующие:
```
curl http://ip-address/night/on //включить ночной режим.
curl http://ip-address/night/off //выключить ночной режим.
curl http://ip-address/night/toggle //переключить режим.
```
Если всё работает, движемся дальше — автоматизируем процесс управления переключением режима на основе изменения времени экспозиции.
### Скрипт управления переключением режима
Создаём файл файл скрипта:
```
cat > /usr/sbin/checkexp.sh
```
… и вставляем содержимое через буфер обмена:
```
!/bin/sh
login=$(cat /etc/httpd.conf | grep cgi-bin | cut -d':' -f2)
pass=$(cat /etc/httpd.conf | grep cgi-bin | cut -d':' -f3)
chtime=5 #change time to check exptime
chexp=50 #change exptime threshold (40-80)
day=1
while true; do
exp=$(curl -s http://localhost/metrics | grep ^isp_exptime | cut -d' ' -f2)
chexp=50 #change exptime threshold (40-80)
bri=expr $exp / 1000
echo $bri
if [ $bri -gt $chexp -a $day -eq 1 ] ;then
day=0
curl -u $login:$pass http://localhost/night/on
fi
if [ $bri -le $chexp -a $day -eq 0 ] ;then
day=1
curl -u $login:$pass http://localhost/night/off
fi
sleep $chtime
done
```
Сохраняем файл нажав комбинацию **Ctrl+D** и даём разрешение на выполнение:
```
chmod +x /usr/sbin/checkexp.sh
```
Если теперь запустить скрипт, то он начнёт анализировать экспозицию и управлять ночным режимом. В консоль, с интервалом в 5 секунд, будут выдаваться значения экспозиции. Самая простая проверка — накрыть камеру ладонью и через 5 секунд должен раздаться щелчок ИК-фильтра — включится ночной режим. Убрать ладонь и ещё через 5 секунд ночной режим выключится.
Для того, чтобы скрипт запускался автоматически при старте системы, создаём файл запуска:
```
cat > /etc/init.d/S99rc.local
```
… и вставляем содержимое:
```
./usr/sbin/checkexp.sh > /dev/null 2>&1 &
exit 0
```
Сохраняем файл нажав комбинацию *Ctrl+D* и даём разрешение на выполнение:
```
chmod +x /usr/sbin/S99rc.local
```
Теперь можно перезапускать камеру и радоваться что переключение режима, хоть и не идеально, но работает.

View File

@ -52,6 +52,8 @@ sudo tar -C /srv/tftp/ -xvf openipc.*.tgz
Для подключения к камере через порт UART вам понадобится [адаптер][ftdi] для
создания подключения с серийного порта вашего компьютера.
![UART Module](../images/uart-module.webp)
__Прежде чем подключать адаптер к камере, убедитесь, что переключатель уровня
рабочего напряжения на адаптере установлен в 3.3 вольта!__ Иногда для этого
достаточно выставить соответствующее положение джампера, иногда надо перепаять