From 60408e3ece6af665a14160f7d31e931873d97139 Mon Sep 17 00:00:00 2001 From: Paul Philippov Date: Fri, 14 Jan 2022 02:47:25 -0500 Subject: [PATCH] remove transfer- prefix. --- README.md | 38 ++++- en/{transfer-acmev2.md => acme-v2.md} | 3 + ...ev-ffmpeg-usage.md => dev-ffmpeg-usage.md} | 3 + ...ansfer-dev-nfs-boot.md => dev-nfs-boot.md} | 3 + en/dev-tricks.md | 111 +++++++++++++++ en/{transfer-developers.md => developers.md} | 5 +- ...example-ipctool.md => example-ipctool.md} | 3 + ...sfer-gpio-settings.md => gpio-settings.md} | 3 + en/guide-supported-devices.md | 5 +- ...lity-tuning.md => image-quality-tuning.md} | 3 + en/index.md | 92 ++++++------ ...ansfer-install-goke.md => install-goke.md} | 3 + ...ansfer-install-hisi.md => install-hisi.md} | 3 + ...-install-novatek.md => install-novatek.md} | 3 + ...er-install-ssc335.md => install-ssc335.md} | 3 + ...sfer-install-xm510.md => install-xm510.md} | 3 + ...sfer-install-xm530.md => install-xm530.md} | 3 + en/integration-kernel.md | 21 +++ ...estic-streamer.md => majestic-streamer.md} | 5 +- ...sfer-memory-tuning.md => memory-tuning.md} | 3 + en/menu-footer.md | 2 + en/{transfer-menu-index.md => menu-index.md} | 3 + ...transfer-microbe-web.md => microbe-web.md} | 3 + ...or-resorting.md => notes-for-resorting.md} | 3 + en/{transfer-old-manual.md => old-manual.md} | 3 + ...er-show-changelog.md => show-changelog.md} | 8 +- ...transfer-source-code.md => source-code.md} | 3 + ...-system-features.md => system-features.md} | 3 + en/{transfer-sysupgrade.md => sysupgrade.md} | 3 + en/{transfer-todo-all.md => todo-all.md} | 3 + en/transfer-dev-tricks.md | 7 - en/transfer-integration-kernel.md | 17 --- en/transfer-menu-footer.md | 1 - en/{transfer-wifi-xm530.md => wifi-xm530.md} | 3 + ...tube-streaming.md => youtube-streaming.md} | 17 +-- index.md | 39 ------ ru/about.md | 120 ++++++++++++++++ ru/discussion.md | 123 ++++++---------- ru/faq.md | 11 ++ ru/hardware-hs303.md | 62 ++++++++ ru/hardware-rtk-nand.md | 26 ++++ ru/index.md | 132 ++---------------- ru/installation.md | 5 +- ru/transfer-device-hs303.md | 26 ---- ru/transfer-discussion-ru.md | 43 ------ ru/transfer-special-hs303v2.md | 34 ----- ru/upgrade-from-1.md | 51 +++++++ ru/user-notes-melcor.md | 15 +- 48 files changed, 639 insertions(+), 443 deletions(-) rename en/{transfer-acmev2.md => acme-v2.md} (94%) rename en/{transfer-dev-ffmpeg-usage.md => dev-ffmpeg-usage.md} (96%) rename en/{transfer-dev-nfs-boot.md => dev-nfs-boot.md} (90%) create mode 100644 en/dev-tricks.md rename en/{transfer-developers.md => developers.md} (88%) rename en/{transfer-example-ipctool.md => example-ipctool.md} (95%) rename en/{transfer-gpio-settings.md => gpio-settings.md} (98%) rename en/{transfer-image-quality-tuning.md => image-quality-tuning.md} (96%) rename en/{transfer-install-goke.md => install-goke.md} (97%) rename en/{transfer-install-hisi.md => install-hisi.md} (97%) rename en/{transfer-install-novatek.md => install-novatek.md} (93%) rename en/{transfer-install-ssc335.md => install-ssc335.md} (98%) rename en/{transfer-install-xm510.md => install-xm510.md} (97%) rename en/{transfer-install-xm530.md => install-xm530.md} (97%) create mode 100644 en/integration-kernel.md rename en/{transfer-majestic-streamer.md => majestic-streamer.md} (98%) rename en/{transfer-memory-tuning.md => memory-tuning.md} (98%) create mode 100644 en/menu-footer.md rename en/{transfer-menu-index.md => menu-index.md} (99%) rename en/{transfer-microbe-web.md => microbe-web.md} (64%) rename en/{transfer-notes-for-resorting.md => notes-for-resorting.md} (99%) rename en/{transfer-old-manual.md => old-manual.md} (99%) rename en/{transfer-show-changelog.md => show-changelog.md} (67%) rename en/{transfer-source-code.md => source-code.md} (98%) rename en/{transfer-system-features.md => system-features.md} (90%) rename en/{transfer-sysupgrade.md => sysupgrade.md} (93%) rename en/{transfer-todo-all.md => todo-all.md} (96%) delete mode 100644 en/transfer-dev-tricks.md delete mode 100644 en/transfer-integration-kernel.md delete mode 100644 en/transfer-menu-footer.md rename en/{transfer-wifi-xm530.md => wifi-xm530.md} (95%) rename en/{transfer-youtube-streaming.md => youtube-streaming.md} (95%) delete mode 100644 index.md create mode 100644 ru/about.md create mode 100644 ru/faq.md create mode 100644 ru/hardware-hs303.md create mode 100644 ru/hardware-rtk-nand.md delete mode 100644 ru/transfer-device-hs303.md delete mode 100644 ru/transfer-discussion-ru.md delete mode 100644 ru/transfer-special-hs303v2.md create mode 100644 ru/upgrade-from-1.md diff --git a/README.md b/README.md index 044332d..ac0ec1d 100644 --- a/README.md +++ b/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. + +![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 diff --git a/en/transfer-acmev2.md b/en/acme-v2.md similarity index 94% rename from en/transfer-acmev2.md rename to en/acme-v2.md index dad6f89..5cc1eb5 100644 --- a/en/transfer-acmev2.md +++ b/en/acme-v2.md @@ -1,3 +1,6 @@ +# OpenIPC Wiki +[Table of Content](index.md) + How to install HTTPS certificates on your camera ------------------------------------------------ diff --git a/en/transfer-dev-ffmpeg-usage.md b/en/dev-ffmpeg-usage.md similarity index 96% rename from en/transfer-dev-ffmpeg-usage.md rename to en/dev-ffmpeg-usage.md index 7a5cc91..62ba468 100644 --- a/en/transfer-dev-ffmpeg-usage.md +++ b/en/dev-ffmpeg-usage.md @@ -1,3 +1,6 @@ +# OpenIPC Wiki +[Table of Content](index.md) + FFMPEG, RTSP and SRT examples ----------------------------- diff --git a/en/transfer-dev-nfs-boot.md b/en/dev-nfs-boot.md similarity index 90% rename from en/transfer-dev-nfs-boot.md rename to en/dev-nfs-boot.md index b83ae04..3868b7b 100644 --- a/en/transfer-dev-nfs-boot.md +++ b/en/dev-nfs-boot.md @@ -1,3 +1,6 @@ +# OpenIPC Wiki +[Table of Content](index.md) + Boot device with NFS -------------------- diff --git a/en/dev-tricks.md b/en/dev-tricks.md new file mode 100644 index 0000000..b278f22 --- /dev/null +++ b/en/dev-tricks.md @@ -0,0 +1,111 @@ +# OpenIPC Wiki +[Table of Content](index.md) + +Interesting tricks +------------------ + +### Sharing output of a command via web +``` + | 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 +--- + 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)_ diff --git a/en/transfer-developers.md b/en/developers.md similarity index 88% rename from en/transfer-developers.md rename to en/developers.md index f46d6df..276bc7b 100644 --- a/en/transfer-developers.md +++ b/en/developers.md @@ -1,5 +1,8 @@ +# OpenIPC Wiki +[Table of Content](index.md) + OpenIPC Developers -================== +------------------ [![Ido's github stats](https://github-readme-stats.vercel.app/api?username=widgetii)](https://github.com/widgetii) diff --git a/en/transfer-example-ipctool.md b/en/example-ipctool.md similarity index 95% rename from en/transfer-example-ipctool.md rename to en/example-ipctool.md index 8b1cd53..31755fe 100644 --- a/en/transfer-example-ipctool.md +++ b/en/example-ipctool.md @@ -1,3 +1,6 @@ +# OpenIPC Wiki +[Table of Content](index.md) + Run ipctool ----------- diff --git a/en/transfer-gpio-settings.md b/en/gpio-settings.md similarity index 98% rename from en/transfer-gpio-settings.md rename to en/gpio-settings.md index 467aea8..0303542 100644 --- a/en/transfer-gpio-settings.md +++ b/en/gpio-settings.md @@ -1,3 +1,6 @@ +# OpenIPC Wiki +[Table of Content](index.md) + GPIO Settings ------------- diff --git a/en/guide-supported-devices.md b/en/guide-supported-devices.md index 31cf173..c7e2a57 100644 --- a/en/guide-supported-devices.md +++ b/en/guide-supported-devices.md @@ -1,7 +1,8 @@ -![OpenIPC logo](https://cdn.themactep.com/images/logo_openipc.png "OpenIPC logo") +# 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 diff --git a/en/transfer-image-quality-tuning.md b/en/image-quality-tuning.md similarity index 96% rename from en/transfer-image-quality-tuning.md rename to en/image-quality-tuning.md index bf4192f..703ab74 100644 --- a/en/transfer-image-quality-tuning.md +++ b/en/image-quality-tuning.md @@ -1,3 +1,6 @@ +# OpenIPC Wiki +[Table of Content](index.md) + Overview -------- diff --git a/en/index.md b/en/index.md index 07f9df9..c91e2db 100644 --- a/en/index.md +++ b/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 -* -* +- +- [logo]: ../images/logo_openipc.png diff --git a/en/transfer-install-goke.md b/en/install-goke.md similarity index 97% rename from en/transfer-install-goke.md rename to en/install-goke.md index e68c867..fcb3e11 100644 --- a/en/transfer-install-goke.md +++ b/en/install-goke.md @@ -1,3 +1,6 @@ +# OpenIPC Wiki +[Table of Content](index.md) + For XM boards with SoC GK7202V300, GK7205V200, GK7205V300 ONLY!!! ----------------------------------------------------------------- diff --git a/en/transfer-install-hisi.md b/en/install-hisi.md similarity index 97% rename from en/transfer-install-hisi.md rename to en/install-hisi.md index 97a88e1..9d6d472 100644 --- a/en/transfer-install-hisi.md +++ b/en/install-hisi.md @@ -1,3 +1,6 @@ +# OpenIPC Wiki +[Table of Content](index.md) + For XM boards with Hi35{16Ev200,16Ev300,18Ev300} SoC ONLY!!! ------------------------------------------------------------ diff --git a/en/transfer-install-novatek.md b/en/install-novatek.md similarity index 93% rename from en/transfer-install-novatek.md rename to en/install-novatek.md index 276218c..44162a8 100644 --- a/en/transfer-install-novatek.md +++ b/en/install-novatek.md @@ -1,3 +1,6 @@ +# OpenIPC Wiki +[Table of Content](index.md) + For XM vendor boards with NT98562 and NT98566 SoC ONLY!!! --------------------------------------------------------- diff --git a/en/transfer-install-ssc335.md b/en/install-ssc335.md similarity index 98% rename from en/transfer-install-ssc335.md rename to en/install-ssc335.md index 3cf9ece..6eee556 100644 --- a/en/transfer-install-ssc335.md +++ b/en/install-ssc335.md @@ -1,3 +1,6 @@ +# OpenIPC Wiki +[Table of Content](index.md) + For Anjoy/Brovotech/Gospell/Uniview boards with SSC335 Soc ONLY!!! ------------------------------------------------------------------ diff --git a/en/transfer-install-xm510.md b/en/install-xm510.md similarity index 97% rename from en/transfer-install-xm510.md rename to en/install-xm510.md index e2f8550..c39897f 100644 --- a/en/transfer-install-xm510.md +++ b/en/install-xm510.md @@ -1,3 +1,6 @@ +# OpenIPC Wiki +[Table of Content](index.md) + For XM vendor boards with XM510 SoC ONLY!!! ------------------------------------------- diff --git a/en/transfer-install-xm530.md b/en/install-xm530.md similarity index 97% rename from en/transfer-install-xm530.md rename to en/install-xm530.md index 6c101c5..9e4b48b 100644 --- a/en/transfer-install-xm530.md +++ b/en/install-xm530.md @@ -1,3 +1,6 @@ +# OpenIPC Wiki +[Table of Content](index.md) + For XM vendor boards with XM530/XM550 SoC ONLY !!! -------------------------------------------------- diff --git a/en/integration-kernel.md b/en/integration-kernel.md new file mode 100644 index 0000000..14670a1 --- /dev/null +++ b/en/integration-kernel.md @@ -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 +``` diff --git a/en/transfer-majestic-streamer.md b/en/majestic-streamer.md similarity index 98% rename from en/transfer-majestic-streamer.md rename to en/majestic-streamer.md index 4118400..9f70849 100644 --- a/en/transfer-majestic-streamer.md +++ b/en/majestic-streamer.md @@ -1,4 +1,7 @@ -Majestic streamer +# OpenIPC Wiki +[Table of Content](index.md) + +Majestic Streamer ----------------- ### Preamble diff --git a/en/transfer-memory-tuning.md b/en/memory-tuning.md similarity index 98% rename from en/transfer-memory-tuning.md rename to en/memory-tuning.md index e73acdd..1680baa 100644 --- a/en/transfer-memory-tuning.md +++ b/en/memory-tuning.md @@ -1,3 +1,6 @@ +# OpenIPC Wiki +[Table of Content](index.md) + HiSilicon boards ---------------- diff --git a/en/menu-footer.md b/en/menu-footer.md new file mode 100644 index 0000000..9309918 --- /dev/null +++ b/en/menu-footer.md @@ -0,0 +1,2 @@ +# OpenIPC Wiki +[Table of Content](index.md) diff --git a/en/transfer-menu-index.md b/en/menu-index.md similarity index 99% rename from en/transfer-menu-index.md rename to en/menu-index.md index 062ba28..520d95d 100644 --- a/en/transfer-menu-index.md +++ b/en/menu-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 diff --git a/en/transfer-microbe-web.md b/en/microbe-web.md similarity index 64% rename from en/transfer-microbe-web.md rename to en/microbe-web.md index 4a46c2e..d1cf813 100644 --- a/en/transfer-microbe-web.md +++ b/en/microbe-web.md @@ -1,3 +1,6 @@ +# OpenIPC Wiki +[Table of Content](index.md) + Microbe web interface --------------------- diff --git a/en/transfer-notes-for-resorting.md b/en/notes-for-resorting.md similarity index 99% rename from en/transfer-notes-for-resorting.md rename to en/notes-for-resorting.md index c79d8bf..e7e6d03 100644 --- a/en/transfer-notes-for-resorting.md +++ b/en/notes-for-resorting.md @@ -1,3 +1,6 @@ +# OpenIPC Wiki +[Table of Content](index.md) + Installation: how to make OpenIPC running on certain hardware ------------------------------------------------------------- diff --git a/en/transfer-old-manual.md b/en/old-manual.md similarity index 99% rename from en/transfer-old-manual.md rename to en/old-manual.md index f9970e3..3220a4f 100644 --- a/en/transfer-old-manual.md +++ b/en/old-manual.md @@ -1,3 +1,6 @@ +# OpenIPC Wiki +[Table of Content](index.md) + Introduction ------------ diff --git a/en/transfer-show-changelog.md b/en/show-changelog.md similarity index 67% rename from en/transfer-show-changelog.md rename to en/show-changelog.md index 26cbf7a..6bbbaa4 100644 --- a/en/transfer-show-changelog.md +++ b/en/show-changelog.md @@ -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) \ No newline at end of file +* [wiki](https://github.com/OpenIPC/firmware/wiki/_history) diff --git a/en/transfer-source-code.md b/en/source-code.md similarity index 98% rename from en/transfer-source-code.md rename to en/source-code.md index f21401e..6624723 100644 --- a/en/transfer-source-code.md +++ b/en/source-code.md @@ -1,3 +1,6 @@ +# OpenIPC Wiki +[Table of Content](index.md) + Source code ----------- diff --git a/en/transfer-system-features.md b/en/system-features.md similarity index 90% rename from en/transfer-system-features.md rename to en/system-features.md index 9a200bf..929f85c 100644 --- a/en/transfer-system-features.md +++ b/en/system-features.md @@ -1,3 +1,6 @@ +# OpenIPC Wiki +[Table of Content](index.md) + System features --------------- diff --git a/en/transfer-sysupgrade.md b/en/sysupgrade.md similarity index 93% rename from en/transfer-sysupgrade.md rename to en/sysupgrade.md index b56a610..5b86305 100644 --- a/en/transfer-sysupgrade.md +++ b/en/sysupgrade.md @@ -1,3 +1,6 @@ +# OpenIPC Wiki +[Table of Content](index.md) + Upgrading firmware ------------------ diff --git a/en/transfer-todo-all.md b/en/todo-all.md similarity index 96% rename from en/transfer-todo-all.md rename to en/todo-all.md index 9c7cf69..6b2894b 100644 --- a/en/transfer-todo-all.md +++ b/en/todo-all.md @@ -1,3 +1,6 @@ +# OpenIPC Wiki +[Table of Content](index.md) + ToDo ---- diff --git a/en/transfer-dev-tricks.md b/en/transfer-dev-tricks.md deleted file mode 100644 index d66ab3b..0000000 --- a/en/transfer-dev-tricks.md +++ /dev/null @@ -1,7 +0,0 @@ -Interesting tricks ------------------- - -### Sharing output of a command via web -``` - | nc seashells.io 1337 -``` diff --git a/en/transfer-integration-kernel.md b/en/transfer-integration-kernel.md deleted file mode 100644 index 1835f75..0000000 --- a/en/transfer-integration-kernel.md +++ /dev/null @@ -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 -``` \ No newline at end of file diff --git a/en/transfer-menu-footer.md b/en/transfer-menu-footer.md deleted file mode 100644 index 00b322b..0000000 --- a/en/transfer-menu-footer.md +++ /dev/null @@ -1 +0,0 @@ -Our resources: [OpenIPC](https://openipc.org) | [OpenCollective](https://opencollective.com/openipc) | [Twitter](https://twitter.com/OpenIPC) | [Telegram](https://t.me/openipc) \ No newline at end of file diff --git a/en/transfer-wifi-xm530.md b/en/wifi-xm530.md similarity index 95% rename from en/transfer-wifi-xm530.md rename to en/wifi-xm530.md index fbda640..02fe6cb 100644 --- a/en/transfer-wifi-xm530.md +++ b/en/wifi-xm530.md @@ -1,3 +1,6 @@ +# OpenIPC Wiki +[Table of Content](index.md) + WiFi for XM530 based devices ---------------------------- diff --git a/en/transfer-youtube-streaming.md b/en/youtube-streaming.md similarity index 95% rename from en/transfer-youtube-streaming.md rename to en/youtube-streaming.md index c0f351a..4ccac6f 100644 --- a/en/transfer-youtube-streaming.md +++ b/en/youtube-streaming.md @@ -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 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 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. diff --git a/index.md b/index.md deleted file mode 100644 index 02988f3..0000000 --- a/index.md +++ /dev/null @@ -1,39 +0,0 @@ -![OpenIPC logo](images/logo_openipc.png "OpenIPC logo") - -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. - -![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 diff --git a/ru/about.md b/ru/about.md new file mode 100644 index 0000000..7c4fb0a --- /dev/null +++ b/ru/about.md @@ -0,0 +1,120 @@ +# OpenIPC Wiki +[Оглавление](index.md) + +Прошивка OpenIPC -- что это? +---------------------------- + +![OpenIPC logo](../images/logo_openipc.png "OpenIPC logo") + +Прошивка OpenIPC (OpenIPC firmware) -- это коллективный труд многих +программистов с целью создания отрытого стека для работы на IP камерах. + + +## Хочу попробовать. Что для этого требуется? + +### IP камера. + +Естественно, вам понадобится IP камера. Если вы еще не приобрели камеру, +изучите, на какие именно параметры необходимо обратить внимание перед +покупкой. Если у вас есть сомнения в правильности выбора, попросите помощи у +разработчиков в Telegram-канале. + +Убедитесь, что ваша IP камера снабжена процессором, поддерживаемым прошивкой +OpenIPC. [Список таких процессоров][socs] пока ограничен, но быстро расширяется. + +Самым надежным способом определения типа процессора является частичный разброр +корпуса. Для большинства камер это довольно простая и безболезненная операция: +пара винтов здесь, пара защелок там, и вы получаете доступ к электронике. + +Процессор IP камеры (System on a chip, или SoC) -- это, как правило, крупный чип +на обратной стороне от объектива. Лазерная гравировка на поверхности чипа +подскажет вам, с каким именно процессором вы имеете дело. + +Сделайте фотографии всех плат, компонентов, маркировок и наклеек. Они еще не +раз понадобятся вам для идентификации устройств без последующего разбора камеры. + +Аккуратно снимите объектив (он держится на двух винтах) и сделайте фото матрицы. +Одни и те же процессоры могут комплектоваться разными типами матриц, каждая из +них требует собственного кофигурационного файла. + +Сделайте фотографии разъемов, чтобы не перепутать подключения, если вам +понадобится их разъединить, например для удобного доступа к матрице. _Маленькая +хитрость: сделайте маркировку на обеих частях разъема цветным фломастером для +пластика, так вы точно будете знать, какой штекер от какого разъема._ + +![](../images/camera-connector-colorcode.jpg) + +### Знание Linux. + +Необходимым условием для установки на вашу IP камеру прошивки OpenIPC является +ваше умение работать в среде Linux. Прошивка OpenIPC построена на базе Linux. +И хотя мы стремимся сделать нашу прошивку максимально простой и понятной обычному +пользователю, проект находится в ранней стадии разработки. А это значит, что +каждый день мы вносим изменения в код, и некоторые из них требуют ручного +вмешательства на уровне системы. + +### Паяльник и умение с ним работать. + +Самый простой способ получения доступа к загрузчику и операционной системе +камеры -- подключение к её порту UART. Это довольно простая процедура, +требующая недорогого [адаптера][g-usbttl] для серийного подключения с порта USB +вашего компьютера. + +Большинство камер идут с нераспаянным, а зачастую и немаркированным портом +UART. Как правило, это группа из трех, реже четырех контактных площадок, +расположенных на самом краю платы. + +![](../images/camera-uart.jpg) + +Вам нужно будет самостоятельно определить порт на плате, выяснить его +распиновку, и либо распаять на него коннектор, либо припаять провода напрямую +к контактам порта. Так же можно использовать прищепку с пружинными щупами для +подключения адаптера к камере. В любом случае, соединение должно быть надежным, +иначе пропадание контакта во время записи/чтения может обернуться искажением +передаваемых данных, что в свою очередь может обернуться порчей содержимого +флэш-памяти и вывести камеру из строя. И тогда вам потребуется программатор +микросхем и паяльная станция. Паяльная станция также может пригодиться вам для +замены некоторых компонентов с целью достижения лучшей совместимостью камеры +с нашей прошивкой: например для замены модуля 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 diff --git a/ru/discussion.md b/ru/discussion.md index d2e56af..b7a1431 100644 --- a/ru/discussion.md +++ b/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 diff --git a/ru/faq.md b/ru/faq.md new file mode 100644 index 0000000..3a18869 --- /dev/null +++ b/ru/faq.md @@ -0,0 +1,11 @@ +# OpenIPC Wiki +[Оглавление](index.md) + +Вопросы и ответы +---------------- + +### Majestic + +##### Можно-ли вывести данные для настройки автоматической фокусировки линз вместо текущего sample_af в стандартный /metrics? + +Нет, это отдельный тяжелый алгоритм, его нет смысла запускать просто так. diff --git a/ru/hardware-hs303.md b/ru/hardware-hs303.md new file mode 100644 index 0000000..2e8265d --- /dev/null +++ b/ru/hardware-hs303.md @@ -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 +``` diff --git a/ru/hardware-rtk-nand.md b/ru/hardware-rtk-nand.md new file mode 100644 index 0000000..35fcbe9 --- /dev/null +++ b/ru/hardware-rtk-nand.md @@ -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 +``` diff --git a/ru/index.md b/ru/index.md index 64ae281..a8db6f8 100644 --- a/ru/index.md +++ b/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) -- это, как правило, крупный чип -на обратной стороне от объектива. Лазерная гравировка на поверхности чипа -подскажет вам, с каким именно процессором вы имеете дело. - -Сделайте фотографии всех плат, компонентов, маркировок и наклеек. Они еще не -раз понадобятся вам для идентификации устройств без последующего разбора камеры. - -Аккуратно снимите объектив (он держится на двух винтах) и сделайте фото матрицы. -Одни и те же процессоры могут комплектоваться разными типами матриц, каждая из -них требует собственного кофигурационного файла. - -Сделайте фотографии разъемов, чтобы не перепутать подключения, если вам -понадобится их разъединить, например для удобного доступа к матрице. _Маленькая -хитрость: сделайте маркировку на обеих частях разъема цветным фломастером для -пластика, так вы точно будете знать, какой штекер от какого разъема._ - -![](../images/camera-connector-colorcode.jpg) - -### Знание Linux. - -Необходимым условием для установки на вашу IP камеру прошивки OpenIPC является -ваше умение работать в среде Linux. Прошивка OpenIPC построена на базе Linux. -И хотя мы стремимся сделать нашу прошивку максимально простой и понятной обычному -пользователю, проект находится в ранней стадии разработки. А это значит, что -каждый день мы вносим изменения в код, и некоторые из них требуют ручного -вмешательства на уровне системы. - -### Паяльник и умение с ним работать. - -Самый простой способ получения доступа к загрузчику и операционной системе -камеры -- подключение к её порту UART. Это довольно простая процедура, -требующая недорогого [адаптера][g-usbttl] для серийного подключения с порта USB вашего -компьютера. - -Большинство камер идут с нераспаянным, а зачастую и немаркированным портом -UART. Как правило, это группа из трех, реже четырех контактных площадок, -расположенных на самом краю платы. - -![](../images/camera-uart.jpg) - -Вам нужно будет самостоятельно определить порт на плате, выяснить его -распиновку, и либо распаять на него коннектор, либо припаять провода напрямую -к контактам порта. Так же можно использовать прищепку с пружинными щупами для -подключения адаптера к камере. В любом случае, соединение должно быть надежным, -иначе пропадание контакта во время записи/чтения может обернуться искажением -передаваемых данных, что в свою очередь может обернуться порчей содержимого -флэш-памяти и вывести камеру из строя. И тогда вам потребуется программатор -микросхем и паяльная станция. Паяльная станция также может пригодиться вам для -замены некоторых компонентов с целью достижения лучшей совместимостью камеры -с нашей прошивкой: например для замены модуля 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 diff --git a/ru/installation.md b/ru/installation.md index 0047b63..5423123 100644 --- a/ru/installation.md +++ b/ru/installation.md @@ -1,7 +1,8 @@ -![OpenIPC logo][logo] +# OpenIPC Wiki +[Оглавление](index.md) Установка OpenIPC. Шаг за шагом. -================================ +-------------------------------- ### Шаг 1. Определите тип процессора. diff --git a/ru/transfer-device-hs303.md b/ru/transfer-device-hs303.md deleted file mode 100644 index cf39851..0000000 --- a/ru/transfer-device-hs303.md +++ /dev/null @@ -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` diff --git a/ru/transfer-discussion-ru.md b/ru/transfer-discussion-ru.md deleted file mode 100644 index 9d67017..0000000 --- a/ru/transfer-discussion-ru.md +++ /dev/null @@ -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). diff --git a/ru/transfer-special-hs303v2.md b/ru/transfer-special-hs303v2.md deleted file mode 100644 index f919415..0000000 --- a/ru/transfer-special-hs303v2.md +++ /dev/null @@ -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 -``` diff --git a/ru/upgrade-from-1.md b/ru/upgrade-from-1.md new file mode 100644 index 0000000..c62fe24 --- /dev/null +++ b/ru/upgrade-from-1.md @@ -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 +``` + +Профит! diff --git a/ru/user-notes-melcor.md b/ru/user-notes-melcor.md index 0130a46..0626148 100644 --- a/ru/user-notes-melcor.md +++ b/ru/user-notes-melcor.md @@ -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)'