amendments to old articles. adding a brief introduction on contributing.

pull/8/head
Paul Philippov 2022-01-14 00:56:29 -05:00
parent 37a32f8dce
commit dd09200406
38 changed files with 547 additions and 428 deletions

View File

@ -1,14 +1,15 @@
![OpenIPC logo](https://cdn.themactep.com/images/logo_openipc.png "OpenIPC logo") ![OpenIPC logo](https://cdn.themactep.com/images/logo_openipc.png "OpenIPC logo")
## Supported devices Supported devices
=================
Unfortunately, we cannot provide you a long list of devices that are undoubtedly Unfortunately, we cannot provide you a long list of devices that are undoubtedly
compatible with our firmware. Camera manufacturers tend to change hardware compatible with our firmware. Camera manufacturers tend to change hardware
design and swap components even within the same model line, without any notice. design and swap components even within the same model line, without any notice.
Below, we listed some of the cameras we had in our possession, but again, there Below, we listed some of the cameras we had in our possession, but again, there
is no guarantee that if you buy one of those cameras today you won't end up with is no guarantee that if you'll buy one of those cameras today you won't end up
unsupported hardware on your hands. with an unsupported hardware on your hands.
Somewhat working method to determine if your camera is supported by the recent Somewhat working method to determine if your camera is supported by the recent
version of our firmware is to open[^1] the camera case and take a look at the version of our firmware is to open[^1] the camera case and take a look at the

View File

@ -1,6 +1,7 @@
![OpenIPC logo](https://cdn.themactep.com/images/logo_openipc.png "OpenIPC logo") ![OpenIPC logo][logo]
# English version Wiki
====
## Introduction ## Introduction
* [About project](transfer-menu-index) * [About project](transfer-menu-index)
@ -12,7 +13,7 @@
* [firmware](https://openipc.org/firmware) * [firmware](https://openipc.org/firmware)
* [ipctool](https://openipc.org/ipctool) * [ipctool](https://openipc.org/ipctool)
* [telemetry](https://openipc.org/telemetry) * [telemetry](https://openipc.org/telemetry)
* [Firmware Partitions Calculation by themactep](https://themactep.com/tools/firmware-partitions-calculation) * [Firmware Partitions Calculation](https://themactep.com/tools/firmware-partitions-calculation)
## Installation ## Installation
* [Goke based boards](transfer-install-goke) * [Goke based boards](transfer-install-goke)
@ -56,5 +57,7 @@
* [Notes from old sources](transfer-notes-for-resorting) * [Notes from old sources](transfer-notes-for-resorting)
## Resources for recycling and integration ## Resources for recycling and integration
* [https://github.com/OpenIPC/camerasrnd](https://github.com/OpenIPC/camerasrnd) * <https://github.com/OpenIPC/camerasrnd>
* [https://openwrt.org/docs/techref/hardware/soc/soc.hisilicon.hi35xx](https://openwrt.org/docs/techref/hardware/soc/soc.hisilicon.hi35xx) * <https://openwrt.org/docs/techref/hardware/soc/soc.hisilicon.hi35xx>
[logo]: ../images/logo_openipc.png

View File

@ -1,6 +1,9 @@
# How to setup HTTPS certificates on your camera How to install 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. Make sure your camera is accessible from the Internet on both port 80 (HTTP)
and port 443 (HTTPS). You might need to set up port forwarding on your router
for that.
Create an ACME account: Create an ACME account:
@ -8,17 +11,17 @@ Create an ACME account:
$ uacme -y -v new $ uacme -y -v new
``` ```
then issue a certificate for your domain by doing Issue a certificate for your domain:
```console ```console
$ uacme -y -v -h /usr/share/uacme/uacme.sh -t EC issue www.your.domain.com $ 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 If everything goes well, uacme will ask you to set up a challenge, e.g.:
``` ```
uacme: challenge=http-01 ident=www.your.domain.com token=kZjqYgAss_sl4XXDfFq-jeQV1_lqsE76v2BoCGegFk4 uacme: challenge=http-01 ident=www.your.domain.com token=kZjqYgAss_sl4XXDfFq-jeQV1_lqsE76v2BoCGegFk4
key_auth=kZjqYgAss_sl4XXDfFq-jeQV1_lqsE76v2BoCGegFk4.2evcXalKLhAybRuxxE-HkSUihdzQ7ZDAKA9EZYrTXwU key_auth=kZjqYgAss_sl4XXDfFq-jeQV1_lqsE76v2BoCGegFk4.2evcXalKLhAybRuxxE-HkSUihdzQ7ZDAKA9EZYrTXwU
``` ```
Then restart majestic and test access to https://www.your.domain.com Restart majestic and test access to https://www.your.domain.com/

View File

@ -1,4 +1,5 @@
## FFMPEG, RTSP and SRT examples FFMPEG, RTSP and SRT examples
-----------------------------
``` ```
# Copy from file to file # Copy from file to file
@ -35,4 +36,4 @@
# Receiver, untested # Receiver, untested
ffplay 'srt://172.17.32.18:12345' ffplay 'srt://172.17.32.18:12345'
``` ```

View File

@ -1,4 +1,5 @@
## Boot device with NFS Boot device with NFS
--------------------
Example for HI3516EV200 device Example for HI3516EV200 device
@ -8,4 +9,4 @@ bootargsnfs=mem=${osmem:-32M} console=ttyAMA0,115200 panic=20 root=/dev/nfs root
nfsboot=tftp 0x42000000 uImage;setenv setargs setenv bootargs ${bootargsnfs};run setargs;bootm 0x42000000 nfsboot=tftp 0x42000000 uImage;setenv setargs setenv bootargs ${bootargsnfs};run setargs;bootm 0x42000000
run nfsboot run nfsboot
``` ```

View File

@ -1,5 +1,7 @@
## Interesting tricks Interesting tricks
------------------
### Sharing output of a command via web ### Sharing output of a command via web
```
`<command> | nc seashells.io 1337` <command> | nc seashells.io 1337
```

View File

@ -1,5 +1,10 @@
## Developers OpenIPC Developers
==================
[![Ido's github stats](https://github-readme-stats.vercel.app/api?username=widgetii)](https://github.com/widgetii) [![Ido's github stats](https://github-readme-stats.vercel.app/api?username=dimerr)](https://github.com/dimerr) [![Ido's github stats](https://github-readme-stats.vercel.app/api?username=widgetii)](https://github.com/widgetii)
[![Ido's github stats](https://github-readme-stats.vercel.app/api?username=zigfisher)](https://github.com/zigfisher) [![Ido's github stats](https://github-readme-stats.vercel.app/api?username=themactep)](https://github.com/themactep) [![Ido's github stats](https://github-readme-stats.vercel.app/api?username=dimerr)](https://github.com/dimerr)
[![Ido's github stats](https://github-readme-stats.vercel.app/api?username=zigfisher)](https://github.com/zigfisher)
[![Ido's github stats](https://github-readme-stats.vercel.app/api?username=themactep)](https://github.com/themactep)

View File

@ -1,8 +1,8 @@
Run ipctool
## Run ipctool -----------
``` ```
root@ipcam:/# ipctool root@ipcam:/# ipctool
--- ---
board: board:
vendor: OpenIPC vendor: OpenIPC
@ -41,7 +41,7 @@ ram:
media: 32M media: 32M
firmware: firmware:
kernel: "3.10.103+ (SMP Fri Apr 23 21:29:40 UTC 2021)" kernel: "3.10.103+ (SMP Fri Apr 23 21:29:40 UTC 2021)"
toolchain: gcc version 7.5.0 (Buildroot 2020.02-gb5b7c71) toolchain: gcc version 7.5.0 (Buildroot 2020.02-gb5b7c71)
god-app: ipctool god-app: ipctool
sensors: sensors:
- vendor: SmartSens - vendor: SmartSens
@ -50,5 +50,5 @@ sensors:
bus: 0 bus: 0
type: i2c type: i2c
addr: 0x30 addr: 0x30
root@ipcam:/# root@ipcam:/#
``` ```

View File

@ -1,4 +1,5 @@
## GPIO Settings GPIO Settings
-------------
### Anjoy boards ### Anjoy boards
@ -8,24 +9,22 @@
| SSC337 | 78 | 79 | 61 | MC-F40, YM-J10D | | SSC337 | 78 | 79 | 61 | MC-F40, YM-J10D |
| SSC337DE | 78 | 79 | 61 | MC500L8 | | SSC337DE | 78 | 79 | 61 | MC500L8 |
-----
### CamHi/Xin boards ### CamHi/Xin boards
| Processor | IRCUT1 | IRCUT2 | LIGHT | USB_ENA | | Processor | IRCUT1 | IRCUT2 | LIGHT | USB_ENA |
|-------------|--------|--------|-------|---------| |-------------|--------|--------|-------|---------|
| Gk7205v200 | | | | 9 (invert value) | | Gk7205v200 | | | | 9i |
| Gk7205v300 | 10 | 11 | | 7 (invert value) | | Gk7205v300 | 10 | 11 | | 7i |
| | | | | | | | | | | |
| Hi3516Cv100 | | Hi3516Cv100 | | | | |
| Hi3516Cv200 | | Hi3516Cv200 | | | | |
| Hi3516Cv300 | | Hi3516Cv300 | | | | |
| Hi3516Ev200 | | | | 9 (invert value) | | Hi3516Ev200 | | | | 9i |
| Hi3516Ev300 | 10 | 11 | | 7 (invert value) | | Hi3516Ev300 | 10 | 11 | | 7i |
| Hi3518Ev200 | 1 | 2 | 48 | | Hi3518Ev200 | 1 | 2 | 48 | |
| Hi3518Ev300 | | | | | Hi3518Ev300 | | | | |
----- _i - inverted value_
### Herospeed/Longse/Cantonk boards ### Herospeed/Longse/Cantonk boards
@ -40,16 +39,12 @@
| Hi3516Ev200 | | Hi3516Ev200 |
| Hi3516Av300 | 5 | 6 | | Hi3516Av300 | 5 | 6 |
-----
### Jabsco boards ### Jabsco boards
| Processor | IRCUT1 | IRCUT2 | IRSTATUS | | Processor | IRCUT1 | IRCUT2 | IRSTATUS |
|-------------|--------|--------|----------| |-------------|--------|--------|----------|
| Hi3516Ev200 | 52 | 53 | 9 | | Hi3516Ev200 | 52 | 53 | 9 |
-----
### JVT boards ### JVT boards
| Processor | IRCUT1 | IRCUT2 | LIGHT | | Processor | IRCUT1 | IRCUT2 | LIGHT |
@ -60,51 +55,41 @@
| Hi3516Ev200 | | Hi3516Ev200 |
| Hi3518Ev200 | 64 | 65 | 47 | | Hi3518Ev200 | 64 | 65 | 47 |
-----
### JUAN boards (Sannce) ### JUAN boards (Sannce)
| Processor | IRCUT1 | IRCUT2 | IRSTATUS | TESTED BOARDS | DEVICE ID | | Processor | IRCUT1 | IRCUT2 | IRSTATUS | TESTED BOARDS | DEVICE ID |
|-------------|--------|--------|---------------|---------------|-----------| |-------------|--------|--------|---------------|---------------|-----------|
| Hi3518Ev200 | 65 | 64 | 62 (inverted) | 18EV200_V205P | N18EV2W | | Hi3518Ev200 | 65 | 64 | 62 (inverted) | 18EV200_V205P | N18EV2W |
------
### Tiandy boards ### Tiandy boards
| Processor | IRCUT1 | IRCUT2 | IRSTATUS | IRCTL | RESET | | Processor | IRCUT1 | IRCUT2 | IRSTATUS | IRCTL | RESET |
|-------------|--------|--------|----------|-------|-------| |-------------|--------|--------|----------|-------|-------|
| SSC335 | 78 | 79 | --- | 37 | | | SSC335 | 78 | 79 | --- | 37 | |
-----
### Uniview boards ### Uniview boards
| Processor | IRCUT1 | IRCUT2 | RESET | DEVICE ID | | Processor | IRCUT1 | IRCUT2 | RESET | DEVICE ID |
|-------------|--------|--------|-------|--------------------------| |-------------|--------|--------|-------|--------------------------|
| Hi3516Ev300 | 63 | 67 | 64 | Rostelecom IPC8232SWC-WE | | Hi3516Ev300 | 63 | 67 | 64 | Rostelecom IPC8232SWC-WE |
-----
### XM boards ### XM boards
| Processor | IRCUT1 | IRCUT2 | IRSTATUS | IRCTL | ALM_IN | ALM_OUT | ETH_ACT | ETH_STA | RESET | USB_ENA | | 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 | | GK7205V200 | 8 | 9 | 15 | 16 | 4, 53 | 55 | 14 | 12 | 0 | |
| GK7205V300 | 10 | 11 | 66 | 52 | 4 | | 30 | 31 | | | | GK7205V300 | 10 | 11 | 66 | 52 | 4 | | 30 | 31 | | |
| | | | | | | | | | | | | | | | | | | | | | | |
| Hi3516Cv100 | | Hi3516Cv100 | | | | | | | | | | |
| Hi3516Dv100* | 14 | 15 | Hi3516Dv100* | 14 | 15 | | | | | | | | |
| Hi3516Cv200 | | Hi3516Cv200 | | | | | | | | | | |
| Hi3516Cv300 | 53 | 54 | 64 | 66 | 55 | 1 | | | 2 | 63 | | Hi3516Cv300 | 53 | 54 | 64 | 66 | 55 | 1 | | | 2 | 63 |
| Hi3516Ev200 | 8 | 9 | 15 | 16 | 4 и 53 | 55 | 14 | 12 | 0 | | Hi3516Ev200 | 8 | 9 | 15 | 16 | 4, 53 | 55 | 14 | 12 | 0 | |
| Hi3516Ev300 | 10 | 11 | 66 | 52 | 4 и 67 | 65 | 30 | 31 | 0 | | Hi3516Ev300 | 10 | 11 | 66 | 52 | 4, 67 | 65 | 30 | 31 | 0 | |
| Hi3518Ev200 | 33 | 34 | | | 61 | 35 | | Hi3518Ev200 | 33 | 34 | | | 61 | 35 | | | | |
* HI3516D_N81820, 00014914 firmware * HI3516D_N81820, 00014914 firmware
-----
### Zenotech/Videopark ### Zenotech/Videopark
| Processor | IRCUT1 | IRCUT2 | IRLED | DEVICE ID | | Processor | IRCUT1 | IRCUT2 | IRLED | DEVICE ID |

View File

@ -1,4 +1,5 @@
## Overview Overview
--------
Each SoC manufacturer has its own software to adjust picture quality: Each SoC manufacturer has its own software to adjust picture quality:
@ -44,8 +45,15 @@ pqtools:Waiting for connection from client!
#### Run client software on Windows #### 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 and install [MATLAB Compiler Runtime][mcr].
* [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` Download [PQTools][pqt] and extract a zip archive somewhere on your PC.
Use [the manual](https://drive.google.com/file/d/1mY1lXMZVNz2Ia5CPvTF-K-907eIioSYU/view?usp=sharing) as a reference. Launch `HiPQTools.exe`, select `Hi3516EV200_V1.0.1.2`, type IP address of your
camera and click `OK`.
Use [this manual][man] as a reference.
[mcr]: https://ssd.mathworks.com/supportfiles/MCR_Runtime/R2012a/MCR_R2012a_win32_installer.exe
[pqt]: https://drive.google.com/file/d/1c4XZRbJKXjMBwfMJaLl5jUPcVqMbO936/view?usp=sharing
[man]: https://drive.google.com/file/d/1mY1lXMZVNz2Ia5CPvTF-K-907eIioSYU/view?usp=sharing

View File

@ -1,30 +1,27 @@
## For XM boards ONLY with SoC GK7202V300, GK7205V200, GK7205V300 !!! For XM boards with SoC GK7202V300, GK7205V200, GK7205V300 ONLY!!!
-----------------------------------------------------------------
### Supported sensors ### Supported sensors
Please read this [info](https://github.com/OpenIPC/openipc-2.1/wiki/supported_devices). Please look up your sensor in [the list of supported devices][1].
-----
### Initial device firmware updates ### 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 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 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 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}' 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 saveenv
setenv soc gk7xxxxxxx <= Set you SoC as gk7202v300 or gk7205v200 or gk7205v300 setenv soc gk7xxxxxxx # Set your SoC. gk7202v300, gk7205v200, or gk7205v300.
setenv osmem 32M setenv osmem 32M
setenv totalmem 64M <= 64M for gk7202v300 or gk7205v200 and 128M for gk7205v300 setenv totalmem 64M # 64M for gk7202v300, gk7205v200, 128M for gk7205v300.
setenv ipaddr 192.168.1.10 setenv ipaddr 192.168.1.10
setenv serverip 192.168.1.254 <= Set you TFTP server IP setenv serverip 192.168.1.254 # Your TFTP server IP address.
saveenv saveenv
run uk; run ur; reset <= Flash kernel, rootfs and reboot device run uk; run ur; reset # Flash kernel, rootfs and reboot device
``` ```
### Follow-up quick updates ### Follow-up quick updates
@ -36,20 +33,27 @@ run uk; run ur; reset
### A trick for GK7205V300+IMX335 users ### 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 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)
----- Alternative way [here](https://github.com/OpenIPC/firmware/pull/117/files)
### Danger zone ### Danger zone
You have the option to always update the bootloader. You always have an option to update the bootloader. However, you need to
understand what you do.
However, you should have the knowledge and replace the bootloader [file](https://github.com/OpenIPC/firmware/releases/tag/latest) name. NB! Replace bootloader filename with the one matching your SoC.
Full list is [here](https://github.com/OpenIPC/firmware/releases/tag/latest).
``` ```
mw.b 0x42000000 ff 1000000; tftp 0x42000000 u-boot-gk7xxxxxxxx-beta.bin; sf probe 0 mw.b 0x42000000 ff 1000000
sf erase 0x0 0x50000; sf write 0x42000000 0x0 ${filesize} tftp 0x42000000 u-boot-gk7xxxxxxxx-beta.bin
sf probe 0
sf erase 0x0 0x50000
sf write 0x42000000 0x0 ${filesize}
reset reset
``` ```
[1]: https://github.com/OpenIPC/firmware/wiki/supported_devices

View File

@ -1,30 +1,27 @@
## For XM boards ONLY with SoC Hi35{16Ev200,16Ev300,18Ev300} !!! For XM boards with Hi35{16Ev200,16Ev300,18Ev300} SoC ONLY!!!
------------------------------------------------------------
### Supported sensors ### Supported sensors
Please read this [info](https://github.com/OpenIPC/openipc-2.1/wiki/supported_devices). Please look up your sensor in [the list of supported devices][1].
-----
### Initial device firmware updates ### 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 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 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 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}' 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 saveenv
setenv soc hi351xxxxxxx <= Set you SoC as hi3516ev200 or hi3516ev300 or hi3518ev300 setenv soc hi351xxxxxxx # Set your SoC. hi3516ev200, hi3516ev300, or hi3518ev300.
setenv osmem 32M setenv osmem 32M
setenv totalmem 64M <= 64M for hi3516ev200 or hi3518ev300 and 128M for hi3516ev300 setenv totalmem 64M # 64M for hi3516ev200, hi3518ev300, 128M for hi3516ev300.
setenv ipaddr 192.168.1.10 setenv ipaddr 192.168.1.10
setenv serverip 192.168.1.254 <= Set you TFTP server IP setenv serverip 192.168.1.254 # Your TFTP server IP address.
saveenv saveenv
run uk; run ur; reset <= Flash kernel, rootfs and reboot device run uk; run ur; reset # Flash kernel, rootfs and reboot device
``` ```
### Follow-up quick updates ### Follow-up quick updates
@ -33,34 +30,35 @@ run uk; run ur; reset <= Flash kernel, rootfs and reboot device
run uk; run ur; reset run uk; run ur; reset
``` ```
-----
### Executing a command after the first run ### Executing a command after the first run
If you have Hi3516Ev300 based board run this command: For a Hi3516Ev300 board:
``` ```
set_allocator cma set_allocator cma
firstboot firstboot
``` ```
If you have Hi3516Ev200 or Hi3518Ev300 based board run this command: For a Hi3516Ev200 or Hi3518Ev300 board:
``` ```
set_allocator hisi set_allocator hisi
firstboot firstboot
``` ```
-----
### Danger zone ### Danger zone
You have the option to always update the bootloader. You always have an option to update the bootloader. However, you need to
understand what you do.
However, you should have the knowledge and replace the bootloader [file](https://github.com/OpenIPC/firmware/releases/tag/latest) name. NB! Replace bootloader filename with the one matching your SoC.
Full list is [here](https://github.com/OpenIPC/firmware/releases/tag/latest).
``` ```
mw.b 0x42000000 ff 1000000; tftp 0x42000000 u-boot-hi3516xxxxx-beta.bin; sf probe 0 mw.b 0x42000000 ff 1000000
sf erase 0x0 0x50000; sf write 0x42000000 0x0 ${filesize} tftp 0x42000000 u-boot-hi3516xxxxx-beta.bin
sf probe 0
sf erase 0x0 0x50000
sf write 0x42000000 0x0 ${filesize}
reset reset
``` ```
[1]: https://github.com/OpenIPC/firmware/wiki/supported_devices

View File

@ -1,11 +1,12 @@
## For XM vendor boards ONLY with SoC NT98562 and NT98566 !!! For XM vendor boards with NT98562 and NT98566 SoC ONLY!!!
---------------------------------------------------------
### Initial device firmware update ### Initial device firmware update
**This section will be completed at the end of the research** **This section will be completed at the end of the research**
``` ```
run uk; run ur; reset <= Flash kernel, rootfs and reboot device run uk; run ur; reset # Flash kernel, rootfs and reboot device
``` ```
### Follow-up quick updates ### Follow-up quick updates
@ -16,14 +17,14 @@ run uk; run ur; reset
### Notes ### Notes
After the first flash firmware of the device, please run the **firstboot** command to format the jffs2 partition of the settings. After you have finished flashing new firmware, please run `firstboot` command
to format jffs2 partition used to store settings.
-----
### Known issues ### Known issues
Change memory address for some tests 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 setenv bootcmd 'setenv setargs setenv bootargs ${bootargs};run setargs;sf probe 0;sf read 0x03100000 0x50000 0x200000;nvt_boot'
``` saveenv
```

View File

@ -1,25 +1,24 @@
## For Anjoy/Brovotech/Gospell/Uniview boards ONLY with SoC SSC335 !!! For Anjoy/Brovotech/Gospell/Uniview boards with SSC335 Soc ONLY!!!
------------------------------------------------------------------
### Initial device firmware update ### 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 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 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 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}' 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 saveenv
setenv soc ssc335 <= Set you SoC - ssc325, ssc335, ssc337 setenv soc ssc335 # Your SoC. ssc325, ssc335, or ssc337.
setenv sensor none <= Set you sensor - gc2053, imx307, sc3335 setenv sensor none # Your sensor. gc2053, imx307, or sc3335.
setenv osmem 32M setenv osmem 32M
setenv totalmem 64M <= 64M for ssc335 setenv totalmem 64M # 64M for ssc335.
setenv ipaddr 192.168.1.10 setenv ipaddr 192.168.1.10 # Your camera IP address.
setenv serverip 192.168.1.254 <= Set you TFTP server IP setenv serverip 192.168.1.254 # Your TFTP server IP address.
saveenv saveenv
run uk; run ur; reset <= Flash kernel, rootfs and reboot device run uk; run ur; reset # Flash kernel, rootfs and reboot device
``` ```
### Follow-up quick updates ### Follow-up quick updates
@ -30,20 +29,19 @@ run uk; run ur; reset
### Notes ### Notes
After the first flash firmware of the device, please run the **firstboot** command to format the jffs2 partition of the settings. After you have finished flashing new firmware, please run `firstboot` command
to format jffs2 partition used to store settings.
### Other info ### Other info
**Human-readable processor names for SigmaStar devices, the data is obtained on the original firmware** #### Human-readable processor names for SigmaStar devices.
The data is obtained from 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 |
| 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 |

View File

@ -1,10 +1,9 @@
## For XM vendor boards ONLY with SoC XM510 !!! For XM vendor boards with XM510 SoC ONLY!!!
-------------------------------------------
### Initial device firmware update ### 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 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 bootcmd 'sf probe 0; sf read 0x80007fc0 0x50000 0x200000; bootm 0x80007fc0'
setenv uk1 'mw.b 0x80007fc0 ff 1000000; tftp 0x80007fc0 uImage.${soc}' setenv uk1 'mw.b 0x80007fc0 ff 1000000; tftp 0x80007fc0 uImage.${soc}'
@ -15,14 +14,14 @@ setenv ur2 'sf probe 0; sf erase 0x250000 0x500000; sf write 0x80007fc 0x250000
setenv ur 'run ur1 ; run ur2' setenv ur 'run ur1 ; run ur2'
saveenv saveenv
setenv soc xm510 <= Set you SoC as xm510 setenv soc xm510 # Your SoC. xm510.
setenv osmem 18M <= xm510 has 32M ram only setenv osmem 18M # 18M for xm510.
setenv totalmem 32M <= xm510 has 32M ram only setenv totalmem 32M # 32M for xm510.
setenv ipaddr 192.168.1.10 <= Set your camera IP address setenv ipaddr 192.168.1.10 # Your camera IP address.
setenv serverip 192.168.1.254 <= Set your TFTP server IP setenv serverip 192.168.1.254 # Your TFTP server IP address.
saveenv saveenv
run uk; run ur; reset <= Flash kernel, rootfs and reboot device run uk; run ur; reset # Flash kernel, rootfs and reboot device
``` ```
### Follow-up quick updates ### Follow-up quick updates
@ -33,9 +32,8 @@ run uk; run ur; reset
### Notes ### Notes
After the first flash firmware of the device, please run the **firstboot** command to format the jffs2 partition of the settings. After you have finished flashing new firmware, please run `firstboot` command
to format jffs2 partition used to store settings.
-----
### Load kernel modules ### Load kernel modules
@ -46,5 +44,7 @@ cd /lib/modules/3.0.101\+/xiongmai/
### Known issues ### 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) doesnt work, weird and also ran out of ideas how to fix it For Linux kernel built with the original toolchain (gcc 4.9.2) everything works
https://t.me/openipc/20225 as expected, but for the same .config built with OpenIPC toolchain (gcc 7.5.0)
pty (and only pty) doesn't work. That is weird, and we also ran out of ideas how
to fix that. https://t.me/openipc/20225

View File

@ -1,24 +1,23 @@
## For XM vendor boards ONLY with SoC XM530/XM550 !!! For XM vendor boards with XM530/XM550 SoC ONLY !!!
--------------------------------------------------
### Initial device firmware update ### 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 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 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 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}' 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 saveenv
setenv soc xm530 <= Set you SoC as xm530 for xm530 and xm550 setenv soc xm530 # Your SoC. xm530 for both xm530 and xm550.
setenv osmem 35M <= 35M for xm530 and 64M for xm550 setenv osmem 35M # 35M for xm530, 64M for xm550.
setenv totalmem 64M <= 64M for xm530 and 128M for xm550 setenv totalmem 64M # 64M for xm530, 128M for xm550.
setenv ipaddr 192.168.1.10 setenv ipaddr 192.168.1.10 # Your camera IP address.
setenv serverip 192.168.1.254 <= Set you TFTP server IP setenv serverip 192.168.1.254 # Your TFTP server IP address.
saveenv saveenv
run uk; run ur; reset <= Flash kernel, rootfs and reboot device run uk; run ur; reset # Flash kernel, rootfs and reboot device
``` ```
### Follow-up quick updates ### Follow-up quick updates
@ -29,9 +28,8 @@ run uk; run ur; reset
### Notes ### Notes
After the first flash firmware of the device, please run the **firstboot** command to format the jffs2 partition of the settings. After you have finished flashing new firmware, please run `firstboot` command
to format jffs2 partition used to store settings.
-----
### Load kernel modules ### Load kernel modules
@ -40,4 +38,4 @@ cd /lib/modules/3.10.103\+/xiongmai/
/usr/bin/load_xiongmai /usr/bin/load_xiongmai
``` ```
P.S. At the moment, video support is in development NB! As of today, video support is still in development.

View File

@ -1,73 +1,116 @@
## Preamble Majestic streamer
-----------------
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. ### Preamble
## Camera related URLs in firmware Majestic is a video streaming application, the heart of our firmware (in
relation to camera/video surveillance functionality). Majestic is configurable
via /etc/majestic.yaml file, and has many features/services enabled by default.
Unneeded options can be switched off for better security and performance.
With firmware running, you can access the camera using URLs below (192.168.1.10 is an example of camera IP address): ### Camera related URLs in firmware
### Live video With firmware running, you can access the camera using URLs below
(192.168.1.10 is an example of camera IP address):
* http://192.168.1.10/ - [HLS](https://en.wikipedia.org/wiki/HTTP_Live_Streaming) live streaming is web browser #### Live video
* 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/ - [HLS][hls] live streaming is web browser.
* http://192.168.1.10/mjpeg.html - [MJPEG][mjpeg] & [MP3][mp3] streaming in web browser.
* http://192.168.1.10/video.mp4 - [MP4][mp4] video (Fragmented MP4).
* rtsp://192.168.1.10 - Main channel of [RTSP][rtsp] streamer (video0 in config).
* rtsp://192.168.1.10/stream=1 - Second channel of RTSP streamer (video1 in config)
* http://192.168.1.10/image.jpg - image snapshot in [JPEG](https://en.wikipedia.org/wiki/JPEG) format #### Still image
Supports specific image parameters in URL like `/image.jpg?width=640&height=360&qfactor=73&color2gray=1`: * http://192.168.1.10/image.jpg - image snapshot in [JPEG][jpeg] format.
1) `width` and `height` - size of picture to scale original image Supports specific image parameters in URL, e.g. `/image.jpg?width=640&height=360&qfactor=73&color2gray=1`:
2) `qfactor` - JPEG quality factor between 1 and 99 -`width` and `height` - size of picture to scale original image.
3) `color2gray` - force to grayscale convertion - `qfactor` - JPEG quality factor between 1 and 99.
4) `crop` - crop image in format `16x16x320x320`, where first numbers are left and top image coordinates and others are image width and height - `color2gray` - force to grayscale conversion.
- `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][heif] 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][yuv] format.
* http://192.168.1.10/image.dng - [raw image][raw] snapshot from the sensor in
[Adobe DNG][dng] format (only for v>=2 HiSilicon processors).
* 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) ##### Tips:
* 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. To convert YUV image to a more common image format, use `convert` command from
ImageMagick software. Run it like this:
* 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) ```
convert -verbose -sampling-factor 4:2:0 -size 1920x1080 -depth 8 image.yuv image.png
```
where `1920x1080` is the picture resolution of video0, and `.png` is the target
image format.
### Audio input ### 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.opus - [Opus][opus] 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.m4a - [AAC][aac] audio stream.
* http://192.168.1.10/audio.mp3 - [MP3](https://en.wikipedia.org/wiki/MP3) audio stream * http://192.168.1.10/audio.mp3 - [MP3][mp3] audio stream.
* http://192.168.1.10/audio.pcm - Raw [PCM](https://en.wikipedia.org/wiki/Pulse-code_modulation) audio stream * http://192.168.1.10/audio.pcm - Raw [PCM][pcm] audio stream.
* http://192.168.1.10/audio.alaw - [A-law][alaw] compressed audio stream.
* http://192.168.1.10/audio.ulaw - [μ-law][ulaw] compressed audio stream.
* http://192.168.1.10/audio.g711a - [G.711][g711] A-law audio stream.
Use `ffplay -f s16le -ac 1 -ar 48k http://192.168.1.10/audio.pcm`, where `48k` is sample rate ##### Tips:
* http://192.168.1.10/audio.alaw - [A-law](https://en.wikipedia.org/wiki/A-law_algorithm) compressed audio stream To play audio stream use [ffplay][ffplay] utility from [ffmpeg][ffmpeg] package.
Use `ffplay -ar 48000 -ac 1 -f alaw http://192.168.1.10/audio.alaw`, where `48000` is sample rate ```
ffplay -ar 48000 -ac 1 -f s16le http://192.168.1.10/audio.pcm
ffplay -ar 48000 -ac 1 -f alaw http://192.168.1.10/audio.alaw
ffplay -ar 48000 -ac 1 -f mulaw http://192.168.1.10/audio.ulaw
ffplay -ar 8000 -ac 1 -f alaw http://192.168.1.10/audio.g711a
```
* http://192.168.1.10/audio.ulaw - [μ-law](https://en.wikipedia.org/wiki/%CE%9C-law_algorithm) compressed audio stream To play audio on camera speaker over network (Hisilicon/Goke only):
Use `ffplay -ar 48000 -ac 1 -f mulaw http://192.168.1.10/audio.ulaw`, where `48000` is sample rate ```
curl -T test.pcm http://10.216.128.66:8888/play_audio
```
* http://192.168.1.10/audio.g711a - [G.711](https://en.wikipedia.org/wiki/G.711) A-law audio stream [PCM][pcm] file can be prepared using [sox][sox] program:
Use `ffplay -ar 8000 -ac 1 -f alaw http://192.168.1.10/audio.g711a` ```
sox speech.mp3 -t raw -r 8000 -e signed -b 16 -c 1 test.pcm
### 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 ### API
Night API endpoint (make sure `nightAPI` in `nightMode` is enabled or use it from a camera without restrictions): Night API endpoint (make sure `nightMode` is enabled in Majestic config,
or use it from the camera without restrictions):
* http://192.168.1.10/night/on - Turn on night mode * 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/off - Turn off night mode (set to day).
* http://192.168.1.10/night/toggle - Toggle current mode * http://192.168.1.10/night/toggle - Toggle current mode.
### Monitoring ### Monitoring
* http://192.168.1.10/metrics - Standard Node exporter compatible and application-specific metrics for [Prometheus](https://prometheus.io/) * http://192.168.1.10/metrics - Standard Node exporter compatible
and application-specific metrics for [Prometheus](https://prometheus.io/).
[aac]: https://en.wikipedia.org/wiki/Advanced_Audio_Coding
[alaw]: https://en.wikipedia.org/wiki/A-law_algorithm
[dng]: https://en.wikipedia.org/wiki/Digital_Negative
[g711]: https://en.wikipedia.org/wiki/G.711
[heif]: https://en.wikipedia.org/wiki/High_Efficiency_Image_File_Format
[hls]: https://en.wikipedia.org/wiki/HTTP_Live_Streaming
[jpeg]: https://en.wikipedia.org/wiki/JPEG
[mjpeg]: https://en.wikipedia.org/wiki/Motion_JPEG
[mp3]: https://en.wikipedia.org/wiki/MP3
[mp4]: https://en.wikipedia.org/wiki/MPEG-4_Part_14
[opus]: https://en.wikipedia.org/wiki/Opus_(audio_format)
[pcm]: https://en.wikipedia.org/wiki/Pulse-code_modulation
[raw]: https://en.wikipedia.org/wiki/Raw_image_format
[rtsp]: https://en.wikipedia.org/wiki/RTSP
[ulaw]: https://en.wikipedia.org/wiki/%CE%9C-law_algorithm
[yuv]: https://en.wikipedia.org/wiki/YUV
[ffplay]: https://ffmpeg.org/ffplay.html
[ffmpeg]: https://ffmpeg.org/
[sox]: https://en.wikipedia.org/wiki/SoX

View File

@ -1,19 +1,22 @@
## HiSilicon boards HiSilicon boards
----------------
### Disable subsystems you don't use ### 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) Vendor kernel modules take about 5 megabytes of RAM (code with dynamic memory
for buffers) and some of them are pretty useless you need specific functionality
like OSD, motion detection, support of audio, or H264/265/JPEG codecs.
| Feature | Modules | Size | | Feature | Modules | Size |
|---------------------------------------|----------------------------------------------------------------------------------------------------|------| |---------------------------------------|---------------------------------------------------------------------------------------------------------|------|
| Audio output | hi3516ev200_ao hi3516ev200_adec | | | Audio output | hi3516ev200_ao, hi3516ev200_adec | |
| Audio input | hi3516ev200_ai hi3516ev200_aenc | | | Audio input | hi3516ev200_ai, hi3516ev200_aenc | |
| Audio support (both input and output) | hi3516ev200_acodec hi3516ev200_adec hi3516ev200_aenc hi3516ev200_ao hi3516ev200_ai hi3516ev200_aio | | | Audio support (both input and output) | hi3516ev200_acodec, hi3516ev200_adec, hi3516ev200_aenc, hi3516ev200_ao, hi3516ev200_ai, hi3516ev200_aio | |
| I2C sensor support | hi_sensor_i2c | | | I2C sensor support | hi_sensor_i2c | |
| SPI sensor support | hi_sensor_spi | | | SPI sensor support | hi_sensor_spi | |
| PWM support | hi_pwm | | | PWM support | hi_pwm | |
| Motion detection | hi3516ev200_ive | | | Motion detection | hi3516ev200_ive | |
| JPEG snapshots | hi3516ev200_jpege | | | JPEG snapshots | hi3516ev200_jpege | |
| H.264 codec support | hi3516ev200_h264e | | | H.264 codec support | hi3516ev200_h264e | |
| H.265 codec support | hi3516ev200_h265e | | | H.265 codec support | hi3516ev200_h265e | |
| OSD support | hi3516ev200_rgn | OSD support | hi3516ev200_rgn | |

View File

@ -1,21 +1,25 @@
## Basic information ## 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 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. 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! Everyone is welcome to use/contribute to the project in any way they find useful!
We would be grateful for the feedback and suggestions. We would be grateful for any feedback and suggestions.
## Official links ## Official links
* [OpenIPC on Wiki](https://openipc.github.io/wiki) - Collection of various documentation and instructions * [OpenIPC on Wiki](https://openipc.github.io/wiki) - Collection of various documentation and instructions.
* [OpenIPC on GitHub](https://github.com/OpenIPC/) - GitHub organization, most projects are hosted here * [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 OpenCollective](https://opencollective.com/openipc) - OpenCollective community.
* [OpenIPC on Twitter](https://twitter.com/openipc) - Our main news * [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) * [OpenIPC on YouTube](https://www.youtube.com/channel/UCaXlbR2uGTRFh8jQ2lCFd2g) - Our instructions and streams (in the plans).
## Telegram chat groups ## Telegram chat groups
@ -36,44 +40,43 @@ We would be grateful for the feedback and suggestions.
### Firmware ### Firmware
* [openipc-2.1](https://openipc.github.io/firmware) - Firmware development and creation system based on Buildroot * [openipc-2.x](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 * [openipc-1.0][chaos_calmer] - Firmware development and creation system based on OpenWrt 15.05.
* [coupler](https://github.com/OpenIPC/coupler) - Seamless transition between video cameras firmware * [coupler][coupler] - Seamless transition between video cameras firmware.
### Streamers ### Streamers
* [majestic](https://github.com/OpenIPC/firmware/wiki/majestic_streamer) - Universal IPCam streamer * [majestic](https://github.com/OpenIPC/firmware/wiki/majestic_streamer) - Universal IPCam streamer.
* [mini](https://github.com/OpenIPC/mini) - OpenSource Mini IP camera streamer * [mini][mini] - OpenSource Mini IP camera streamer.
### Tools ### Tools
* [ipctool](https://openipc.github.io/ipctool) - Tool (and library) for checking IP camera hardware * [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 * [yaml-cli][yaml-cli] - Tool for change setting in CLI.
* [glutinium](https://github.com/ZigFisher/Glutinium) - Additional OpenWRT packages * [glutinium](https://github.com/ZigFisher/Glutinium) - Additional OpenWRT packages.
### Windows software ### Windows software
* [exipcam](http://team.openipc.org/exipcam) - Cool utility for repairing IPCam (For Windows, works in Linux via Wine) * [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) * [ipcam_dms](http://team.openipc.org/ipcam_dms) - IPCam Device Management System (For Windows, works in Linux via Wine).
## Developers ## Developers
| Name | Role | Participation | | 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 Ilyin](https://web.telegram.org/#/im?p=@widgetii) | co-founder and main participant of the OpenIPC project | [ipctool][ipctool], [majestic][majestic], [mini][mini], [motors][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) | | [Dmitry Ermakov](https://web.telegram.org/#/im?p=@dimerrr) | main participant | [coupler][coupler], [firmware][firmware], [ipctool][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) | | [Igor Zalatov](https://web.telegram.org/#/im?p=@FlyRouter) | **project founder and development coordinator** | [chaos_calmer][chaos_calmer], [firmware][firmware], [wiki][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) | | [Ivan Pozdeev](https://web.telegram.org/#/im?p=@John) | developer | [microbe-web][webui], [yaml-cli][yaml-cli] |
| [Konstantin](#) | developer | [hisi-trace](https://github.com/OpenIPC/hisi-trace), [yaml-cli](https://github.com/OpenIPC/yaml-cli) | | [Konstantin](#) | developer | [hisi-trace][hisi-trace], [yaml-cli][yaml-cli] |
| [Maksim Patrushev](https://web.telegram.org/#/im?p=@maxi380) | developer | [motors](https://github.com/OpenIPC/motors) | | [Maksim Patrushev](https://web.telegram.org/#/im?p=@maxi380) | developer | [motors][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) | | [Maxim Chertov](https://web.telegram.org/#/im?p=@mAX3773) | co-founder of the OpenIPC project | [chaos_calmer][chaos_calmer], [ipctool][ipctool], [mini][mini] |
| [Paul Philippov](https://web.telegram.org/#/im?p=@themactep) | main participant | [microbe-web](https://github.com/OpenIPC/microbe-web) | | [Paul Philippov](https://web.telegram.org/#/im?p=@themactep) | main participant | [microbe-web][webui] |
| [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) | | [Sergey Sharshunov](https://web.telegram.org/#/im?p=@USSSSSH) | co-founder of the OpenIPC project | [chaos_calmer][chaos_calmer], [burn][burn] |
| [Temirkhan Myrzamadi](https://web.telegram.org/#/im?p=@hirrolot) | main participant | [smolrtsp](https://github.com/OpenIPC/smolrtsp) | [Temirkhan Myrzamadi](https://web.telegram.org/#/im?p=@hirrolot) | main participant | [smolrtsp][smolrtsp] |
| [Vasiliy Yakovlev](https://web.telegram.org/#/im?p=@#) | general facilitator | | | [Vasiliy Yakovlev](https://web.telegram.org/#/im?p=@#) | general facilitator | |
-----
### Support ### Support
@ -111,3 +114,18 @@ 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://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://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> <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>
[burn]: https://github.com/OpenIPC/burn
[chaos_calmer]: https://github.com/OpenIPC/chaos_calmer
[coupler]: https://github.com/OpenIPC/coupler
[firmware]: https://github.com/OpenIPC/firmware
[hisi-trace]: https://github.com/OpenIPC/hisi-trace
[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
[smolrtsp]: https://github.com/OpenIPC/smolrtsp
[webui]: https://github.com/OpenIPC/microbe-web
[wiki]: https://github.com/OpenIPC/firmware/wiki
[yaml-cli]: https://github.com/OpenIPC/yaml-cli

View File

@ -1,3 +1,4 @@
## Microbe WEB interface Microbe web interface
---------------------
Default login/password - admin/12345 Default login/password: admin/12345

View File

@ -1,6 +1,7 @@
## Installation: how to make OpenIPC running on certain HW Installation: how to make OpenIPC running on certain hardware
-------------------------------------------------------------
Supported HW and installation procedures are given on [openipc.org](https://openipc.org/firmware/) site. Supported hardware and installation procedures are given on [openipc.org](https://openipc.org/firmware/) site.
Please follow on site instructions for your CPU and video chip! Please follow on site instructions for your CPU and video chip!

View File

@ -1,19 +1,19 @@
## Source code Source code
-----------
**At the moment, we are working on creating a high-quality repository with 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.** **Please be patient because we want to provide a completely beautiful and ready-made project.**
-----
### Quick build from sources ### Quick build from sources
Install some packages to system and clone OpenIPC repo Install some packages to system and clone OpenIPC repo
``` ```
sudo apt-get update -y ; sudo apt-get install -y bc build-essential git unzip 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 git clone --depth=1 https://github.com/OpenIPC/firmware.git
cd openipc-2.1 cd firmware
``` ```
Run the commands below for your board and your files will end up in the "output/images" directory Run the commands below for your board and your files will end up in the "output/images" directory
@ -101,5 +101,3 @@ PLATFORM=sigmastar make br-sigmastar-osdrv-ssc335-{dirclean,rebuild}
# #
PLATFORM=xiongmai make br-xiongmai-osdrv-xm530-{dirclean,rebuild} PLATFORM=xiongmai make br-xiongmai-osdrv-xm530-{dirclean,rebuild}
``` ```

View File

@ -1,22 +1,17 @@
## System features System features
---------------
* Supports for most TrueType (.ttf) and certain OpenType (.otf) fonts. * Supports for most TrueType (.ttf) and certain OpenType (.otf) fonts.
-----
### Random Number Generator ### Random Number Generator
It WORKs now on Hi3516Ev200/Hi3516Ev300 devices Works on Hi3516Ev200/Hi3516Ev300 devices.
-----
### Watchdog ### Watchdog
It WORKs now on Hi3516Ev200/Hi3516Ev300 devices Works on Hi3516Ev200/Hi3516Ev300 devices.
-----
### WiFi ### WiFi
* Realtek Semiconductor RTL8188ETV Wireless LAN 802.11n Network Adapter * 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) * [https://linux-hardware.org/index.php?id=usb:0bda-0179](https://linux-hardware.org/index.php?id=usb:0bda-0179)

View File

@ -1,22 +1,22 @@
## Upgrade firmware Upgrading firmware
------------------
`sysupgrade` for old firmware For old firmware `sysupgrade` without parameters is enough.
`sysupgrade -k -r` for new firmware For newer firmware, use it as `sysupgrade -k -r` to update both kernel and rootfs.
If you got this error: If you got this error:
``` ```
losetup: /tmp/rootfs.squashfs.${soc}: No such file or directory losetup: /tmp/rootfs.squashfs.${soc}: No such file or directory
Rootfs: Unable to get hostname, execution was interrupted... Rootfs: Unable to get hostname, execution was interrupted...
``` ```
Try first update kernel: then try to update only kernel first:
`sysupgrade -k` `sysupgrade -k`
If it doesn't help use option --force: If it doesn't help, use `--force` option:
`sysupgrade -r --force` `sysupgrade -r --force`
If you caught a glitch, retrieve the most recent version of the utility:
If you caught a glitch:
``` ```
curl -k -L -o /usr/sbin/sysupgrade "https://raw.githubusercontent.com/OpenIPC/firmware/master/general/overlay/usr/sbin/sysupgrade" curl -k -L -o /usr/sbin/sysupgrade "https://raw.githubusercontent.com/OpenIPC/firmware/master/general/overlay/usr/sbin/sysupgrade"
``` ```

View File

@ -1,4 +1,5 @@
# ToDo ToDo
----
## Bugfix ## Bugfix

View File

@ -1,6 +1,7 @@
## WiFi for XM530 based devices WiFi for XM530 based devices
----------------------------
Script /usr/sbin/wifi Save this script as `/usr/sbin/wifi`
``` ```
#!/bin/sh #!/bin/sh
@ -18,7 +19,7 @@ if [ "$WIFI" = "xm711" ]; then
fi fi
``` ```
Settings on /etc/network/interfaces Save these settings to `/etc/network/interfaces`
``` ```
auto eth2 auto eth2
@ -28,4 +29,4 @@ iface eth2 inet dhcp
pre-up sed -i '2i \\tscan_ssid=1' /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) pre-up (sleep 3; wpa_supplicant -B -Dnl80211 -ieth2 -c/tmp/wpa_supplicant.conf)
post-down killall -q wpa_supplicant post-down killall -q wpa_supplicant
``` ```

View File

@ -1,6 +1,10 @@
## Configuration requirements 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. To prevent accidental stream termination on temporary connection drops
schedule live streaming with a start date in the far future (e.g. December 31st
of the current year). It will work smoothly when you go live, disconnect the
camera and then continue streaming.
### HLS + H.265 ### HLS + H.265
@ -8,92 +12,88 @@ Follow up [Delivering Content via HLS](https://developers.google.com/youtube/v3/
### Create new stream ### Create new stream
- Navigate https://developers.google.com/youtube/v3/live/code_samples page - Navigate to <https://developers.google.com/youtube/v3/live/code_samples> page.
- Select Resource 'liveStreams' and Method 'insert' - Select 'liveStreams' as Resource and 'insert' as Method.
- In table below click on 'insert' use case - In table below, click on 'insert' use case.
- Fill on right side on the page: - On the right side of the page:
- in 'cdn' object change "frameRate" from "60fps" to "variable", - in 'cdn' object, change "frameRate" from "60fps" to "variable";
- "resolution" from "1080p" to "variable" - switch "resolution" from "1080p" to "variable";
- and "ingestionType" from "rtmp" to "hls": - switch "ingestionType" from "rtmp" to "hls":
``` ```
"cdn": { "cdn": {
"ingestionType": "hls", "ingestionType": "hls",
"frameRate": "variable", "frameRate": "variable",
"resolution": "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 - 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 - Authorize yourself using your YouTube 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. - 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 previously enabled in your account.
- Save "channelId" from the response (it looks like "UCPJRjbxYlq6h2cCqy8RCRjg").
- Save "channelId" from the response (it looks like this "UCPJRjbxYlq6h2cCqy8RCRjg")
### Create new broadcast: ### Create new broadcast:
- Navigate https://developers.google.com/youtube/v3/live/code_samples page - Navigate to <https://developers.google.com/youtube/v3/live/code_samples> page.
- Select Resource 'liveBroadcast' and Method 'insert' - Select 'liveBroadcast' as Resource and 'insert' as Method.
- In table below click on 'insert' use case - In table below, click on 'insert' use case.
- Fill on right side on the page:
- On the right side of the page:
- 'title' field for your broadcast like 'My Hometown Camera' - 'title' field for your broadcast like 'My Hometown Camera'
- 'scheduledStartTime' like '2020-04-21T00:00:00.000Z' (ensure that this time in the future), - '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) - '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 - also press blue plus button inside "snippet" block and add "channelId" with given from stream step value
``` ```
"snippet": {` "snippet": {`
`"title": "My Hometown Camera",` `"title": "My Hometown Camera",`
`"scheduledStartTime": "2021-04-12T00:00:00.000Z",` `"scheduledStartTime": "2021-04-12T00:00:00.000Z",`
`"scheduledEndTime": "2021-04-13T00:00:00.000Z",` `"scheduledEndTime": "2021-04-13T00:00:00.000Z",`
`"channelId": "MCpZqkqqEZw806aGGHUdepIl"` `"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 - 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 - Authorize yourself using your YouTube connected account.
- Make sure that you got 200 response otherwise check errors and repeat.
- Make sure that you got 200 response otherwise check errors and repeat
### Bind the broadcast to the stream: ### Bind the broadcast to the stream:
- Navigate https://developers.google.com/youtube/v3/live/code_samples page - Navigate to <https://developers.google.com/youtube/v3/live/code_samples> page.
- Select 'liveBroadcast' as Resource and 'bind' as Method.
- Select Resource 'liveBroadcast' and Method 'bind' - In the table below, click on 'Bind a broadcast to a stream' use case.
- On the right side of the page:
- 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') - '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') - '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 - 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.
- Authorize yourself using your YouTube connected account
- Make sure that you got 200 response otherwise check errors and repeat
### Go live! ### Go live!
Navigate https://studio.youtube.com/ Navigate to <https://studio.youtube.com/>.
On right side click on 'CREATE' button and then 'Go live' On the right side, click on 'CREATE' button and then 'Go live'.
credits (c) Victor
Origin (c) Victor, Origin: https://github.com/OpenIPC/camerasrnd/blob/master/streaming/youtube.md
https://github.com/OpenIPC/camerasrnd/blob/master/streaming/youtube.md

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

BIN
images/gh-fork.png 100644

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

View File

@ -1,5 +1,39 @@
![OpenIPC logo](https://cdn.themactep.com/images/logo_openipc.png "OpenIPC logo") ![OpenIPC logo](images/logo_openipc.png "OpenIPC logo")
## [EN](en/index) - English OpenIPC Wiki
============
## [RU](ru/index) - Русский [English](en/index) | [Русский](ru/index)
> "Improving the world, one patch at a time."
### This is an open project, so you can help, too.
We try to collect, organize and share as much information regarding different
aspects of the project as we can. But sometimes we overlook things that seem
obvious to us, developers, but are not so obvious to end-users, people who are
less familiar with nuts and bolts behind the scene. That is why we set up this
wiki and let anyone having a GitHub account to make additions and improvements
to the knowledgebase.
### How to contribute.
Sign in into your GitHub account, or [get yourself one][gh-signup] if you don't
have it yet. It's free.
Go to [the wiki repository](https://github.com/openIPC/wiki/) and fork it.
![GitHub Fork](images/gh-fork.png)
Make changes (correct a typo, add another record into a table, or write a new
article) and commit them to your own fork of the repository.
From your repository, create a pull request, so we could review and incorporate
your changes into our version of the wiki.
![GitHub Contribute](images/gh-contribute.png)
[gh-signup]: https://github.com/signup

View File

@ -133,4 +133,4 @@ logging.
[sysklogd: add -Z option to adjust message timezones](http://lists.busybox.net/pipermail/busybox/2017-May/085437.html) [sysklogd: add -Z option to adjust message timezones](http://lists.busybox.net/pipermail/busybox/2017-May/085437.html)
[logo]: https://cdn.themactep.com/images/logo_openipc.png [logo]: ../images/logo_openipc.png

View File

@ -1,7 +1,5 @@
![OpenIPC logo][logo] ![OpenIPC logo][logo]
# Русская версия
## Прошивка OpenIPC -- что это? ## Прошивка OpenIPC -- что это?
Прошивка OpenIPC (OpenIPC firmware) -- это коллективный труд многих Прошивка OpenIPC (OpenIPC firmware) -- это коллективный труд многих
@ -126,7 +124,7 @@ OpenIPC -- это увлекательный эксперимент, в кото
вам поможет [пошаговая инструкция](/wiki/ru/installation). вам поможет [пошаговая инструкция](/wiki/ru/installation).
[logo]: https://cdn.themactep.com/images/logo_openipc.png [logo]: ../images/logo_openipc.png
[socs]: https://github.com/OpenIPC/firmware/wiki/supported_devices [socs]: https://github.com/OpenIPC/firmware/wiki/supported_devices
[faq1]: https://github.com/OpenIPC/camerasrnd/blob/master/docs/FAQ-ru.md [faq1]: https://github.com/OpenIPC/camerasrnd/blob/master/docs/FAQ-ru.md
[faq2]: https://github.com/OpenIPC/wiki/blob/master/ru/discussion.md [faq2]: https://github.com/OpenIPC/wiki/blob/master/ru/discussion.md

View File

@ -104,4 +104,4 @@ _...to be continued._
** ПРОВЕРИТЬ ВСЕ КОМАНДЫ НА ЖИВОЙ СИСТЕМЕ!*** ** ПРОВЕРИТЬ ВСЕ КОМАНДЫ НА ЖИВОЙ СИСТЕМЕ!***
[logo]: https://cdn.themactep.com/images/logo_openipc.png [logo]: ../images/logo_openipc.png

View File

@ -1,25 +1,26 @@
## Switcam HS-303 Switcam HS-303
==============
Общественные заметки по перепрошивке устройств Switcam HS303 (всех версий) в [OpenIPC](https://openipc.org) v1.0 (на базе OpenWrt).. Публичные заметки по прошивке устройств Switcam HS303 (всех версий) в
[OpenIPC](https://openipc.org) v1.0 (на базе OpenWrt).
Обсуждение проекта и возможностей прошивок (на русском языке) в группе [Telegram](https://t.me/openipc_modding) Обсуждение проекта и возможностей прошивок (на русском языке) в группе
[Telegram](https://t.me/openipc_modding).
### Сборник наиболее актуальных вопросов и ответов в формате Q&A Наиболее актуальные вопросы и ответы
------------------------------------
--- #### Какие типы устройств поддерживаются в проекте OpenIPC v1.0?
**Q. Какие типы устройств поддерживаются в проекте OpenIPC v1.0 ?** На данный момент полноценно поддерживается Switcam HS-303 (v1).
В будущем планируется поддержка устройств v2 и v3.
**A.** На данный момент полноценно поддерживается Switcam HS-303 (v1). В будущем планируется поддержка устройств v2 и v3. #### Где можно взять прошивку для устройства Ростелеком Switcam HS303 (v1)?
----- Обсуждение работы этих камер доступно по специальной подписке на
[OpenIPC paywall](https://paywall.pw/openipc).
**Q. Где можно взять прошивку для устройства Ростелеком Switcam HS303 (v1) ?** #### Какой путь до SD карты необходимо указывать в `majestic.yaml` для прошивки
openipc-1.0?
**A.** Обсуждение работы этих камер доступно по специальной подписке на [OpenIPC paywall](https://paywall.pw/openipc) `/mnt/mmc/%Y/%m/%d/%H.mp4`
-----
**Q. Какой путь до SD карты необходимо указывать в majestic.yaml для прошивки openipc-1.0 ?**
**A.** /mnt/mmc/%Y/%m/%d/%H.mp4

View File

@ -2,33 +2,42 @@
### План ### План
* Процессор и имя профиля указываются автоматически при сборке в файле /etc/hostname и доступны постоянно через /rom/.. * Процессор и имя профиля указываются автоматически при сборке в файле
* У плат ..._${platform}_unknown_defconfig hostname не прописан. ..._gk7205v200_fpv_defconfig имеет отличный hostname @p0isk * `/etc/hostname` и доступны постоянно через `/rom/..`
* Добавить ключи в sysupgrade для обновления web-ui и majestic * У плат `..._${platform}_unknown_defconfig` hostname не прописан.
* `..._gk7205v200_fpv_defconfig` имеет отличный hostname (@p0isk)
* Добавить ключи в `sysupgrade` для обновления web-ui и majestic.
### Безопасность ### Безопасность
* При первых входах по SSH и WEB предлагать (настойчиво) пользователю сменить пароль, дабы не нарваться на CVE. * При первых входах в Web UI предлагать (настойчиво) пользователю сменить пароль,
* По вебу сделано themactep @p0isk дабы не нарваться на CVE.
* Реализовать интеграцию авторизации httpd на использование стандартных passwd/shadow из /etc * готово (@p0isk, @themactep).
* При первых входах по SSH предлагать (настойчиво) пользователю сменить пароль,
дабы не нарваться на CVE.
* Реализовать интеграцию авторизации httpd на использование стандартных
passwd/shadow из /etc.
### Унификация ядра ### Унификация ядра
* Включить опции ROOT_NFS и PNP_DHCP во всех ядрах * Включить опции ROOT_NFS и PNP_DHCP во всех ядрах.
### Обновление системы ### Обновление системы
#### Ядро: #### Ядро:
* Добавить через mkimage имя процессора, например Linux-4.9.37-hi3516ev200
* Готово @p0isk * Добавить через mkimage имя процессора, например `Linux-4.9.37-hi3516ev200`
* Готово (@p0isk).
* По нему проверять и дате проверять пригодность для обновления. * По нему проверять и дате проверять пригодность для обновления.
* Готово @p0isk * Готово (@p0isk).
### Обновление majestic ### Обновление majestic
* Обновляются и проверяются только бинарник и укороченный конфиг. * Обновляются и проверяются только бинарник и укороченный конфиг.
* Есть кнопка Восстановить настройки, нужна ли Восстановить стример? * Есть кнопка "Восстановить настройки", нужна ли "Восстановить стример"?
* Помимо ETag можно использовать Last-Modified * Помимо ETag можно использовать Last-Modified.
#### Ветка разработки #### Ветка разработки
* Отображать поле для номера коммита. Если пусто, то берём последний. * Отображать поле для номера коммита. Если пусто, то берём последний.
* Неактуально? @p0isk * Неактуально? (@p0isk).

View File

@ -1,6 +1,8 @@
## Специализированные настройки для устройств Switcam HS303(v2) Специализированные настройки для Switcam HS303(v2)
--------------------------------------------------
Обсуждение работы этих камер доступно по специальной подписке на [OpenIPC paywall](https://paywall.pw/openipc) Обсуждение работы этих камер доступно по специальной подписке на
[OpenIPC paywall](https://paywall.pw/openipc).
### Модифицированный блок из файла /etc/network/interface ### Модифицированный блок из файла /etc/network/interface
@ -29,4 +31,4 @@ nightMode:
pinSwitchDelayUs: 150 pinSwitchDelayUs: 150
backlightPin: 56 backlightPin: 56
nightAPI: true nightAPI: true
``` ```

View File

@ -1,19 +1,24 @@
``` Прошивка gk7205v300 + IMX335 + XM_XT25F128B
Квест по перепрошивке gk7205v300 + IMX335 + XM_XT25F128B -------------------------------------------
Бутлодер на пароле, flash залочена. Бутлодер на пароле, flash залочена.
Скачайте и установите у себя Tftpd сервер: https://github.com/peacepenguin/tftpd64/releases 1. Скачайте и установите у себя [tftpd сервер](https://github.com/peacepenguin/tftpd64/releases).
Скачайте и распакуйте в отдельную папку прошивку: https://github.com/OpenIPC/firmware/releases/download/latest/openipc.gk7205v300-br.tgz, в настройках Tftpd укажите путь к папке с прошивкой. 2. Скачайте и распакуйте в отдельную папку [прошивку](https://github.com/OpenIPC/firmware/releases/download/latest/openipc.gk7205v300-br.tgz), в настройках tftpd укажите путь к папке с прошивкой.
Найдите в чате OpenIPC Users (Ru) сообщение с тэгом #GkTool , установите на компьютер ToolPlatform-1.0.0-win32-x86_64.zip 3. Найдите в Telegram канале [OpenIPC Users (Ru)][t1] сообщение с тэгом #GkTool, установите на компьютер ToolPlatform-1.0.0-win32-x86_64.zip
Скачайте u-boot.bin.img_cut из чата OpenIPC Users (Ru) 4. Скачайте u-boot.bin.img_cut из Telegram канала [OpenIPC Users (Ru)][t1].
Подключите камеру и компьютер через Ethernet к одному роутеру, чтобы компьютер и камера были в одной подсети. 5. Подключите камеру и компьютер через Ethernet к одному роутеру, чтобы компьютер и камера были в одной подсети.
Подключите к компьютеру USB-TTL 3.3V адаптер, рекомендуется FTDI232. Он встанет на какой-то COM-порт, посмотреть номер COM порта в Диспетчере задач 6. Подключите к компьютеру USB-TTL 3.3V адаптер, рекомендуется FTDI232. Он встанет на какой-то COM-порт, посмотреть номер COM порта в Диспетчере задач.
Подулючите RX/TX/GND на камере к TX/RX/GND на USB-TTL 3.3V адаптере 7. Подключите RX/TX/GND на камере к TX/RX/GND на USB-TTL 3.3V адаптере.
Скачайте и установите Putty. Выставить режим COM порта на скорость 115200. Зайти на камеру через Putty, по COM порту. Убедится,что провода подключены правильно, видно лог камеры и вводятся символы с клавиатуры. 8. Скачайте и установите Putty. Выставить рцежим COM порта на скорость 115200. Зайти на камеру через Putty, по COM порту. Убедится, что провода подключены правильно, видно лог камеры и вводятся символы с клавиатуры.
ОБЯЗАТЕЛЬНО СОХРАНИТЕ МАС адрес камеры, в процессе прошивки он сотрётся.
__ОБЯЗАТЕЛЬНО СОХРАНИТЕ МАС адрес камеры! В процессе прошивки он сотрётся!__
1)В Putty: бэкап копированием на свой hls сервер из ос, перешитой купером: ### В Putty
Создать бэкап копированием на свой hls сервер из ос, перешитой купером:
```
mkdir /mnt/Public mkdir /mnt/Public
mount -o nolock 192.168.1.15(тут указывается IP компьютера):/home/pi/nfs_share /mnt/Public mount -o nolock 192.168.1.15(тут указывается IP компьютера):/home/pi/nfs_share /mnt/Public
cat /dev/mtdblock0 > /mnt/Public/mtd0 cat /dev/mtdblock0 > /mnt/Public/mtd0
@ -21,48 +26,49 @@ cat /dev/mtdblock1 > /mnt/Public/mtd1
cat /dev/mtdblock2 > /mnt/Public/mtd2 cat /dev/mtdblock2 > /mnt/Public/mtd2
cat /dev/mtdblock3 > /mnt/Public/mtd3 cat /dev/mtdblock3 > /mnt/Public/mtd3
cat /dev/mtdblock4 > /mnt/Public/mtd4 cat /dev/mtdblock4 > /mnt/Public/mtd4
выйти из программы Putty и закрыть её. ```
2) прошить xm бут u-boot.bin.img_cut через #gktool (ToolPlatform): Выйти из программы Putty и закрыть её.
В ToolPlatform выбрать COM-порт, на котором висит адаптер, Transfer mode - Serial.
Во вкладке Burn Fastboot выбрать Flash type: spi nor, File: файл u-boot.bin.img_cut.
Отключить камеру, нажать кнопку Burn, выждать 5 секунд, включить камеру. Начнется прошивка.
Перезагрузить камеру по питанию
3) зайти в U-boot через PUTTY, нажимая несколько раз CTRL-C в момент включения камеры (очень быстро нажимать). ### Прошить xm бут u-boot.bin.img_cut через #gktool (ToolPlatform)
Ввести команды
sf probe 0; sf lock 0; 1. В ToolPlatform выбрать COM-порт, на котором висит адаптер, Transfer mode - Serial.
2. Во вкладке Burn Fastboot выбрать Flash type: spi nor, File: файл u-boot.bin.img_cut.
3. Отключить камеру, нажать кнопку Burn, выждать 5 секунд, включить камеру. Начнется прошивка.
4. Перезагрузить камеру по питанию.
5. Зайти в U-boot через PUTTY, нажимая несколько раз CTRL-C в момент включения камеры (очень быстро нажимать).
Ввести команды
```
sf probe 0
sf lock 0
sf erase 0 1000000 sf erase 0 1000000
-----нажать Enter----
setenv soc gk7205v300 setenv soc gk7205v300
setenv osmem 32M setenv osmem 32M
setenv totalmem 128M setenv totalmem 128M
saveenv saveenv
-----нажать Enter----
setenv gatewayip 192.168.1.1 // вводите ip адрес вашего шлюза/роутера
setenv gatewayip 192.168.1.1 //вводите ip адрес вашего шлюза/роутера setenv ipaddr 192.168.1.14 // ip адрес камеры
setenv ipaddr 192.168.1.14 //ip адрес камеры setenv netmask 255.255.255.0 // маска подсети
setenv netmask 255.255.255.0 //Маска подсети setenv serverip 192.168.1.15 // ip адрес компьютера на котором вы работаете и запущен TFTPD сервер
setenv serverip 192.168.1.15 //ip адрес компьютера на котором вы работаете и запущен TFTPD сервер setenv ethaddr 05:68:31:be:da:38 // MAC вашей ip камеры обязательно
setenv ethaddr 05:68:31:be:da:38 //MAC вашей ip камеры обязательно saveenv
saveenv
-----нажать Enter----
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 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 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 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}' 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 saveenv
-----нажать Enter----
run uk; run ur; reset run uk
-----нажать Enter---- run ur
reset
если перезагрузка не помогла, и в консоли проходят пробелы то повторите 2 шаг, после него камера работает.
после загрузки, выполнить firstboot в консоли Putty
``` ```
Если перезагрузка не помогла, и в консоли проходят пробелы, то повторите 2 шаг.
После него камера работает.
После загрузки, выполнить `firstboot` в консоли Putty.
[t1]: https://t.me/openipc_modding