mirror of https://github.com/OpenIPC/wiki.git
Add files from wiki for transfer
parent
bfa0da8de1
commit
9b85688d39
|
@ -0,0 +1,24 @@
|
|||
# How to setup HTTPS certificates on your camera
|
||||
|
||||
Make sure your camera is accessible from the Internet and both 80 (HTTP) and 443 (HTTPS) ports are redirected on your router to the camera.
|
||||
|
||||
Create an ACME account:
|
||||
|
||||
```console
|
||||
$ uacme -y -v new
|
||||
```
|
||||
|
||||
then issue a certificate for your domain by doing
|
||||
|
||||
```console
|
||||
$ uacme -y -v -h /usr/share/uacme/uacme.sh -t EC issue www.your.domain.com
|
||||
```
|
||||
|
||||
If everything goes well uacme asks you to set up a challenge, for example
|
||||
|
||||
```
|
||||
uacme: challenge=http-01 ident=www.your.domain.com token=kZjqYgAss_sl4XXDfFq-jeQV1_lqsE76v2BoCGegFk4
|
||||
key_auth=kZjqYgAss_sl4XXDfFq-jeQV1_lqsE76v2BoCGegFk4.2evcXalKLhAybRuxxE-HkSUihdzQ7ZDAKA9EZYrTXwU
|
||||
```
|
||||
|
||||
Then restart majestic and test access to https://www.your.domain.com
|
|
@ -0,0 +1,38 @@
|
|||
## FFMPEG, RTSP and SRT examples
|
||||
|
||||
```
|
||||
# Copy from file to file
|
||||
./ffmpeg -re -i z_input.mp4 -c copy z_output.mp4
|
||||
|
||||
# Grab from RTSP to file
|
||||
./ffmpeg -re -i 'rtsp://172.19.32.179:554/stream=0' -c copy z_output.mp4
|
||||
|
||||
# Grab from SRT to file
|
||||
./ffmpeg -re -i 'srt://172.19.32.189:12345?pkt_size=1316' -c copy z_output.mp4
|
||||
|
||||
# Grab from RTSP to MP4
|
||||
./ffmpeg -re -i 'rtsp://172.19.32.179:554/stream=0' -c copy -listen 1 -seekable 1 -multiple_requests 1 -f mp4 http://localhost:8090
|
||||
|
||||
|
||||
# Stream with capture desktop
|
||||
./ffmpeg -video_size 1920x1080 -framerate 25 -f x11grab -i :0.0 -f mpegts 'srt://172.17.32.18:12345'
|
||||
|
||||
# Stream from file to SRT
|
||||
./ffmpeg -re -i input.mp4 -c copy -f mpegts 'srt://172.17.32.18:12345'
|
||||
|
||||
# Stream from file to RTSP with loop
|
||||
./ffmpeg -re -stream_loop -1 -i input.mp4 -f rtsp -rtsp_transport tcp 'rtsp://localhost:554/stream=0'
|
||||
|
||||
# Stream from file to SRT with re-encode
|
||||
./ffmpeg -re -i input.mp4 -c:v libx264 -b:v 4000k -maxrate 4000k -bufsize 8000k -g 50 -f mpegts 'srt://172.17.32.18:12345'
|
||||
|
||||
# Stream to SRT and copy codec from ipcam with Majestic
|
||||
./ffmpeg -re -i 'rtsp://172.19.32.179:554/stream=0' -c copy -f mpegts 'srt://172.17.32.18:12345'
|
||||
|
||||
# Stream low latency from ipcam with Majestic
|
||||
./ffmpeg -re -fflags nobuffer -i 'rtsp://172.19.32.179:554/stream=0' -c copy -f mpegts 'srt://172.17.32.18:12345?mode=caller&transtype=live&latency=100'
|
||||
|
||||
|
||||
# Receiver, untested
|
||||
ffplay 'srt://172.17.32.18:12345'
|
||||
```
|
|
@ -0,0 +1,11 @@
|
|||
## Boot device with NFS
|
||||
|
||||
Example for HI3516EV200 device
|
||||
|
||||
```
|
||||
bootargsnfs=mem=${osmem:-32M} console=ttyAMA0,115200 panic=20 root=/dev/nfs rootfstype=nfs ip=dhcp nfsroot=192.168.1.254:/media/nfs/hi3516ev200,v3,nolock rw ip=192.168.1.55:192.168.1.254:192.168.1.254:255.255.255.0::eth0
|
||||
|
||||
nfsboot=tftp 0x42000000 uImage;setenv setargs setenv bootargs ${bootargsnfs};run setargs;bootm 0x42000000
|
||||
|
||||
run nfsboot
|
||||
```
|
|
@ -0,0 +1,5 @@
|
|||
## Interesting tricks
|
||||
|
||||
### Sharing output of a command via web
|
||||
|
||||
`<command> | nc seashells.io 1337`
|
|
@ -0,0 +1,5 @@
|
|||
## Developers
|
||||
|
||||
[](https://github.com/widgetii) [](https://github.com/dimerr)
|
||||
|
||||
[](https://github.com/zigfisher) [](https://github.com/themactep)
|
|
@ -0,0 +1,25 @@
|
|||
## Switcam HS-303
|
||||
|
||||
Общественные заметки по перепрошивке устройств Switcam HS303 (всех версий) в [OpenIPC](https://openipc.org) v1.0 (на базе OpenWrt)..
|
||||
|
||||
Обсуждение проекта и возможностей прошивок (на русском языке) в группе [Telegram](https://t.me/openipc_modding)
|
||||
|
||||
### Сборник наиболее актуальных вопросов и ответов в формате Q&A
|
||||
|
||||
---
|
||||
|
||||
**Q. Какие типы устройств поддерживаются в проекте OpenIPC v1.0 ?**
|
||||
|
||||
**A.** На данный момент полноценно поддерживается Switcam HS-303 (v1). В будущем планируется поддержка устройств v2 и v3.
|
||||
|
||||
-----
|
||||
|
||||
**Q. Где можно взять прошивку для устройства Ростелеком Switcam HS303 (v1) ?**
|
||||
|
||||
**A.** В публичном доступе прошивки появятся к 1 сентября, а пока пишите в личку @Flyrouter
|
||||
|
||||
-----
|
||||
|
||||
**Q. Какой путь до SD карты необходимо указывать в majestic.yaml ?**
|
||||
|
||||
**A.** /mnt/mmc/%Y/%m/%d/%H.mp4
|
|
@ -0,0 +1,45 @@
|
|||
## Темы для дискуссий
|
||||
|
||||
### План
|
||||
|
||||
* В архив с прошивкой класть хеш-сумму, для проверки целостности перед прошивкой
|
||||
* Готово @p0isk
|
||||
* В фаил /etc/os-release и переменную GITHUB_VERSION писать имя бранча+хэш и дату, как сделано в Majestic
|
||||
* Готово @p0isk
|
||||
* Процессор и имя профиля указываются автоматически при сборке в файле /etc/hostname и доступны постоянно через /rom/..
|
||||
* У плат ..._${platform}_unknown_defconfig hostname не прописан. ..._gk7205v200_fpv_defconfig имеет отличный hostname @p0isk
|
||||
* Добавить ключи в sysupgrade для обновления web-ui и majestic
|
||||
|
||||
|
||||
### Безопасность
|
||||
|
||||
* При первых входах по SSH и WEB предлагать (настойчиво) пользователю сменить пароль, дабы не нарваться на CVE.
|
||||
* По вебу сделано themactep @p0isk
|
||||
* Реализовать интеграцию авторизации httpd на использование стандартных passwd/shadow из /etc
|
||||
|
||||
### Унификация ядра
|
||||
|
||||
* Включить опции ROOT_NFS и PNP_DHCP во всех ядрах
|
||||
|
||||
### Обновление системы
|
||||
|
||||
#### Ядро:
|
||||
* Добавить через mkimage имя процессора, например Linux-4.9.37-hi3516ev200
|
||||
* Готово @p0isk
|
||||
* По нему проверять и дате проверять пригодность для обновления.
|
||||
* Готово @p0isk
|
||||
|
||||
### Обновление majestic
|
||||
* Обновляются и проверяются только бинарник и укороченный конфиг.
|
||||
* Есть кнопка Восстановить настройки, нужна ли Восстановить стример?
|
||||
* Помимо ETag можно использовать Last-Modified
|
||||
|
||||
### Обновление web-интерфейса
|
||||
* Перезаписывать только те файлы, которые изменились.
|
||||
* Сделано themactep @p0isk
|
||||
* Удалять файлы, которые больше не используются в интерфейсе из /var/www или оверлея?
|
||||
* Сделано themactep @p0isk
|
||||
|
||||
#### Ветка разработки
|
||||
* Отображать поле для номера коммита. Если пусто, то берём последний.
|
||||
* Неактуально? @p0isk
|
|
@ -0,0 +1,54 @@
|
|||
|
||||
## Run ipctool
|
||||
|
||||
```
|
||||
root@ipcam:/# ipctool
|
||||
---
|
||||
board:
|
||||
vendor: OpenIPC
|
||||
version: 2020.02
|
||||
chip:
|
||||
vendor: Xiongmai
|
||||
model: XM530
|
||||
ethernet:
|
||||
mac: "00:12:41:xx:xx:xx"
|
||||
rom:
|
||||
- type: nor
|
||||
block: 64K
|
||||
partitions:
|
||||
- name: boot
|
||||
size: 0x40000
|
||||
sha1: e2c7973d
|
||||
contains:
|
||||
- name: uboot-env
|
||||
offset: 0x30000
|
||||
- name: env
|
||||
size: 0x10000
|
||||
sha1: fb6f2de6
|
||||
- name: kernel
|
||||
size: 0x200000
|
||||
sha1: 1130ee7a
|
||||
- name: rootfs
|
||||
size: 0x500000
|
||||
path: /,squashfs
|
||||
sha1: 890552b4
|
||||
- name: rootfs_data
|
||||
size: 0xb0000
|
||||
path: /overlay,jffs2,rw
|
||||
size: 8M
|
||||
ram:
|
||||
total: 64M
|
||||
media: 32M
|
||||
firmware:
|
||||
kernel: "3.10.103+ (SMP Fri Apr 23 21:29:40 UTC 2021)"
|
||||
toolchain: gcc version 7.5.0 (Buildroot 2020.02-gb5b7c71)
|
||||
god-app: ipctool
|
||||
sensors:
|
||||
- vendor: SmartSens
|
||||
model: SC2315E
|
||||
control:
|
||||
bus: 0
|
||||
type: i2c
|
||||
addr: 0x30
|
||||
root@ipcam:/#
|
||||
```
|
|
@ -0,0 +1,112 @@
|
|||
## GPIO Settings
|
||||
|
||||
### Anjoy boards
|
||||
|
||||
| Processor | IRCUT1 | IRCUT2 | LIGHT | TESTED BOARDS |
|
||||
|-------------|--------|--------|-------|------------------|
|
||||
| SSC335 | 78 | 79 | 61 | MS-J10, YM200J10 |
|
||||
| SSC337 | 78 | 79 | 61 | MC-F40, YM-J10D |
|
||||
| SSC337DE | 78 | 79 | 61 | MC500L8 |
|
||||
|
||||
-----
|
||||
|
||||
### CamHi/Xin boards
|
||||
|
||||
| Processor | IRCUT1 | IRCUT2 | LIGHT | USB_ENA |
|
||||
|-------------|--------|--------|-------|---------|
|
||||
| Gk7205v200 | | | | 9 (invert value) |
|
||||
| Gk7205v300 | 10 | 11 | | 7 (invert value) |
|
||||
| | | | | |
|
||||
| Hi3516Cv100 |
|
||||
| Hi3516Cv200 |
|
||||
| Hi3516Cv300 |
|
||||
| Hi3516Ev200 | | | | 9 (invert value) |
|
||||
| Hi3516Ev300 | 10 | 11 | | 7 (invert value) |
|
||||
| Hi3518Ev200 | 1 | 2 | 48 |
|
||||
| Hi3518Ev300 | | | |
|
||||
|
||||
-----
|
||||
|
||||
### Herospeed/Longse/Cantonk boards
|
||||
|
||||
| Processor | IRCUT1 | IRCUT2 | IRSTATUS | IRCTL | ALM_IN | ALM_OUT | USB_ENA |
|
||||
|-------------|--------|--------|----------|-------|--------|---------|---------|
|
||||
| Gk7205v200 | 12 | 13 | | 4 | 15 | 14 | |
|
||||
| | | | | | | | |
|
||||
| Hi3516Cv100 |
|
||||
| Hi3516Cv200 |
|
||||
| Hi3516Cv300 |
|
||||
| Hi3518Ev200 | 64 | 65 |
|
||||
| Hi3516Ev200 |
|
||||
| Hi3516Av300 | 5 | 6 |
|
||||
|
||||
-----
|
||||
|
||||
### Jabsco boards
|
||||
|
||||
| Processor | IRCUT1 | IRCUT2 | IRSTATUS |
|
||||
|-------------|--------|--------|----------|
|
||||
| Hi3516Ev200 | 52 | 53 | 9 |
|
||||
|
||||
-----
|
||||
|
||||
### JVT boards
|
||||
|
||||
| Processor | IRCUT1 | IRCUT2 | LIGHT |
|
||||
|-------------|--------|--------|-------|
|
||||
| Hi3516Cv100 |
|
||||
| Hi3516Cv200 | 64 | 65 | 62 |
|
||||
| Hi3516Cv300 |
|
||||
| Hi3516Ev200 |
|
||||
| Hi3518Ev200 | 64 | 65 | 47 |
|
||||
|
||||
-----
|
||||
|
||||
### JUAN boards (Sannce)
|
||||
|
||||
| Processor | IRCUT1 | IRCUT2 | IRSTATUS | TESTED BOARDS | DEVICE ID |
|
||||
|-------------|--------|--------|---------------|---------------|-----------|
|
||||
| Hi3518Ev200 | 65 | 64 | 62 (inverted) | 18EV200_V205P | N18EV2W |
|
||||
|
||||
------
|
||||
|
||||
### Tiandy boards
|
||||
|
||||
| Processor | IRCUT1 | IRCUT2 | IRSTATUS | IRCTL | RESET |
|
||||
|-------------|--------|--------|----------|-------|-------|
|
||||
| SSC335 | 78 | 79 | --- | 37 | |
|
||||
|
||||
-----
|
||||
|
||||
### Uniview boards
|
||||
|
||||
| Processor | IRCUT1 | IRCUT2 | RESET | DEVICE ID |
|
||||
|-------------|--------|--------|-------|--------------------------|
|
||||
| Hi3516Ev300 | 63 | 67 | 64 | Rostelecom IPC8232SWC-WE |
|
||||
|
||||
-----
|
||||
|
||||
### XM boards
|
||||
|
||||
| Processor | IRCUT1 | IRCUT2 | IRSTATUS | IRCTL | ALM_IN | ALM_OUT | ETH_ACT | ETH_STA | RESET | USB_ENA |
|
||||
|-------------|--------|--------|----------|-------|--------|---------|---------|---------|-------|---------|
|
||||
| GK7205V200 | 8 | 9 | 15 | 16 | 4 и 53 | 55 | 14 | 12 | 0 |
|
||||
| GK7205V300 | 10 | 11 | 66 | 52 | 4 | | 30 | 31 | | |
|
||||
| | | | | | | | | | | |
|
||||
| Hi3516Cv100 |
|
||||
| Hi3516Dv100* | 14 | 15
|
||||
| Hi3516Cv200 |
|
||||
| Hi3516Cv300 | 53 | 54 | 64 | 66 | 55 | 1 | | | 2 | 63 |
|
||||
| Hi3516Ev200 | 8 | 9 | 15 | 16 | 4 и 53 | 55 | 14 | 12 | 0 |
|
||||
| Hi3516Ev300 | 10 | 11 | 66 | 52 | 4 и 67 | 65 | 30 | 31 | 0 |
|
||||
| Hi3518Ev200 | 33 | 34 | | | 61 | 35 |
|
||||
|
||||
* HI3516D_N81820, 00014914 firmware
|
||||
|
||||
-----
|
||||
|
||||
### Zenotech/Videopark
|
||||
|
||||
| Processor | IRCUT1 | IRCUT2 | IRLED | DEVICE ID |
|
||||
|-------------|--------|--------|-------|--------------------------|
|
||||
| Hi3516Ev300 | 40 | 41 | 65 | unknown |
|
|
@ -0,0 +1,51 @@
|
|||
## Overview
|
||||
|
||||
Each SoC manufacturer has its own software to adjust picture quality:
|
||||
|
||||
* HiSilicon - PQTools
|
||||
* Novatek - isptool
|
||||
* Fullhan - Coolview
|
||||
|
||||
## HiSilicon based boards
|
||||
|
||||
### EV300 family
|
||||
|
||||
#### Run server module on OpenIPC boards
|
||||
|
||||
```console
|
||||
$ pqtools
|
||||
|
||||
.....
|
||||
|
||||
dev mounted
|
||||
libs mounted
|
||||
pqtools:begin to run
|
||||
the s32Result is 1
|
||||
g_bUseSpecAWB is 0
|
||||
port is : 4321
|
||||
|
||||
<HI_PQT_Network_Init>(1486)bind ok!
|
||||
pqtools:server(port:4321)begin to listen
|
||||
pqtools:Waiting for connection from client!
|
||||
```
|
||||
|
||||
#### Run server module on XM boards
|
||||
|
||||
For sake of simplicity we wse public NFS server:
|
||||
|
||||
```console
|
||||
$ mount -o nolock 95.217.179.189:/srv/ro /utils/
|
||||
$ cd /utils/ittb_ev300_V1.0.1.2/
|
||||
$ LD_LIBRARY_PATH=lib ./ittb_control
|
||||
|
||||
...
|
||||
pqtools:Waiting for connection from client!
|
||||
```
|
||||
|
||||
#### Run client software on Windows
|
||||
|
||||
* [Download](https://ssd.mathworks.com/supportfiles/MCR_Runtime/R2012a/MCR_R2012a_win32_installer.exe) and install MATLAB Compiler Runtime.
|
||||
|
||||
* [Download PQTools](https://drive.google.com/file/d/1c4XZRbJKXjMBwfMJaLl5jUPcVqMbO936/view?usp=sharing) and extract a zip archive somewhere on your desktop. Launch `HiPQTools.exe`, select `Hi3516EV200_V1.0.1.2`, type IP address of your camera and click `OK`
|
||||
|
||||
Use [the manual](https://drive.google.com/file/d/1mY1lXMZVNz2Ia5CPvTF-K-907eIioSYU/view?usp=sharing) as a reference.
|
|
@ -0,0 +1,55 @@
|
|||
## For XM boards ONLY with SoC GK7202V300, GK7205V200, GK7205V300 !!!
|
||||
|
||||
### Supported sensors
|
||||
|
||||
Please read this [info](https://github.com/OpenIPC/openipc-2.1/wiki/supported_devices).
|
||||
|
||||
-----
|
||||
|
||||
### Initial device firmware updates
|
||||
|
||||
```
|
||||
#
|
||||
|
||||
setenv bootargs 'mem=${osmem:-32M} console=ttyAMA0,115200 panic=20 root=/dev/mtdblock3 rootfstype=squashfs init=/init mtdparts=sfc:256k(boot),64k(env),2048k(kernel),5120k(rootfs),-(rootfs_data)'
|
||||
setenv bootcmd 'setenv setargs setenv bootargs ${bootargs}; run setargs; sf probe 0; sf read 0x42000000 0x50000 0x200000; bootm 0x42000000'
|
||||
setenv uk 'mw.b 0x42000000 ff 1000000; tftp 0x42000000 uImage.${soc} && sf probe 0; sf erase 0x50000 0x200000; sf write 0x42000000 0x50000 ${filesize}'
|
||||
setenv ur 'mw.b 0x42000000 ff 1000000; tftp 0x42000000 rootfs.squashfs.${soc} && sf probe 0; sf erase 0x250000 0x500000; sf write 0x42000000 0x250000 ${filesize}'
|
||||
saveenv
|
||||
|
||||
setenv soc gk7xxxxxxx <= Set you SoC as gk7202v300 or gk7205v200 or gk7205v300
|
||||
setenv osmem 32M
|
||||
setenv totalmem 64M <= 64M for gk7202v300 or gk7205v200 and 128M for gk7205v300
|
||||
setenv ipaddr 192.168.1.10
|
||||
setenv serverip 192.168.1.254 <= Set you TFTP server IP
|
||||
saveenv
|
||||
|
||||
run uk; run ur; reset <= Flash kernel, rootfs and reboot device
|
||||
```
|
||||
|
||||
### Follow-up quick updates
|
||||
|
||||
```
|
||||
run uk; run ur; reset
|
||||
```
|
||||
|
||||
### A trick for GK7205V300+IMX335 users
|
||||
|
||||
```
|
||||
echo -e "!/bin/sh\n\ndevmem 0x120100f0 32 0x19\n" >/etc/init.d/S96trick; chmod +x /etc/init.d/S96trick
|
||||
```
|
||||
Alternative way [here](https://github.com/OpenIPC/firmware/pull/117/files)
|
||||
|
||||
-----
|
||||
|
||||
### Danger zone
|
||||
|
||||
You have the option to always update the bootloader.
|
||||
|
||||
However, you should have the knowledge and replace the bootloader [file](https://github.com/OpenIPC/firmware/releases/tag/latest) name.
|
||||
|
||||
```
|
||||
mw.b 0x42000000 ff 1000000; tftp 0x42000000 u-boot-gk7xxxxxxxx-beta.bin; sf probe 0
|
||||
sf erase 0x0 0x50000; sf write 0x42000000 0x0 ${filesize}
|
||||
reset
|
||||
```
|
|
@ -0,0 +1,66 @@
|
|||
## For XM boards ONLY with SoC Hi35{16Ev200,16Ev300,18Ev300} !!!
|
||||
|
||||
### Supported sensors
|
||||
|
||||
Please read this [info](https://github.com/OpenIPC/openipc-2.1/wiki/supported_devices).
|
||||
|
||||
-----
|
||||
|
||||
### Initial device firmware updates
|
||||
|
||||
```
|
||||
#
|
||||
|
||||
setenv bootargs 'mem=${osmem:-32M} console=ttyAMA0,115200 panic=20 root=/dev/mtdblock3 rootfstype=squashfs init=/init mtdparts=hi_sfc:256k(boot),64k(env),2048k(kernel),5120k(rootfs),-(rootfs_data)'
|
||||
setenv bootcmd 'setenv setargs setenv bootargs ${bootargs}; run setargs; sf probe 0; sf read 0x42000000 0x50000 0x200000; bootm 0x42000000'
|
||||
setenv uk 'mw.b 0x42000000 ff 1000000; tftp 0x42000000 uImage.${soc} && sf probe 0; sf erase 0x50000 0x200000; sf write 0x42000000 0x50000 ${filesize}'
|
||||
setenv ur 'mw.b 0x42000000 ff 1000000; tftp 0x42000000 rootfs.squashfs.${soc} && sf probe 0; sf erase 0x250000 0x500000; sf write 0x42000000 0x250000 ${filesize}'
|
||||
saveenv
|
||||
|
||||
setenv soc hi351xxxxxxx <= Set you SoC as hi3516ev200 or hi3516ev300 or hi3518ev300
|
||||
setenv osmem 32M
|
||||
setenv totalmem 64M <= 64M for hi3516ev200 or hi3518ev300 and 128M for hi3516ev300
|
||||
setenv ipaddr 192.168.1.10
|
||||
setenv serverip 192.168.1.254 <= Set you TFTP server IP
|
||||
saveenv
|
||||
|
||||
run uk; run ur; reset <= Flash kernel, rootfs and reboot device
|
||||
```
|
||||
|
||||
### Follow-up quick updates
|
||||
|
||||
```
|
||||
run uk; run ur; reset
|
||||
```
|
||||
|
||||
-----
|
||||
|
||||
### Executing a command after the first run
|
||||
|
||||
If you have Hi3516Ev300 based board run this command:
|
||||
|
||||
```
|
||||
set_allocator cma
|
||||
firstboot
|
||||
```
|
||||
|
||||
If you have Hi3516Ev200 or Hi3518Ev300 based board run this command:
|
||||
|
||||
```
|
||||
set_allocator hisi
|
||||
firstboot
|
||||
```
|
||||
|
||||
-----
|
||||
|
||||
### Danger zone
|
||||
|
||||
You have the option to always update the bootloader.
|
||||
|
||||
However, you should have the knowledge and replace the bootloader [file](https://github.com/OpenIPC/firmware/releases/tag/latest) name.
|
||||
|
||||
```
|
||||
mw.b 0x42000000 ff 1000000; tftp 0x42000000 u-boot-hi3516xxxxx-beta.bin; sf probe 0
|
||||
sf erase 0x0 0x50000; sf write 0x42000000 0x0 ${filesize}
|
||||
reset
|
||||
```
|
|
@ -0,0 +1,29 @@
|
|||
## For XM vendor boards ONLY with SoC NT98562 and NT98566 !!!
|
||||
|
||||
### Initial device firmware update
|
||||
|
||||
**This section will be completed at the end of the research**
|
||||
|
||||
```
|
||||
run uk; run ur; reset <= Flash kernel, rootfs and reboot device
|
||||
```
|
||||
|
||||
### Follow-up quick updates
|
||||
|
||||
```
|
||||
run uk; run ur; reset
|
||||
```
|
||||
|
||||
### Notes
|
||||
|
||||
After the first flash firmware of the device, please run the **firstboot** command to format the jffs2 partition of the settings.
|
||||
|
||||
-----
|
||||
|
||||
### Known issues
|
||||
|
||||
Change memory address for some tests
|
||||
|
||||
```
|
||||
setenv bootcmd 'setenv setargs setenv bootargs ${bootargs}; run setargs; sf probe 0; sf read 0x03100000 0x50000 0x200000; nvt_boot'; saveenv
|
||||
```
|
|
@ -0,0 +1,49 @@
|
|||
## For Anjoy/Brovotech/Gospell/Uniview boards ONLY with SoC SSC335 !!!
|
||||
|
||||
### Initial device firmware update
|
||||
|
||||
```
|
||||
#
|
||||
|
||||
setenv bootargs 'mem=${osmem:-32M} console=ttyS0,115200 panic=20 root=/dev/mtdblock3 rootfstype=squashfs init=/init LX_MEM=0x3fe0000 mma_heap=mma_heap_name0,miu=0,sz=0x1C00000 mma_memblock_remove=1 mtdparts=NOR_FLASH:256k(boot),64k(tech),2048k(kernel),5120k(rootfs),-(rootfs_data)'
|
||||
setenv bootcmd 'setenv setargs setenv bootargs ${bootargs}; run setargs; sf probe 0; sf read 0x21000000 0x50000 0x200000; bootm 0x21000000'
|
||||
setenv uk 'mw.b 0x21000000 ff 1000000; tftpboot 0x21000000 uImage.${soc}; sf probe 0; sf erase 0x50000 0x200000; sf write 0x21000000 0x50000 ${filesize}'
|
||||
setenv ur 'mw.b 0x21000000 ff 1000000; tftpboot 0x21000000 rootfs.squashfs.${soc}; sf probe 0; sf erase 0x250000 0x500000; sf write 0x21000000 0x250000 ${filesize}'
|
||||
saveenv
|
||||
|
||||
setenv soc ssc335 <= Set you SoC - ssc325, ssc335, ssc337
|
||||
setenv sensor none <= Set you sensor - gc2053, imx307, sc3335
|
||||
setenv osmem 32M
|
||||
setenv totalmem 64M <= 64M for ssc335
|
||||
setenv ipaddr 192.168.1.10
|
||||
setenv serverip 192.168.1.254 <= Set you TFTP server IP
|
||||
saveenv
|
||||
|
||||
run uk; run ur; reset <= Flash kernel, rootfs and reboot device
|
||||
```
|
||||
|
||||
### Follow-up quick updates
|
||||
|
||||
```
|
||||
run uk; run ur; reset
|
||||
```
|
||||
|
||||
### Notes
|
||||
|
||||
After the first flash firmware of the device, please run the **firstboot** command to format the jffs2 partition of the settings.
|
||||
|
||||
|
||||
### Other info
|
||||
|
||||
**Human-readable processor names for SigmaStar devices, the data is obtained on the original firmware**
|
||||
|
||||
| Engraving |/sys/class/mstar/msys/CHIP_ID|/sys/devices/soc0/soc_id |/sys/devices/soc0/machine |
|
||||
|--- |--- |--- |--- |
|
||||
| SSC325DE | not found | 239 | INFINITY6 SSC009B-S01A QFN128 |
|
||||
| | | | |
|
||||
| SSC335 | 0xF2 | 242 | INFINITY6B0 SSC009A-S01A QFN88 |
|
||||
| SSC337 | 0xF2 | 242 | INFINITY6B0 SSC009A-S01A QFN88 |
|
||||
| SSC337DE | 0xF2 | 242 | INFINITY6B0 SSC009B-S01A QFN128 |
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
## For XM vendor boards ONLY with SoC XM510 !!!
|
||||
|
||||
### Initial device firmware update
|
||||
|
||||
```
|
||||
#
|
||||
|
||||
setenv bootargs 'mem=18M console=ttyAMA0,115200 panic=20 root=/dev/mtdblock3 rootfstype=squashfs init=/init mtdparts=xm_sfc:256k(boot),64k(env),2048k(kernel),5120k(rootfs),-(rootfs_data)'
|
||||
setenv bootcmd 'sf probe 0; sf read 0x80007fc0 0x50000 0x200000; bootm 0x80007fc0'
|
||||
setenv uk1 'mw.b 0x80007fc0 ff 1000000; tftp 0x80007fc0 uImage.${soc}'
|
||||
setenv uk2 'sf probe 0; sf erase 0x50000 0x200000; sf write 0x80007fc0 0x50000 ${filesize}'
|
||||
setenv uk 'run uk1 ; run uk2'
|
||||
setenv ur1 'mw.b 0x80007fc0 ff 1000000; tftp 0x80007fc0 rootfs.squashfs.${soc}'
|
||||
setenv ur2 'sf probe 0; sf erase 0x250000 0x500000; sf write 0x80007fc 0x250000 ${filesize}'
|
||||
setenv ur 'run ur1 ; run ur2'
|
||||
saveenv
|
||||
|
||||
setenv soc xm510 <= Set you SoC as xm510
|
||||
setenv osmem 18M <= xm510 has 32M ram only
|
||||
setenv totalmem 32M <= xm510 has 32M ram only
|
||||
setenv ipaddr 192.168.1.10 <= Set your camera IP address
|
||||
setenv serverip 192.168.1.254 <= Set your TFTP server IP
|
||||
saveenv
|
||||
|
||||
run uk; run ur; reset <= Flash kernel, rootfs and reboot device
|
||||
```
|
||||
|
||||
### Follow-up quick updates
|
||||
|
||||
```
|
||||
run uk; run ur; reset
|
||||
```
|
||||
|
||||
### Notes
|
||||
|
||||
After the first flash firmware of the device, please run the **firstboot** command to format the jffs2 partition of the settings.
|
||||
|
||||
-----
|
||||
|
||||
### Load kernel modules
|
||||
|
||||
```
|
||||
cd /lib/modules/3.0.101\+/xiongmai/
|
||||
/usr/bin/load_xiongmai
|
||||
```
|
||||
|
||||
### Known issues
|
||||
|
||||
For Linux kernel built with original toolchain (gcc 4.9.2) everything works as expected, but with the same config with OpenIPC toolchain (gcc 7.5.0) pty (and only pty) doesn’t work, weird and also ran out of ideas how to fix it
|
||||
https://t.me/openipc/20225
|
|
@ -0,0 +1,43 @@
|
|||
## For XM vendor boards ONLY with SoC XM530/XM550 !!!
|
||||
|
||||
### Initial device firmware update
|
||||
|
||||
```
|
||||
#
|
||||
|
||||
setenv bootargs 'mem=35M console=ttyAMA0,115200 panic=20 root=/dev/mtdblock3 rootfstype=squashfs init=/init mtdparts=xm_sfc:256k(boot),64k(env),2048k(kernel),5120k(rootfs),-(rootfs_data)'
|
||||
setenv bootcmd 'sf probe 0; sf read 0x80007fc0 0x50000 0x200000; bootm 0x80007fc0'
|
||||
setenv uk 'mw.b 0x80007fc0 ff 1000000; tftp 0x80007fc0 uImage.${soc} && sf probe 0; sf erase 0x50000 0x200000; sf write 0x80007fc0 0x50000 ${filesize}'
|
||||
setenv ur 'mw.b 0x80007fc0 ff 1000000; tftp 0x80007fc0 rootfs.squashfs.${soc} && sf probe 0; sf erase 0x250000 0x500000; sf write 0x80007fc0 0x250000 ${filesize}'
|
||||
saveenv
|
||||
|
||||
setenv soc xm530 <= Set you SoC as xm530 for xm530 and xm550
|
||||
setenv osmem 35M <= 35M for xm530 and 64M for xm550
|
||||
setenv totalmem 64M <= 64M for xm530 and 128M for xm550
|
||||
setenv ipaddr 192.168.1.10
|
||||
setenv serverip 192.168.1.254 <= Set you TFTP server IP
|
||||
saveenv
|
||||
|
||||
run uk; run ur; reset <= Flash kernel, rootfs and reboot device
|
||||
```
|
||||
|
||||
### Follow-up quick updates
|
||||
|
||||
```
|
||||
run uk; run ur; reset
|
||||
```
|
||||
|
||||
### Notes
|
||||
|
||||
After the first flash firmware of the device, please run the **firstboot** command to format the jffs2 partition of the settings.
|
||||
|
||||
-----
|
||||
|
||||
### Load kernel modules
|
||||
|
||||
```
|
||||
cd /lib/modules/3.10.103\+/xiongmai/
|
||||
/usr/bin/load_xiongmai
|
||||
```
|
||||
|
||||
P.S. At the moment, video support is in development
|
|
@ -0,0 +1,17 @@
|
|||
## Additional requirements for kernel configuration
|
||||
|
||||
```
|
||||
CONFIG_BLK_DEV=y
|
||||
CONFIG_BLK_DEV_LOOP=y
|
||||
```
|
||||
|
||||
```
|
||||
CONFIG_IP_MULTICAST=y
|
||||
```
|
||||
|
||||
```
|
||||
CONFIG_IP_PNP=y
|
||||
CONFIG_IP_PNP_DHCP=y
|
||||
|
||||
CONFIG_ROOT_NFS=y
|
||||
```
|
|
@ -0,0 +1,73 @@
|
|||
## Preamble
|
||||
|
||||
Majestic is a video streaming application, the heart of our firmware (in relation to camera/video surveillance functionality). It's configurable via file /etc/majestic.yaml and by default has many features/services enabled. Unneeded options can be turned off for better security and performance.
|
||||
|
||||
## Camera related URLs in firmware
|
||||
|
||||
With firmware running, you can access the camera using URLs below (192.168.1.10 is an example of camera IP address):
|
||||
|
||||
### Live video
|
||||
|
||||
* http://192.168.1.10/ - [HLS](https://en.wikipedia.org/wiki/HTTP_Live_Streaming) live streaming is web browser
|
||||
* http://192.168.1.10/mjpeg.html - [MJPEG](https://en.wikipedia.org/wiki/Motion_JPEG) & [MP3](https://en.wikipedia.org/wiki/MP3) streaming in web browser
|
||||
* http://192.168.1.10/video.mp4 - [MP4](https://en.wikipedia.org/wiki/MPEG-4_Part_14) video (Fragmented MP4)
|
||||
* rtsp://192.168.1.10 - Main channel of [RTSP](https://en.wikipedia.org/wiki/RTSP) stream (section "video0:" in config )
|
||||
* rtsp://192.168.1.10/stream=1 - Second channel RTSP streamer (section "video1:" in config )
|
||||
|
||||
### Still image
|
||||
|
||||
* http://192.168.1.10/image.jpg - image snapshot in [JPEG](https://en.wikipedia.org/wiki/JPEG) format
|
||||
|
||||
Supports specific image parameters in URL like `/image.jpg?width=640&height=360&qfactor=73&color2gray=1`:
|
||||
1) `width` and `height` - size of picture to scale original image
|
||||
2) `qfactor` - JPEG quality factor between 1 and 99
|
||||
3) `color2gray` - force to grayscale convertion
|
||||
4) `crop` - crop image in format `16x16x320x320`, where first numbers are left and top image coordinates and others are image width and height
|
||||
|
||||
* http://192.168.1.10/image.heif - image snapshot in [HEIF](https://en.wikipedia.org/wiki/High_Efficiency_Image_File_Format) format, use `stream` parameter to specify channel (the same approach as for RTSP channels)
|
||||
* http://192.168.1.10/image.yuv - image snapshot in [YUV420](https://en.wikipedia.org/wiki/YUV) format
|
||||
|
||||
Use `convert -verbose -sampling-factor 4:2:0 -size 1920x1080 -depth 8 image.yuv image.png` to convert to usable format, where `1920x1080` is picture resolution from video0 and `.png` is a target format.
|
||||
|
||||
* http://192.168.1.10/image.dng - [raw image](https://en.wikipedia.org/wiki/Raw_image_format) snapshot from sensor in [Adobe DNG](https://en.wikipedia.org/wiki/Digital_Negative) format (only for v>=2 HiSilicon processors)
|
||||
|
||||
### Audio input
|
||||
|
||||
* http://192.168.1.10/audio.opus - [Opus](https://en.wikipedia.org/wiki/Opus_(audio_format)) audio stream
|
||||
* http://192.168.1.10/audio.m4a - [AAC](https://en.wikipedia.org/wiki/Advanced_Audio_Coding) audio stream
|
||||
* http://192.168.1.10/audio.mp3 - [MP3](https://en.wikipedia.org/wiki/MP3) audio stream
|
||||
* http://192.168.1.10/audio.pcm - Raw [PCM](https://en.wikipedia.org/wiki/Pulse-code_modulation) audio stream
|
||||
|
||||
Use `ffplay -f s16le -ac 1 -ar 48k http://192.168.1.10/audio.pcm`, where `48k` is sample rate
|
||||
|
||||
* http://192.168.1.10/audio.alaw - [A-law](https://en.wikipedia.org/wiki/A-law_algorithm) compressed audio stream
|
||||
|
||||
Use `ffplay -ar 48000 -ac 1 -f alaw http://192.168.1.10/audio.alaw`, where `48000` is sample rate
|
||||
|
||||
* http://192.168.1.10/audio.ulaw - [μ-law](https://en.wikipedia.org/wiki/%CE%9C-law_algorithm) compressed audio stream
|
||||
|
||||
Use `ffplay -ar 48000 -ac 1 -f mulaw http://192.168.1.10/audio.ulaw`, where `48000` is sample rate
|
||||
|
||||
* http://192.168.1.10/audio.g711a - [G.711](https://en.wikipedia.org/wiki/G.711) A-law audio stream
|
||||
|
||||
Use `ffplay -ar 8000 -ac 1 -f alaw http://192.168.1.10/audio.g711a`
|
||||
|
||||
### Playing audio on camera via network (Hisilicon/Goke only)
|
||||
|
||||
`curl -T test.pcm http://10.216.128.66:8888/play_audio`
|
||||
|
||||
[pcm](https://en.wikipedia.org/wiki/Pulse-code_modulation) file format can be prepared using [sox] program(https://en.wikipedia.org/wiki/SoX):
|
||||
|
||||
`sox speech.mp3 -t raw -r 8000 -e signed -b 16 -c 1 test.pcm`
|
||||
|
||||
### API
|
||||
|
||||
Night API endpoint (make sure `nightAPI` in `nightMode` is enabled or use it from a camera without restrictions):
|
||||
|
||||
* http://192.168.1.10/night/on - Turn on night mode
|
||||
* http://192.168.1.10/night/off - Turn off night mode (set to day)
|
||||
* http://192.168.1.10/night/toggle - Toggle current mode
|
||||
|
||||
### Monitoring
|
||||
|
||||
* http://192.168.1.10/metrics - Standard Node exporter compatible and application-specific metrics for [Prometheus](https://prometheus.io/)
|
|
@ -0,0 +1,19 @@
|
|||
## HiSilicon boards
|
||||
|
||||
### Disable subsystems you don't use
|
||||
|
||||
Vendor kernel memory modules take around 5 megabytes of RAM (code with dynamic memory for buffers) and some of them are useless if you don't need specific functions like (OSD, motion detection, audio, H264/265/JPEG codecs)
|
||||
|
||||
| Feature | Modules | Size |
|
||||
|---------------------------------------|----------------------------------------------------------------------------------------------------|------|
|
||||
| Audio output | hi3516ev200_ao hi3516ev200_adec | |
|
||||
| Audio input | hi3516ev200_ai hi3516ev200_aenc | |
|
||||
| Audio support (both input and output) | hi3516ev200_acodec hi3516ev200_adec hi3516ev200_aenc hi3516ev200_ao hi3516ev200_ai hi3516ev200_aio | |
|
||||
| I2C sensor support | hi_sensor_i2c | |
|
||||
| SPI sensor support | hi_sensor_spi | |
|
||||
| PWM support | hi_pwm | |
|
||||
| Motion detection | hi3516ev200_ive | |
|
||||
| JPEG snapshots | hi3516ev200_jpege | |
|
||||
| H.264 codec support | hi3516ev200_h264e | |
|
||||
| H.265 codec support | hi3516ev200_h265e | |
|
||||
| OSD support | hi3516ev200_rgn
|
|
@ -0,0 +1 @@
|
|||
Our resources: [OpenIPC](https://openipc.org) | [OpenCollective](https://opencollective.com/openipc) | [Twitter](https://twitter.com/OpenIPC) | [Telegram](https://t.me/openipc)
|
|
@ -0,0 +1,113 @@
|
|||
## Basic information
|
||||
|
||||
The OpenIPC is an alternative [firmware](https://github.com/OpenIPC) for IP cameras and a kind of umbrella for other projects that are components of our system.
|
||||
|
||||
The OpenIPC is a Linux operating system based on Buildroot/OpenWrt projects and targeting IP cameras with chipsets from different vendors, starting with Goke GK72xx, HiSilicon Hi35xx, SigmaStar SSC33x, and XiongmaiTech XM5xx.
|
||||
|
||||
Everyone is welcome and can use/contribute to the project in any way they find useful!
|
||||
|
||||
We would be grateful for the feedback and suggestions.
|
||||
|
||||
|
||||
## Official links
|
||||
|
||||
* [OpenIPC on GitHub](https://github.com/OpenIPC/) - GitHub organization, most projects are hosted here
|
||||
* [OpenIPC on OpenCollective](https://opencollective.com/openipc) - OpenCollective community
|
||||
* [OpenIPC on Docker Hub](https://hub.docker.com/u/openipc) - Docker containers for building
|
||||
* [OpenIPC on Twitter](https://twitter.com/openipc) - Our main news
|
||||
* [OpenIPC on YouTube](https://www.youtube.com/channel/UCaXlbR2uGTRFh8jQ2lCFd2g) - Our instructions and streams (in the plans)
|
||||
|
||||
|
||||
## Telegram chat groups
|
||||
|
||||
* [OpenIPC](https://t.me/openipc) (EN) - International channel to discuss the development of our project | [*](https://combot.org/c/1166652144)
|
||||
* [OpenIPC modding](https://t.me/openipc_modding) (RU) - general issues on modifying IPCam device firmware | [*](https://combot.org/c/-1001247643198)
|
||||
* [OpenIPC development](https://t.me/openipc_software) (RU) - HiSilicon, XM porting in OpenWrt and programmer issues | [*](https://combot.org/c/-1001196905312)
|
||||
* [OpenIPC advice](https://t.me/openipc_advice) (RU) - problems, finding solutions, long conversations | [*](https://combot.org/c/1385065634)
|
||||
* [OpenIPC majestic](https://t.me/joinchat/YgHc5Bg4NOoxOTdi) (RU) - for Majestic streamer testers | [*](#)
|
||||
* [OpenIPC Iranian](https://t.me/joinchat/T_GwQUBTJdfXJrFb) (IR) - special group for Iranian users / تیم OpenIPC برای کاربران ایرانی | [*](https://combot.org/c/-1001341239361)
|
||||
* [OpenIPC demo](https://t.me/openipc_demo) (EN/RU) - test bot with buttons, after connecting, give the "/menu" | [*](https://combot.org/c/1414887196)
|
||||
* [OpenIPC ExIPCam](https://t.me/ExIPCam) (RU) - ExIPCam program and hardware/software repairing devices | [*](https://combot.org/c/1213889378)
|
||||
* [OpenIPC updates](https://t.me/s/openipc_updates) (RU) - Firmware & Software updates information channel
|
||||
* [OpenIPC dev](https://t.me/s/openipc_dev) - Firmware & Software development channel
|
||||
|
||||
|
||||
## Team developments
|
||||
|
||||
### Firmware
|
||||
|
||||
* [openipc-2.1](https://openipc.github.io/firmware) - Firmware development and creation system based on Buildroot
|
||||
* [openipc-1.0](https://github.com/OpenIPC/chaos_calmer) - Firmware development and creation system based on OpenWrt 15.05
|
||||
* [coupler](https://github.com/OpenIPC/coupler) - Seamless transition between video cameras firmware
|
||||
|
||||
### Streamers
|
||||
|
||||
* [majestic](https://github.com/OpenIPC/firmware/wiki/majestic_streamer) - Universal IPCam streamer
|
||||
* [mini](https://github.com/OpenIPC/mini) - OpenSource Mini IP camera streamer
|
||||
|
||||
### Tools
|
||||
|
||||
* [ipctool](https://openipc.github.io/ipctool) - Tool (and library) for checking IP camera hardware
|
||||
* [yaml-cli](https://github.com/OpenIPC/yaml-cli) - Tool for change setting in CLI
|
||||
* [glutinium](https://github.com/ZigFisher/Glutinium) - Additional OpenWRT packages
|
||||
|
||||
### Windows software
|
||||
|
||||
* [exipcam](http://team.openipc.org/exipcam) - Cool utility for repairing IPCam (For Windows, works in Linux via Wine)
|
||||
* [ipcam_dms](http://team.openipc.org/ipcam_dms) - IPCam Device Management System (For Windows, works in Linux via Wine)
|
||||
|
||||
|
||||
## Developers
|
||||
|
||||
| Name | Role | Participation |
|
||||
|------|------|---------------|
|
||||
| [Dmitry Ilyin](https://web.telegram.org/#/im?p=@widgetii) | co-founder and main participant of the OpenIPC project | [ipctool](https://github.com/OpenIPC/ipctool), [majestic](https://github.com/OpenIPC/majestic_issues), [mini](https://github.com/OpenIPC/mini), [motors](https://github.com/OpenIPC/motors) |
|
||||
| [Dmitry Ermakov](https://web.telegram.org/#/im?p=@dimerrr) | main participant | [coupler](https://github.com/OpenIPC/coupler), [firmware](https://github.com/OpenIPC/firmware), [ipctool](https://github.com/OpenIPC/ipctool) |
|
||||
| [Igor Zalatov](https://web.telegram.org/#/im?p=@FlyRouter) | **project founder and development coordinator** | [chaos_calmer](https://github.com/OpenIPC/chaos_calmer), [firmware](https://github.com/OpenIPC/firmware), [wiki](https://github.com/OpenIPC/firmware/wiki) |
|
||||
| [Ivan Pozdeev](https://web.telegram.org/#/im?p=@John) | developer | [microbe-web](https://github.com/OpenIPC/microbe-web), [yaml-cli](https://github.com/OpenIPC/yaml-cli) |
|
||||
| [Konstantin](#) | developer | [hisi-trace](https://github.com/OpenIPC/hisi-trace), [yaml-cli](https://github.com/OpenIPC/yaml-cli) |
|
||||
| [Maksim Patrushev](https://web.telegram.org/#/im?p=@maxi380) | developer | [motors](https://github.com/OpenIPC/motors) |
|
||||
| [Maxim Chertov](https://web.telegram.org/#/im?p=@mAX3773) | co-founder of the OpenIPC project | [chaos_calmer](https://github.com/OpenIPC/chaos_calmer), [ipctool](https://github.com/OpenIPC/ipctool), [mini](https://github.com/OpenIPC/mini) |
|
||||
| [Paul Philippov](https://web.telegram.org/#/im?p=@themactep) | main participant | [microbe-web](https://github.com/OpenIPC/microbe-web) |
|
||||
| [Sergey Sharshunov](https://web.telegram.org/#/im?p=@USSSSSH) | co-founder of the OpenIPC project | [chaos_calmer](https://github.com/OpenIPC/chaos_calmer), [burn](https://github.com/OpenIPC/burn) |
|
||||
| [Temirkhan Myrzamadi](https://web.telegram.org/#/im?p=@hirrolot) | main participant | [smolrtsp](https://github.com/OpenIPC/smolrtsp)
|
||||
| [Vasiliy Yakovlev](https://web.telegram.org/#/im?p=@#) | general facilitator | |
|
||||
|
||||
-----
|
||||
|
||||
### Support
|
||||
|
||||
OpenIPC offers two levels of support.
|
||||
|
||||
- Free support through the community (via [chat](https://openipc.org/#telegram-chat-groups) and [mailing lists](https://github.com/OpenIPC/firmware/discussions)).
|
||||
- Paid commercial support (from the team of developers).
|
||||
|
||||
Please consider subscribing for paid commercial support if you intend to use our product for business.
|
||||
As a paid customer, you will get technical support and maintenance services directly from our skilled team.
|
||||
Your bug reports and feature requests will get prioritized attention and expedited solutions. It's a win-win
|
||||
strategy for both parties, that would contribute to the stability your business, and help core developers
|
||||
to work on the project full-time.
|
||||
|
||||
If you have any specific questions concerning our project, feel free to [contact us](mailto:flyrouter@gmail.com).
|
||||
|
||||
### Participating and Contribution
|
||||
|
||||
If you like what we do, and willing to intensify the development, please consider participating.
|
||||
|
||||
You can improve existing code and send us patches. You can add new features missing from our code.
|
||||
|
||||
You can help us to write a better documentation, proofread and correct our websites.
|
||||
|
||||
You can just donate some money to cover the cost of development and long-term maintaining of what we believe
|
||||
is going to be the most stable, flexible, and open IP Network Camera Framework for users like yourself.
|
||||
|
||||
You can make a financial contribution to the project
|
||||
at [Open Collective](https://opencollective.com/openipc/contribute/backer-14335/checkout),
|
||||
or via [PayPal](https://www.paypal.com/donate/?hosted_button_id=C6F7UJLA58MBS),
|
||||
or via [YooMoney](https://openipc.org/donation/yoomoney.html).
|
||||
|
||||
Thank you.
|
||||
|
||||
<a href="https://opencollective.com/openipc/contribute/backer-14335/checkout" target="_blank"><img src="https://opencollective.com/webpack/donate/button@2x.png?color=blue" width="375" alt="Open Collective donate button"></a>
|
||||
<a href="https://www.paypal.com/donate/?hosted_button_id=C6F7UJLA58MBS"><img src="https://www.paypalobjects.com/en_US/IT/i/btn/btn_donateCC_LG.gif" alt="PayPal donate button"></a>
|
||||
<a href="https://openipc.org/donation/yoomoney.html"><img src="https://yoomoney.ru/transfer/balance-informer/balance?id=596194605&key=291C29A811B500D7" width="140" alt="YooMoney donate button"></a>
|
|
@ -0,0 +1,46 @@
|
|||

|
||||
|
||||
# Navigation Menu
|
||||
|
||||
* **Introduction**
|
||||
* [Supported devices](supported_devices)
|
||||
* [Show changelog](show_changelog)
|
||||
* **Installation**
|
||||
* [Goke based boards](install_goke)
|
||||
* [HiSilicon based boards](install_hisi)
|
||||
* [Novatek based boards](install_novatek)
|
||||
* [SigmaStar based boards](install_ssc335)
|
||||
* [XM510 based boards](install_xm510)
|
||||
* [XM530 based boards](install_xm530)
|
||||
* **Usage**
|
||||
* [System features](system_features)
|
||||
* [Majestic streamer](majestic_streamer)
|
||||
* [Microbe WEB interface](microbe-web)
|
||||
* [Upgrade firmware](sysupgrade)
|
||||
* [Image quality tuning](Image-quality-tuning)
|
||||
* [Memory tuning](Memory-tuning)
|
||||
* [Using ipctool](example_ipctool)
|
||||
* [GPIO settings](gpio_settings)
|
||||
* [ACMEv2](ACMEv2)
|
||||
* [YouTube streaming](YouTube-streaming)
|
||||
* [WiFi XM530](wifi_xm530)
|
||||
* **Firmware**
|
||||
* [Releases in GitHub](https://github.com/OpenIPC/firmware/releases/tag/latest)
|
||||
* [Releases in Telegram](https://t.me/s/openipc_dev)
|
||||
* [Source code](source_code)
|
||||
* **Development**
|
||||
* [Interesting tricks](dev_tricks)
|
||||
* [Boot device with NFS](dev_nfs_boot)
|
||||
* [FFMPEG usage](dev_ffmpeg_usage)
|
||||
* **Device Integration**
|
||||
* [Kernel configuration](integration_kernel)
|
||||
* **Specialized device settings**
|
||||
* [Switcam HS303(v2)](special_hs303v2)
|
||||
* **Contacts**
|
||||
* [Bug reports](https://github.com/OpenIPC/firmware/issues)
|
||||
* **Roadmap**
|
||||
* [ToDo](todo_all)
|
||||
* [Discussion (ru)](discussion_ru)
|
||||
* [Developers](developers)
|
||||
|
||||
-----
|
|
@ -0,0 +1,3 @@
|
|||
## Microbe WEB interface
|
||||
|
||||
Default login/password - admin/12345
|
|
@ -0,0 +1,7 @@
|
|||
## Show changelog
|
||||
|
||||
* [firmware](https://github.com/OpenIPC/firmware/commits/master)
|
||||
* [ipctool](https://github.com/OpenIPC/ipctool/commits/master)
|
||||
* [coupler](https://github.com/OpenIPC/coupler/commits/main)
|
||||
* [microbe-web](https://github.com/OpenIPC/microbe-web/commits/master)
|
||||
* [wiki](https://github.com/OpenIPC/firmware/wiki/_history)
|
|
@ -0,0 +1,105 @@
|
|||
## Source code
|
||||
|
||||
**At the moment, we are working on creating a high-quality repository with source code.**
|
||||
|
||||
**Please be patient because we want to provide a completely beautiful and ready-made project.**
|
||||
|
||||
-----
|
||||
|
||||
### Quick build from sources
|
||||
|
||||
Install some packages to system and clone OpenIPC repo
|
||||
|
||||
```
|
||||
sudo apt-get update -y ; sudo apt-get install -y bc build-essential git unzip
|
||||
git clone --depth=1 https://github.com/OpenIPC/firmware.git
|
||||
cd openipc-2.1
|
||||
```
|
||||
Run the commands below for your board and your files will end up in the "output/images" directory
|
||||
|
||||
#### Hi3516Ev300
|
||||
|
||||
```
|
||||
export PLATFORM=hisilicon
|
||||
make prepare
|
||||
make BOARD=unknown_unknown_hi3516ev300_openipc all
|
||||
```
|
||||
|
||||
#### SSC335
|
||||
|
||||
```
|
||||
export PLATFORM=sigmastar
|
||||
make prepare
|
||||
make BOARD=unknown_unknown_ssc335_openipc all
|
||||
```
|
||||
|
||||
#### XM530
|
||||
|
||||
```
|
||||
export PLATFORM=xiongmai
|
||||
make prepare
|
||||
make BOARD=unknown_unknown_xm530_openipc all
|
||||
```
|
||||
|
||||
-----
|
||||
|
||||
## Statistical data
|
||||
|
||||
Software might do product usage data collection including SoC and sensor model name to gather statistics used in QA process..
|
||||
|
||||
We guaranty that the data is fully anonymized, and does not contain anything that can arguably be considered data about an individual, that could be considered end-user data; or that could be sensitive or confidential to users.
|
||||
|
||||
-----
|
||||
|
||||
## Other notes
|
||||
|
||||
```
|
||||
make help
|
||||
make install-deps
|
||||
make prepare
|
||||
make list-configs
|
||||
cd output ; make sdk
|
||||
```
|
||||
|
||||
```
|
||||
# Example run it on project root folder
|
||||
#
|
||||
PLATFORM=name make br-linux-{dirclean,rebuild}
|
||||
PLATFORM=name make br-rootfs-{squashfs,tar}
|
||||
#
|
||||
PLATFORM=name make br-busybox-{dirclean,rebuild}
|
||||
PLATFORM=name make br-bwm-ng-{dirclean,rebuild}
|
||||
PLATFORM=name make br-fwprintenv-openipc-{dirclean,rebuild}
|
||||
PLATFORM=name make br-gdbserver-lite-{dirclean,rebuild}
|
||||
PLATFORM=name make br-gesftpserver-{dirclean,rebuild}
|
||||
PLATFORM=name make br-ipctool-{dirclean,rebuild}
|
||||
PLATFORM=name make br-libyaml-{dirclean,rebuild}
|
||||
PLATFORM=name make br-motors-{dirclean,rebuild}
|
||||
PLATFORM=name make br-node-exporter-{dirclean,rebuild}
|
||||
PLATFORM=name make br-vtund-openipc-{dirclean,rebuild}
|
||||
#
|
||||
PLATFORM=hisilicon make br-fdk-aac-openipc-{dirclean,rebuild}
|
||||
PLATFORM=hisilicon make br-hisi_gpio_scanner-{dirclean,rebuild}
|
||||
PLATFORM=hisilicon make br-hisilicon-osdrv-hi3516cv500-{dirclean,rebuild}
|
||||
PLATFORM=hisilicon make br-hisilicon-osdrv-hi3516ev300-{dirclean,rebuild}
|
||||
PLATFORM=hisilicon make br-lame-openipc-{dirclean,rebuild}
|
||||
PLATFORM=hisilicon make br-libcurl-openipc-{dirclean,rebuild}
|
||||
PLATFORM=hisilicon make br-libevent-openipc-{dirclean,rebuild}
|
||||
PLATFORM=hisilicon make br-libogg-openipc-{dirclean,rebuild}
|
||||
PLATFORM=hisilicon make br-majestic-hi3516cv500-{dirclean,rebuild}
|
||||
PLATFORM=hisilicon make br-majestic-hi3516ev300-{dirclean,rebuild}
|
||||
PLATFORM=hisilicon make br-mbedtls-openipc-{dirclean,rebuild}
|
||||
PLATFORM=hisilicon make br-opus-openipc-{dirclean,rebuild}
|
||||
PLATFORM=hisilicon make br-uacme-openipc-{dirclean,rebuild}
|
||||
#
|
||||
PLATFORM=novatek make br-novatek-osdrv-nt9856x-{dirclean,rebuild}
|
||||
#
|
||||
PLATFORM=sigmastar make br-libhv-openipc-{dirclean,rebuild}
|
||||
PLATFORM=sigmastar make br-libsrt-openipc-{dirclean,rebuild}
|
||||
PLATFORM=sigmastar make br-majestic-ssc335-{dirclean,rebuild}
|
||||
PLATFORM=sigmastar make br-sigmastar-osdrv-ssc335-{dirclean,rebuild}
|
||||
#
|
||||
PLATFORM=xiongmai make br-xiongmai-osdrv-xm530-{dirclean,rebuild}
|
||||
```
|
||||
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
## Specialized device settings for Switcam HS303(v2)
|
||||
|
||||
A discussion of the operation of these cameras is available by a specialized subscription to [OpenIPC paywall](https://paywall.pw/openipc)
|
||||
|
||||
### Modified part from the /etc/network/interface file
|
||||
|
||||
```
|
||||
auto wlan0
|
||||
iface wlan0 inet dhcp
|
||||
pre-up echo 54 > /sys/class/gpio/export
|
||||
pre-up echo out > /sys/class/gpio/gpio54/direction
|
||||
pre-up echo 1 > /sys/class/gpio/gpio54/value
|
||||
pre-up modprobe r8188eu
|
||||
pre-up wpa_passphrase "OpenIPC" "openipc2021" >/tmp/wpa_supplicant.conf
|
||||
pre-up sed -i '2i \\tscan_ssid=1' /tmp/wpa_supplicant.conf
|
||||
pre-up ifconfig wlan0 up
|
||||
pre-up wpa_supplicant -B -Dwext -iwlan0 -c/tmp/wpa_supplicant.conf
|
||||
post-down killall -q wpa_supplicant
|
||||
```
|
||||
|
||||
### Modified part from the /etc/majestic.yaml file
|
||||
|
||||
```
|
||||
nightMode:
|
||||
enabled: true
|
||||
irSensorPin: 62
|
||||
irSensorPinInvert: true
|
||||
irCutPin1: 2
|
||||
pinSwitchDelayUs: 150
|
||||
backlightPin: 56
|
||||
nightAPI: true
|
||||
```
|
|
@ -0,0 +1,22 @@
|
|||
## System features
|
||||
|
||||
* Supports for most TrueType (.ttf) and certain OpenType (.otf) fonts.
|
||||
|
||||
-----
|
||||
|
||||
### Random Number Generator
|
||||
|
||||
It WORKs now on Hi3516Ev200/Hi3516Ev300 devices
|
||||
|
||||
-----
|
||||
|
||||
### Watchdog
|
||||
|
||||
It WORKs now on Hi3516Ev200/Hi3516Ev300 devices
|
||||
|
||||
-----
|
||||
|
||||
### WiFi
|
||||
|
||||
* Realtek Semiconductor RTL8188ETV Wireless LAN 802.11n Network Adapter
|
||||
* [https://linux-hardware.org/index.php?id=usb:0bda-0179](https://linux-hardware.org/index.php?id=usb:0bda-0179)
|
|
@ -0,0 +1,22 @@
|
|||
## Upgrade firmware
|
||||
|
||||
`sysupgrade` for old firmware
|
||||
|
||||
`sysupgrade -k -r` for new firmware
|
||||
|
||||
If you got this error:
|
||||
```
|
||||
losetup: /tmp/rootfs.squashfs.${soc}: No such file or directory
|
||||
Rootfs: Unable to get hostname, execution was interrupted...
|
||||
```
|
||||
Try first update kernel:
|
||||
`sysupgrade -k`
|
||||
|
||||
If it doesn't help use option --force:
|
||||
`sysupgrade -r --force`
|
||||
|
||||
|
||||
If you caught a glitch:
|
||||
```
|
||||
curl -k -L -o /usr/sbin/sysupgrade "https://raw.githubusercontent.com/OpenIPC/firmware/master/general/overlay/usr/sbin/sysupgrade"
|
||||
```
|
|
@ -0,0 +1,35 @@
|
|||
# ToDo
|
||||
|
||||
## Bugfix
|
||||
|
||||
* Need fix the problem that caused syslogd and logread to stop working on hi35{16ev200,16ev300,18ev300} profile
|
||||
|
||||
|
||||
## Improvement and Features
|
||||
|
||||
* Urgently add support for Goke processors
|
||||
* Make a check for the presence of binary components in the majestic, mini_snmpd, telnetd and other scripts
|
||||
* Build the new [motors-openipc](https://github.com/OpenIPC/motors/tree/master/XM) package
|
||||
* Integrate the new version of [libjson](https://github.com/json-c/json-c/tree/json-c-0.15) according to the OpenIPC standard and remove the old symlinks
|
||||
* Create an Initramfs and cpio build for all platforms
|
||||
* Optimize Busybox applets and disable all unnecessary ones
|
||||
* Add the launch of the Crond daemon
|
||||
* Add the Telegram bot script from the old OpenIPC project
|
||||
* Optimize the show_modules script to show dynamically consumed memory
|
||||
* ~
|
||||
* Integrate Hi3516Av300/Hi3516Cv500/Hi3516Dv300
|
||||
* Integrate Hi3516Cv200/Hi3518Ev200/Hi3518Ev201
|
||||
* Integrate Hi3516Av100/Hi3516Dv100
|
||||
* Connect the script for initializing modules and starting the system
|
||||
|
||||
|
||||
## Monitoring and Management
|
||||
|
||||
* Upload to the repository examples of working with Ansible
|
||||
* Install a local prometheus server
|
||||
* Achieve stable telemetric responses from ZFT Lab. devices
|
||||
|
||||
|
||||
## Documentation
|
||||
|
||||
* Create a Wiki page for entering data of boards with motors and protocol specifics
|
|
@ -0,0 +1,31 @@
|
|||
## WiFi for XM530 based devices
|
||||
|
||||
Script /usr/sbin/wifi
|
||||
|
||||
```
|
||||
#!/bin/sh
|
||||
|
||||
WIFI=$1
|
||||
|
||||
if [ "$WIFI" = "xm711" ]; then
|
||||
insmod /lib/modules/3.10.103+/xiongmai/dwc_common_port_lib.ko
|
||||
insmod /lib/modules/3.10.103+/xiongmai/dwc_otg.ko
|
||||
insmod /lib/modules/3.10.103+/xiongmai/wifi_pdn.ko value=96
|
||||
insmod /lib/modules/3.10.103+/xiongmai/compat.ko
|
||||
insmod /lib/modules/3.10.103+/kernel/net/wireless/cfg80211.ko # grab from original firmware
|
||||
insmod /lib/modules/3.10.103+/kernel/net/mac80211/mac80211.ko
|
||||
insmod /lib/modules/3.10.103+/xiongmai/xm711.ko
|
||||
fi
|
||||
```
|
||||
|
||||
Settings on /etc/network/interfaces
|
||||
|
||||
```
|
||||
auto eth2
|
||||
iface eth2 inet dhcp
|
||||
pre-up wifi xm711
|
||||
pre-up wpa_passphrase "SSID" "password" >/tmp/wpa_supplicant.conf
|
||||
pre-up sed -i '2i \\tscan_ssid=1' /tmp/wpa_supplicant.conf
|
||||
pre-up (sleep 3; wpa_supplicant -B -Dnl80211 -ieth2 -c/tmp/wpa_supplicant.conf)
|
||||
post-down killall -q wpa_supplicant
|
||||
```
|
|
@ -0,0 +1,99 @@
|
|||
## Configuration requirements
|
||||
|
||||
To prevent accidental stream termination on temporary connection drops schedule live streaming with a start date in the far future (e.g. 31 December of the current year). It will work smoothly when you go live, disconnect the camera and then continue streaming.
|
||||
|
||||
### HLS + H.265
|
||||
|
||||
Follow up [Delivering Content via HLS](https://developers.google.com/youtube/v3/live/guides/hls-ingestion) for more information.
|
||||
|
||||
### Create new stream
|
||||
|
||||
- Navigate https://developers.google.com/youtube/v3/live/code_samples page
|
||||
|
||||
- Select Resource 'liveStreams' and Method 'insert'
|
||||
|
||||
- In table below click on 'insert' use case
|
||||
|
||||
- Fill on right side on the page:
|
||||
- in 'cdn' object change "frameRate" from "60fps" to "variable",
|
||||
- "resolution" from "1080p" to "variable"
|
||||
- and "ingestionType" from "rtmp" to "hls":
|
||||
|
||||
```
|
||||
"cdn": {
|
||||
"ingestionType": "hls",
|
||||
"frameRate": "variable",
|
||||
"resolution": "variable"
|
||||
}
|
||||
```
|
||||
|
||||
- in Credentials section make sure you've selected 'Google OAuth 2.0' and 'https://www.googleapis.com/auth/youtube' scope (use 'Show scopes') and deselect 'API Key' option, then press 'Execute' button below
|
||||
|
||||
- Authorize yourself using your YouТube connected account
|
||||
|
||||
- Make sure that you got 200 response otherwise check errors and repeat. Trivial error is when [live streaming](https://support.google.com/youtube/answer/2474026?hl=en was not priviosly enabled in your account.
|
||||
|
||||
- Save "channelId" from the response (it looks like this "UCPJRjbxYlq6h2cCqy8RCRjg")
|
||||
|
||||
### Create new broadcast:
|
||||
|
||||
- Navigate https://developers.google.com/youtube/v3/live/code_samples page
|
||||
|
||||
- Select Resource 'liveBroadcast' and Method 'insert'
|
||||
|
||||
- In table below click on 'insert' use case
|
||||
|
||||
- Fill on right side on the page:
|
||||
|
||||
- 'title' field for your broadcast like 'My Hometown Camera'
|
||||
|
||||
- 'scheduledStartTime' like '2020-04-21T00:00:00.000Z' (ensure that this time in the future),
|
||||
|
||||
- 'scheduledEndTime' like '2020-04-21T01:00:00.000Z' (scheduled end time should be after the scheduled start time)
|
||||
|
||||
- also press blue plus button inside "snippet" block and add "channelId" with given from stream step value
|
||||
|
||||
```
|
||||
"snippet": {`
|
||||
`"title": "My Hometown Camera",`
|
||||
`"scheduledStartTime": "2021-04-12T00:00:00.000Z",`
|
||||
`"scheduledEndTime": "2021-04-13T00:00:00.000Z",`
|
||||
`"channelId": "MCpZqkqqEZw806aGGHUdepIl"`
|
||||
`},
|
||||
```
|
||||
|
||||
- in Credentials section make sure you've selected 'Google OAuth 2.0' and 'https://www.googleapis.com/auth/youtube' scope (use 'Show scopes') and deselect 'API Key' option, then press 'Execute' button below
|
||||
|
||||
- Authorize yourself using your YouTube connected account
|
||||
|
||||
- Make sure that you got 200 response otherwise check errors and repeat
|
||||
|
||||
### Bind the broadcast to the stream:
|
||||
|
||||
- Navigate https://developers.google.com/youtube/v3/live/code_samples page
|
||||
|
||||
- Select Resource 'liveBroadcast' and Method 'bind'
|
||||
|
||||
- In table below click on 'Bind a broadcast to a stream' use case
|
||||
|
||||
- Fill on right side on the page:
|
||||
|
||||
- 'id' - ID of the broadcast (can be found in server response in step 'Create new broadcast', field 'id')
|
||||
|
||||
- 'streamId' - ID of the stream (can be found in server response in step 'Create new stream', field 'id')
|
||||
|
||||
- in Credentials section make sure you've selected 'Google OAuth 2.0' and 'https://www.googleapis.com/auth/youtube' scope (use 'Show scopes') and deselect 'API Key' option, then press 'Execute' button below
|
||||
|
||||
- Authorize yourself using your YouTube connected account
|
||||
|
||||
- Make sure that you got 200 response otherwise check errors and repeat
|
||||
|
||||
### Go live!
|
||||
|
||||
Navigate https://studio.youtube.com/
|
||||
|
||||
On right side click on 'CREATE' button and then 'Go live'
|
||||
|
||||
credits (c) Victor
|
||||
Origin
|
||||
https://github.com/OpenIPC/camerasrnd/blob/master/streaming/youtube.md
|
Loading…
Reference in New Issue