mirror of https://github.com/OpenIPC/wiki.git
remove transfer- prefix.
parent
b49408dab1
commit
60408e3ece
38
README.md
38
README.md
|
@ -1 +1,37 @@
|
|||
# The OpenIPC Wiki
|
||||
OpenIPC Wiki
|
||||
============
|
||||
|
||||
[English](en/index.md) | [Русский](ru/about.md)
|
||||
|
||||
|
||||
> "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.
|
||||
|
||||

|
||||
|
||||
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.
|
||||
|
||||

|
||||
|
||||
|
||||
[gh-signup]: https://github.com/signup
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
# OpenIPC Wiki
|
||||
[Table of Content](index.md)
|
||||
|
||||
How to install HTTPS certificates on your camera
|
||||
------------------------------------------------
|
||||
|
|
@ -1,3 +1,6 @@
|
|||
# OpenIPC Wiki
|
||||
[Table of Content](index.md)
|
||||
|
||||
FFMPEG, RTSP and SRT examples
|
||||
-----------------------------
|
||||
|
|
@ -1,3 +1,6 @@
|
|||
# OpenIPC Wiki
|
||||
[Table of Content](index.md)
|
||||
|
||||
Boot device with NFS
|
||||
--------------------
|
||||
|
|
@ -0,0 +1,111 @@
|
|||
# OpenIPC Wiki
|
||||
[Table of Content](index.md)
|
||||
|
||||
Interesting tricks
|
||||
------------------
|
||||
|
||||
### Sharing output of a command via web
|
||||
```
|
||||
<command> | nc seashells.io 1337
|
||||
```
|
||||
|
||||
### Adapting syslogd to work with time zones other than GMT
|
||||
|
||||
Some `syslog()` implementations like musl's always send timestamps in UTC.
|
||||
The following code adds a new option to `syslogd`, `-Z`, to assume incoming
|
||||
timestamps are always UTC, and to adjust them to the local timezone
|
||||
(of the syslogd) before logging.
|
||||
|
||||
```diff
|
||||
Signed-off-by: Shiz <hi at shiz.me>
|
||||
---
|
||||
sysklogd/syslogd.c | 23 +++++++++++++++++++----
|
||||
1 file changed, 19 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/sysklogd/syslogd.c b/sysklogd/syslogd.c
|
||||
index d64ff27..159336e 100644
|
||||
--- a/sysklogd/syslogd.c
|
||||
+++ b/sysklogd/syslogd.c
|
||||
@@ -122,6 +122,7 @@
|
||||
//usage: "(this version of syslogd ignores /etc/syslog.conf)\n"
|
||||
//usage: )
|
||||
//usage: "\n -n Run in foreground"
|
||||
+//usage: "\n -Z Adjust incoming UTC times to local time"
|
||||
//usage: IF_FEATURE_REMOTE_LOG(
|
||||
//usage: "\n -R HOST[:PORT] Log to HOST:PORT (default PORT:514)"
|
||||
//usage: "\n -L Log locally and via network (default is network only if -R)"
|
||||
@@ -233,6 +234,8 @@ typedef struct logRule_t {
|
||||
/*int markInterval;*/ \
|
||||
/* level of messages to be logged */ \
|
||||
int logLevel; \
|
||||
+ /* whether to adjust message timezone */\
|
||||
+ int adjustTimezone; \
|
||||
IF_FEATURE_ROTATE_LOGFILE( \
|
||||
/* max size of file before rotation */ \
|
||||
unsigned logFileSize; \
|
||||
@@ -316,6 +319,7 @@ enum {
|
||||
OPTBIT_outfile, // -O
|
||||
OPTBIT_loglevel, // -l
|
||||
OPTBIT_small, // -S
|
||||
+ OPTBIT_adjusttz, // -Z
|
||||
IF_FEATURE_ROTATE_LOGFILE(OPTBIT_filesize ,) // -s
|
||||
IF_FEATURE_ROTATE_LOGFILE(OPTBIT_rotatecnt ,) // -b
|
||||
IF_FEATURE_REMOTE_LOG( OPTBIT_remotelog ,) // -R
|
||||
@@ -330,6 +334,7 @@ enum {
|
||||
OPT_outfile = 1 << OPTBIT_outfile ,
|
||||
OPT_loglevel = 1 << OPTBIT_loglevel,
|
||||
OPT_small = 1 << OPTBIT_small ,
|
||||
+ OPT_adjusttz = 1 << OPTBIT_adjusttz,
|
||||
OPT_filesize = IF_FEATURE_ROTATE_LOGFILE((1 << OPTBIT_filesize )) + 0,
|
||||
OPT_rotatecnt = IF_FEATURE_ROTATE_LOGFILE((1 << OPTBIT_rotatecnt )) + 0,
|
||||
OPT_remotelog = IF_FEATURE_REMOTE_LOG( (1 << OPTBIT_remotelog )) + 0,
|
||||
@@ -339,7 +344,7 @@ enum {
|
||||
OPT_cfg = IF_FEATURE_SYSLOGD_CFG( (1 << OPTBIT_cfg )) + 0,
|
||||
OPT_kmsg = IF_FEATURE_KMSG_SYSLOG( (1 << OPTBIT_kmsg )) + 0,
|
||||
};
|
||||
-#define OPTION_STR "m:nO:l:S" \
|
||||
+#define OPTION_STR "m:nO:l:SZ" \
|
||||
IF_FEATURE_ROTATE_LOGFILE("s:" ) \
|
||||
IF_FEATURE_ROTATE_LOGFILE("b:" ) \
|
||||
IF_FEATURE_REMOTE_LOG( "R:*") \
|
||||
@@ -815,17 +820,23 @@ static void timestamp_and_log(int pri, char *msg, int len)
|
||||
{
|
||||
char *timestamp;
|
||||
time_t now;
|
||||
+ struct tm nowtm = { .tm_isdst = 0 };
|
||||
|
||||
/* Jan 18 00:11:22 msg... */
|
||||
/* 01234567890123456 */
|
||||
if (len < 16 || msg[3] != ' ' || msg[6] != ' '
|
||||
|| msg[9] != ':' || msg[12] != ':' || msg[15] != ' '
|
||||
) {
|
||||
- time(&now);
|
||||
+ now = time(NULL);
|
||||
timestamp = ctime(&now) + 4; /* skip day of week */
|
||||
} else {
|
||||
- now = 0;
|
||||
- timestamp = msg;
|
||||
+ if (G.adjustTimezone && strptime(msg, "%b %e %T", &nowtm)) {
|
||||
+ now = mktime(&nowtm) - timezone;
|
||||
+ timestamp = ctime(&now) + 4; /* skip day of week */
|
||||
+ } else {
|
||||
+ now = 0;
|
||||
+ timestamp = msg;
|
||||
+ }
|
||||
msg += 16;
|
||||
}
|
||||
timestamp[15] = '\0';
|
||||
@@ -1130,6 +1141,10 @@ int syslogd_main(int argc UNUSED_PARAM, char **argv)
|
||||
if (opts & OPT_loglevel) // -l
|
||||
G.logLevel = xatou_range(opt_l, 1, 8);
|
||||
//if (opts & OPT_small) // -S
|
||||
+ if (opts & OPT_adjusttz) { // -Z
|
||||
+ G.adjustTimezone = 1;
|
||||
+ tzset();
|
||||
+ }
|
||||
#if ENABLE_FEATURE_ROTATE_LOGFILE
|
||||
if (opts & OPT_filesize) // -s
|
||||
G.logFileSize = xatou_range(opt_s, 0, INT_MAX/1024) * 1024;
|
||||
--
|
||||
```
|
||||
_from [sysklogd: add -Z option to adjust message timezones](http://lists.busybox.net/pipermail/busybox/2017-May/085437.html)_
|
|
@ -1,5 +1,8 @@
|
|||
# OpenIPC Wiki
|
||||
[Table of Content](index.md)
|
||||
|
||||
OpenIPC Developers
|
||||
==================
|
||||
------------------
|
||||
|
||||
[](https://github.com/widgetii)
|
||||
|
|
@ -1,3 +1,6 @@
|
|||
# OpenIPC Wiki
|
||||
[Table of Content](index.md)
|
||||
|
||||
Run ipctool
|
||||
-----------
|
||||
|
|
@ -1,3 +1,6 @@
|
|||
# OpenIPC Wiki
|
||||
[Table of Content](index.md)
|
||||
|
||||
GPIO Settings
|
||||
-------------
|
||||
|
|
@ -1,7 +1,8 @@
|
|||

|
||||
# OpenIPC Wiki
|
||||
[Table of Content](index.md)
|
||||
|
||||
Supported devices
|
||||
=================
|
||||
-----------------
|
||||
|
||||
Unfortunately, we cannot provide you a long list of devices that are undoubtedly
|
||||
compatible with our firmware. Camera manufacturers tend to change hardware
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
# OpenIPC Wiki
|
||||
[Table of Content](index.md)
|
||||
|
||||
Overview
|
||||
--------
|
||||
|
92
en/index.md
92
en/index.md
|
@ -1,63 +1,67 @@
|
|||
![OpenIPC logo][logo]
|
||||
|
||||
Wiki
|
||||
====
|
||||
# OpenIPC Wiki
|
||||
[Table of Content](index.md)
|
||||
|
||||
## Introduction
|
||||
* [About project](transfer-menu-index.md)
|
||||
* [Supported devices](https://openipc.org/wiki/en/guide-supported-devices)
|
||||
* [Show changelog](transfer-show-changelog.md)
|
||||
- [About project](menu-index.md)
|
||||
- [Supported devices](https://openipc.org/wiki/en/guide-supported-devices)
|
||||
- [Show changelog](show-changelog.md)
|
||||
|
||||
## Available subprojects
|
||||
* [coupler](https://openipc.org/coupler)
|
||||
* [firmware](https://openipc.org/firmware)
|
||||
* [ipctool](https://openipc.org/ipctool)
|
||||
* [telemetry](https://openipc.org/telemetry)
|
||||
* [Firmware Partitions Calculation](https://themactep.com/tools/firmware-partitions-calculation)
|
||||
## Subprojects
|
||||
- [coupler](https://openipc.org/coupler)
|
||||
- [firmware](https://openipc.org/firmware)
|
||||
- [ipctool](https://openipc.org/ipctool)
|
||||
- [telemetry](https://openipc.org/telemetry)
|
||||
- [Firmware Partitions Calculation](https://themactep.com/tools/firmware-partitions-calculation)
|
||||
|
||||
## Installation
|
||||
* [Goke based boards](transfer-install-goke.md)
|
||||
* [HiSilicon based boards](transfer-install-hisi.md)
|
||||
* [Novatek based boards](transfer-install-novatek.md)
|
||||
* [SigmaStar based boards](transfer-install-ssc335.md)
|
||||
* [XM510 based boards](transfer-install-xm510.md)
|
||||
* [XM530 based boards](transfer-install-xm530.md)
|
||||
* [Veryld full manual](transfer-old-manual.md)
|
||||
- [Installation on Goke based boards](install-goke.md)
|
||||
- [Installation on HiSilicon based boards](install-hisi.md)
|
||||
- [Installation on Novatek based boards](install-novatek.md)
|
||||
- [Installation on SigmaStar based boards](install-ssc335.md)
|
||||
- [Installation on XM510 based boards](install-xm510.md)
|
||||
- [Installation on XM530 based boards](install-xm530.md)
|
||||
- [Veryld full manual](old-manual.md)
|
||||
|
||||
## Usage
|
||||
* [System features](transfer-system-features.md)
|
||||
* [Majestic streamer](transfer-majestic-streamer.md)
|
||||
* [Microbe WEB interface](transfer-microbe-web.md)
|
||||
* [Upgrade firmware](transfer-sysupgrade.md)
|
||||
* [Image quality tuning](transfer-image-quality-tuning.md)
|
||||
* [Memory tuning](transfer-memory-tuning.md)
|
||||
* [Using ipctool](transfer-example-ipctool.md)
|
||||
* [GPIO settings](transfer-gpio-settings.md)
|
||||
* [ACMEv2](transfer-acmev2.md)
|
||||
* [YouTube streaming](transfer-youtube-streaming.md)
|
||||
* [WiFi XM530](transfer-wifi-xm530.md)
|
||||
- [System features](system-features.md)
|
||||
- [Majestic streamer](majestic-streamer.md)
|
||||
- [Microbe web interface](microbe-web.md)
|
||||
- [Upgrade firmware](sysupgrade.md)
|
||||
- [Image quality tuning](image-quality-tuning.md)
|
||||
- [Memory tuning](memory-tuning.md)
|
||||
- [Using ipctool](transfer-example-ipctool.md)
|
||||
- [GPIO settings](gpio-settings.md)
|
||||
- [ACMEv2](acme-v2.md)
|
||||
- [YouTube streaming](youtube-streaming.md)
|
||||
- [WiFi XM530](wifi-xm530.md)
|
||||
|
||||
## Firmware
|
||||
* [Releases in GitHub](https://github.com/OpenIPC/firmware/releases/tag/latest)
|
||||
* [Releases in Telegram](https://t.me/s/openipc_dev)
|
||||
* [Source code](transfer-source-code.md)
|
||||
- [Releases in GitHub](https://github.com/OpenIPC/firmware/releases/tag/latest)
|
||||
- [Releases in Telegram](https://t.me/s/openipc_dev)
|
||||
- [Source code](source-code.md)
|
||||
|
||||
## Development
|
||||
* [Interesting tricks](transfer-dev-tricks.md)
|
||||
* [Boot device with NFS](transfer-dev-nfs-boot.md)
|
||||
* [FFMPEG usage](transfer-dev-ffmpeg-usage.md)
|
||||
* [Kernel configuration for adding new platforms](transfer-integration-kernel.md)
|
||||
- [Interesting tricks](dev-tricks.md)
|
||||
- [Boot device with NFS](dev-nfs-boot.md)
|
||||
- [FFMPEG usage](dev-ffmpeg-usage.md)
|
||||
- [Kernel configuration for adding new platforms](integration-kernel.md)
|
||||
|
||||
## Contacts
|
||||
* [Bug reports](https://github.com/OpenIPC/firmware/issues)
|
||||
- [Bug reports](https://github.com/OpenIPC/firmware/issues)
|
||||
|
||||
## Our resources
|
||||
- [OpenIPC](https://openipc.org/)
|
||||
- [OpenCollective](https://opencollective.com/openipc)
|
||||
- [Twitter](https://twitter.com/OpenIPC)
|
||||
- [Telegram](https://t.me/openipc)
|
||||
|
||||
## Roadmap
|
||||
* [ToDo](transfer-todo-all.md)
|
||||
* [Developers](transfer-developers.md)
|
||||
* [Notes from old sources](transfer-notes-for-resorting.md)
|
||||
- [ToDo](todo-all.md)
|
||||
- [Developers](developers.md)
|
||||
- [Notes from old sources](notes-for-resorting.md)
|
||||
|
||||
## Resources for recycling and integration
|
||||
* <https://github.com/OpenIPC/camerasrnd>
|
||||
* <https://openwrt.org/docs/techref/hardware/soc/soc.hisilicon.hi35xx>
|
||||
- <https://github.com/OpenIPC/camerasrnd>
|
||||
- <https://openwrt.org/docs/techref/hardware/soc/soc.hisilicon.hi35xx>
|
||||
|
||||
[logo]: ../images/logo_openipc.png
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
# OpenIPC Wiki
|
||||
[Table of Content](index.md)
|
||||
|
||||
For XM boards with SoC GK7202V300, GK7205V200, GK7205V300 ONLY!!!
|
||||
-----------------------------------------------------------------
|
||||
|
|
@ -1,3 +1,6 @@
|
|||
# OpenIPC Wiki
|
||||
[Table of Content](index.md)
|
||||
|
||||
For XM boards with Hi35{16Ev200,16Ev300,18Ev300} SoC ONLY!!!
|
||||
------------------------------------------------------------
|
||||
|
|
@ -1,3 +1,6 @@
|
|||
# OpenIPC Wiki
|
||||
[Table of Content](index.md)
|
||||
|
||||
For XM vendor boards with NT98562 and NT98566 SoC ONLY!!!
|
||||
---------------------------------------------------------
|
||||
|
|
@ -1,3 +1,6 @@
|
|||
# OpenIPC Wiki
|
||||
[Table of Content](index.md)
|
||||
|
||||
For Anjoy/Brovotech/Gospell/Uniview boards with SSC335 Soc ONLY!!!
|
||||
------------------------------------------------------------------
|
||||
|
|
@ -1,3 +1,6 @@
|
|||
# OpenIPC Wiki
|
||||
[Table of Content](index.md)
|
||||
|
||||
For XM vendor boards with XM510 SoC ONLY!!!
|
||||
-------------------------------------------
|
||||
|
|
@ -1,3 +1,6 @@
|
|||
# OpenIPC Wiki
|
||||
[Table of Content](index.md)
|
||||
|
||||
For XM vendor boards with XM530/XM550 SoC ONLY !!!
|
||||
--------------------------------------------------
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
# OpenIPC Wiki
|
||||
[Table of Content](index.md)
|
||||
|
||||
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
|
||||
```
|
|
@ -1,4 +1,7 @@
|
|||
Majestic streamer
|
||||
# OpenIPC Wiki
|
||||
[Table of Content](index.md)
|
||||
|
||||
Majestic Streamer
|
||||
-----------------
|
||||
|
||||
### Preamble
|
|
@ -1,3 +1,6 @@
|
|||
# OpenIPC Wiki
|
||||
[Table of Content](index.md)
|
||||
|
||||
HiSilicon boards
|
||||
----------------
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
# OpenIPC Wiki
|
||||
[Table of Content](index.md)
|
|
@ -1,3 +1,6 @@
|
|||
# OpenIPC Wiki
|
||||
[Table of Content](index.md)
|
||||
|
||||
## Basic information
|
||||
|
||||
The OpenIPC is an alternative [firmware](https://github.com/OpenIPC) for
|
|
@ -1,3 +1,6 @@
|
|||
# OpenIPC Wiki
|
||||
[Table of Content](index.md)
|
||||
|
||||
Microbe web interface
|
||||
---------------------
|
||||
|
|
@ -1,3 +1,6 @@
|
|||
# OpenIPC Wiki
|
||||
[Table of Content](index.md)
|
||||
|
||||
Installation: how to make OpenIPC running on certain hardware
|
||||
-------------------------------------------------------------
|
||||
|
|
@ -1,3 +1,6 @@
|
|||
# OpenIPC Wiki
|
||||
[Table of Content](index.md)
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
|
@ -1,7 +1,11 @@
|
|||
## Show changelog
|
||||
# OpenIPC Wiki
|
||||
[Table of Content](index.md)
|
||||
|
||||
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)
|
||||
* [wiki](https://github.com/OpenIPC/firmware/wiki/_history)
|
|
@ -1,3 +1,6 @@
|
|||
# OpenIPC Wiki
|
||||
[Table of Content](index.md)
|
||||
|
||||
Source code
|
||||
-----------
|
||||
|
|
@ -1,3 +1,6 @@
|
|||
# OpenIPC Wiki
|
||||
[Table of Content](index.md)
|
||||
|
||||
System features
|
||||
---------------
|
||||
|
|
@ -1,3 +1,6 @@
|
|||
# OpenIPC Wiki
|
||||
[Table of Content](index.md)
|
||||
|
||||
Upgrading firmware
|
||||
------------------
|
||||
|
|
@ -1,3 +1,6 @@
|
|||
# OpenIPC Wiki
|
||||
[Table of Content](index.md)
|
||||
|
||||
ToDo
|
||||
----
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
Interesting tricks
|
||||
------------------
|
||||
|
||||
### Sharing output of a command via web
|
||||
```
|
||||
<command> | nc seashells.io 1337
|
||||
```
|
|
@ -1,17 +0,0 @@
|
|||
## 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
|
||||
```
|
|
@ -1 +0,0 @@
|
|||
Our resources: [OpenIPC](https://openipc.org) | [OpenCollective](https://opencollective.com/openipc) | [Twitter](https://twitter.com/OpenIPC) | [Telegram](https://t.me/openipc)
|
|
@ -1,3 +1,6 @@
|
|||
# OpenIPC Wiki
|
||||
[Table of Content](index.md)
|
||||
|
||||
WiFi for XM530 based devices
|
||||
----------------------------
|
||||
|
|
@ -1,3 +1,6 @@
|
|||
# OpenIPC Wiki
|
||||
[Table of Content](index.md)
|
||||
|
||||
Configuration requirements
|
||||
--------------------------
|
||||
|
||||
|
@ -8,16 +11,14 @@ 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.
|
||||
Follow [Delivering Content via HLS](https://developers.google.com/youtube/v3/live/guides/hls-ingestion)
|
||||
for more information.
|
||||
|
||||
### Create new stream
|
||||
|
||||
- Navigate to <https://developers.google.com/youtube/v3/live/code_samples> page.
|
||||
|
||||
- Select 'liveStreams' as Resource and 'insert' as Method.
|
||||
|
||||
- In table below, click on 'insert' use case.
|
||||
|
||||
- On the right side of the page:
|
||||
- in 'cdn' object, change "frameRate" from "60fps" to "variable";
|
||||
- switch "resolution" from "1080p" to "variable";
|
||||
|
@ -34,24 +35,18 @@ Follow up [Delivering Content via HLS](https://developers.google.com/youtube/v3/
|
|||
- 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.
|
||||
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").
|
||||
|
||||
|
||||
### Create new broadcast:
|
||||
|
||||
- Navigate to <https://developers.google.com/youtube/v3/live/code_samples> page.
|
||||
|
||||
- Select 'liveBroadcast' as Resource and 'insert' as Method.
|
||||
|
||||
- In table below, click on 'insert' use case.
|
||||
|
||||
- On the right side of 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),
|
||||
|
@ -70,9 +65,7 @@ Follow up [Delivering Content via HLS](https://developers.google.com/youtube/v3/
|
|||
- 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.
|
||||
|
||||
|
39
index.md
39
index.md
|
@ -1,39 +0,0 @@
|
|||

|
||||
|
||||
OpenIPC Wiki
|
||||
============
|
||||
|
||||
[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.
|
||||
|
||||

|
||||
|
||||
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.
|
||||
|
||||

|
||||
|
||||
|
||||
[gh-signup]: https://github.com/signup
|
|
@ -0,0 +1,120 @@
|
|||
# OpenIPC Wiki
|
||||
[Оглавление](index.md)
|
||||
|
||||
Прошивка OpenIPC -- что это?
|
||||
----------------------------
|
||||
|
||||

|
||||
|
||||
Прошивка OpenIPC (OpenIPC firmware) -- это коллективный труд многих
|
||||
программистов с целью создания отрытого стека для работы на IP камерах.
|
||||
|
||||
|
||||
## Хочу попробовать. Что для этого требуется?
|
||||
|
||||
### IP камера.
|
||||
|
||||
Естественно, вам понадобится IP камера. Если вы еще не приобрели камеру,
|
||||
изучите, на какие именно параметры необходимо обратить внимание перед
|
||||
покупкой. Если у вас есть сомнения в правильности выбора, попросите помощи у
|
||||
разработчиков в Telegram-канале.
|
||||
|
||||
Убедитесь, что ваша IP камера снабжена процессором, поддерживаемым прошивкой
|
||||
OpenIPC. [Список таких процессоров][socs] пока ограничен, но быстро расширяется.
|
||||
|
||||
Самым надежным способом определения типа процессора является частичный разброр
|
||||
корпуса. Для большинства камер это довольно простая и безболезненная операция:
|
||||
пара винтов здесь, пара защелок там, и вы получаете доступ к электронике.
|
||||
|
||||
Процессор IP камеры (System on a chip, или SoC) -- это, как правило, крупный чип
|
||||
на обратной стороне от объектива. Лазерная гравировка на поверхности чипа
|
||||
подскажет вам, с каким именно процессором вы имеете дело.
|
||||
|
||||
Сделайте фотографии всех плат, компонентов, маркировок и наклеек. Они еще не
|
||||
раз понадобятся вам для идентификации устройств без последующего разбора камеры.
|
||||
|
||||
Аккуратно снимите объектив (он держится на двух винтах) и сделайте фото матрицы.
|
||||
Одни и те же процессоры могут комплектоваться разными типами матриц, каждая из
|
||||
них требует собственного кофигурационного файла.
|
||||
|
||||
Сделайте фотографии разъемов, чтобы не перепутать подключения, если вам
|
||||
понадобится их разъединить, например для удобного доступа к матрице. _Маленькая
|
||||
хитрость: сделайте маркировку на обеих частях разъема цветным фломастером для
|
||||
пластика, так вы точно будете знать, какой штекер от какого разъема._
|
||||
|
||||

|
||||
|
||||
### Знание Linux.
|
||||
|
||||
Необходимым условием для установки на вашу IP камеру прошивки OpenIPC является
|
||||
ваше умение работать в среде Linux. Прошивка OpenIPC построена на базе Linux.
|
||||
И хотя мы стремимся сделать нашу прошивку максимально простой и понятной обычному
|
||||
пользователю, проект находится в ранней стадии разработки. А это значит, что
|
||||
каждый день мы вносим изменения в код, и некоторые из них требуют ручного
|
||||
вмешательства на уровне системы.
|
||||
|
||||
### Паяльник и умение с ним работать.
|
||||
|
||||
Самый простой способ получения доступа к загрузчику и операционной системе
|
||||
камеры -- подключение к её порту UART. Это довольно простая процедура,
|
||||
требующая недорогого [адаптера][g-usbttl] для серийного подключения с порта USB
|
||||
вашего компьютера.
|
||||
|
||||
Большинство камер идут с нераспаянным, а зачастую и немаркированным портом
|
||||
UART. Как правило, это группа из трех, реже четырех контактных площадок,
|
||||
расположенных на самом краю платы.
|
||||
|
||||

|
||||
|
||||
Вам нужно будет самостоятельно определить порт на плате, выяснить его
|
||||
распиновку, и либо распаять на него коннектор, либо припаять провода напрямую
|
||||
к контактам порта. Так же можно использовать прищепку с пружинными щупами для
|
||||
подключения адаптера к камере. В любом случае, соединение должно быть надежным,
|
||||
иначе пропадание контакта во время записи/чтения может обернуться искажением
|
||||
передаваемых данных, что в свою очередь может обернуться порчей содержимого
|
||||
флэш-памяти и вывести камеру из строя. И тогда вам потребуется программатор
|
||||
микросхем и паяльная станция. Паяльная станция также может пригодиться вам для
|
||||
замены некоторых компонентов с целью достижения лучшей совместимостью камеры
|
||||
с нашей прошивкой: например для замены модуля WiFi или микросхемы флэш-памяти.
|
||||
|
||||
### TFTP сервер.
|
||||
|
||||
Мы советуем вам настроить в своей сети сервер TFTP. Его удобно использовать для
|
||||
загрузки в камеру файлов новой прошивки, для сохранения дампа оригинальной,
|
||||
поставляемой вместе с камерой, прошивки, а так же для хранения самописанных
|
||||
часто используемых скриптов -- таким образом вы сможете быстро восстановить
|
||||
привычную рабочую среду после очередной перепрошивки с очисткой системы.
|
||||
|
||||
**Обязательно сохраните оригинальную прошивку!** Она позволит вам вернуть
|
||||
камеру в исходное состояние, если вас что-то не устроит в прошивке OpenIPC.
|
||||
Вы так же сможете использовать её для сравнительных тестов, если решите принять
|
||||
участие в разработке нашей прошивки.
|
||||
|
||||
### Любопытство, кураж и терпение.
|
||||
|
||||
Следует понимать, что на нынешней стадии разработки прошивка OpenIPC -- это ещё
|
||||
не готовый продукт, а R&D, НИОКР. Как правило, производители камер не раскрывают
|
||||
свои секреты, не дают пароли для доступа к штатным прошивкам, даже не делятся
|
||||
документацией со сторонними разработчиками. Поэтому мы экспериментируем, пробуем
|
||||
разные подходы, изучаем и анализируем накопленные знания. Это даёт свои плоды,
|
||||
но так же иногда приводит к сбоям. Если что-то хорошо и стабильно работает
|
||||
сегодня вечером, то оно может быть сломано завтра утром, и снова починено к
|
||||
следующему вечеру.
|
||||
|
||||
Устанавливая прошивку OpenIPC сегодня, вы должны отдавать себе отчет, что это
|
||||
путь к прекрасному открытому будущему, но мы не обещаем, что именно сейчас
|
||||
дорога будет легкой.
|
||||
|
||||
OpenIPC -- это увлекательный эксперимент, в котором вы можете принять участие.
|
||||
Помогайте нам, и однажды OpenIPC станет самой стабильной, гибкой и открытой
|
||||
прошивкой для всех IP камер.
|
||||
|
||||
|
||||
## Установка прошивки OpenIPC.
|
||||
|
||||
Итак, если вы всё ещё хотите попробовать прошивку OpenIPC на своей камере,
|
||||
вам поможет [пошаговая инструкция](/wiki/ru/installation).
|
||||
|
||||
[socs]: https://github.com/OpenIPC/firmware/wiki/supported_devices
|
||||
[g-usbttl]: https://google.com/search?q=ftdi+usb+ttl
|
||||
[g-3.3ttl]: https://google.com/search?q=logic+level+converter+3.3v+5v
|
123
ru/discussion.md
123
ru/discussion.md
|
@ -1,17 +1,47 @@
|
|||
![OpenIPC logo][logo]
|
||||
# OpenIPC Wiki
|
||||
[Оглавление](index.md)
|
||||
|
||||
Заметки от Игоря Залатова
|
||||
=========================
|
||||
Темы для дискуссий
|
||||
------------------
|
||||
|
||||
Вопросы и ответы, коротко о главном
|
||||
-----------------------------------
|
||||
### План
|
||||
|
||||
### Majestic
|
||||
* Процессор и имя профиля указываются автоматически при сборке в файле
|
||||
* `/etc/hostname` и доступны постоянно через `/rom/..`
|
||||
* У плат `..._${platform}_unknown_defconfig` hostname не прописан.
|
||||
* `..._gk7205v200_fpv_defconfig` имеет отличный hostname (@p0isk)
|
||||
* Добавить ключи в `sysupgrade` для обновления web-ui и majestic.
|
||||
|
||||
* Можно-ли вывести данные для настройки автофокуса линз вместо текущего
|
||||
sample_af в стандартный /metrics ?
|
||||
* Нет, это отдельный тяжелый алгоритм, его нет смысла запускать просто так.
|
||||
### Безопасность
|
||||
|
||||
* При первых входах в Web UI предлагать (настойчиво) пользователю сменить пароль, дабы не нарваться на CVE.
|
||||
* готово (@p0isk, @themactep).
|
||||
* При первых входах по SSH предлагать (настойчиво) пользователю сменить пароль, дабы не нарваться на CVE.
|
||||
* Реализовать интеграцию авторизации httpd на использование стандартных passwd/shadow из /etc.
|
||||
|
||||
### Унификация ядра
|
||||
|
||||
* Включить опции ROOT_NFS и PNP_DHCP во всех ядрах.
|
||||
|
||||
### Обновление системы
|
||||
|
||||
#### Ядро:
|
||||
|
||||
* Добавить через mkimage имя процессора, например `Linux-4.9.37-hi3516ev200`
|
||||
* Готово (@p0isk).
|
||||
* По нему проверять и дате проверять пригодность для обновления.
|
||||
* Готово (@p0isk).
|
||||
|
||||
### Обновление majestic
|
||||
|
||||
* Обновляются и проверяются только бинарник и укороченный конфиг.
|
||||
* Есть кнопка "Восстановить настройки", нужна ли "Восстановить стример"?
|
||||
* Помимо ETag можно использовать Last-Modified.
|
||||
|
||||
#### Ветка разработки
|
||||
|
||||
* Отображать поле для номера коммита. Если пусто, то берём последний.
|
||||
* Неактуально? (@p0isk).
|
||||
|
||||
Сбор предложений по оформлению репозиториев проекта
|
||||
---------------------------------------------------
|
||||
|
@ -59,78 +89,3 @@
|
|||
[tasmocompiler](https://github.com/benzino77/tasmocompiler).
|
||||
* Создание публичных FTP/TFTP/NFS серверов для тестовых сборок компонентов
|
||||
прошивки.
|
||||
|
||||
|
||||
Программный переход с openipc-1.0 (OpenWrt) на openipc-2.x (Buildroot) 👻
|
||||
-------------------------------------------------------------------------
|
||||
|
||||
Заходим на устройство со старым openipc-1.0 и останавливаем любыми способами
|
||||
максимум сервисов кроме dropbear. Те сервисы которые "оживают" повторно
|
||||
останавливаем по примеру snmp.
|
||||
|
||||
`/etc/init.d/snmpd stop; /etc/init.d/snmpd disable`
|
||||
|
||||
Меняем при помощи команды `fw_setenv` переменную `bootargs`, добавляя туда в
|
||||
свою очередь переменную `init=/init`. Для моей платы строка выглядит вот так,
|
||||
но у вас она может быть другой:
|
||||
|
||||
`fw_setenv bootargs 'console=ttyAMA 0,115200 root=/dev/mtdblock3 init=/init rootfstype=squashfs,jffs2 panic=20 mtdparts=hi_sfc:256k(boot),64k(env),2048k(kernel),5120k(rootfs),-(rootfs_data)'`
|
||||
|
||||
Добавляем новую переменную soc при помощи команды `fw_setenv` указав свой
|
||||
процессор:
|
||||
|
||||
`fw_setenv soc hi3516ev100`
|
||||
|
||||
Прошиваем командой `flashcp` файловую систему, которую предварительно скачали
|
||||
с GitHub аккаунта OpenIPC. В моём случае это раздел `/dev/mtd3`, но могут быть
|
||||
отличия на каких-то старых железках:
|
||||
|
||||
`flashcp -v rootfs.squashfs.hi3516ev100 /dev/mtd3`
|
||||
|
||||
Делаем жесткий ребут плате:
|
||||
|
||||
`reboot -f`
|
||||
|
||||
Загружается **недо**-openipc-2.x с получением адреса по DHCP. После этого
|
||||
выполняем команду для глобального и красивого обновления:
|
||||
|
||||
`sysupgrade -k -r -n`
|
||||
|
||||
Профит!
|
||||
|
||||
|
||||
Ростелекомовская камера с NAND
|
||||
------------------------------
|
||||
|
||||
```
|
||||
setenv bootargs 'mem=${osmem:-32M} console=ttyAMA0,115200 panic=20 root=/dev/mtdblock3 rootfstype=squashfs init=/init mtdparts=hinand:512k(boot),512k(env),2048k(kernel),5120k(rootfs),-(rootfs_data)'
|
||||
|
||||
setenv bootcmd 'setenv setargs setenv bootargs ${bootargs}; run setargs; nand read 0x42000000 0x100000 0x300000; bootm 0x42000000'
|
||||
|
||||
setenv uk 'mw.b 0x42000000 ff 1000000; tftp 0x42000000 uImage.${soc} && nand erase 0x100000 0x200000; nand write 0x42000000 0x100000 ${filesize}'
|
||||
setenv ur 'mw.b 0x42000000 ff 1000000; tftp 0x42000000 rootfs.squashfs.${soc} && nand erase 0x300000 0x500000; nand write 0x42000000 0x300000 ${filesize}'
|
||||
|
||||
setenv soc hi3516ev300
|
||||
setenv osmem 32M
|
||||
setenv totalmem 128M
|
||||
setenv ipaddr 192.168.1.10
|
||||
setenv serverip 192.168.1.107
|
||||
saveenv
|
||||
|
||||
nand erase 0x800000 0x7800000
|
||||
|
||||
run uk; run ur; reset
|
||||
```
|
||||
|
||||
Adapting syslogd to work with time zones other than GMT
|
||||
-------------------------------------------------------
|
||||
|
||||
Some `syslog()` implementations like musl's[1] always send timestamps in UTC.
|
||||
This change adds a new option to `syslogd`, `-Z`, to assume incoming timestamps
|
||||
are always UTC and adjust them to the local timezone (of the syslogd) before
|
||||
logging.
|
||||
|
||||
[sysklogd: add -Z option to adjust message timezones](http://lists.busybox.net/pipermail/busybox/2017-May/085437.html)
|
||||
|
||||
|
||||
[logo]: ../images/logo_openipc.png
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
# OpenIPC Wiki
|
||||
[Оглавление](index.md)
|
||||
|
||||
Вопросы и ответы
|
||||
----------------
|
||||
|
||||
### Majestic
|
||||
|
||||
##### Можно-ли вывести данные для настройки автоматической фокусировки линз вместо текущего sample_af в стандартный /metrics?
|
||||
|
||||
Нет, это отдельный тяжелый алгоритм, его нет смысла запускать просто так.
|
|
@ -0,0 +1,62 @@
|
|||
# OpenIPC Wiki
|
||||
[Оглавление](index.md)
|
||||
|
||||
Switcam HS-303
|
||||
--------------
|
||||
|
||||
Публичные заметки по прошивке устройств Switcam HS303 (всех версий) в
|
||||
[OpenIPC](https://openipc.org) v1.0 (на базе OpenWrt).
|
||||
|
||||
Обсуждение проекта и возможностей прошивок (на русском языке) в группе
|
||||
[Telegram](https://t.me/openipc_modding).
|
||||
|
||||
### Наиболее актуальные вопросы и ответы
|
||||
|
||||
#### Какие типы устройств поддерживаются в проекте OpenIPC v1.0?
|
||||
|
||||
На данный момент полноценно поддерживается Switcam HS-303 (v1).
|
||||
В будущем планируется поддержка устройств v2 и v3.
|
||||
|
||||
#### Где можно взять прошивку для устройства Ростелеком Switcam HS303 (v1)?
|
||||
|
||||
Обсуждение работы этих камер доступно по специальной подписке на
|
||||
[OpenIPC paywall](https://paywall.pw/openipc).
|
||||
|
||||
#### Какой путь до SD карты необходимо указывать в `majestic.yaml` для прошивки
|
||||
openipc-1.0?
|
||||
|
||||
`/mnt/mmc/%Y/%m/%d/%H.mp4`
|
||||
|
||||
### Специализированные настройки для Switcam HS303(v2)
|
||||
|
||||
Обсуждение работы этих камер доступно по специальной подписке на
|
||||
[OpenIPC paywall](https://paywall.pw/openipc).
|
||||
|
||||
#### Модифицированный блок из файла /etc/network/interface
|
||||
|
||||
```
|
||||
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
|
||||
```
|
||||
|
||||
#### Модифицированный блок из файла /etc/majestic.yaml
|
||||
|
||||
```
|
||||
nightMode:
|
||||
enabled: true
|
||||
irSensorPin: 62
|
||||
irSensorPinInvert: true
|
||||
irCutPin1: 2
|
||||
pinSwitchDelayUs: 150
|
||||
backlightPin: 56
|
||||
nightAPI: true
|
||||
```
|
|
@ -0,0 +1,26 @@
|
|||
# OpenIPC Wiki
|
||||
[Оглавление](index.md)
|
||||
|
||||
Ростелекомовская камера с NAND
|
||||
------------------------------
|
||||
|
||||
```
|
||||
setenv bootargs 'mem=${osmem:-32M} console=ttyAMA0,115200 panic=20 root=/dev/mtdblock3 rootfstype=squashfs init=/init mtdparts=hinand:512k(boot),512k(env),2048k(kernel),5120k(rootfs),-(rootfs_data)'
|
||||
setenv bootcmd 'setenv setargs setenv bootargs ${bootargs}; run setargs; nand read 0x42000000 0x100000 0x300000; bootm 0x42000000'
|
||||
|
||||
setenv uk 'mw.b 0x42000000 ff 1000000; tftp 0x42000000 uImage.${soc} && nand erase 0x100000 0x200000; nand write 0x42000000 0x100000 ${filesize}'
|
||||
setenv ur 'mw.b 0x42000000 ff 1000000; tftp 0x42000000 rootfs.squashfs.${soc} && nand erase 0x300000 0x500000; nand write 0x42000000 0x300000 ${filesize}'
|
||||
|
||||
setenv soc hi3516ev300
|
||||
setenv osmem 32M
|
||||
setenv totalmem 128M
|
||||
setenv ipaddr 192.168.1.10
|
||||
setenv serverip 192.168.1.107
|
||||
saveenv
|
||||
|
||||
nand erase 0x800000 0x7800000
|
||||
|
||||
run uk
|
||||
run ur
|
||||
reset
|
||||
```
|
132
ru/index.md
132
ru/index.md
|
@ -1,133 +1,23 @@
|
|||
![OpenIPC logo][logo]
|
||||
# OpenIPC Wiki
|
||||
|
||||
## Прошивка OpenIPC -- что это?
|
||||
Оглавление
|
||||
----------
|
||||
|
||||
Прошивка OpenIPC (OpenIPC firmware) -- это коллективный труд многих
|
||||
программистов с целью создания отрытого стека для работы на IP камерах.
|
||||
- [О проекте](about.md)
|
||||
- [Установка. Шаг за шагом.](installation.md)
|
||||
- [Темы для дискуссий разработчиков](discussion.md)
|
||||
- [Программный переход с openipc-1.0 (OpenWrt) на openipc-2.x (Buildroot)](upgrade-from-1.md)
|
||||
- [Вопросы и ответы](faq.md)
|
||||
|
||||
### Камеры
|
||||
|
||||
## Хочу попробовать. Что для этого требуется?
|
||||
|
||||
### IP камера.
|
||||
|
||||
Естественно, вам понадобится IP камера. Если вы еще не приобрели камеру,
|
||||
изучите, на какие именно параметры необходимо обратить внимание перед
|
||||
покупкой. Если у вас есть сомнения в правильности выбора, попросите помощи у
|
||||
разработчиков в Telegram-канале.
|
||||
|
||||
Убедитесь, что ваша IP камера снабжена процессором, поддерживаемым прошивкой
|
||||
OpenIPC. [Список таких процессоров][socs] пока ограничен, но быстро расширяется.
|
||||
|
||||
Самым надежным способом определения типа процессора является частичный разброр
|
||||
корпуса. Для большинства камер это довольно простая и безболезненная операция:
|
||||
пара винтов здесь, пара защелок там, и вы получаете доступ к электронике.
|
||||
|
||||
Процессор IP камеры (System on a chip, или SoC) -- это, как правило, крупный чип
|
||||
на обратной стороне от объектива. Лазерная гравировка на поверхности чипа
|
||||
подскажет вам, с каким именно процессором вы имеете дело.
|
||||
|
||||
Сделайте фотографии всех плат, компонентов, маркировок и наклеек. Они еще не
|
||||
раз понадобятся вам для идентификации устройств без последующего разбора камеры.
|
||||
|
||||
Аккуратно снимите объектив (он держится на двух винтах) и сделайте фото матрицы.
|
||||
Одни и те же процессоры могут комплектоваться разными типами матриц, каждая из
|
||||
них требует собственного кофигурационного файла.
|
||||
|
||||
Сделайте фотографии разъемов, чтобы не перепутать подключения, если вам
|
||||
понадобится их разъединить, например для удобного доступа к матрице. _Маленькая
|
||||
хитрость: сделайте маркировку на обеих частях разъема цветным фломастером для
|
||||
пластика, так вы точно будете знать, какой штекер от какого разъема._
|
||||
|
||||

|
||||
|
||||
### Знание Linux.
|
||||
|
||||
Необходимым условием для установки на вашу IP камеру прошивки OpenIPC является
|
||||
ваше умение работать в среде Linux. Прошивка OpenIPC построена на базе Linux.
|
||||
И хотя мы стремимся сделать нашу прошивку максимально простой и понятной обычному
|
||||
пользователю, проект находится в ранней стадии разработки. А это значит, что
|
||||
каждый день мы вносим изменения в код, и некоторые из них требуют ручного
|
||||
вмешательства на уровне системы.
|
||||
|
||||
### Паяльник и умение с ним работать.
|
||||
|
||||
Самый простой способ получения доступа к загрузчику и операционной системе
|
||||
камеры -- подключение к её порту UART. Это довольно простая процедура,
|
||||
требующая недорогого [адаптера][g-usbttl] для серийного подключения с порта USB вашего
|
||||
компьютера.
|
||||
|
||||
Большинство камер идут с нераспаянным, а зачастую и немаркированным портом
|
||||
UART. Как правило, это группа из трех, реже четырех контактных площадок,
|
||||
расположенных на самом краю платы.
|
||||
|
||||

|
||||
|
||||
Вам нужно будет самостоятельно определить порт на плате, выяснить его
|
||||
распиновку, и либо распаять на него коннектор, либо припаять провода напрямую
|
||||
к контактам порта. Так же можно использовать прищепку с пружинными щупами для
|
||||
подключения адаптера к камере. В любом случае, соединение должно быть надежным,
|
||||
иначе пропадание контакта во время записи/чтения может обернуться искажением
|
||||
передаваемых данных, что в свою очередь может обернуться порчей содержимого
|
||||
флэш-памяти и вывести камеру из строя. И тогда вам потребуется программатор
|
||||
микросхем и паяльная станция. Паяльная станция также может пригодиться вам для
|
||||
замены некоторых компонентов с целью достижения лучшей совместимостью камеры
|
||||
с нашей прошивкой: например для замены модуля WiFi или микросхемы флэш-памяти.
|
||||
|
||||
### TFTP сервер.
|
||||
|
||||
Мы советуем вам настроить в своей сети сервер TFTP. Его удобно использовать для
|
||||
загрузки в камеру файлов новой прошивки, для сохранения дампа оригинальной,
|
||||
поставляемой вместе с камерой, прошивки, а так же для хранения самописанных
|
||||
часто используемых скриптов -- таким образом вы сможете быстро восстановить
|
||||
привычную рабочую среду после очередной перепрошивки с очисткой системы.
|
||||
|
||||
**Обязательно сохраните оригинальную прошивку!** Она позволит вам вернуть
|
||||
камеру в исходное состояние, если вас что-то не устроит в прошивке OpenIPC.
|
||||
Вы так же сможете использовать её для сравнительных тестов, если решите принять
|
||||
участие в разработке нашей прошивки.
|
||||
|
||||
### Любопытство, кураж и терпение.
|
||||
|
||||
Следует понимать, что на нынешней стадии разработки прошивка OpenIPC -- это ещё
|
||||
не готовый продукт, а R&D, НИОКР. Как правило, производители камер не раскрывают
|
||||
свои секреты, не дают пароли для доступа к штатным прошивкам, даже не делятся
|
||||
документацией со сторонними разработчиками. Поэтому мы экспериментируем, пробуем
|
||||
разные подходы, изучаем и анализируем накопленные знания. Это даёт свои плоды,
|
||||
но так же иногда приводит к сбоям. Если что-то хорошо и стабильно работает
|
||||
сегодня вечером, то оно может быть сломано завтра утром, и снова починено к
|
||||
следующему вечеру.
|
||||
|
||||
Устанавливая прошивку OpenIPC сегодня, вы должны отдавать себе отчет, что это
|
||||
путь к прекрасному открытому будущему, но мы не обещаем, что именно сейчас
|
||||
дорога будет легкой.
|
||||
|
||||
OpenIPC -- это увлекательный эксперимент, в котором вы можете принять участие.
|
||||
Помогайте нам, и однажды OpenIPC станет самой стабильной, гибкой и открытой
|
||||
прошивкой для всех IP камер.
|
||||
|
||||
- [Switcam HS-303](hardware-hs303.md)
|
||||
- [Ростелекомовская камера с NAND](hardware-rtk-nand.md)
|
||||
|
||||
## Что можно прочитать про прошивку OpenIPC?
|
||||
|
||||
* [Часто задаваемые вопросы и ответы на них][faq1]
|
||||
* [Заметки от Игоря Залатова][faq2]
|
||||
* [Заметки от Олега Левшина][faq3]
|
||||
|
||||
## Перенос блоков из старой Вики
|
||||
|
||||
* [Темы для дискуссий разработчиков](transfer-discussion-ru)
|
||||
* [Специализированные настройки для устройств Switcam HS303(v2) на OpenIPC v2.2](transfer-special-hs303v2)
|
||||
* [Заметки по OpenIPC v1.0 (переписать и расформировать)](transfer-device-hs303)
|
||||
|
||||
## Установка прошивки OpenIPC.
|
||||
|
||||
Итак, если вы всё ещё хотите попробовать прошивку OpenIPC на своей камере,
|
||||
вам поможет [пошаговая инструкция](/wiki/ru/installation).
|
||||
|
||||
|
||||
[logo]: ../images/logo_openipc.png
|
||||
[socs]: https://github.com/OpenIPC/firmware/wiki/supported_devices
|
||||
[faq1]: https://github.com/OpenIPC/camerasrnd/blob/master/docs/FAQ-ru.md
|
||||
[faq2]: https://github.com/OpenIPC/wiki/blob/master/ru/discussion.md
|
||||
[faq3]: https://alarmsystem-cctv.ru/openipc-%D0%BE%D1%82%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D0%B9-%D0%BA%D0%BE%D0%BB%D0%BB%D0%B5%D0%BA%D1%82%D0%B8%D0%B2/
|
||||
[g-usbttl]: https://google.com/search?q=ftdi+usb+ttl
|
||||
[g-3.3ttl]: https://google.com/search?q=logic+level+converter+3.3v+5v
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
![OpenIPC logo][logo]
|
||||
# OpenIPC Wiki
|
||||
[Оглавление](index.md)
|
||||
|
||||
Установка OpenIPC. Шаг за шагом.
|
||||
================================
|
||||
--------------------------------
|
||||
|
||||
### Шаг 1. Определите тип процессора.
|
||||
|
||||
|
|
|
@ -1,26 +0,0 @@
|
|||
Switcam HS-303
|
||||
==============
|
||||
|
||||
Публичные заметки по прошивке устройств Switcam HS303 (всех версий) в
|
||||
[OpenIPC](https://openipc.org) v1.0 (на базе OpenWrt).
|
||||
|
||||
Обсуждение проекта и возможностей прошивок (на русском языке) в группе
|
||||
[Telegram](https://t.me/openipc_modding).
|
||||
|
||||
Наиболее актуальные вопросы и ответы
|
||||
------------------------------------
|
||||
|
||||
#### Какие типы устройств поддерживаются в проекте OpenIPC v1.0?
|
||||
|
||||
На данный момент полноценно поддерживается Switcam HS-303 (v1).
|
||||
В будущем планируется поддержка устройств v2 и v3.
|
||||
|
||||
#### Где можно взять прошивку для устройства Ростелеком Switcam HS303 (v1)?
|
||||
|
||||
Обсуждение работы этих камер доступно по специальной подписке на
|
||||
[OpenIPC paywall](https://paywall.pw/openipc).
|
||||
|
||||
#### Какой путь до SD карты необходимо указывать в `majestic.yaml` для прошивки
|
||||
openipc-1.0?
|
||||
|
||||
`/mnt/mmc/%Y/%m/%d/%H.mp4`
|
|
@ -1,43 +0,0 @@
|
|||
## Темы для дискуссий
|
||||
|
||||
### План
|
||||
|
||||
* Процессор и имя профиля указываются автоматически при сборке в файле
|
||||
* `/etc/hostname` и доступны постоянно через `/rom/..`
|
||||
* У плат `..._${platform}_unknown_defconfig` hostname не прописан.
|
||||
* `..._gk7205v200_fpv_defconfig` имеет отличный hostname (@p0isk)
|
||||
* Добавить ключи в `sysupgrade` для обновления web-ui и majestic.
|
||||
|
||||
### Безопасность
|
||||
|
||||
* При первых входах в Web UI предлагать (настойчиво) пользователю сменить пароль,
|
||||
дабы не нарваться на CVE.
|
||||
* готово (@p0isk, @themactep).
|
||||
* При первых входах по SSH предлагать (настойчиво) пользователю сменить пароль,
|
||||
дабы не нарваться на CVE.
|
||||
* Реализовать интеграцию авторизации httpd на использование стандартных
|
||||
passwd/shadow из /etc.
|
||||
|
||||
### Унификация ядра
|
||||
|
||||
* Включить опции ROOT_NFS и PNP_DHCP во всех ядрах.
|
||||
|
||||
### Обновление системы
|
||||
|
||||
#### Ядро:
|
||||
|
||||
* Добавить через mkimage имя процессора, например `Linux-4.9.37-hi3516ev200`
|
||||
* Готово (@p0isk).
|
||||
* По нему проверять и дате проверять пригодность для обновления.
|
||||
* Готово (@p0isk).
|
||||
|
||||
### Обновление majestic
|
||||
|
||||
* Обновляются и проверяются только бинарник и укороченный конфиг.
|
||||
* Есть кнопка "Восстановить настройки", нужна ли "Восстановить стример"?
|
||||
* Помимо ETag можно использовать Last-Modified.
|
||||
|
||||
#### Ветка разработки
|
||||
|
||||
* Отображать поле для номера коммита. Если пусто, то берём последний.
|
||||
* Неактуально? (@p0isk).
|
|
@ -1,34 +0,0 @@
|
|||
Специализированные настройки для Switcam HS303(v2)
|
||||
--------------------------------------------------
|
||||
|
||||
Обсуждение работы этих камер доступно по специальной подписке на
|
||||
[OpenIPC paywall](https://paywall.pw/openipc).
|
||||
|
||||
### Модифицированный блок из файла /etc/network/interface
|
||||
|
||||
```
|
||||
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
|
||||
```
|
||||
|
||||
### Модифицированный блок из файла /etc/majestic.yaml
|
||||
|
||||
```
|
||||
nightMode:
|
||||
enabled: true
|
||||
irSensorPin: 62
|
||||
irSensorPinInvert: true
|
||||
irCutPin1: 2
|
||||
pinSwitchDelayUs: 150
|
||||
backlightPin: 56
|
||||
nightAPI: true
|
||||
```
|
|
@ -0,0 +1,51 @@
|
|||
# OpenIPC Wiki
|
||||
[Оглавление](index.md)
|
||||
|
||||
Программный переход с openipc-1.0 (OpenWrt) на openipc-2.x (Buildroot) 👻
|
||||
-------------------------------------------------------------------------
|
||||
|
||||
Заходим на устройство со старым openipc-1.0 и останавливаем любыми способами
|
||||
максимум сервисов кроме dropbear. Те сервисы которые "оживают" повторно
|
||||
останавливаем по примеру snmp.
|
||||
|
||||
```
|
||||
/etc/init.d/snmpd stop; /etc/init.d/snmpd disable
|
||||
```
|
||||
|
||||
Меняем при помощи команды `fw_setenv` переменную `bootargs`, добавляя туда в
|
||||
свою очередь переменную `init=/init`. Для моей платы строка выглядит вот так,
|
||||
но у вас она может быть другой:
|
||||
|
||||
```
|
||||
fw_setenv bootargs 'console=ttyAMA 0,115200 root=/dev/mtdblock3 init=/init rootfstype=squashfs,jffs2 panic=20 mtdparts=hi_sfc:256k(boot),64k(env),2048k(kernel),5120k(rootfs),-(rootfs_data)'
|
||||
```
|
||||
|
||||
Добавляем новую переменную soc при помощи команды `fw_setenv` указав свой
|
||||
процессор:
|
||||
|
||||
```
|
||||
fw_setenv soc hi3516ev100
|
||||
```
|
||||
|
||||
Прошиваем командой `flashcp` файловую систему, которую предварительно скачали
|
||||
с GitHub аккаунта OpenIPC. В моём случае это раздел `/dev/mtd3`, но могут быть
|
||||
отличия на каких-то старых железках:
|
||||
|
||||
```
|
||||
flashcp -v rootfs.squashfs.hi3516ev100 /dev/mtd3
|
||||
```
|
||||
|
||||
Делаем жесткий ребут плате:
|
||||
|
||||
```
|
||||
reboot -f
|
||||
```
|
||||
|
||||
Загружается **недо**-openipc-2.x с получением адреса по DHCP. После этого
|
||||
выполняем команду для глобального и красивого обновления:
|
||||
|
||||
```
|
||||
sysupgrade -k -r -n
|
||||
```
|
||||
|
||||
Профит!
|
|
@ -1,7 +1,10 @@
|
|||
# OpenIPC Wiki
|
||||
[Оглавление](index.md)
|
||||
|
||||
Прошивка gk7205v300 + IMX335 + XM_XT25F128B
|
||||
-------------------------------------------
|
||||
|
||||
Бутлодер на пароле, flash залочена.
|
||||
Бутлоадер на пароле, flash залочена.
|
||||
|
||||
1. Скачайте и установите у себя [tftpd сервер](https://github.com/peacepenguin/tftpd64/releases).
|
||||
2. Скачайте и распакуйте в отдельную папку [прошивку](https://github.com/OpenIPC/firmware/releases/download/latest/openipc.gk7205v300-br.tgz), в настройках tftpd укажите путь к папке с прошивкой.
|
||||
|
@ -10,7 +13,7 @@
|
|||
5. Подключите камеру и компьютер через Ethernet к одному роутеру, чтобы компьютер и камера были в одной подсети.
|
||||
6. Подключите к компьютеру USB-TTL 3.3V адаптер, рекомендуется FTDI232. Он встанет на какой-то COM-порт, посмотреть номер COM порта в Диспетчере задач.
|
||||
7. Подключите RX/TX/GND на камере к TX/RX/GND на USB-TTL 3.3V адаптере.
|
||||
8. Скачайте и установите Putty. Выставить рцежим COM порта на скорость 115200. Зайти на камеру через Putty, по COM порту. Убедится, что провода подключены правильно, видно лог камеры и вводятся символы с клавиатуры.
|
||||
8. Скачайте и установите Putty. Выставить режим COM порта на скорость 115200. Зайти на камеру через Putty, по COM порту. Убедится, что провода подключены правильно, видно лог камеры и вводятся символы с клавиатуры.
|
||||
|
||||
__ОБЯЗАТЕЛЬНО СОХРАНИТЕ МАС адрес камеры! В процессе прошивки он сотрётся!__
|
||||
|
||||
|
@ -48,11 +51,11 @@ setenv osmem 32M
|
|||
setenv totalmem 128M
|
||||
saveenv
|
||||
|
||||
setenv gatewayip 192.168.1.1 // вводите ip адрес вашего шлюза/роутера
|
||||
setenv ipaddr 192.168.1.14 // ip адрес камеры
|
||||
setenv gatewayip 192.168.1.1 // IP адрес вашего шлюза/роутера
|
||||
setenv ipaddr 192.168.1.14 // IP адрес камеры
|
||||
setenv netmask 255.255.255.0 // маска подсети
|
||||
setenv serverip 192.168.1.15 // ip адрес компьютера на котором вы работаете и запущен TFTPD сервер
|
||||
setenv ethaddr 05:68:31:be:da:38 // MAC вашей ip камеры обязательно
|
||||
setenv serverip 192.168.1.15 // IP адрес компьютера на котором запущен TFTP сервер
|
||||
setenv ethaddr 05:68:31:be:da:38 // MAC адрес IP камеры (обязательно!)
|
||||
saveenv
|
||||
|
||||
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)'
|
||||
|
|
Loading…
Reference in New Issue