mirror of https://github.com/OpenIPC/wiki.git
add vietnames for the rest
parent
4767bc11e4
commit
5e19190c73
77
main.py
77
main.py
|
@ -1,77 +0,0 @@
|
|||
"""
|
||||
Install the Google AI Python SDK
|
||||
|
||||
$ pip install google-generativeai
|
||||
"""
|
||||
|
||||
import os
|
||||
import shutil
|
||||
import google.generativeai as genai
|
||||
from google.generativeai.types import HarmCategory, HarmBlockThreshold
|
||||
|
||||
genai.configure(api_key="AIzaSyBX1AuvpDZWMC80GWqXzkqpcYb79cVGAFs")
|
||||
|
||||
# Create the model
|
||||
generation_config = {
|
||||
"temperature": 1,
|
||||
"top_p": 0.95,
|
||||
"top_k": 64,
|
||||
"max_output_tokens": 8192,
|
||||
"response_mime_type": "text/plain",
|
||||
}
|
||||
|
||||
model = genai.GenerativeModel(
|
||||
model_name="gemini-1.5-pro-exp-0827",
|
||||
generation_config=generation_config,
|
||||
safety_settings={
|
||||
HarmCategory.HARM_CATEGORY_HARASSMENT: HarmBlockThreshold.BLOCK_NONE,
|
||||
HarmCategory.HARM_CATEGORY_HATE_SPEECH: HarmBlockThreshold.BLOCK_NONE,
|
||||
HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT: HarmBlockThreshold.BLOCK_NONE,
|
||||
HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT: HarmBlockThreshold.BLOCK_NONE
|
||||
}
|
||||
)
|
||||
|
||||
chat_session = model.start_chat(
|
||||
history=[
|
||||
{
|
||||
"role": "user",
|
||||
"parts": [
|
||||
"Chức năng chính của bạn là dịch các văn bản dài, bài viết hoặc tài liệu sang tiếng Việt. Bạn có hơn 10 năm kinh nghiệm trong lĩnh vực dịch thuật và thành thạo trong việc chuyển tải nội dung từ ngôn ngữ gốc sang tiếng Việt một cách chính xác và tự nhiên. Bản dịch của bạn cần trung thành với nội dung gốc, đồng thời đảm bảo sự lưu loát và dễ hiểu cho người đọc tiếng Việt. Khi dịch, hãy tuân theo các nguyên tắc sau: \n1. Duy trì giọng điệu và phong cách của văn bản gốc. \n2. Chuyển tải chính xác ý nghĩa và ngữ cảnh của nội dung. \n3. Sử dụng thuật ngữ chuyên ngành phù hợp khi cần thiết. \n4. Nếu gặp từ ngữ hoặc khái niệm khó dịch, giữ nguyên từ gốc và cung cấp giải thích ngắn gọn trong ngoặc đơn. \n5. Đối với nội dung phức tạp hoặc đa chủ đề, có thể chia nhỏ bản dịch thành các phần có cấu trúc để dễ theo dõi. \nGiới hạn độ dài: Nếu văn bản gốc quá dài, hãy chia nhỏ bản dịch thành các phần khoảng 1000-1500 từ và đề nghị người dùng xác nhận trước khi tiếp tục phần tiếp theo. \nQUAN TRỌNG: Luôn bắt đầu bằng cách xác nhận ngôn ngữ gốc của văn bản cần dịch và đảm bảo rằng bạn đang dịch sang tiếng Việt.",
|
||||
],
|
||||
},
|
||||
{
|
||||
"role": "model",
|
||||
"parts": [
|
||||
"Tôi đã hiểu yêu cầu của bạn. \n\nChức năng chính của tôi là dịch các văn bản dài, bài viết hoặc tài liệu sang tiếng Việt. Tôi sẽ cố gắng hết sức để chuyển tải nội dung từ ngôn ngữ gốc sang tiếng Việt một cách chính xác, tự nhiên và dễ hiểu, đồng thời tuân thủ các nguyên tắc bạn đã đề ra.\n\nĐể tôi có thể bắt đầu dịch, vui lòng cung cấp cho tôi văn bản cần dịch và cho biết **ngôn ngữ gốc** của văn bản đó. \n\nVí dụ: \n\n\"Vui lòng dịch văn bản sau sang tiếng Việt. Ngôn ngữ gốc là tiếng Anh.\" \n\nSau khi nhận được thông tin này, tôi sẽ xem xét văn bản và xác nhận lại với bạn trước khi bắt đầu quá trình dịch thuật. Nếu văn bản quá dài, tôi sẽ chia nhỏ thành các phần và đề nghị bạn xác nhận trước khi tiếp tục phần tiếp theo. \n\nTôi sẵn sàng hỗ trợ bạn dịch thuật! \n",
|
||||
],
|
||||
},
|
||||
]
|
||||
)
|
||||
|
||||
|
||||
|
||||
def upload_and_translate_file(file_path, target_language):
|
||||
file_content = genai.upload_file(path=file_path, display_name=os.path.basename(file_path))
|
||||
response = chat_session.send_message([file_content, f"Can you translate this document, into {target_language}?"])
|
||||
return response.text
|
||||
|
||||
def save_to_markdown(filename, content):
|
||||
with open(filename, 'w', encoding='utf-8') as f:
|
||||
f.write(content)
|
||||
|
||||
def translate_all_files_in_folder(source_folder, target_folder, target_language):
|
||||
for filename in os.listdir(source_folder):
|
||||
if filename.endswith(".md"):
|
||||
source_file_path = os.path.join(source_folder, filename)
|
||||
translated_content = upload_and_translate_file(source_file_path, target_language)
|
||||
|
||||
target_file_path = os.path.join(target_folder, filename)
|
||||
save_to_markdown(target_file_path, translated_content)
|
||||
|
||||
# Rename original file in source folder
|
||||
base_filename, file_extension = os.path.splitext(filename)
|
||||
renamed_filename = f"{base_filename}_translated{file_extension}"
|
||||
renamed_file_path = os.path.join(source_folder, renamed_filename)
|
||||
shutil.move(source_file_path, renamed_file_path)
|
||||
|
||||
translate_all_files_in_folder("./en2", "./vi", "Vietnamese")
|
|
@ -0,0 +1,125 @@
|
|||
## OpenIPC Wiki
|
||||
[Mục lục](../README.md)
|
||||
|
||||
## Thông tin cơ bản
|
||||
|
||||
OpenIPC là một [firmware](https://github.com/OpenIPC) thay thế cho camera IP và là một dự án bao gồm các dự án thành phần khác trong hệ thống của chúng tôi.
|
||||
|
||||
OpenIPC là một hệ điều hành Linux dựa trên các dự án Buildroot/OpenWrt và nhắm mục tiêu đến các camera IP với chipset từ các nhà cung cấp khác nhau, bắt đầu với Goke GK72xx, HiSilicon Hi35xx, SigmaStar SSC33x và XiongmaiTech XM5xx.
|
||||
|
||||
Tất cả mọi người đều được chào đón để sử dụng/đóng góp cho dự án theo bất kỳ cách nào họ thấy hữu ích!
|
||||
|
||||
Chúng tôi sẽ rất biết ơn mọi phản hồi và đề xuất.
|
||||
|
||||
|
||||
## Liên kết chính thức
|
||||
|
||||
* [OpenIPC trên Wiki](https://github.com/openipc/wiki) - Bộ sưu tập các tài liệu và hướng dẫn khác nhau.
|
||||
* [OpenIPC trên GitHub](https://github.com/OpenIPC/) - Tổ chức GitHub, hầu hết các dự án được lưu trữ tại đây.
|
||||
* [OpenIPC trên OpenCollective](https://opencollective.com/openipc) - Cộng đồng OpenCollective.
|
||||
* [OpenIPC trên Twitter](https://twitter.com/openipc) - Tin tức chính của chúng tôi.
|
||||
* [OpenIPC trên YouTube](https://www.youtube.com/channel/UCaXlbR2uGTRFh8jQ2lCFd2g) - Hướng dẫn và luồng của chúng tôi (trong kế hoạch).
|
||||
|
||||
|
||||
## Các nhóm trò chuyện Telegram
|
||||
|
||||
* [OpenIPC](https://t.me/openipc) (EN) - Kênh quốc tế để thảo luận về sự phát triển của dự án, [*](https://combot.org/c/1166652144)
|
||||
* [OpenIPC modding](https://t.me/openipc_modding) (RU) - các vấn đề chung về sửa đổi firmware thiết bị IPCam, [*](https://combot.org/c/-1001247643198)
|
||||
* [OpenIPC development](https://t.me/openipc_software) (RU) - HiSilicon, XM porting trong OpenWrt và các vấn đề về lập trình, [*](https://combot.org/c/-1001196905312)
|
||||
* [OpenIPC advice](https://t.me/openipc_advice) (RU) - các vấn đề, tìm kiếm giải pháp, các cuộc trò chuyện dài, [*](https://combot.org/c/1385065634)
|
||||
* [OpenIPC Iranian](https://t.me/joinchat/T_GwQUBTJdfXJrFb) (IR) - nhóm đặc biệt dành cho người dùng Iran / تیم OpenIPC برای کاربران ایرانی, [*](https://combot.org/c/-1001341239361)
|
||||
* [OpenIPC demo](https://t.me/openipc_demo) (EN/RU) - bot thử nghiệm với các nút, sau khi kết nối, hãy nhập "/menu", [*](https://combot.org/c/1414887196)
|
||||
* [OpenIPC ExIPCam](https://t.me/ExIPCam) (RU) - Chương trình ExIPCam và sửa chữa phần cứng/phần mềm thiết bị, [*](https://combot.org/c/1213889378)
|
||||
* [OpenIPC updates](https://t.me/s/openipc_updates) (RU) - Kênh thông tin cập nhật Firmware & Phần mềm
|
||||
* [OpenIPC dev](https://t.me/s/openipc_dev) - Kênh phát triển Firmware & Phần mềm
|
||||
|
||||
|
||||
## Các phát triển của nhóm
|
||||
|
||||
### Firmware
|
||||
|
||||
* [openipc-2.x](https://github.com/openipc/firmware) - Hệ thống phát triển và tạo Firmware dựa trên Buildroot.
|
||||
* [openipc-1.0][chaos_calmer] - Hệ thống phát triển và tạo Firmware dựa trên OpenWrt 15.05.
|
||||
* [coupler][coupler] - Chuyển đổi liền mạch giữa firmware camera video.
|
||||
|
||||
### Streamers
|
||||
|
||||
* [majestic](https://openipc.org/majestic-endpoints) - Bộ phát trực tuyến IPCam phổ dụng.
|
||||
* [mini][mini] - Bộ phát trực tuyến camera IP Mini mã nguồn mở.
|
||||
|
||||
### Công cụ
|
||||
|
||||
* [ipctool](https://github.com/openipc/ipctool) - Công cụ (và thư viện) để kiểm tra phần cứng camera IP.
|
||||
* [yaml-cli][yaml-cli] - Công cụ để thay đổi cài đặt trong CLI.
|
||||
* [glutinium](https://github.com/ZigFisher/Glutinium) - Các gói OpenWRT bổ sung.
|
||||
|
||||
### Phần mềm Windows
|
||||
|
||||
* [exipcam](http://team.openipc.org/exipcam) - Tiện ích tuyệt vời để sửa chữa IPCam (Dành cho Windows, hoạt động trong Linux thông qua Wine).
|
||||
* [ipcam_dms](http://team.openipc.org/ipcam_dms) - Hệ thống quản lý thiết bị IPCam (Dành cho Windows, hoạt động trong Linux thông qua Wine).
|
||||
|
||||
|
||||
## Các nhà phát triển
|
||||
|
||||
| Tên | Vai trò | Tham gia |
|
||||
|------------------------------------------------------------------|--------------------------------------------------------|--------------------------------------------------------------------------|
|
||||
| [Dmitry Ilyin](https://web.telegram.org/#/im?p=@widgetii) | đồng sáng lập và người tham gia chính của dự án OpenIPC | [ipctool][ipctool], [majestic][majestic], [mini][mini], [motors][motors] |
|
||||
| [Dmitry Ermakov](https://web.telegram.org/#/im?p=@dimerrr) | người tham gia chính | [coupler][coupler], [firmware][firmware], [ipctool][ipctool] |
|
||||
| [Igor Zalatov](https://web.telegram.org/#/im?p=@FlyRouter) | **người sáng lập dự án và điều phối viên phát triển** | [chaos_calmer][chaos_calmer], [firmware][firmware], [wiki][wiki] |
|
||||
| [Ivan Pozdeev](https://web.telegram.org/#/im?p=@John) | nhà phát triển | [microbe-web][webui], [yaml-cli][yaml-cli] |
|
||||
| [Konstantin](#) | nhà phát triển | [hisi-trace][hisi-trace], [yaml-cli][yaml-cli] |
|
||||
| [Maksim Patrushev](https://web.telegram.org/#/im?p=@maxi380) | nhà phát triển | [motors][motors] |
|
||||
| [Maxim Chertov](https://web.telegram.org/#/im?p=@mAX3773) | đồng sáng lập dự án OpenIPC | [chaos_calmer][chaos_calmer], [ipctool][ipctool], [mini][mini] |
|
||||
| [Paul Philippov](https://web.telegram.org/#/im?p=@themactep) | người tham gia chính | [microbe-web][webui] |
|
||||
| [Sergey Sharshunov](https://web.telegram.org/#/im?p=@USSSSSH) | đồng sáng lập dự án OpenIPC | [chaos_calmer][chaos_calmer], [burn][burn] |
|
||||
| [Temirkhan Myrzamadi](https://web.telegram.org/#/im?p=@hirrolot) | người tham gia chính | [smolrtsp][smolrtsp] |
|
||||
| [Vasiliy Yakovlev](https://web.telegram.org/#/im?p=@#) | người hỗ trợ chung | |
|
||||
|
||||
|
||||
### Hỗ trợ
|
||||
|
||||
OpenIPC cung cấp hai cấp độ hỗ trợ.
|
||||
|
||||
- Hỗ trợ miễn phí thông qua cộng đồng (thông qua [trò chuyện](https://openipc.org/#telegram-chat-groups) và [danh sách gửi thư](https://github.com/OpenIPC/firmware/discussions)).
|
||||
- Hỗ trợ thương mại có trả phí (từ nhóm các nhà phát triển).
|
||||
|
||||
Vui lòng cân nhắc đăng ký hỗ trợ thương mại có trả phí nếu bạn định sử dụng sản phẩm của chúng tôi cho doanh nghiệp.
|
||||
Là khách hàng trả phí, bạn sẽ nhận được dịch vụ hỗ trợ kỹ thuật và bảo trì trực tiếp từ nhóm kỹ thuật lành nghề của chúng tôi.
|
||||
Các báo cáo lỗi và yêu cầu tính năng của bạn sẽ được ưu tiên chú ý và giải quyết nhanh chóng. Đó là một chiến lược đôi bên cùng có lợi,
|
||||
góp phần vào sự ổn định của doanh nghiệp bạn và giúp các nhà phát triển cốt lõi làm việc toàn thời gian cho dự án.
|
||||
|
||||
Nếu bạn có bất kỳ câu hỏi cụ thể nào liên quan đến dự án của chúng tôi, vui lòng [liên hệ với chúng tôi](mailto:flyrouter@gmail.com).
|
||||
|
||||
### Tham gia và Đóng góp
|
||||
|
||||
Nếu bạn thích những gì chúng tôi làm và sẵn sàng đẩy mạnh sự phát triển, vui lòng cân nhắc tham gia.
|
||||
|
||||
Bạn có thể cải thiện mã hiện có và gửi cho chúng tôi các bản vá. Bạn có thể thêm các tính năng mới còn thiếu trong mã của chúng tôi.
|
||||
|
||||
Bạn có thể giúp chúng tôi viết tài liệu tốt hơn, hiệu đính và sửa chữa các trang web của chúng tôi.
|
||||
|
||||
Bạn chỉ cần quyên góp một số tiền để trang trải chi phí phát triển và duy trì lâu dài những gì chúng tôi tin
|
||||
sẽ là Khuôn khổ Camera Mạng IP ổn định, linh hoạt và mở nhất dành cho người dùng như bạn.
|
||||
|
||||
Bạn có thể đóng góp tài chính cho dự án tại [Open Collective](https://opencollective.com/openipc/contribute/backer-14335/checkout).
|
||||
|
||||
Cảm ơn bạn.
|
||||
|
||||
<p style="text-align:center">
|
||||
<a href="https://opencollective.com/openipc/contribute/backer-14335/checkout" target="_blank"><img src="https://opencollective.com/webpack/donate/button@2x.png?color=blue" width="375" alt="Open Collective donate button"></a>
|
||||
</p>
|
||||
|
||||
|
||||
[burn]: https://github.com/OpenIPC/burn
|
||||
[chaos_calmer]: https://github.com/OpenIPC/chaos_calmer
|
||||
[coupler]: https://github.com/OpenIPC/coupler
|
||||
[firmware]: https://github.com/OpenIPC/firmware
|
||||
[hisi-trace]: https://github.com/OpenIPC/hisi-trace
|
||||
[ipctool]: https://github.com/OpenIPC/ipctool
|
||||
[majestic]: https://github.com/OpenIPC/majestic
|
||||
[mini]: https://github.com/OpenIPC/mini
|
||||
[motors]: https://github.com/OpenIPC/motors
|
||||
[smolrtsp]: https://github.com/OpenIPC/smolrtsp
|
||||
[webui]: https://github.com/OpenIPC/microbe-web
|
||||
[wiki]: https://github.com/wiki
|
||||
[yaml-cli]: https://github.com/OpenIPC/yaml-cli
|
|
@ -0,0 +1,448 @@
|
|||
# OpenIPC Wiki
|
||||
[Mục lục](../README.md)
|
||||
|
||||
Bộ sưu tập các cài đặt mạng thực tế
|
||||
---------------------------------------------
|
||||
|
||||
> Chú ý! Nếu có vấn đề gì không hoạt động, hãy chạy `ifdown -v <iface>; ifup -v <iface>` và kiểm tra kết quả!
|
||||
|
||||
### ETH0 | DHCP cho tất cả các nền tảng
|
||||
|
||||
```
|
||||
auto eth0
|
||||
iface eth0 inet dhcp
|
||||
hwaddress ether $(fw_printenv -n ethaddr || echo 00:24:B8:FF:FF:FF)
|
||||
#udhcpc_opts -O search -O ntpsrv -O hostname <= đề xuất
|
||||
#pre-up echo -e "nameserver 77.88.8.8\nnameserver 8.8.4.4\n" >/tmp/resolv.conf <= động
|
||||
#pre-up echo -e "server 0.time.openipc.org iburst\nserver 1.time.openipc.org iburst\nserver 2.time.openipc.org iburst\nserver 3.time.openipc.org iburst" >/tmp/ntp.conf <= đề xuất
|
||||
```
|
||||
|
||||
|
||||
### ETH0 | Tĩnh cho tất cả các nền tảng
|
||||
|
||||
```
|
||||
auto eth0
|
||||
iface eth0 inet static
|
||||
address 192.168.1.10
|
||||
netmask 255.255.255.0
|
||||
gateway 192.168.1.1
|
||||
hwaddress ether $(fw_printenv -n ethaddr || echo 00:24:B8:FF:FF:FF)
|
||||
pre-up echo -e "nameserver 77.88.8.8\nnameserver 8.8.4.4\n" >/tmp/resolv.conf <= hoạt động
|
||||
pre-up echo -e "server 0.time.openipc.org iburst\nserver 1.time.openipc.org iburst\nserver 2.time.openipc.org iburst\nserver 3.time.openipc.org iburst" >/tmp/ntp.conf <= đề xuất
|
||||
up /usr/sbin/ntpd -N -q
|
||||
```
|
||||
|
||||
|
||||
### ETH0:1 | Ví dụ về Alias
|
||||
|
||||
```
|
||||
auto eth0
|
||||
iface eth0:1 inet static
|
||||
address $(fw_printenv -n ipaddr || echo 192.168.1.10)
|
||||
netmask 255.255.255.0
|
||||
```
|
||||
|
||||
|
||||
### ETH2 | WiFi Trung Quốc
|
||||
|
||||
```
|
||||
auto eth2
|
||||
iface eth2 inet dhcp
|
||||
pre-up wifi xm711
|
||||
pre-up wpa_passphrase "SSID" "password" >/tmp/wpa_supplicant.conf
|
||||
pre-up sed -i '2i \\tscan_ssid=1' /tmp/wpa_supplicant.conf
|
||||
pre-up (sleep 3; wpa_supplicant -B -D nl80211 -i eth2 -c/tmp/wpa_supplicant.conf)
|
||||
post-down killall -q wpa_supplicant
|
||||
```
|
||||
|
||||
|
||||
### PPP0 | T31 | CamHi/Xin
|
||||
|
||||
```
|
||||
auto ppp0
|
||||
iface ppp0 inet ppp
|
||||
pre-up echo 61 > /sys/class/gpio/export
|
||||
pre-up echo out > /sys/class/gpio/gpio61/direction
|
||||
pre-up echo 0 > /sys/class/gpio/gpio61/value
|
||||
pre-up sleep 7
|
||||
post-down echo 1 > /sys/class/gpio/gpio61/value
|
||||
post-down echo 61 > /sys/class/gpio/unexport
|
||||
```
|
||||
|
||||
|
||||
### USB0 | HI3516EV300/GK7205V300 | CamHi/Xin
|
||||
|
||||
```
|
||||
auto usb0
|
||||
iface usb0 inet dhcp
|
||||
pre-up echo 9 > /sys/class/gpio/export
|
||||
pre-up echo out > /sys/class/gpio/gpio9/direction
|
||||
pre-up echo 0 > /sys/class/gpio/gpio9/value
|
||||
pre-up modprobe usbserial vendor=0x2c7c product=0x6026
|
||||
pre-up modprobe rndis_host
|
||||
pre-up sleep 10
|
||||
post-down echo 1 > /sys/class/gpio/gpio9/value
|
||||
post-down echo 9 > /sys/class/gpio/unexport
|
||||
```
|
||||
|
||||
|
||||
### WG0 | Tất cả các nền tảng
|
||||
|
||||
```
|
||||
auto wg0
|
||||
iface wg0 inet static
|
||||
address 192.168.99.1
|
||||
netmask 255.255.255.0
|
||||
pre-up modprobe wireguard
|
||||
pre-up ip link add dev wg0 type wireguard
|
||||
pre-up wg setconf wg0 /etc/wireguard.conf
|
||||
post-down ip link del dev wg0
|
||||
```
|
||||
|
||||
### WLAN0 | Cập nhật SSID & Mật khẩu từ thẻ SD
|
||||
|
||||
```
|
||||
auto wlan0
|
||||
iface wlan0 inet dhcp
|
||||
sleep 2
|
||||
pre-up wlanssid=$(cat /mnt/mmcblk0p1/wlanssid); if [ $wlanssid ]; then fw_setenv wlanssid $wlanssid; fi
|
||||
pre-up wlanpass=$(cat /mnt/mmcblk0p1/wlanpass); if [ $wlanpass ]; then fw_setenv wlanpass $wlanpass; fi
|
||||
post-up wpa_passphrase "$(fw_printenv -n wlanssid || echo OpenIPC)" "$(fw_printenv -n wlanpass || echo OpenIPC12345)" > /tmp/wpa_supplicant.conf
|
||||
post-up sed -i '2i \\tscan_ssid=1' /tmp/wpa_supplicant.conf
|
||||
post-up wpa_supplicant -B -i wlan0 -D nl80211,wext -c /tmp/wpa_supplicant.conf
|
||||
post-down killall -q wpa_supplicant
|
||||
```
|
||||
|
||||
### WLAN0 | GM8135 | Không rõ
|
||||
|
||||
```
|
||||
auto wlan0
|
||||
iface wlan0 inet dhcp
|
||||
pre-up modprobe mac80211
|
||||
pre-up modprobe 8188eu
|
||||
pre-up wpa_passphrase "SSID" "password" >/tmp/wpa_supplicant.conf
|
||||
pre-up sed -i '2i \\tscan_ssid=1' /tmp/wpa_supplicant.conf
|
||||
pre-up (sleep 3; wpa_supplicant -B -D wext -i wlan0 -c/tmp/wpa_supplicant.conf)
|
||||
```
|
||||
|
||||
|
||||
### WLAN0 | HI3516EV200/GK7205V200/GK7205V210 | CamHi/Xin
|
||||
|
||||
```
|
||||
auto wlan0
|
||||
iface wlan0 inet dhcp
|
||||
pre-up echo 9 > /sys/class/gpio/export
|
||||
pre-up echo out > /sys/class/gpio/gpio9/direction
|
||||
pre-up echo 0 > /sys/class/gpio/gpio9/value
|
||||
pre-up modprobe mt7601u
|
||||
pre-up wpa_passphrase "SSID" "password" >/tmp/wpa_supplicant.conf
|
||||
pre-up sed -i '2i \\tscan_ssid=1' /tmp/wpa_supplicant.conf
|
||||
pre-up sleep 3
|
||||
pre-up wpa_supplicant -B -D nl80211 -i wlan0 -c/tmp/wpa_supplicant.conf
|
||||
post-down killall -q wpa_supplicant
|
||||
post-down echo 1 > /sys/class/gpio/gpio9/value
|
||||
post-down echo 9 > /sys/class/gpio/unexport
|
||||
```
|
||||
|
||||
### WLAN0 | GK7205V200 | RTL8188
|
||||
|
||||
```
|
||||
auto wlan0
|
||||
iface wlan0 inet dhcp
|
||||
pre-up echo 57 > /sys/class/gpio/export
|
||||
pre-up echo out > /sys/class/gpio/gpio57/direction
|
||||
pre-up echo 0 > /sys/class/gpio/gpio57/value
|
||||
pre-up modprobe mac80211
|
||||
pre-up sleep 1
|
||||
pre-up insmod /lib/modules/4.9.37/extra/rtl8188fu.ko
|
||||
pre-up sleep 1
|
||||
pre-up wpa_passphrase "OpenIPC_NFS" "project2021" >/tmp/wpa_supplicant.conf
|
||||
pre-up sed -i '2i \\tscan_ssid=1' /tmp/wpa_supplicant.conf
|
||||
pre-up sleep 3
|
||||
pre-up wpa_supplicant -B -Dnl80211 -i wlan0 -c/tmp/wpa_supplicant.conf
|
||||
post-down killall -q wpa_supplicant
|
||||
post-down echo 1 > /sys/class/gpio/gpio57/value
|
||||
post-down echo 57 > /sys/class/gpio/unexport
|
||||
|
||||
```
|
||||
|
||||
### WLAN0 | HI3516EV300/GK7205V300 | CamHi/Xin
|
||||
|
||||
```
|
||||
auto wlan0
|
||||
iface wlan0 inet dhcp
|
||||
pre-up devmem 0x100C0080 32 0x530
|
||||
pre-up echo 7 > /sys/class/gpio/export
|
||||
pre-up echo out > /sys/class/gpio/gpio7/direction
|
||||
pre-up echo 0 > /sys/class/gpio/gpio7/value
|
||||
pre-up modprobe mt7601u
|
||||
pre-up wpa_passphrase "SSID" "password" >/tmp/wpa_supplicant.conf
|
||||
pre-up sed -i '2i \\tscan_ssid=1' /tmp/wpa_supplicant.conf
|
||||
pre-up sleep 3
|
||||
pre-up wpa_supplicant -B -D nl80211 -i wlan0 -c/tmp/wpa_supplicant.conf
|
||||
post-down killall -q wpa_supplicant
|
||||
post-down echo 1 > /sys/class/gpio/gpio7/value
|
||||
post-down echo 7 > /sys/class/gpio/unexport
|
||||
```
|
||||
|
||||
### WLAN0 | GK7205V300 + ATBM603X | Không rõ
|
||||
|
||||
```
|
||||
auto wlan0
|
||||
iface wlan0 inet dhcp
|
||||
pre-up devmem 0x100C0080 32 0x530
|
||||
pre-up echo 7 > /sys/class/gpio/export
|
||||
pre-up echo out > /sys/class/gpio/gpio7/direction
|
||||
pre-up echo 0 > /sys/class/gpio/gpio7/value
|
||||
pre-up modprobe mt7601u
|
||||
pre-up modprobe atbm603x_wifi_usb
|
||||
pre-up wpa_passphrase "SSID" "password" >/tmp/wpa_supplicant.conf
|
||||
pre-up sed -i '2i \\tscan_ssid=1' /tmp/wpa_supplicant.conf
|
||||
pre-up sleep 3
|
||||
pre-up wpa_supplicant -B -D nl80211 -i wlan0 -c/tmp/wpa_supplicant.conf
|
||||
post-down killall -q wpa_supplicant
|
||||
post-down echo 1 > /sys/class/gpio/gpio7/value
|
||||
post-down echo 7 > /sys/class/gpio/unexport
|
||||
```
|
||||
|
||||
Lưu ý: Nhập các lệnh trong bảng điều khiển U-Boot để bật thiết bị wifi
|
||||
|
||||
```
|
||||
fw_setenv wlandev atbm603x-generic-usb
|
||||
saveenv
|
||||
```
|
||||
|
||||
### WLAN0 | HI3518EV200 | CamHi/Xin
|
||||
|
||||
```
|
||||
auto wlan0
|
||||
iface wlan0 inet dhcp
|
||||
pre-up echo 9 > /sys/class/gpio/export
|
||||
pre-up echo out > /sys/class/gpio/gpio9/direction
|
||||
pre-up echo 0 > /sys/class/gpio/gpio9/value
|
||||
pre-up modprobe mt7601u
|
||||
pre-up wpa_passphrase "SSID" "password" >/tmp/wpa_supplicant.conf
|
||||
pre-up sed -i '2i \\tscan_ssid=1' /tmp/wpa_supplicant.conf
|
||||
pre-up sleep 3
|
||||
pre-up wpa_supplicant -B -D nl80211 -i wlan0 -c/tmp/wpa_supplicant.conf
|
||||
post-down killall -q wpa_supplicant
|
||||
post-down echo 1 > /sys/class/gpio/gpio9/value
|
||||
post-down echo 9 > /sys/class/gpio/unexport
|
||||
```
|
||||
|
||||
|
||||
### WLAN0 | HI3518EV200 | CIP37210 và HS303v1
|
||||
|
||||
```
|
||||
auto wlan0
|
||||
iface wlan0 inet dhcp
|
||||
pre-up echo 3 > /sys/class/gpio/export
|
||||
pre-up echo out > /sys/class/gpio/gpio3/direction
|
||||
pre-up echo 1 > /sys/class/gpio/gpio3/value
|
||||
pre-up modprobe mac80211
|
||||
pre-up sleep 1
|
||||
pre-up insmod /lib/modules/4.9.37/extra/rtl8188fu.ko
|
||||
pre-up sleep 1
|
||||
pre-up wpa_passphrase "SSID" "password" >/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 -Dnl80211 -iwlan0 -c/tmp/wpa_supplicant.conf
|
||||
pre-up sleep 3
|
||||
#pre-up echo -e "nameserver 77.88.8.8\nnameserver 8.8.4.4\n" >/tmp/resolv.conf
|
||||
post-down killall -q wpa_supplicant
|
||||
post-down echo 0 > /sys/class/gpio/gpio3/value
|
||||
post-down echo 3 > /sys/class/gpio/unexport
|
||||
```
|
||||
|
||||
|
||||
### WLAN0 | HI3518EV200 | HS303v2
|
||||
|
||||
```
|
||||
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 sleep 1
|
||||
pre-up wpa_passphrase "SSID" "password" >/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
|
||||
pre-up sleep 3
|
||||
post-down killall -q wpa_supplicant
|
||||
post-down echo 0 > /sys/class/gpio/gpio54/value
|
||||
post-down echo 54 > /sys/class/gpio/unexport
|
||||
```
|
||||
|
||||
|
||||
### WLAN0 | HI3518EV200 | HS303v3 và IPC-136W
|
||||
|
||||
```
|
||||
auto wlan0
|
||||
iface wlan0 inet dhcp
|
||||
pre-up devmem 0x200f000c 32 0x0
|
||||
pre-up echo 7 > /sys/class/gpio/export
|
||||
pre-up echo out > /sys/class/gpio/gpio7/direction
|
||||
pre-up echo 1 > /sys/class/gpio/gpio7/value
|
||||
pre-up modprobe r8188eu
|
||||
pre-up sleep 1
|
||||
pre-up wpa_passphrase "SSID" "password" >/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
|
||||
pre-up sleep 3
|
||||
post-down killall -q wpa_supplicant
|
||||
post-down echo 0 > /sys/class/gpio/gpio7/value
|
||||
post-down echo 7 > /sys/class/gpio/unexport
|
||||
```
|
||||
|
||||
|
||||
### WLAN0 | HI3518EV300 | Không rõ
|
||||
|
||||
```
|
||||
auto wlan0
|
||||
iface wlan0 inet dhcp
|
||||
pre-up modprobe rtl8188fu
|
||||
pre-up wpa_passphrase "SSID" "password" >/tmp/wpa_supplicant.conf
|
||||
pre-up sed -i '2i \\tscan_ssid=1' /tmp/wpa_supplicant.conf
|
||||
pre-up sleep 3
|
||||
pre-up wpa_supplicant -B -D nl80211 -i wlan0 -c/tmp/wpa_supplicant.conf
|
||||
post-down killall -q wpa_supplicant
|
||||
```
|
||||
|
||||
|
||||
### WLAN0 | HI3518EV300 | MJSXJ02HL
|
||||
|
||||
```
|
||||
auto wlan0
|
||||
iface wlan0 inet dhcp
|
||||
pre-up devmem 0x112C0048 32 0x1D54
|
||||
pre-up devmem 0x112C004C 32 0x1174
|
||||
pre-up devmem 0x112C0064 32 0x1174
|
||||
pre-up devmem 0x112C0060 32 0x1174
|
||||
pre-up devmem 0x112C005C 32 0x1174
|
||||
pre-up devmem 0x112C0058 32 0x1174
|
||||
pre-up devmem 0x10020028 32 0x28000000
|
||||
pre-up devmem 0x10020028 32 0x20000000
|
||||
pre-up modprobe cfg80211
|
||||
pre-up insmod /lib/modules/4.9.37/external/8189fs_kasito.ko
|
||||
pre-up wpa_passphrase "SSID" "password" >/tmp/wpa_supplicant.conf
|
||||
pre-up sed -i '2i \\tscan_ssid=1' /tmp/wpa_supplicant.conf
|
||||
pre-up sleep 3
|
||||
pre-up wpa_supplicant -B -D nl80211 -i wlan0 -c/tmp/wpa_supplicant.conf
|
||||
post-down killall -q wpa_supplicant
|
||||
```
|
||||
|
||||
|
||||
### WLAN0 | SSC335 | Apical
|
||||
|
||||
```
|
||||
auto wlan0
|
||||
iface wlan0 inet dhcp
|
||||
pre-up echo 14 > /sys/class/gpio/export
|
||||
pre-up echo out > /sys/class/gpio/gpio14/direction
|
||||
pre-up echo 1 > /sys/class/gpio/gpio14/value
|
||||
pre-up echo '00:24:B8:FF:FF:FF' >/tmp/.mac.info
|
||||
pre-up modprobe mac80211
|
||||
pre-up insmod /lib/modules/4.9.84/sigmastar/ssw101b_wifi_usb.ko
|
||||
pre-up wpa_passphrase "SSID" "password" >/tmp/wpa_supplicant.conf
|
||||
pre-up sed -i '2i \\tscan_ssid=1' /tmp/wpa_supplicant.conf
|
||||
pre-up sleep 3
|
||||
pre-up wpa_supplicant -B -D wext -i wlan0 -c/tmp/wpa_supplicant.conf
|
||||
post-down killall -q wpa_supplicant
|
||||
post-down echo 0 > /sys/class/gpio/gpio14/value
|
||||
post-down echo 14 > /sys/class/gpio/unexport
|
||||
```
|
||||
|
||||
|
||||
### WLAN0 | SSC337DE | Tiandy
|
||||
|
||||
```
|
||||
auto wlan0
|
||||
iface wlan0 inet dhcp
|
||||
pre-up echo 14 > /sys/class/gpio/export
|
||||
pre-up echo out > /sys/class/gpio/gpio14/direction
|
||||
pre-up echo 1 > /sys/class/gpio/gpio14/value
|
||||
pre-up modprobe cfg80211
|
||||
pre-up insmod /lib/modules/4.9.84/sigmastar/rtl8192eu.ko
|
||||
pre-up wpa_passphrase "SSID" "password" >/tmp/wpa_supplicant.conf
|
||||
pre-up sed -i '2i \\tscan_ssid=1' /tmp/wpa_supplicant.conf
|
||||
pre-up sleep 3
|
||||
pre-up wpa_supplicant -B -D nl80211 -i wlan0 -c/tmp/wpa_supplicant.conf
|
||||
post-down killall -q wpa_supplicant
|
||||
post-down echo 1 > /sys/class/gpio/gpio14/value
|
||||
post-down echo 14 > /sys/class/gpio/unexport
|
||||
```
|
||||
|
||||
|
||||
### WLAN0 | T10 | Netcam
|
||||
|
||||
```
|
||||
auto wlan0
|
||||
iface wlan0 inet dhcp
|
||||
pre-up modprobe mac80211
|
||||
pre-up modprobe mt7601sta
|
||||
pre-up wpa_passphrase "SSID" "password" >/tmp/wpa_supplicant.conf
|
||||
pre-up sed -i '2i \\tscan_ssid=1' /tmp/wpa_supplicant.conf
|
||||
pre-up sleep 3
|
||||
pre-up wpa_supplicant -B -D nl80211 -i wlan0 -c/tmp/wpa_supplicant.conf
|
||||
post-down killall -q wpa_supplicant
|
||||
```
|
||||
|
||||
|
||||
### WLAN0 | MT7601U | T31 | CamHi/Xin
|
||||
|
||||
```
|
||||
fw_setenv wlandevice mt7601u-t31-camhi
|
||||
fw_setenv wlanssid MySSID
|
||||
fw_setenv wlanpass MyPassword
|
||||
```
|
||||
|
||||
|
||||
### WLAN0 | T31 | Xiaomi MJSXJ03HL 2K
|
||||
|
||||
```
|
||||
auto wlan0
|
||||
iface wlan0 inet dhcp
|
||||
pre-up modprobe mac80211
|
||||
pre-up insmod /lib/modules/rtl8189ftv.ko
|
||||
pre-up wpa_passphrase "SSID" "password" >/tmp/wpa_supplicant.conf
|
||||
pre-up sed -i '2i \\tscan_ssid=1' /tmp/wpa_supplicant.conf
|
||||
pre-up sleep 1
|
||||
pre-up wpa_supplicant -B -D nl80211 -i wlan0 -c/tmp/wpa_supplicant.conf
|
||||
post-down killall -q wpa_supplicant
|
||||
```
|
||||
|
||||
### WLAN0 | T31 + ATBM6031 SDIO | Wyze V3, HL-CAM04
|
||||
|
||||
```
|
||||
auto wlan0
|
||||
iface wlan0 inet dhcp
|
||||
pre-up modprobe mac80211
|
||||
pre-up modprobe atbm603x_wifi_sdio
|
||||
pre-up wpa_passphrase "SSID" "password" >/tmp/wpa_supplicant.conf
|
||||
pre-up sed -i '2i \\tscan_ssid=1' /tmp/wpa_supplicant.conf
|
||||
pre-up sleep 1
|
||||
pre-up wpa_supplicant -B -D nl80211 -i wlan0 -c/tmp/wpa_supplicant.conf
|
||||
post-down killall -q wpa_supplicant
|
||||
```
|
||||
|
||||
### WLAN0 | T31 | RTL8188FU | iFlytek
|
||||
|
||||
```
|
||||
auto wlan0
|
||||
iface wlan0 inet dhcp
|
||||
pre-up echo 10 > /sys/class/gpio/export
|
||||
pre-up echo out > /sys/class/gpio/gpio10/direction
|
||||
pre-up echo 1 > /sys/class/gpio/gpio10/value
|
||||
pre-up modprobe mac80211
|
||||
pre-up sleep 1
|
||||
pre-up insmod /lib/modules/8188fu.ko
|
||||
pre-up sleep 1
|
||||
pre-up wlan_addr=$(fw_printenv -n wlanaddr); if [ -n "$wlan_addr" ]; then ip link set dev wlan0 address $wlan_addr; fi
|
||||
post-up wpa_passphrase "$(fw_printenv -n wlanssid || echo OpenIPC)" "$(fw_printenv -n wlanpass || echo OpenIPC12345)" > /tmp/wpa_supplicant.conf
|
||||
post-up sed -i '2i \\tscan_ssid=1' /tmp/wpa_supplicant.conf
|
||||
post-up wpa_supplicant -B -i wlan0 -D nl80211,wext -c /tmp/wpa_supplicant.conf
|
||||
post-down killall -q wpa_supplicant
|
||||
```
|
|
@ -0,0 +1,373 @@
|
|||
# OpenIPC Wiki
|
||||
[Mục lục](../README.md)
|
||||
|
||||
Cài đặt: cách chạy OpenIPC trên phần cứng nhất định
|
||||
-------------------------------------------------------------
|
||||
|
||||
Phần cứng được hỗ trợ và quy trình cài đặt được cung cấp trên trang web [openipc.org](https://openipc.org/firmware/).
|
||||
|
||||
Vui lòng làm theo hướng dẫn trên trang web cho CPU và chip video của bạn!
|
||||
|
||||
Dưới đây là một số ví dụ:
|
||||
|
||||
[Hi3516cv300 với IMX291](https://openwrt.org/docs/techref/hardware/soc/soc.hisilicon.hi35xx/ivg-hp203y-ay)
|
||||
|
||||
[[Hi3516Ev300-IMX335]]
|
||||
|
||||
## Cách nâng cấp OpenIPC
|
||||
|
||||
Hiện tại, nâng cấp hệ thống tự động hoàn toàn như [sysupgrade][openwrtsysupgrade]
|
||||
trong OpenWRT không được hỗ trợ. Thay vào đó, hãy sử dụng cập nhật thủ công một phần.
|
||||
|
||||
### Cập nhật thủ công một phần
|
||||
|
||||
**Lưu ý!** _Nâng cấp một phần U-boot và kernel chỉ được khuyến nghị trong các trường hợp đặc biệt và nên được thực hiện cẩn thận._
|
||||
|
||||
Quá trình này được mô tả trên trang web chính trên [trang firmware](https://openipc.org/firmware/#update-parts-of-the-firmware).
|
||||
|
||||
## Câu hỏi thường gặp
|
||||
|
||||
* OpenIPC có thể được cài đặt trên Raspberry Pi hoặc phần cứng khác không?
|
||||
|
||||
Không. Hiện tại, chỉ hỗ trợ HiSilicon HI35xx SoC. Nhưng về mặt lý thuyết, có thể hỗ trợ các kiến trúc và bo mạch khác. Mặc dù điều đó sẽ đòi hỏi rất nhiều nỗ lực, và do đó, nó không phải là trọng tâm gần nhất của dự án.
|
||||
|
||||
* Tôi có thể flash ảnh OpenIPC mà không cần sử dụng bảng điều khiển UART và TFTP không?
|
||||
|
||||
Không. Hiện tại, điều đó là không thể, mặc dù chúng tôi đang nghiên cứu về vấn đề này.
|
||||
|
||||
* Sự khác biệt giữa OpenIPC dựa trên BuildRoot và dựa trên OpenWRT là gì?
|
||||
|
||||
Buildroot nhanh hơn cho việc phát triển ban đầu cho các nền tảng mới vì nó tối giản và không có phụ thuộc. OpenWRT thuận tiện cho người dùng như một sản phẩm cuối cùng, nhưng có rất nhiều phức tạp, phụ thuộc và không có ích gì khi phát triển mà không có cộng đồng.
|
||||
|
||||
### Các câu hỏi thường gặp khác
|
||||
|
||||
* [OpenIPC Wiki (ru)](https://github.com/OpenIPC/camerasrnd/blob/master/docs/FAQ-ru.md)
|
||||
|
||||
|
||||
## Những thứ liên quan đến mạng
|
||||
|
||||
Cấu hình mạng phổ biến có thể được thực hiện trong Luci GUI:
|
||||
|
||||
`http://<địa chỉ IP camera của bạn>`
|
||||
|
||||
[[3G_modems]] Hỗ trợ modem USB ở chế độ hilink và ppp
|
||||
|
||||
## Giao diện người dùng đồ họa
|
||||
|
||||
Hiện tại có hai nhánh của OpenIPC:
|
||||
|
||||
### Dựa trên OpenWRT
|
||||
|
||||
GUI dựa trên Luci. Có các phần menu để thiết lập cụ thể cho camera.
|
||||
|
||||
### Dựa trên Buildroot
|
||||
|
||||
Có một giao diện khác được lên kế hoạch ... Vẫn đang được phát triển.
|
||||
|
||||
## Khuyến nghị liên quan đến phần cứng
|
||||
|
||||
### Power Over Internet PoE
|
||||
|
||||
Nên sử dụng bộ đổi nguồn 48V với đầu nối RJ-45 thay vì 12V.
|
||||
Với bộ đổi nguồn 12V, dòng điện sẽ cao hơn 4 lần. Dòng điện cao có thể làm cháy
|
||||
đầu nối và dây RJ-45.
|
||||
|
||||
## Cách truyền phát video lên Internet
|
||||
|
||||
* __MiniHttp__ ➤ bộ phát trực tuyến âm thanh/video chính của hệ thống dựa trên OpenIPC.
|
||||
|
||||
* __Мajestic__ ➤ bộ phát trực tuyến âm thanh/video mới (đang phát triển) của hệ thống dựa trên OpenIPC.
|
||||
|
||||
* __Phát trực tuyến YouTube__
|
||||
|
||||
### MiniHttp là bộ phát trực tuyến chính của hệ thống dựa trên OpenIPC
|
||||
|
||||
Điều quan trọng là điều chỉnh cấu hình của MiniHttp bằng cách tắt các giao thức và tính năng không cần thiết để bảo mật và hiệu suất tốt hơn.
|
||||
|
||||
Tệp cấu hình nằm trong `/etc/minihttp.ini`
|
||||
|
||||
### Chế độ gỡ lỗi:
|
||||
|
||||
```killall -sigint minihttp; sleep 1; export SENSOR=`ipctool --sensor_id`; minihttp```
|
||||
|
||||
### Chế độ sản xuất:
|
||||
|
||||
```killall -sigint minihttp; sleep 1; export SENSOR=`ipctool --sensor_id`; minihttp 2>&1 | logger -p daemon.info -t minihttp &```
|
||||
|
||||
|
||||
## Công cụ xây dựng tùy chỉnh được sử dụng trong OpenIPC OS
|
||||
|
||||
[Kho lưu trữ công cụ](https://github.com/OpenIPC/packages/tree/main/utils)
|
||||
|
||||
[ipctool](https://github.com/OpenIPC/ipctool) - lấy thông tin về phần cứng
|
||||
và xuất ra ở định dạng chung. Cũng có thể được sử dụng để sao lưu và khôi phục
|
||||
phần mềm camera (tính năng vẫn đang thử nghiệm).
|
||||
|
||||
## Ví dụ tích hợp với hệ thống Ghi hình kỹ thuật số
|
||||
|
||||
Ghi lại luồng cục bộ bằng các tiện ích khác nhau.
|
||||
|
||||
YouTube như một bản hack DVR.
|
||||
|
||||
## Mẹo và thủ thuật về giám sát hệ thống OpenIPC
|
||||
|
||||
### Cách lấy nhiệt độ từ cảm biến bên trong của chip (nơi được hỗ trợ):
|
||||
|
||||
`ipctool --temp`
|
||||
|
||||
các lệnh khác để [[giám sát nhiệt độ]]
|
||||
|
||||
[[snmp]]
|
||||
|
||||
### Giám sát Prometheus
|
||||
|
||||
[[prometheus-node]]
|
||||
|
||||
### Mẫu giám sát
|
||||
|
||||
* [[Mẫu giám sát Zabbix]]
|
||||
|
||||
## Cấu hình nút Prometheus
|
||||
|
||||
[Prometheus](https://prometheus.io/) là một bộ công cụ giám sát và cảnh báo hệ thống mã nguồn mở.
|
||||
|
||||
OpenIPC có bộ xuất nút prometheus như một gói. Kết quả đầu ra có thể
|
||||
được xem dưới dạng văn bản thuần túy trên http://192.168.1.10:9100/metrics
|
||||
|
||||
Hoặc được hiển thị nếu bạn cài đặt [máy chủ proemetheus và graphana](https://prometheus.io/docs/visualization/grafana/):
|
||||
|
||||
[[images/preometheus_node_graphana_example.jpg]]
|
||||
|
||||
Bạn có thể cấu hình nút trong `/etc/config/prometheus-node-exporter-lua`.
|
||||
|
||||
### Gói meta
|
||||
|
||||
<https://github.com/ZigFisher/Glutinium/tree/master/prometheus-node-exporter-lua>
|
||||
|
||||
## Thử nghiệm với I2C trên Hi3518EV200
|
||||
|
||||
### Thiết lập i2c-x thông qua cây thiết bị
|
||||
|
||||
Trình điều khiển i2c-hisilicon tiêu chuẩn không cung cấp tùy chọn để đặt chân thành chế độ i2c
|
||||
nếu trước đó chúng được đặt thành dts. Để tự động đặt các chân bắt buộc
|
||||
sang chế độ i2c, bạn chỉ cần thêm đoạn mã sau vào đầu
|
||||
hi_i2c_hw_init (linux/drivers/i2c/busses/i2c-hisilicon.c)
|
||||
|
||||
```
|
||||
#ifdef CONFIG_ARCH_HI3518EV200 // Có thể giống với các thiết bị phần cứng khác
|
||||
if(pinfo->mem->start = 0x200d0000 /* địa chỉ i2c-0 */) {
|
||||
writel(0x2, 0x200f0040);
|
||||
writel(0x2, 0x200f0044);
|
||||
}
|
||||
if(pinfo->mem->start = 0x20240000 /* địa chỉ i2c-1 */) {
|
||||
writel(0x1, 0x200f0050);
|
||||
writel(0x1, 0x200f0054);
|
||||
}
|
||||
if(pinfo->mem->start = 0x20250000 /* địa chỉ i2c-2 */) {
|
||||
writel(0x1, 0x200f0060);
|
||||
writel(0x1, 0x200f0064);
|
||||
}
|
||||
#endif
|
||||
```
|
||||
|
||||
## Thông tin liên quan đến R&D
|
||||
|
||||
### Cách [[đăng nhập bên trong]] firmware gốc
|
||||
|
||||
### Nhận xét [[Nhật ký Majestic]]
|
||||
|
||||
### [[DevTools]]
|
||||
|
||||
### [[Tài liệu trên các camera IP khác nhau]]
|
||||
|
||||
### Các nhóm trong Telegram liên quan đến phát triển:
|
||||
|
||||
|
||||
## Công cụ được sử dụng trong Nghiên cứu và Phát triển
|
||||
|
||||
[hisi-trace](https://github.com/OpenIPC/hisi-trace) --> công cụ để chạy Sofia bên trong
|
||||
OpenIPC. Cho phép chuyển các chức năng Sofia gốc sang hệ thống đích mà không cần
|
||||
tải trong firmware gốc.
|
||||
|
||||
[một số công cụ để tháo rời](https://github.com/TekuConcept/ArmElfDisassembler)
|
||||
|
||||
## Tài liệu về SoC hiện không được hỗ trợ:
|
||||
|
||||
[Novatek NV98515 SoC](https://github.com/hn/reolink-camera)
|
||||
|
||||
Các diễn đàn liên quan đến hack & mod khác nhau của Camera IP:
|
||||
|
||||
<https://www.goprawn.com/>
|
||||
|
||||
Dưới đây là một số ví dụ về cách ghi lại luồng video bằng các tiện ích khác nhau.
|
||||
|
||||
### gstreamer
|
||||
|
||||
* luồng rtsp h264:
|
||||
|
||||
`gst-launch-1.0 rtspsrc location=rtsp://192.168.1.10:554/stream=0 ! rtpjitterbuffer ! rtph264depay ! h264parse ! mp4mux ! filesink location=stream0_h264.mp4 -e`
|
||||
|
||||
* luồng rtsp h265:
|
||||
|
||||
`gst-launch-1.0 rtspsrc location=rtsp://192.168.1.10:554/stream=0 ! rtpjitterbuffer ! rtph265depay ! h265parse ! mp4mux ! filesink location=stream0_h265.mp4 -e`
|
||||
|
||||
### ffmpeg
|
||||
|
||||
### vlc
|
||||
|
||||
## Cách đăng nhập bên trong firmware gốc
|
||||
|
||||
Thông tin chỉ áp dụng cho firmware camera dựa trên XM.
|
||||
|
||||
### Bật máy chủ telnet
|
||||
|
||||
Trong bảng điều khiển U-Boot:
|
||||
|
||||
```
|
||||
setenv telnetctrl 1; saveenv
|
||||
```
|
||||
|
||||
### Kết nối bằng telnet
|
||||
|
||||
```
|
||||
LocalHost login: root
|
||||
Password: xmhdipc
|
||||
Welcome to HiLinux.
|
||||
```
|
||||
|
||||
Ngoài ra, có thể thử [các cặp khác](https://gist.github.com/gabonator/74cdd6ab4f733ff047356198c781f27d)
|
||||
|
||||
### Tùy chọn: bật khởi động chi tiết kernel Linux (nơi tồn tại armbenv)
|
||||
|
||||
```
|
||||
# armbenv -s xmuart 0
|
||||
# reboot
|
||||
```
|
||||
|
||||
Hoặc trong trường hợp tồn tại XmEnv:
|
||||
|
||||
```
|
||||
# XmEnv -s xmuart 0
|
||||
# reboot
|
||||
```
|
||||
|
||||
### Bật telnet mà không cần mở camera (từ xa)
|
||||
|
||||
* Tìm tệp zip thích hợp với bản cập nhật firmware gần đây bằng cách sử dụng [liên kết](https://translate.google.com/translate?hl=en&sl=ru&tl=en&u=https%3A%2F%2Fwww.cctvsp.ru%2Farticles%2Fobnovlenie-proshivok-dlya-ip-kamer-ot-xiong-mai) và tải xuống.
|
||||
|
||||
* Giải nén nó và chọn tệp `bin` thích hợp từ một số tùy chọn.
|
||||
|
||||
* Nên cập nhật camera của bạn bằng cách sử dụng firmware gốc này mà không cần
|
||||
sửa đổi nó. Nó sẽ giúp hiểu các vấn đề có thể xảy ra. Sử dụng `General...` nếu
|
||||
không chắc chắn bạn muốn tùy chọn nào.
|
||||
|
||||
* Giải nén tệp `bin` như thể nó là kho lưu trữ zip thông thường.
|
||||
|
||||
* Sao chép `add_xmuart.sh` từ thư mục `utils` của kho lưu trữ vào bên trong thư mục
|
||||
với các tệp đã giải nén.
|
||||
|
||||
* Chạy `./add_xmaurt.sh` và sau đó đảm bảo rằng `u-boot.env.img` có
|
||||
`xmuart=1telnetctrl=1` gần cuối tệp.
|
||||
|
||||
* Đóng gói lại tệp `bin` bằng cách thêm `u-boot.env.img` đã thay đổi vào đó như thế này:
|
||||
`zip -u General_IPC_HI3516EV200_85H30AI_S38.Nat.dss.OnvifS.HIK_V5.00.R02.20200507_all.bin u-boot.env.img`
|
||||
|
||||
* Nâng cấp camera bằng cách sử dụng tệp `bin` mới.
|
||||
|
||||
Nguồn tài liệu gốc là [ở đây](https://github.com/OpenIPC/camerasrnd/blob/master/get_telnet.md)
|
||||
|
||||
## Lệnh để đo nhiệt độ chip trên các SoC khác nhau
|
||||
|
||||
`Hi3516CV200 / Hi3518EV200 / Hi3518EV201`
|
||||
```sh
|
||||
devmem 0x20270110 32 0x60FA0000 ; devmem 0x20270114 8 | awk '{print "Nhiệt độ CPU: " ((($1)*180)/256)-40}'
|
||||
```
|
||||
|
||||
`Hi3516CV300 / Hi3518EV100`
|
||||
```sh
|
||||
devmem 0x1203009C 32 0x60FA0000 ; devmem 0x120300A4 16 | awk '{print "Nhiệt độ CPU: " (((($1)-125.0)/806)*165)-40}'
|
||||
```
|
||||
|
||||
`Hi3516EV200 / Hi3516EV300`
|
||||
```sh
|
||||
devmem 0x120280B4 32 0xC3200000 ; devmem 0x120280BC 16 | awk '{print "Nhiệt độ CPU: " (((($1)-117)/798)*165)-40}'
|
||||
```
|
||||
|
||||
`Hi3536D`
|
||||
```sh
|
||||
himm 0x0120E0110 0x60320000 > /dev/null; himm 0x120E0118 | awk '{print $4}' | dd skip=1 bs=7 2>/dev/null | awk '{print "0x"$1}' | awk '{print "Nhiệt độ CPU: " (($1*180)/256)-40}'
|
||||
```
|
||||
|
||||
`Hi3536C`
|
||||
```sh
|
||||
himm 0x0120E0110 0x60320000 > /dev/null; himm 0x120E0118 | awk '{print $4}' | dd skip=1 bs=7 2>/dev/null | awk '{print "0x"$1}' | awk '{print "Nhiệt độ CPU: " (($1-125)/806)*165-40}'
|
||||
```
|
||||
|
||||
`HI3520DV200`
|
||||
```sh
|
||||
devmem 20060020 32
|
||||
```
|
||||
|
||||
`Hi3516AV200`
|
||||
```sh
|
||||
#PERI_PMC68 0x120a0110 (tắt-->bật)
|
||||
himm 0x120a0110 0 > /dev/null;
|
||||
himm 0x120a0110 0x40000000 > /dev/null;
|
||||
|
||||
usleep 100000
|
||||
#PERI_PMC70 0x120a0118 đọc nhiệt độ
|
||||
DATA0=$(himm 0x120a0118 0 | grep 0x120a0118)
|
||||
DATA1=$(printf "$DATA0" | sed 's/0x120a0118: //')
|
||||
DATA2=$(printf "$DATA1" | sed 's/ --> 0x00000000//')
|
||||
|
||||
let "var=$DATA2&0x3ff"
|
||||
if [ $var -ge 125 -a $var -le 931 ];then
|
||||
echo `awk -v x="$var" 'BEGIN{printf "nhiệt độ chip: %f\n",(x-125)*10000/806*165/10000-40}'`
|
||||
else
|
||||
echo "$var ---> không hợp lệ. [125,931]"
|
||||
fi
|
||||
```
|
||||
|
||||
## Phát trực tiếp lên YouTube
|
||||
|
||||
YouTube không chỉ cung cấp LiveStreaming mà còn có thể ghi lại luồng này.
|
||||
|
||||
Có thể ghi lại tối đa 12 giờ LiveStream.
|
||||
|
||||
Phát trực tiếp lên YouTube là có thể nhưng hiện tại OpenIPC không hỗ trợ.
|
||||
|
||||
### Phát trực tiếp có thể được thực hiện với MiniHttp
|
||||
|
||||
Phát trực tiếp lên YouTube có thể được thực hiện với sự trợ giúp của RTMP nhưng hiện tại
|
||||
không có kế hoạch nào thêm giao thức này vào bộ phát trực tuyến chính MiniHttp.
|
||||
|
||||
### Phát trực tiếp có thể được thực hiện với FFMPEG
|
||||
|
||||
Có hai chế độ khả dụng: chế độ cũ, hỗ trợ H264 qua RTMP,
|
||||
và chế độ mới, với H265 qua HLS.
|
||||
|
||||
Cả hai phương pháp đều chưa được thử nghiệm trong sản xuất và vẫn đang ở chế độ phát triển.
|
||||
Xem các liên kết sau để biết chi tiết:
|
||||
|
||||
### H264 qua RTMP
|
||||
|
||||
Điều hướng đến gói đã biên dịch [H264 qua RTMP](https://github.com/ZigFisher/Glutinium/tree/master/hi35xx-ffmpeg/files)
|
||||
|
||||
Sao chép tệp `silence.aac` vào `/usr/lib/` và tệp `ffmpeg` vào `/usr/sbin/`
|
||||
|
||||
Ngoài ra, hãy đặt quyền thực thi:
|
||||
|
||||
`chmod +x /usr/sbin/ffmpeg`
|
||||
|
||||
Chạy `ffmpeg` với các thông số sau:
|
||||
|
||||
`ffmpeg -stream_loop -1 -i /usr/lib/silence.aac -rtsp_transport udp -thread_queue_size 64 -i rtsp://127.0.0.1:554/stream=0 -c:v copy -c:a copy -f flv rtmp://a.rtmp.youtube.com/live2/<khóa của bạn>`
|
||||
|
||||
[H265 qua HLS](https://gist.github.com/widgetii/ec275524dd621cd55774c952bee4c622)
|
||||
|
||||
Một số hướng dẫn xây dựng:
|
||||
|
||||
<https://github.com/ZigFisher/Glutinium/blob/master/hi35xx-ffmpeg/0_Build.sh>
|
||||
|
||||
[openwrtsysupgrade]: https://github.com/openwrt/openwrt/blob/master/package/base-files/files/sbin/sysupgrade
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
# OpenIPC Wiki
|
||||
[Mục lục](../README.md)
|
||||
|
||||
Cài đặt cũ
|
||||
---
|
||||
|
||||
- [Hướng dẫn Goke cũ](../en/install-goke.md)
|
||||
- [Hướng dẫn HiSilicon cũ](../en/install-hisi.md)
|
||||
- [Hướng dẫn Novatek cũ](../en/install-novatek.md)
|
||||
- [Hướng dẫn SigmaStar cũ](../en/install-sigmastar.md)
|
||||
- [Hướng dẫn XM510 cũ](../en/install-xm510.md)
|
||||
- [Hướng dẫn XM530 cũ](../en/install-xm530.md)
|
|
@ -0,0 +1,651 @@
|
|||
# OpenIPC Wiki
|
||||
[Mục lục](../README.md)
|
||||
|
||||
Giới thiệu
|
||||
------------
|
||||
|
||||
Trang này mô tả biến thể firmware dựa trên OpenWRT.
|
||||
|
||||
### Các tính năng của Firmware
|
||||
|
||||
* RTSP, ONVIF, NETIP
|
||||
* Hỗ trợ dịch vụ ipeye gốc
|
||||
* Hỗ trợ squashfs, jffs2, overlayfs, vfat
|
||||
* Hỗ trợ Vlan và cầu nối
|
||||
* Hệ thống gói OPKG tiêu chuẩn
|
||||
* Tiny SNMP daemon
|
||||
* Curl với SSL để tải lên/tải xuống tệp
|
||||
* Chạy lệnh tùy ý từ u-boot ENV (linux_cmd=)
|
||||
* VPN L2/L3 đơn giản với định hình lưu lượng và nén (vtun)
|
||||
* Đơn giản là bot Telegram gửi (estgb)
|
||||
* Hỗ trợ modem USB 3G/4G chi phí thấp ở chế độ hilink
|
||||
* Dịch vụ đường hầm µVPN
|
||||
* và hơn thế nữa ...
|
||||
|
||||
|
||||
### Thiết bị được hỗ trợ
|
||||
|
||||
Chúng tôi hướng đến việc phát triển firmware **phổ biến**, di động hỗ trợ nhiều loại
|
||||
nhà sản xuất và cung cấp các bản cập nhật và sửa lỗi mà các nhà cung cấp thường xuyên
|
||||
không thể cung cấp.
|
||||
|
||||
Danh sách được cập nhật liên tục, vui lòng truy cập thường xuyên và/hoặc theo dõi các nhóm Telegram
|
||||
của chúng tôi để nhận thông báo phát hành mới.
|
||||
|
||||
Thêm thông tin về cảm biến: [https://cctvsp.ru][8] (được dịch từ tiếng Nga
|
||||
với Google Dịch).
|
||||
|
||||
|
||||
### Giao diện web
|
||||
|
||||
* <http://192.168.1.10/> - Giao diện hệ thống tiêu chuẩn dựa trên OpenWrt Luci
|
||||
|
||||
|
||||
### Bộ phát trực tuyến Majestic
|
||||
|
||||
Majestic là một ứng dụng phát video trực tuyến, trái tim của firmware của chúng tôi (liên quan
|
||||
đến chức năng giám sát camera/video). Nó có thể cấu hình thông qua
|
||||
tệp `/etc/majestic.yaml` và theo mặc định, nhiều tính năng/dịch vụ được bật.
|
||||
Các tùy chọn không cần thiết có thể được tắt để bảo mật và hiệu suất tốt hơn.
|
||||
|
||||
Để chạy `majestic` ở chế độ gỡ lỗi:
|
||||
|
||||
```bash
|
||||
killall -sigint majestic; export SENSOR=$(ipctool --sensor_id); majestic
|
||||
```
|
||||
|
||||
Để chạy `majestic` ở chế độ sản xuất, hãy khởi động lại camera hoặc chạy lệnh:
|
||||
|
||||
```bash
|
||||
killall -sigint majestic; export SENSOR=$(ipctool --sensor_id); majestic 2>&1 | logger -p daemon.info -t majestic &
|
||||
```
|
||||
|
||||
|
||||
### URL liên quan đến camera trong firmware
|
||||
|
||||
Thông tin về URL của bộ phát trực tuyến và mô tả của chúng có thể được tìm thấy trong [Wiki][9].
|
||||
|
||||
|
||||
### Dữ liệu thống kê
|
||||
|
||||
Phần mềm có thể thực hiện thu thập dữ liệu sử dụng sản phẩm bao gồm tên SoC và kiểu cảm biến
|
||||
để thu thập số liệu thống kê được sử dụng trong quy trình QA.
|
||||
|
||||
Chúng tôi đảm bảo rằng dữ liệu được ẩn danh hoàn toàn và không chứa bất cứ điều gì
|
||||
có thể được coi là dữ liệu về một cá nhân, có thể được coi là dữ liệu của người dùng cuối;
|
||||
hoặc điều đó có thể nhạy cảm hoặc bí mật đối với người dùng.
|
||||
|
||||
|
||||
Nhận firmware
|
||||
----------------
|
||||
|
||||
### Tải xuống (dev mới nhất)
|
||||
|
||||
| Trạng thái xây dựng | SoC | U-Boot | Kernel | Rootfs |
|
||||
|----------------------------|-------------|-------------|---------------|---------------|
|
||||
| ![Hi3516Cv100 images][b1] | Hi3516CV100 | [uboot][u1] | [kernel][k1] | [rootfs][r1] |
|
||||
| ![Hi3516Cv200 images][b2] | Hi3516CV200 | [uboot][u2] | [kernel][k2] | [rootfs][r2] |
|
||||
| ![Hi3516Cv300 images][b3] | Hi3516CV300 | [uboot][u3] | [kernel][k3] | [rootfs][r3] |
|
||||
| ![Hi3516Ev100 images][b4] | Hi3516EV100 | [uboot][u4] | [kernel][k4] | [rootfs][r4] |
|
||||
| ![Hi3518Av100 images][b5] | Hi3518AV100 | [uboot][u5] | [kernel][k5] | [rootfs][r5] |
|
||||
| ![Hi3518Cv100 images][b6] | Hi3518CV100 | [uboot][u6] | [kernel][k6] | [rootfs][r6] |
|
||||
| ![Hi3518Ev100 images][b7] | Hi3518EV100 | [uboot][u7] | [kernel][k7] | [rootfs][r7] |
|
||||
| ![Hi3518Ev200 images][b8] | Hi3518EV200 | [uboot][u8] | [kernel][k8] | [rootfs][r8] |
|
||||
| ![Hi3518Ev201 images][b9] | Hi3518EV201 | [uboot][u9] | [kernel][k9] | [rootfs][r9] |
|
||||
| ![Hi3520Dv100 images][b10] | Hi3520DV100 | ! | [kernel][k10] | [rootfs][r10] |
|
||||
| ![Hi3520Dv200 images][b11] | Hi3520DV200 | ! | [kernel][k11] | [rootfs][r11] |
|
||||
|
||||
|
||||
### Bản phát hành
|
||||
|
||||
Các **bản phát hành** của firmware OpenIPC được lưu trữ tại <https://github.com/OpenIPC/chaos_calmer/releases>.
|
||||
|
||||
|
||||
### Mã nguồn
|
||||
|
||||
**Mã nguồn** của firmware OpenIPC được lưu trữ tại <https://github.com/openipc/chaos_calmer>.
|
||||
|
||||
|
||||
Xây dựng từ mã nguồn
|
||||
--------------------
|
||||
|
||||
### Xây dựng trên máy Linux
|
||||
|
||||
Ví dụ sử dụng cho Debian 8/9
|
||||
|
||||
```bash
|
||||
git clone --depth=1 https://github.com/OpenIPC/chaos_calmer.git OpenIPC
|
||||
cd OpenIPC
|
||||
./Project_OpenIPC.sh update
|
||||
./Project_OpenIPC.sh 16cv300_DEFAULT
|
||||
```
|
||||
|
||||
|
||||
### Sử dụng Docker để xây dựng
|
||||
|
||||
> **Dockerfile.openipc mặc định**
|
||||
|
||||
```docker
|
||||
FROM debian:stretch
|
||||
|
||||
RUN DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& apt-get --no-install-recommends -y install bc bison build-essential \
|
||||
ca-certificates cmake cpio curl dos2unix file flex gawk gcc-multilib \
|
||||
gettext gettext-base git intltool libc6-dev liblocale-gettext-perl \
|
||||
libncurses-dev libssl-dev locales mc openssl python rsync subversion \
|
||||
time tofrodos unzip upx wget zlib1g-dev \
|
||||
&& localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias \
|
||||
en_US.UTF-8 && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ENV LANG en_US.utf8
|
||||
|
||||
WORKDIR /src/openipc
|
||||
|
||||
RUN git clone --depth=1 https://github.com/OpenIPC/chaos_calmer.git /src/openipc
|
||||
RUN ./Project_OpenIPC.sh update
|
||||
RUN ./Project_OpenIPC.sh 18ev200_DEFAULT # <= Thay đổi ID này thành hồ sơ của bạn
|
||||
```
|
||||
|
||||
> **Bắt đầu xây dựng**
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
|
||||
docker build -t openipc -f Dockerfile.openipc .
|
||||
```
|
||||
|
||||
|
||||
Chuẩn bị cài đặt
|
||||
--------------------
|
||||
|
||||
### Truy cập vào U-boot
|
||||
|
||||
Kết nối nối tiếp (UART) với thiết bị camera của bạn là bắt buộc.
|
||||
|
||||
* CamHi | Nhấn **Ctrl+C** trong khi khởi động U-boot và mật khẩu truy cập - HI2105CHIP
|
||||
* Dahua | Nhấn **Shift 8** trong khi khởi động U-boot
|
||||
* JVT | Nhấn **Ctrl+Q** trong khi khởi động U-boot
|
||||
* XM | Nhấn **Ctrl+C** trong khi khởi động U-boot
|
||||
* SigmaStar | Nhấn **Ctrl+B** (UNIV) hoặc **Enter** (Anjvision) trong khi khởi động U-boot
|
||||
|
||||
|
||||
### Sao lưu MAC gốc
|
||||
|
||||
Bạn chắc chắn nên ghi lại MAC gốc của thiết bị trên cổng eth0.
|
||||
|
||||
Điều này rất **quan trọng** và sẽ cần thiết ở giai đoạn cấu hình thiết bị cuối cùng.
|
||||
|
||||
|
||||
### Sao lưu firmware gốc
|
||||
|
||||
#### Flash 8M
|
||||
|
||||
```txt
|
||||
setenv ipaddr 192.168.1.10
|
||||
setenv serverip 192.168.1.254
|
||||
sf probe 0
|
||||
mw.b 0x82000000 ff 1000000
|
||||
sf read 0x82000000 0x0 0x800000
|
||||
tftp 0x82000000 fullflash.img 0x800000
|
||||
```
|
||||
|
||||
#### Flash 16M
|
||||
|
||||
```txt
|
||||
setenv ipaddr 192.168.1.10
|
||||
setenv serverip 192.168.1.254
|
||||
sf probe 0
|
||||
mw.b 0x82000000 ff 1000000
|
||||
sf read 0x82000000 0x0 0x1000000
|
||||
tftp 0x82000000 fullflash.img 0x1000000
|
||||
```
|
||||
|
||||
#### Flash 32M
|
||||
|
||||
```txt
|
||||
setenv ipaddr 192.168.1.10
|
||||
setenv serverip 192.168.1.254
|
||||
sf probe 0
|
||||
mw.b 0x82000000 ff 2000000
|
||||
sf read 0x82000000 0x0 0x2000000
|
||||
tftp 0x82000000 fullflash.img 0x2000000
|
||||
```
|
||||
|
||||
|
||||
### Flash và bố cục bộ nhớ
|
||||
|
||||
Chúng tôi đã phát triển một hệ thống phân vùng phổ biến cho chip flash camera,
|
||||
và hiện nó có sẵn dưới dạng tiêu chuẩn cho tất cả các loại thiết bị. (Lưu ý
|
||||
rằng điều đó có nghĩa là nó có thể không khớp với bố cục flash của nhà cung cấp.)
|
||||
|
||||
#### Bố cục flash OpenIPC
|
||||
|
||||
```txt
|
||||
0x000000000000-0x000000040000 : "boot"
|
||||
0x000000040000-0x000000050000 : "env"
|
||||
0x000000050000-0x000000250000 : "kernel"
|
||||
0x000000250000-0x000000750000 : "rootfs"
|
||||
0x000000750000-0x000001000000 : "rootfs_data"
|
||||
```
|
||||
|
||||
#### Địa chỉ tải bộ nhớ Kernel
|
||||
|
||||
```txt
|
||||
loadaddr-$(CONFIG_TARGET_hi35xx_16cv100) := 0x80008000
|
||||
loadaddr-$(CONFIG_TARGET_hi35xx_16cv200) := 0x80008000
|
||||
loadaddr-$(CONFIG_TARGET_hi35xx_16cv300) := 0x80008000
|
||||
loadaddr-$(CONFIG_TARGET_hi35xx_16dv100) := 0x80008000
|
||||
loadaddr-$(CONFIG_TARGET_hi35xx_16ev100) := 0x80008000
|
||||
loadaddr-$(CONFIG_TARGET_hi35xx_16ev200) := 0x40008000
|
||||
loadaddr-$(CONFIG_TARGET_hi35xx_16ev300) := 0x40008000
|
||||
loadaddr-$(CONFIG_TARGET_hi35xx_18cv100) := 0x80008000
|
||||
loadaddr-$(CONFIG_TARGET_hi35xx_18ev100) := 0x80008000
|
||||
loadaddr-$(CONFIG_TARGET_hi35xx_18ev200) := 0x80008000
|
||||
loadaddr-$(CONFIG_TARGET_hi35xx_18ev201) := 0x80008000
|
||||
loadaddr-$(CONFIG_TARGET_hi35xx_18ev300) := 0x40008000
|
||||
loadaddr-$(CONFIG_TARGET_hi35xx_20dv100) := 0x80008000
|
||||
loadaddr-$(CONFIG_TARGET_hi35xx_20dv200) := 0x80008000
|
||||
```
|
||||
|
||||
|
||||
Flash firmware mới
|
||||
---------------------
|
||||
|
||||
**Chú ý!**
|
||||
|
||||
Tất cả các ví dụ đều cho biết việc tải xuống các thành phần firmware thông qua máy chủ TFTP.
|
||||
Nếu thiết bị của bạn không có cổng Ethernet, hãy thay thế tất cả các lệnh `tftp` bằng
|
||||
`fatload mmc 0:1`. Ví dụ:
|
||||
|
||||
```txt
|
||||
tftp 0x82000000 openwrt-hi35xx-XXXXX-u-boot.bin
|
||||
#
|
||||
fatload mmc 0:1 0x82000000 openwrt-hi35xx-XXXXX-u-boot.bin
|
||||
```
|
||||
|
||||
### Hi3516Cv100
|
||||
|
||||
**Loại bo mạch này có hệ thống điều khiển Ethernet bổ sung thông qua GPIO và
|
||||
thanh ghi. Tham khảo ý kiến chuyên gia!**
|
||||
|
||||
**Thiết bị thử nghiệm:**
|
||||
|
||||
* 00:12:16:FA:F3:52
|
||||
* 00:12:12:10:31:54 - BLK18C_0222_38x38_S_v1.03
|
||||
|
||||
```txt
|
||||
setenv ipaddr 192.168.1.10
|
||||
setenv serverip 192.168.1.254
|
||||
sf probe 0; sf lock 0
|
||||
|
||||
mw.b 0x82000000 ff 1000000
|
||||
tftp 0x82000000 openwrt-hi35xx-16cv100-u-boot.bin
|
||||
sf erase 0x0 0x50000
|
||||
sf write 0x82000000 0x0 ${filesize}
|
||||
|
||||
mw.b 0x82000000 ff 1000000
|
||||
tftp 0x82000000 openwrt-hi35xx-16cv100-default-uImage
|
||||
sf erase 0x50000 0x200000
|
||||
sf write 0x82000000 0x50000 ${filesize}
|
||||
|
||||
mw.b 0x82000000 ff 1000000
|
||||
tftp 0x82000000 openwrt-hi35xx-16cv100-default-root.squashfs
|
||||
sf erase 0x250000 0x500000
|
||||
sf write 0x82000000 0x250000 ${filesize}
|
||||
```
|
||||
|
||||
### Hi3516Cv200
|
||||
|
||||
```txt
|
||||
setenv ipaddr 192.168.1.10
|
||||
setenv serverip 192.168.1.254
|
||||
sf probe 0; sf lock 0
|
||||
|
||||
mw.b 0x82000000 ff 1000000
|
||||
tftp 0x82000000 openwrt-hi35xx-16cv200-u-boot.bin
|
||||
sf erase 0x0 0x50000
|
||||
sf write 0x82000000 0x0 ${filesize}
|
||||
|
||||
mw.b 0x82000000 ff 1000000
|
||||
tftp 0x82000000 openwrt-hi35xx-16cv200-default-uImage
|
||||
sf erase 0x50000 0x200000
|
||||
sf write 0x82000000 0x50000 ${filesize}
|
||||
|
||||
mw.b 0x82000000 ff 1000000
|
||||
tftp 0x82000000 openwrt-hi35xx-16cv200-default-root.squashfs
|
||||
sf erase 0x250000 0x500000
|
||||
sf write 0x82000000 0x250000 ${filesize}
|
||||
```
|
||||
|
||||
### Hi3516Cv300
|
||||
|
||||
```txt
|
||||
setenv ipaddr 192.168.1.10
|
||||
setenv serverip 192.168.1.254
|
||||
sf probe 0; sf lock 0
|
||||
|
||||
mw.b 0x82000000 ff 1000000
|
||||
tftp 0x82000000 openwrt-hi35xx-16cv300-u-boot.bin
|
||||
sf erase 0x0 0x50000
|
||||
sf write 0x82000000 0x0 ${filesize}
|
||||
|
||||
mw.b 0x82000000 ff 1000000
|
||||
tftp 0x82000000 openwrt-hi35xx-16cv300-default-uImage
|
||||
sf erase 0x50000 0x200000
|
||||
sf write 0x82000000 0x50000 ${filesize}
|
||||
|
||||
mw.b 0x82000000 ff 1000000
|
||||
tftp 0x82000000 openwrt-hi35xx-16cv300-default-root.squashfs
|
||||
sf erase 0x250000 0x500000
|
||||
sf write 0x82000000 0x250000 ${filesize}
|
||||
```
|
||||
|
||||
### Hi3516Ev100
|
||||
|
||||
**Thiết bị thử nghiệm:**
|
||||
|
||||
* 00:12:13:02:d7:2c
|
||||
|
||||
```txt
|
||||
setenv ipaddr 192.168.1.10
|
||||
setenv serverip 192.168.1.254
|
||||
sf probe 0; sf lock 0
|
||||
|
||||
mw.b 0x82000000 ff 1000000
|
||||
tftp 0x82000000 openwrt-hi35xx-16ev100-u-boot.bin
|
||||
sf erase 0x0 0x50000
|
||||
sf write 0x82000000 0x0 ${filesize}
|
||||
|
||||
mw.b 0x82000000 ff 1000000
|
||||
tftp 0x82000000 openwrt-hi35xx-16cv300-default-uImage
|
||||
sf erase 0x50000 0x200000
|
||||
sf write 0x82000000 0x50000 ${filesize}
|
||||
|
||||
mw.b 0x82000000 ff 1000000
|
||||
tftp 0x82000000 openwrt-hi35xx-16cv300-default-root.squashfs
|
||||
sf erase 0x250000 0x500000
|
||||
sf write 0x82000000 0x250000 ${filesize}
|
||||
```
|
||||
|
||||
### Hi3518Cv100
|
||||
|
||||
**Loại bo mạch này có hệ thống điều khiển Ethernet bổ sung thông qua GPIO và
|
||||
thanh ghi. Tham khảo ý kiến chuyên gia!**
|
||||
|
||||
```txt
|
||||
setenv ipaddr 192.168.1.10
|
||||
setenv serverip 192.168.1.254
|
||||
sf probe 0; sf lock 0
|
||||
|
||||
mw.b 0x82000000 ff 1000000
|
||||
tftp 0x82000000 openwrt-hi35xx-18cv100-u-boot.bin
|
||||
sf erase 0x0 0x50000
|
||||
sf write 0x82000000 0x0 ${filesize}
|
||||
|
||||
mw.b 0x82000000 ff 1000000
|
||||
tftp 0x82000000 openwrt-hi35xx-16cv100-default-uImage
|
||||
sf erase 0x50000 0x200000
|
||||
sf write 0x82000000 0x50000 ${filesize}
|
||||
|
||||
mw.b 0x82000000 ff 1000000
|
||||
tftp 0x82000000 openwrt-hi35xx-16cv100-default-root.squashfs
|
||||
sf erase 0x250000 0x500000
|
||||
sf write 0x82000000 0x250000 ${filesize}
|
||||
```
|
||||
|
||||
### Hi3518Ev100
|
||||
|
||||
**Loại bo mạch này có hệ thống điều khiển Ethernet bổ sung thông qua GPIO và
|
||||
thanh ghi. Tham khảo ý kiến chuyên gia!**
|
||||
|
||||
```txt
|
||||
setenv ipaddr 192.168.1.10
|
||||
setenv serverip 192.168.1.254
|
||||
sf probe 0; sf lock 0
|
||||
|
||||
mw.b 0x82000000 ff 1000000
|
||||
tftp 0x82000000 openwrt-hi35xx-18ev100-u-boot.bin
|
||||
sf erase 0x0 0x50000
|
||||
sf write 0x82000000 0x0 ${filesize}
|
||||
|
||||
mw.b 0x82000000 ff 1000000
|
||||
tftp 0x82000000 openwrt-hi35xx-18ev100-default-uImage
|
||||
sf erase 0x50000 0x200000
|
||||
sf write 0x82000000 0x50000 ${filesize}
|
||||
|
||||
mw.b 0x82000000 ff 1000000
|
||||
tftp 0x82000000 openwrt-hi35xx-18ev100-default-root.squashfs
|
||||
sf erase 0x250000 0x500000
|
||||
sf write 0x82000000 0x250000 ${filesize}
|
||||
```
|
||||
|
||||
### Hi3518Ev200
|
||||
|
||||
```txt
|
||||
setenv ipaddr 192.168.1.10
|
||||
setenv serverip 192.168.1.254
|
||||
sf probe 0; sf lock 0
|
||||
|
||||
mw.b 0x82000000 ff 1000000
|
||||
tftp 0x82000000 openwrt-hi35xx-18ev200-u-boot.bin
|
||||
sf erase 0x0 0x50000
|
||||
sf write 0x82000000 0x0 ${filesize}
|
||||
|
||||
mw.b 0x82000000 ff 1000000
|
||||
tftp 0x82000000 openwrt-hi35xx-18ev200-default-uImage
|
||||
sf erase 0x50000 0x200000
|
||||
sf write 0x82000000 0x50000 ${filesize}
|
||||
|
||||
mw.b 0x82000000 ff 1000000
|
||||
tftp 0x82000000 openwrt-hi35xx-18ev200-default-root.squashfs
|
||||
sf erase 0x250000 0x500000
|
||||
sf write 0x82000000 0x250000 ${filesize}
|
||||
```
|
||||
|
||||
### Hi3520Dv100
|
||||
|
||||
```txt
|
||||
setenv ipaddr 192.168.1.10
|
||||
setenv serverip 192.168.1.254
|
||||
sf probe 0; sf lock 0
|
||||
|
||||
mw.b 0x82000000 ff 1000000
|
||||
tftp 0x82000000 openwrt-hi35xx-20dv100-experimental-u-boot.bin
|
||||
sf erase 0x0 0x50000
|
||||
sf write 0x82000000 0x0 ${filesize}
|
||||
|
||||
mw.b 0x82000000 ff 1000000
|
||||
tftp 0x82000000 openwrt-hi35xx-20dv100-default-uImage
|
||||
sf erase 0x50000 0x200000
|
||||
sf write 0x82000000 0x50000 ${filesize}
|
||||
|
||||
mw.b 0x82000000 ff 1000000
|
||||
tftp 0x82000000 openwrt-hi35xx-20dv100-default-root.squashfs
|
||||
sf erase 0x250000 0x500000
|
||||
sf write 0x82000000 0x250000 ${filesize}
|
||||
```
|
||||
|
||||
### Hi3520Dv200
|
||||
|
||||
```txt
|
||||
setenv ipaddr 192.168.1.10
|
||||
setenv serverip 192.168.1.254
|
||||
sf probe 0; sf lock 0
|
||||
|
||||
mw.b 0x82000000 ff 1000000
|
||||
tftp 0x82000000 openwrt-hi35xx-20dv200-experimental-u-boot.bin
|
||||
sf erase 0x0 0x50000
|
||||
sf write 0x82000000 0x0 ${filesize}
|
||||
|
||||
mw.b 0x82000000 ff 1000000
|
||||
tftp 0x82000000 openwrt-hi35xx-20dv200-default-uImage
|
||||
sf erase 0x50000 0x200000
|
||||
sf write 0x82000000 0x50000 ${filesize}
|
||||
|
||||
mw.b 0x82000000 ff 1000000
|
||||
tftp 0x82000000 openwrt-hi35xx-20dv200-default-root.squashfs
|
||||
sf erase 0x250000 0x500000
|
||||
sf write 0x82000000 0x250000 ${filesize}
|
||||
```
|
||||
|
||||
|
||||
Cập nhật các phần của firmware
|
||||
------------------------------
|
||||
|
||||
Nếu bạn đã cài đặt firmware OpenIPC, bạn có thể cập nhật các
|
||||
phân vùng flash riêng lẻ từ dòng lệnh shell:
|
||||
|
||||
|
||||
### Cập nhật u-boot
|
||||
|
||||
```bash
|
||||
flashcp -v openwrt-hi35xx-XXXXX-u-boot.bin boot
|
||||
```
|
||||
|
||||
> **hoặc**
|
||||
|
||||
```bash
|
||||
flashcp -v openwrt-hi35xx-XXXXX-u-boot.bin /dev/mtd0
|
||||
```
|
||||
|
||||
|
||||
### Cập nhật kernel
|
||||
|
||||
```bash
|
||||
flashcp -v openwrt-hi35xx-XXXXX-default-uImage kernel
|
||||
```
|
||||
|
||||
|
||||
### Cập nhật rootfs
|
||||
|
||||
```bash
|
||||
flashcp -v openwrt-hi35xx-XXXXX-default-root.squashfs rootfs
|
||||
```
|
||||
|
||||
|
||||
Cấu hình hệ thống sau khi cài đặt
|
||||
--------------------------------------
|
||||
|
||||
### Định dạng phân vùng overlayfs
|
||||
|
||||
**Phải được thực hiện trong lần chạy đầu tiên!**
|
||||
|
||||
```txt
|
||||
flash_eraseall -j /dev/$(awk -F ':' '/rootfs_data/ {print $1}' /proc/mtd)
|
||||
reboot
|
||||
```
|
||||
|
||||
|
||||
### Cài đặt MAC gốc
|
||||
|
||||
> **U-boot ENV và Linux UCI**
|
||||
|
||||
```txt
|
||||
fw_setenv ethaddr 00:01:02:03:04:05
|
||||
uci set network.lan.macaddr=00:01:02:03:04:05
|
||||
uci commit
|
||||
```
|
||||
|
||||
|
||||
### Cài đặt cảm biến chính xác
|
||||
|
||||
> **Chỉ định cảm biến chính xác, loại điều khiển và bus dữ liệu của bạn**
|
||||
|
||||
```txt
|
||||
fw_setenv sensor imx291_i2c_lvds
|
||||
```
|
||||
|
||||
|
||||
Đặt lại cấu hình
|
||||
-----------------------
|
||||
|
||||
Nếu có sự cố xảy ra, bạn có thể đặt lại cấu hình về mặc định.
|
||||
|
||||
|
||||
### Dọn dẹp overlayfs (đặt lại)
|
||||
|
||||
> **Khôi phục về cài đặt Linux mặc định**
|
||||
|
||||
```txt
|
||||
firstboot
|
||||
reboot
|
||||
```
|
||||
|
||||
|
||||
### Dọn dẹp u-boot env
|
||||
|
||||
> **Khôi phục về mặc định u-boot env**
|
||||
|
||||
```txt
|
||||
flash_eraseall -j /dev/$(awk -F ':' '/env/ {print $1}' /proc/mtd)
|
||||
reboot
|
||||
```
|
||||
|
||||
|
||||
### Khôi phục firmware sao lưu
|
||||
|
||||
Nếu có sự cố nghiêm trọng xảy ra và bạn muốn khôi phục lại firmware đã sao lưu của mình
|
||||
|
||||
> **Khôi phục firmware sao lưu qua cổng nối tiếp**
|
||||
|
||||
Cài đặt kermit bằng cách sử dụng [hướng dẫn này](https://glasstty.com/?p=662) hoặc tương tự.
|
||||
Dưới đây là các lệnh mẫu cho Flash 8MB.
|
||||
|
||||
```
|
||||
kermit
|
||||
Linux Kermit> CONNECT
|
||||
Kết nối với /dev/ttyUSB0, tốc độ 115200
|
||||
Ký tự thoát: Ctrl-\ (ASCII 28, FS): đã bật
|
||||
Nhập ký tự thoát theo sau là C để quay lại,
|
||||
hoặc theo sau là ? để xem các tùy chọn khác.
|
||||
----------------------------------------------------
|
||||
## Tổng kích thước = 0x002fb3f1 = 3126257 Byte
|
||||
## Địa chỉ bắt đầu = 0x82000000
|
||||
OpenIPC # sf probe 0
|
||||
8192 KiB hi_sfc tại 0:0 hiện là thiết bị hiện tại
|
||||
OpenIPC # mw.b 0x82000000 ff 1000000
|
||||
OpenIPC # loadb 0x82000000
|
||||
## Sẵn sàng để tải xuống nhị phân (kermit) đến 0x82000000 với tốc độ 115200 bps...
|
||||
|
||||
(Quay lại tại alex-B85M-D3H)
|
||||
----------------------------------------------------
|
||||
Linux Kermit> SEND /srv/tftp/fullflash.img
|
||||
Linux Kermit> CONNECT
|
||||
Kết nối với /dev/ttyUSB0, tốc độ 115200
|
||||
Ký tự thoát: Ctrl-\ (ASCII 28, FS): đã bật
|
||||
Nhập ký tự thoát theo sau là C để quay lại,
|
||||
hoặc theo sau là ? để xem các tùy chọn khác.
|
||||
----------------------------------------------------
|
||||
## Tổng kích thước = 0x00800000 = 8388608 Byte
|
||||
## Địa chỉ bắt đầu = 0x82000000
|
||||
OpenIPC # sf erase 0x0 0x00800000
|
||||
Đang xóa tại 0x800000 -- 100% hoàn tất.
|
||||
OpenIPC # sf write 0x82000000 0x0 ${filesize}
|
||||
Đang ghi tại 0x800000 -- 100% hoàn tất.
|
||||
OpenIPC #
|
||||
```
|
||||
> **Khôi phục firmware sao lưu qua TFTP**
|
||||
|
||||
Dưới đây là các lệnh cho Flash 8MB.
|
||||
|
||||
```shell
|
||||
setenv ipaddr 192.168.1.10
|
||||
setenv serverip 192.168.1.254
|
||||
sf probe 0; sf lock 0
|
||||
|
||||
mw.b 0x82000000 ff 1000000
|
||||
tftp 0x82000000 fullflash.img
|
||||
sf erase 0x0 0x00800000
|
||||
sf write 0x82000000 0x0 ${filesize}
|
||||
```
|
||||
|
||||
|
||||
## Sách tham khảo
|
||||
|
||||
Sẽ được viết ...
|
||||
|
||||
[1]: https://aliexpress.com/item/32493067946.html
|
||||
[2]: https://aliexpress.com/item/32851596596.html
|
||||
[3]: https://aliexpress.com/item/1005002315913099.html
|
||||
[4]: https://aliexpress.com/item/1005002298832047.html
|
||||
[5]: https://aliexpress.com/
|
|
@ -0,0 +1,143 @@
|
|||
# OpenIPC Wiki
|
||||
[Mục lục](../README.md)
|
||||
|
||||
Gói Vtun
|
||||
------------
|
||||
|
||||
### Giới thiệu
|
||||
|
||||
Gói này được thiết kế để tổ chức một đường hầm L2 dựa trên Vtun giữa các camera IP và máy chủ. Để giảm dung lượng chiếm dụng trên bộ nhớ flash NOR, giảm mức tiêu thụ RAM và tăng thông lượng đường hầm, tính năng mã hóa và nén bị vô hiệu hóa hoàn toàn.
|
||||
|
||||
### Phần máy khách
|
||||
|
||||
Phần máy khách luôn có mặt trong tất cả các firmware OpenIPC chính thức.
|
||||
Để kết nối với máy chủ, hãy chuyển đến tab phần mở rộng, chỉ định địa chỉ IP hoặc tên miền của máy chủ và lưu cài đặt
|
||||
|
||||
### Phần máy chủ
|
||||
|
||||
- tạo một giao diện cầu nối, ví dụ: br-openipc
|
||||
- trong cấu hình vtund.conf, hãy thêm tất cả các kết nối camera vào cầu nối
|
||||
- nâng bất kỳ máy chủ DHCP nào trên giao diện br-openipc
|
||||
- liên kết địa chỉ IP của các thiết bị kết nối theo MAC
|
||||
|
||||
### Ví dụ về biên dịch vtun cho máy chủ
|
||||
|
||||
Cài đặt các thành phần và phụ thuộc cho Debian/Ubuntu
|
||||
|
||||
```
|
||||
apt install -y bison bridge-utils build-essential curl flex
|
||||
```
|
||||
|
||||
### Tập lệnh biên dịch tự động
|
||||
|
||||
```
|
||||
#!/bin/bash
|
||||
#
|
||||
# OpenIPC.org | v.20240824
|
||||
#
|
||||
|
||||
LANG=C
|
||||
|
||||
vtun_version="3.0.2"
|
||||
vtun_download="http://prdownloads.sourceforge.net/vtun/vtun-${vtun_version}.tar.gz"
|
||||
|
||||
prepare() {
|
||||
curl -L -o vtun-${vtun_version}.tar.gz ${vtun_download}
|
||||
tar xvfz vtun-${vtun_version}.tar.gz
|
||||
rm vtun-${vtun_version}.tar.gz
|
||||
cd vtun-${vtun_version}
|
||||
}
|
||||
|
||||
compile() {
|
||||
./configure --build=x86_64-linux-gnu --disable-lzo --disable-zlib --disable-ssl --prefix=''
|
||||
make && strip vtund
|
||||
}
|
||||
|
||||
install() {
|
||||
mkdir -p ../_binary
|
||||
mv -v vtund ../_binary/vtund_i386
|
||||
cd -
|
||||
rm -rf vtun-${vtun_version}
|
||||
}
|
||||
|
||||
prepare && compile && install
|
||||
```
|
||||
|
||||
### Ví dụ về /etc/network/interfaces.d/br-openipc cho máy chủ
|
||||
|
||||
```
|
||||
# Cầu nối OpenIPC
|
||||
#
|
||||
auto br-openipc
|
||||
iface br-openipc inet static
|
||||
address 192.168.11.1
|
||||
netmask 255.255.255.0
|
||||
bridge_ports zero
|
||||
up mkdir -p /var/lock/vtund /var/log/vtund
|
||||
up iptables -A FORWARD -j ACCEPT -i br-openipc -o br-openipc
|
||||
#up iptables -A FORWARD -t mangle -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
|
||||
#up iptables -A POSTROUTING -t mangle -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
|
||||
#up iptables -A POSTROUTING -t nat -s 192.168.11.0/24 -j MASQUERADE
|
||||
#up iptables -A FORWARD -j ACCEPT -i ens2 -o br-openipc -d 192.168.11.0/24
|
||||
#up iptables -A FORWARD -j ACCEPT -o ens2 -i br-openipc -s 192.168.11.0/24
|
||||
#up iptables -A PREROUTING -t nat -j DNAT -p TCP -i ens2 --dport 10180 --to-destination 192.168.11.101:80
|
||||
#up iptables -A POSTROUTING -t nat -j SNAT -p TCP -o br-openipc -d 192.168.11.101 --to-source 192.168.11.1
|
||||
|
||||
```
|
||||
|
||||
### Ví dụ về /etc/vtund.conf cho máy chủ
|
||||
|
||||
```
|
||||
options {
|
||||
syslog daemon;
|
||||
timeout 60;
|
||||
ip /bin/ip;
|
||||
}
|
||||
default {
|
||||
type tun;
|
||||
proto tcp;
|
||||
persist yes;
|
||||
keepalive yes;
|
||||
timeout 60;
|
||||
compress no;
|
||||
encrypt no;
|
||||
speed 512:512;
|
||||
multi killold;
|
||||
}
|
||||
#
|
||||
### Cam-1
|
||||
#
|
||||
E60BFB000001 {
|
||||
type ether;
|
||||
speed 0:0;
|
||||
password bla-bla-pass;
|
||||
device v-E60BFB000001;
|
||||
up {
|
||||
ip "link set %% up multicast off mtu 1500";
|
||||
program "brctl addif br-openipc %%";
|
||||
};
|
||||
down {
|
||||
program "brctl delif br-openipc %%";
|
||||
ip "link set %% down";
|
||||
};
|
||||
}
|
||||
#
|
||||
### Cam-2
|
||||
#
|
||||
729051000001 {
|
||||
type ether;
|
||||
speed 0:0;
|
||||
password bla-bla-pass;
|
||||
device v-729051000001;
|
||||
up {
|
||||
ip "link set %% up multicast off mtu 1500";
|
||||
program "brctl addif br-openipc %%";
|
||||
};
|
||||
down {
|
||||
program "brctl delif br-openipc %%";
|
||||
ip "link set %% down";
|
||||
};
|
||||
}
|
||||
#
|
||||
```
|
||||
|
|
@ -0,0 +1,170 @@
|
|||
# OpenIPC Wiki
|
||||
[Mục lục](../README.md)
|
||||
|
||||
Truy cập SSH, telnet, FTP và các dịch vụ khác
|
||||
---------------------------------------------
|
||||
|
||||
Rất thường xuyên, firmware gốc cung cấp quyền truy cập vào hệ điều hành của nó nhưng
|
||||
quyền truy cập bị đóng với mật khẩu không được tiết lộ. Chúng ta có thể khôi phục hàm băm mật mã
|
||||
của mật khẩu đó trong khi trích xuất bản sao của hình ảnh firmware.
|
||||
|
||||
### Hàm băm mật khẩu
|
||||
|
||||
```console
|
||||
$1$bh2njiGH$4duacOMcXDh6myANzbZTf.
|
||||
```
|
||||
|
||||
Chuỗi mật khẩu muối băm bao gồm ba phần: mã định danh thuật toán băm,
|
||||
muối và hàm băm mật khẩu, mỗi phần được đặt trước bởi dấu đô la.
|
||||
Phần đầu tiên, `$1`, là thuật toán băm được mã hóa bằng một (hiếm khi là hai)
|
||||
ký tự. Nó biểu thị phương pháp mật mã được sử dụng để tạo hàm băm:
|
||||
|
||||
- `$1` - Thuật toán MD5.
|
||||
- `$2` - Thuật toán Blowfish.
|
||||
- `$2a` - Thuật toán eksblowfish
|
||||
- `$5` - Thuật toán SHA-256
|
||||
- `$6` - Thuật toán SHA-512
|
||||
|
||||
Phần thứ hai, `$bh2njiGH`, là muối - một chuỗi ký tự được thêm vào
|
||||
mật khẩu văn bản thuần túy trước khi băm nó để ngẫu nhiên hóa các hàm băm kết quả
|
||||
cho cùng một mật khẩu và ngăn chặn các cuộc tấn công [bảng cầu vồng][1].
|
||||
|
||||
Phần cuối cùng, `$4duacOMcXDh6myANzbZTf.`, là hàm băm. Khi bạn nhập
|
||||
mật khẩu, nó được nối với muối được cung cấp sau đó được băm bằng
|
||||
thuật toán băm được cung cấp và kết quả được so sánh với hàm băm.
|
||||
Cùng một mật khẩu, muối và phương pháp băm sẽ luôn tạo ra kết quả giống nhau.
|
||||
|
||||
Các thuật toán băm là các phương pháp mã hóa một chiều có nghĩa là hàm băm không thể
|
||||
được giải mã trở lại mật khẩu văn bản thuần túy, nhưng có thể thực hiện băm
|
||||
các biến thể có sẵn của mật khẩu văn bản thuần túy cho đến khi tìm thấy kết quả khớp.
|
||||
Phương pháp này được gọi là [tấn công brute-force][2].
|
||||
|
||||
Camera IP có xu hướng sử dụng thuật toán băm MD5 tương đối đơn giản và nhanh
|
||||
nên việc sử dụng phần mềm phá mật khẩu và tài nguyên máy tính mạnh mẽ thì
|
||||
mật khẩu văn bản thuần túy ban đầu có thể được chọn trong vài tuần hoặc vài ngày, nếu không
|
||||
phải vài giờ, đặc biệt là sử dụng từ điển chất lượng cao.
|
||||
|
||||
Trong ví dụ trên, chúng tôi đã sử dụng mật khẩu "openipc". Bạn có thể kiểm tra tính hợp lệ của
|
||||
mật khẩu bằng `mkpasswd` hoặc `openssl`:
|
||||
|
||||
```bash
|
||||
$ mkpasswd -m md5crypt -S bh2njiGH openipc
|
||||
$1$bh2njiGH$4duacOMcXDh6myANzbZTf.
|
||||
$ openssl passwd -1 -salt bh2njiGH openipc
|
||||
$1$bh2njiGH$4duacOMcXDh6myANzbZTf.
|
||||
```
|
||||
|
||||
Khi mật khẩu được tìm thấy, nên chia sẻ công khai để những người khác
|
||||
nhà nghiên cứu trong lĩnh vực này có thể dành nguồn lực mật mã của họ cho
|
||||
khám phá thêm nhiều mật khẩu chưa biết. Chia sẻ là quan tâm, các bạn!
|
||||
|
||||
### Một số mật khẩu mà chúng tôi tìm thấy trong các firmware khác nhau
|
||||
|
||||
```
|
||||
| Hash | Văn bản thuần túy |
|
||||
|---------------------------------------|------------|
|
||||
| $1$MoCJ1nRA$NfsI1wlYcWoF5MbU4t3Og0 | ivdev |
|
||||
| $1$ZebZnWdY$QZ1Aa.7hwBshCS5k40MUE1 | xc12345 |
|
||||
| $1$d3VPdE0x$Ztn09cyReJy5Pyn | runtop10 |
|
||||
| $1$qFa2kfke$vJob19l64Q6n8FvP8/kvJ0 | wabjtam |
|
||||
| $1$rHWQwR5V$i4FVDvwhuzau8msvAfHEt. | 2601hx |
|
||||
| $1$tiaLlxGM$byeTUfQgqyET5asfwwNjg0 | hichiphx |
|
||||
| $1$0Me7S3z5$.uQ4Pr/QjJQ/0JUZI0w4m. | |
|
||||
| $1$4dAkkeWK$HCy0K1z8E.wAuwgLV8bWd/ | |
|
||||
| $1$7bfnUEjV$3ogadpYTDXtJPV4ubVaGq1 | |
|
||||
| $1$7BqzlCqK$nQXIfc53c1ACEwzNg7G3D. | |
|
||||
| $1$cNGGWwI/$5/mZTMlcVfJlpE5DGrdsl/ | |
|
||||
| $1$FMNq4QIj$lJg6WzZxy1HWl3sL.YwIq1 | |
|
||||
| $1$IZfqary9$IrG6loat5pDTBLr6ksKTD0 | |
|
||||
| $1$ocmTTAhE$v.q2/jwr4BS.20KYshYQZ1 | |
|
||||
| $1$OIKWDzOV$WjZNcNtHSKVscbi9WQcpu/ | |
|
||||
| $1$rnjbbPTD$tR9oAIWgUp/jRrhjDuUwp0 | |
|
||||
| $1$RYIwEiRA$d5iRRVQ5ZeRTrJwGjRy.B0 | xmhdipc |
|
||||
| $1$uF5XC.Im$8k0Gkw4wYaZkNzuOuySIx/ | |
|
||||
| $1$vN9F.lHa$E09mbCRo70834AUfkytpX | |
|
||||
| $1$wbAnPk8f$yz0PI9vnyLRmWbENUnce3/ | |
|
||||
| $1$ybdHbPDn$ii9aEIFNiolBbM9QxW9mr0 | |
|
||||
| $1$yq01TaSp$lkN/azu3IxE97owy27pve. | |
|
||||
| $1$yFuJ6yns$33Bk0I91Ji0QMujkR/DPi1 | |
|
||||
| $1$yi$FS7W5j1RJmbRHDe0El/zX/ | |
|
||||
| $1$yi$MiivC6pLdwS0zp0pa0cUq1 | qw1234qw |
|
||||
| $Dg.cUjtWGTIVkuFS0ZYbN1 | fx1805 |
|
||||
| $enWsv2cbxPCrd0WeXUXtX0 | nobody |
|
||||
| $qZV4X6DTqMHUDIyZG.8PH. | |
|
||||
| $z2VkRbfNoE/xHLBj8i2cv. | ftp |
|
||||
| 7wtxBdUGBnuoY | runtop10 |
|
||||
| 9B60FC59706134759DBCAEA58CAF9068 | Fireitup |
|
||||
| LHjQopX4yjf1Q | ls123 |
|
||||
| ab8nBoH3mb8.g | helpme |
|
||||
| absxcfbgXtb3o | xc3511 |
|
||||
| xt5USRjG7rEDE | j1/_7sxw |
|
||||
| $1$EmcmB/9a$UrsXTlmYL/6eZ9A2ST2Yl/ | |
|
||||
| $1$soidjfoi$9klIbmCLq2JjYwKfEA5rH1 | |
|
||||
```
|
||||
|
||||
### Chiếm quyền mật khẩu mặc định
|
||||
> _đã thử nghiệm trên Goke_
|
||||
|
||||
Qua giao diện UART, có thể tạm thời làm gián đoạn trình tự khởi động bình thường
|
||||
và chuyển sang một trình bao Linux hạn chế ở giai đoạn đầu của
|
||||
khởi động hệ thống.
|
||||
```
|
||||
setenv bootargs ${bootargs} single init=/bin/sh
|
||||
boot
|
||||
```
|
||||
Trình bao này sẽ không tải toàn bộ hệ thống đang hoạt động, vì vậy bạn phải sửa đổi thủ công.
|
||||
Đầu tiên, gắn kết hệ thống tệp `/rom`:
|
||||
```
|
||||
mount -t jffs2 /dev/mtdblock3 /rom
|
||||
```
|
||||
Gắn kết phần còn lại của các điểm gắn kết từ `/etc/fstab`:
|
||||
```
|
||||
mount -a
|
||||
```
|
||||
Ngoài ra, hãy gắn kết thẻ SD để sao chép tệp đến và đi:
|
||||
```
|
||||
mount /dev/mmcblk0p1 on /mnt/s0
|
||||
```
|
||||
Trên hệ thống tệp `/rom`, bạn có thể chỉnh sửa tệp `/room/etc/passwd` nhưng sau khi
|
||||
thiết bị khởi động lại, nó sẽ được đặt lại về mặc định. Điều này xảy ra vì có
|
||||
tệp bin hướng dẫn tạo lại tệp `passwd` trong mỗi lần khởi động, vì vậy chúng ta cần sửa đổi
|
||||
tệp thực thi đó.
|
||||
|
||||
Sao chép `system.dat` vào thẻ SD:
|
||||
```
|
||||
cp /rom/system.dat /mnt/s0
|
||||
```
|
||||
Trên máy tính linux, giải nén tệp `system.dat` bằng cách sử dụng `unsquashfs`:
|
||||
```
|
||||
mkdir squashfs-temp
|
||||
cd squashfs-temp
|
||||
unsquashfs system.dat
|
||||
```
|
||||
Tìm tệp hướng dẫn và chỉnh sửa nội dung của nó trong trình soạn thảo hex để sửa đổi tên của
|
||||
tệp mà mật khẩu được ghi trong mỗi lần khởi động lại. Tìm kiếm `/etc/passwd` và
|
||||
thay đổi một chữ cái trong tên của nó thành một cái gì đó khác, như `/etc/passwT`.
|
||||
|
||||
Đóng gói hệ thống tệp squash bằng cách sử dụng `mksquashfs`:
|
||||
|
||||
```bash
|
||||
mksquashfs ./squashfs-root ./file -comp xz -no-xattrs -noappend -no-exports -all-root -quiet -b 131072
|
||||
```
|
||||
và sao chép nó từ thẻ SD trở lại thư mục `/rom` trên camera.
|
||||
|
||||
Bây giờ bạn có thể thay thế mật khẩu trong `/rom/etc/passwd` bằng mật khẩu của riêng bạn và khi
|
||||
bạn khởi động lại thiết bị, bạn sẽ có hệ thống hoạt động đầy đủ với mật khẩu của riêng bạn.
|
||||
|
||||
|
||||
### Phần mềm
|
||||
|
||||
- [Hashcat](https://hashcat.net/)
|
||||
- [John The Ripper](https://www.openwall.com/john/)
|
||||
- [Hydra](https://github.com/vanhauser-thc/thc-hydra)
|
||||
|
||||
[1]: https://en.wikipedia.org/wiki/Rainbow_table
|
||||
[2]: https://en.wikipedia.org/wiki/Brute-force_attack
|
||||
|
||||
|
||||
---------------------------------------------------
|
||||
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
# OpenIPC Wiki
|
||||
[Mục lục](../README.md)
|
||||
|
||||
Cách gửi tệp qua UART
|
||||
---------------------------
|
||||
|
||||
Nếu đầu đọc thẻ SD bị lỗi và không có mạng nào được cấu hình trên camera của bạn, bạn có thể cần gửi firmware mới qua giao diện UART để cập nhật camera.
|
||||
|
||||
## Bên gửi:
|
||||
|
||||
1- Đầu tiên, chúng ta mã hóa các tệp
|
||||
|
||||
```bash
|
||||
base64 uImage > uImage.b
|
||||
```
|
||||
|
||||
2- Bây giờ hãy đảm bảo lệnh gửi tệp com của bạn là ascii-xfr, đây là dòng lệnh kết nối của tôi
|
||||
|
||||
```bash
|
||||
picocom -f n -p n -d 8 -b 115200 --send-cmd "ascii-xfr -snv" /dev/ttyUSB0
|
||||
|
||||
```
|
||||
|
||||
Thông thường, chúng ta muốn ascii-xfr ở phía nhận, nhưng vì chúng ta không có, nên -n giải quyết vấn đề này bằng cách duy trì các kết thúc dòng chính xác.
|
||||
|
||||
|
||||
|
||||
## Bên nhận:
|
||||
|
||||
3- Bây giờ chúng ta đã kết nối, hãy chuyển đến thư mục nơi bạn muốn nhận tệp.
|
||||
```bash
|
||||
cd /tmp/
|
||||
```
|
||||
|
||||
4- Bắt đầu nhận tệp bằng uart
|
||||
```bash
|
||||
cat > uImage.b
|
||||
```
|
||||
5- Trên picocom, tôi chỉ CTRL+a+s, và nhập đường dẫn đầy đủ của tệp tôi đang gửi. Sau khi quá trình truyền hoàn tất, bạn sẽ cần CTRL+c để ngắt lệnh cat.
|
||||
|
||||
6- Bây giờ chúng ta giải mã tệp,
|
||||
```bash
|
||||
base64 -d uImage.b > uImage
|
||||
```
|
||||
|
||||
7- Hãy làm bất cứ điều gì bạn có thể để xác minh rằng tệp GIỐNG HỆT với tệp bạn đã gửi, vì truyền ASCII không có bảo vệ tổng kiểm tra.
|
||||
Openipc có sha512sum, nhưng bất kỳ lệnh tổng kiểm tra nào cũng đủ.
|
||||
|
||||
|
||||
```bash
|
||||
sha256sum uImage
|
||||
```
|
||||
Sau khi bạn xác nhận thủ công rằng các tổng khớp nhau, bạn có thể giả định rằng quá trình truyền đã thành công!
|
||||
|
||||
Lặp lại các bước 4, 5 và 6 cho rootfs và bây giờ bạn sẽ có thể nâng cấp bằng sysupgrade
|
||||
|
||||
```bash
|
||||
sysupgrade --kernel=/tmp/uImage --rootfs=/tmp/rootfs.squashfs --force_ver -z
|
||||
```
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
# Mô tả chân Serial UART
|
||||
|
||||
## Kiểm tra nhanh
|
||||
|
||||
Cấu hình cổng nối tiếp -> 8N1 Tốc độ Baud 115200
|
||||
|
||||
Đây là một bài kiểm tra nhanh. Nối đất với đất, tx từ bộ chuyển đổi không được kết nối, rx thăm dò các pad và bạn kiểm tra đầu ra trong ứng dụng terminal.
|
||||
|
||||

|
||||
|
||||
|
||||
## Chân UART của camera
|
||||
|
||||
### T31 -- Đổi thương hiệu của wyze cam pan v3
|
||||
|
||||

|
||||
|
||||

|
|
@ -0,0 +1,82 @@
|
|||
# OpenIPC Wiki
|
||||
[Mục lục](../README.md)
|
||||
|
||||
Lộ trình
|
||||
-------
|
||||
|
||||
### Truy cập nhanh vào Nhật ký Git cho các kho lưu trữ phổ biến:
|
||||
|
||||
- [firmware](https://github.com/OpenIPC/firmware/commits/master), [builder](https://github.com/OpenIPC/builder/commits/master), [coupler](https://github.com/OpenIPC/coupler/commits/main)
|
||||
- [ipctool](https://github.com/OpenIPC/ipctool/commits/master), [webui](https://github.com/OpenIPC/webui/commits/master), [webui-next](https://github.com/OpenIPC/webui-next/commits/master), [wiki](https://github.com/OpenIPC/wiki/commits/master)
|
||||
|
||||
### Các thay đổi đã lên kế hoạch:
|
||||
|
||||
- Thêm webui-next làm giao diện mặc định.
|
||||
- Tích hợp tốt hơn với Majestic và webui-next.
|
||||
- Tiếp tục tái cấu trúc các tập lệnh firmware và gói.
|
||||
- Mở rộng hỗ trợ cho trình xây dựng.
|
||||
- Mở rộng hỗ trợ tài liệu.
|
||||
- Mở rộng hỗ trợ cho majestic-plugins.
|
||||
- Cập nhật buildroot lên phiên bản 2024 sắp tới.
|
||||
- Cập nhật các lệnh xây dựng wiki.
|
||||
- Cập nhật các lệnh majestic wiki.
|
||||
|
||||
### 19.02.2024:
|
||||
- [hisilicon/goke] Khắc phục việc ghép kênh các GPIO không cần thiết đang ghi IRCUT trên bo mạch XM
|
||||
|
||||
### 12.02.2024:
|
||||
- Đã thêm một cải tiến cho phép Majestic chạy các tập lệnh cgi tách biệt khỏi sdk.
|
||||
- Khắc phục sự cố ngăn chặn việc liên kết lại cổng rtsp.
|
||||
- Khắc phục sự cố với thư mục chính của máy chủ web Majestic.
|
||||
- Khắc phục ngoại lệ về lựa chọn codec.
|
||||
- Cải thiện tính ổn định nếu majestic.yaml không khả dụng.
|
||||
- Giảm khung thời gian để Majestic tắt trên các thiết bị Ingenic.
|
||||
|
||||
### 05.02.2024:
|
||||
- Đã thêm bản xem trước mjpeg vào webui-next.
|
||||
- Đã thêm hỗ trợ mjpeg cho Ingenic.
|
||||
- Đã thêm chuyển hướng cổng 85 đến máy chủ web Majestic.
|
||||
- Điều chỉnh một số cài đặt cấu hình Majestic cho webui-next.
|
||||
- Khắc phục các điều khiển chế độ ban đêm trên webui-next.
|
||||
- Khắc phục sự cố với việc đảo ngược một ircut.
|
||||
- Đặt Majestic làm máy chủ web duy nhất cho webui-next.
|
||||
- Đặt majestic-webui làm mặc định cho các thiết bị Sigmastar.
|
||||
- Lưu ý: các phần mở rộng majestic-webui hiện không khả dụng.
|
||||
|
||||
### 29.01.2024:
|
||||
- Đã thêm hỗ trợ ipctool cho nhiều cảm biến Sony mới.
|
||||
- Đã thêm các lệnh bổ sung khi majestic-plugins được khởi động và dừng.
|
||||
- Đã thêm nhiều lệnh bí danh mới (show_help)
|
||||
- Đã thêm hỗ trợ IP6 Majestic thử nghiệm.
|
||||
- Đã thêm một kiểm tra để ngăn chặn việc thực hiện lặp lại các cài đặt chế độ ban đêm.
|
||||
- Thay thế building.sh bằng makefile.
|
||||
- Tái cấu trúc một số tập lệnh firmware và makefile gói.
|
||||
|
||||
### 22.01.2024:
|
||||
- Đã thêm tính năng phát hiện chipset T40/T41.
|
||||
- Đã thêm hỗ trợ âm thanh cho Sigmastar fpv.
|
||||
- Đã thêm chế độ màu ban đêm tùy chọn.
|
||||
- Khắc phục một số sự cố ổn định Majestic.
|
||||
- Khắc phục sự cố với phát hiện chuyển động Ingenic trên sighup/reload.
|
||||
- Tăng tính ổn định của máy chủ web Majestic.
|
||||
- Bao gồm gkrcparams vào cấu hình majestic.
|
||||
- Cập nhật thư viện libevent và chuỗi công cụ.
|
||||
- Cập nhật thư viện nhà cung cấp Ingenic.
|
||||
|
||||
### 15.01.2024:
|
||||
- Đã thêm nút chuyển đổi điều khiển riêng biệt cho ircut và ánh sáng.
|
||||
- Đã thêm tính năng phát hiện ngày/đêm dựa trên cảm biến.
|
||||
- Đã thêm xác thực cho các điểm cuối khác nhau.
|
||||
- Đã thêm hỗ trợ ban đầu cho quét thông tin đăng ký Ingenic.
|
||||
- Khắc phục sự cố Majestic không mở lại ổ cắm udp một cách chính xác.
|
||||
- Khắc phục sự cố với luồng rtsp Ingenic T10/T20.
|
||||
- Khắc phục sự cố với việc đặt tốc độ bit bộ mã hóa hisilicon chính xác.
|
||||
|
||||
### 08.01.2024:
|
||||
- Đã thêm hỗ trợ sighup Majestic cho các thiết bị Ingenic.
|
||||
- Đã thêm hỗ trợ h265 cho rtmp.
|
||||
- Đã thêm tùy chọn kết nối lại rtmp.
|
||||
- Đã thêm hỗ trợ cho quét thông tin đăng ký Sigmastar.
|
||||
- Khắc phục một số sự cố xác thực rtmp.
|
||||
- Khắc phục sự cố với xoay vòng trên một số trình điều khiển cảm biến Sigmastar.
|
||||
- Đã xóa tính năng phát hiện ngày/đêm dựa trên phần mềm Ingenic.
|
|
@ -0,0 +1,17 @@
|
|||
# OpenIPC Wiki
|
||||
[Mục lục](../README.md)
|
||||
|
||||
Ghi chú nghiên cứu và gỡ lỗi SoC SigmaStar
|
||||
------------------------------------------
|
||||
|
||||
#### Kiểm soát các kênh PWM trên SigmaStar SSC338Q
|
||||
|
||||
Chuyển GPIO1 sang chế độ PWM1 và đặt tham số
|
||||
```
|
||||
devmem 0x1F207994 16 0x1121
|
||||
echo 1 > /sys/class/pwm/pwmchip0/export
|
||||
echo 10000 > /sys/class/pwm/pwmchip0/pwm1/period
|
||||
echo 25 > /sys/class/pwm/pwmchip0/pwm1/duty_cycle
|
||||
echo 1 > /sys/class/pwm/pwmchip0/pwm1/enable
|
||||
```
|
||||
|
|
@ -0,0 +1,64 @@
|
|||
# OpenIPC Wiki
|
||||
[Mục lục](../README.md)
|
||||
|
||||
Phục hồi Sigmastar
|
||||
---
|
||||
|
||||
**Xác định vị trí đầu ra UART của Sigmastar và kết nối nó với CH341A I2C:**
|
||||
- $\color{dimgray}{\texttt{GND -> GND (Chân 1-4)}}$
|
||||
- $\color{deepskyblue}{\texttt{TX -> SDA I2C (Chân 5)}}$
|
||||
- $\color{orange}{\texttt{RX -> SCL I2C (Chân 6)}}$
|
||||
|
||||
<img src="../images/sigmastar-ch341a.webp">
|
||||
<img src="../images/sigmastar-uart.webp">
|
||||
<img src="../images/sigmastar-example.webp">
|
||||
|
||||
---
|
||||
|
||||
**Tải xuống snander-mstar:**
|
||||
- https://github.com/openipc/snander-mstar/releases
|
||||
|
||||
<details>
|
||||
<summary>Cài đặt trình điều khiển Windows</summary>
|
||||
<img src="../images/sigmastar-driver.webp">
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
**Kiểm tra bộ nhớ flash của thiết bị bằng snander:**
|
||||
- Thiết bị phải được cấp nguồn khi kết nối với bộ lập trình.
|
||||
- Tắt và bật nguồn có thể giúp ích nếu không thể phát hiện thiết bị.
|
||||
```
|
||||
snander -i -q
|
||||
```
|
||||
|
||||
<img src="../images/sigmastar-check.webp">
|
||||
|
||||
**Xóa phân vùng khởi động:**
|
||||
```
|
||||
snander -l 0x200000 -e
|
||||
```
|
||||
|
||||
<img src="../images/sigmastar-erase.webp">
|
||||
|
||||
**Ghi tệp uboot mới:**
|
||||
- https://github.com/openipc/firmware/releases/tag/latest
|
||||
- thả tệp vào cùng thư mục với chương trình
|
||||
```
|
||||
snander -w u-boot-ssc338q-nand.bin
|
||||
```
|
||||
|
||||
<img src="../images/sigmastar-write.webp">
|
||||
|
||||
---
|
||||
|
||||
**Thiết bị I2C:**
|
||||
- 0x49 -> MStar ISP
|
||||
- 0x59 -> MStar Debug
|
||||
|
||||
---
|
||||
|
||||
- [Phương pháp Raspberry thay thế bởi MarioFPV](https://youtu.be/88C8UvyKQlQ)
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
# OpenIPC Wiki
|
||||
[Mục lục](../README.md)
|
||||
|
||||
Phần mềm Ghi hình Video
|
||||
------------------------
|
||||
|
||||
- [Agent DVR](https://www.ispyconnect.com/) (trước đây là iSpy)
|
||||
- [AVreg](http://avreg.net/)
|
||||
- [Blue Iris](https://blueirissoftware.com/)
|
||||
- [Camera.ui](https://github.com/seydx/camera.ui)
|
||||
- [ContaCam](https://www.contaware.com/contacam.html)
|
||||
- [Frigate](https://frigate.video/)
|
||||
- [GO2RTC](https://github.com/AlexxIT/go2rtc)
|
||||
- [Insentry](https://insentry.io/)
|
||||
- [Motion](https://motion-project.github.io/)
|
||||
- [MotionEyeOS](https://github.com/motioneye-project/motioneyeos)
|
||||
- [Nimble](https://softvelum.com/nimble/)
|
||||
- [Shinobi](https://shinobi.video/)
|
||||
- [Sighthound](https://www.sighthound.com/)
|
||||
- [Skryped NVR](https://www.scrypted.app/)
|
||||
- [SRS](https://github.com/ossrs/srs)
|
||||
- [TinyCam Monitor](https://tinycammonitor.com/)
|
||||
- [Viseron](https://viseron.netlify.app/)
|
||||
- [Xeoma](https://felenasoft.com/xeoma/en/)
|
||||
- [Yucca](https://yucca.app)
|
||||
- [ZoneMinder](https://zoneminder.com/)
|
||||
|
|
@ -0,0 +1,277 @@
|
|||
# Hướng dẫn Phát triển Firmware OpenIPC
|
||||
|
||||
## Mục lục
|
||||
- Giới thiệu
|
||||
- Xây dựng từ Nguồn
|
||||
- Cài đặt Firmware
|
||||
- Giải phẫu Dự án
|
||||
- Sửa đổi và Thêm Gói
|
||||
- Xây dựng Phiên bản Firmware Tùy chỉnh
|
||||
- Dữ liệu Thống kê
|
||||
|
||||
## Giới thiệu
|
||||
|
||||
Tài liệu này đóng vai trò là hướng dẫn toàn diện cho các nhà phát triển muốn đóng góp vào firmware OpenIPC, bao gồm cách xây dựng từ nguồn, tìm hiểu cấu trúc của dự án, sửa đổi và thêm các gói mới, cũng như hướng dẫn cài đặt firmware trên thiết bị.
|
||||
|
||||
Chúng tôi hiện đang phát triển kho lưu trữ mã nguồn chất lượng cao. Sự kiên nhẫn của bạn được đánh giá cao khi chúng tôi cố gắng mang đến một dự án hoàn thiện và sẵn sàng sử dụng.
|
||||
|
||||
## Xây dựng từ Nguồn
|
||||
|
||||
Trước khi bạn bắt đầu xây dựng firmware của riêng mình, điều cần thiết là phải thực hiện một số thay đổi đối với hệ thống của bạn và hiểu quy trình chung.
|
||||
|
||||
### Sao chép Kho lưu trữ Git Firmware OpenIPC
|
||||
|
||||
```cd
|
||||
mkdir -p local/src
|
||||
cd local/src
|
||||
git clone https://github.com/OpenIPC/firmware.git openipc-firmware
|
||||
cd openipc-firmware
|
||||
```
|
||||
|
||||
### Cài đặt các Gói Bắt buộc
|
||||
|
||||
```bash
|
||||
sudo make deps
|
||||
```
|
||||
|
||||
Đối với Debian/Ubuntu, một ví dụ về việc cài đặt các gói cần thiết và tải xuống kho lưu trữ của chúng tôi:
|
||||
|
||||
```sudo apt-get update -y
|
||||
sudo apt-get install -y automake autotools-dev bc build-essential curl fzf git libtool rsync unzip
|
||||
git clone --depth=1 https://github.com/OpenIPC/firmware.git
|
||||
cd firmware
|
||||
```
|
||||
|
||||
Ngoài ra, bạn có thể sử dụng lệnh sau trong thư mục gốc của thư mục firmware OpenIPC của bạn để cài đặt các phụ thuộc:
|
||||
|
||||
```bash
|
||||
sudo make deps
|
||||
```
|
||||
|
||||
### Xây dựng Nhanh từ Nguồn
|
||||
|
||||
Để xây dựng phiên bản firmware mong muốn cho bộ xử lý của bạn, hãy chạy lệnh sau trong thư mục gốc của dự án. Các tệp sẽ có sẵn trong thư mục "output/images".
|
||||
|
||||
```bash
|
||||
./building.sh hi3518ev300_ultimate
|
||||
```
|
||||
|
||||
Ví dụ về việc xây dựng lại kernel Linux, hệ thống tệp gốc và các gói riêng lẻ trong dự án của chúng tôi:
|
||||
|
||||
```BOARD=hi3518ev300_ultimate make br-linux-{dirclean,rebuild}
|
||||
BOARD=hi3518ev300_ultimate make br-rootfs-{squashfs,tar}
|
||||
BOARD=hi3518ev300_ultimate make br-vtund-openipc-{dirclean,rebuild}
|
||||
```
|
||||
|
||||
### Tạo Bộ nhớ Lưu trữ Vĩnh viễn cho các Gói Đã tải xuống
|
||||
|
||||
Theo mặc định, Buildroot lưu trữ tất cả các tệp đã tải xuống trong thư mục `dl/` bên trong
|
||||
cây tệp buildroot.
|
||||
|
||||
Tập lệnh xây dựng OpenIPC tạo một cây tệp buildroot mới trước mỗi lần
|
||||
biên dịch, nghĩa là xóa tất cả các gói đã tải xuống hoặc sao chép chúng qua lại
|
||||
trước và sau khi tạo thiết lập mới.
|
||||
|
||||
Bạn có thể đặt thư mục lưu trữ của riêng mình bên ngoài cây buildroot. Thêm
|
||||
đoạn mã sau vào tệp `.profile` trong thư mục chính của bạn:
|
||||
|
||||
```bash
|
||||
BR2_DL_DIR="${HOME}/buildroot_dl"
|
||||
[ ! -d "$BR2_DL_DIR" ] && mkdir -p $BR2_DL_DIR
|
||||
export BR2_DL_DIR
|
||||
```
|
||||
|
||||
Sau đó, lấy nguồn thay đổi.
|
||||
|
||||
```bash
|
||||
source ~/.profile
|
||||
```
|
||||
|
||||
### Xây dựng firmware.
|
||||
|
||||
Việc xây dựng một firmware nhị phân cho camera IP của bạn khá dễ dàng. Chỉ cần sao chép
|
||||
mã nguồn từ kho lưu trữ và chạy:
|
||||
|
||||
```bash
|
||||
make
|
||||
```
|
||||
|
||||
Bạn sẽ được chào đón với một danh sách các mục tiêu khả dụng.
|
||||
|
||||

|
||||
|
||||
Tên của mỗi mục tiêu bao gồm tên của nhà cung cấp, kiểu SoC (System-on-Chip,
|
||||
trái tim của camera IP, bộ xử lý trung tâm với các tính năng bổ sung) và hương vị
|
||||
biểu thị các bản phát hành cho các mục đích khác nhau - **Lite**, bản phát hành nhỏ gọn cho
|
||||
camera chỉ có 8MB ROM; **Ultimate**, bản phát hành mở rộng cho camera
|
||||
có ROM 16MB +, **FPV**, bản phát hành được tạo riêng để sử dụng trong máy bay không người lái,
|
||||
hoặc **Mini**, phiên bản firmware được giải phóng hoàn toàn với một
|
||||
bộ phát trực tuyến mã nguồn mở thay thế.
|
||||
|
||||
Chọn mục tiêu mong muốn và nhấn enter. Việc xây dựng sẽ bắt đầu.
|
||||
|
||||
Quá trình xây dựng firmware nhị phân mất từ 15-20 phút đến vài giờ
|
||||
tùy thuộc vào hiệu suất máy tính của bạn và mục tiêu đã chọn. Nếu bạn muốn
|
||||
tăng tốc quá trình, hãy đảm bảo bạn sử dụng máy tính có SSD thay vì HDD vì
|
||||
quá trình biên dịch liên quan đến rất nhiều thao tác đọc và ghi. CPU nhanh hơn
|
||||
cũng có lợi và người ta cũng không thể có quá nhiều RAM. Bạn thậm chí có thể thuê
|
||||
một máy chủ ảo trực tuyến với giá vài xu để biên dịch firmware của mình với
|
||||
sức mạnh của điện toán đám mây.
|
||||
|
||||
Lần chạy đầu tiên là lâu nhất vì tập lệnh sẽ tải xuống mọi
|
||||
gói nguồn cần thiết để biên dịch thành công. Các lần chạy tiếp theo sẽ mất ít hơn một chút
|
||||
thời gian.
|
||||
|
||||
Sau khi quá trình biên dịch hoàn tất, bạn sẽ tìm thấy kernel nhị phân cuối cùng và
|
||||
hình ảnh `rootfs` trong thư mục `output/images/`.
|
||||
|
||||
```
|
||||
paul@r610:~/src/openipc-firmware$ ls -l output/images/
|
||||
total 35628
|
||||
-rw-r--r-- 1 paul paul 4816896 Nov 22 06:06 rootfs.squashfs.t10
|
||||
-rw-r--r-- 1 paul paul 14520320 Nov 22 06:06 rootfs.t10.cpio
|
||||
-rw-r--r-- 1 paul paul 15544320 Nov 22 06:06 rootfs.t10.tar
|
||||
-rw-r--r-- 1 paul paul 1597586 Nov 22 06:02 uImage.t10
|
||||
```
|
||||
|
||||
## Cài đặt Firmware
|
||||
|
||||
Sau khi bạn xây dựng firmware tùy chỉnh của mình, bạn cần cài đặt nó trên camera.
|
||||
Bạn có thể làm điều đó theo hai cách:
|
||||
1. Sử dụng hướng dẫn Cài đặt Nâng cao như bạn đã làm lần đầu tiên bạn flash camera: sao chép các tệp bản dựng vào máy chủ TFTP của bạn và sau đó thực hiện quy trình flash như được giải thích trong Hướng dẫn Nâng cao cụ thể cho camera của bạn;
|
||||
2. Cài đặt thủ công: khởi động camera của bạn, kết nối nó với mạng cục bộ của bạn và sau đó sử dụng scp sao chép hai tệp (rootfs và uImage) vào thư mục /tmp của camera của bạn (thư mục /tmp là bộ nhớ tạm thời, lớn bằng RAM trống của camera).
|
||||
Sau đó, chạy các lệnh này:
|
||||
|
||||
```
|
||||
sysupgrade --kernel=/tmp/uImage.... --rootfs=/tmp/rootfs.... -z
|
||||
```
|
||||
Thay thế uImage... và rootfs... bằng tên tệp thực tế của bạn là kết quả của quá trình xây dựng.
|
||||
Bạn có thể thêm khóa -n nếu bạn cần dọn dẹp lớp phủ sau khi cập nhật (đặt lại tất cả cài đặt về mặc định).
|
||||
Sau khi cài đặt hoàn tất, camera sẽ tự động khởi động lại.
|
||||
Kết nối lại với camera và chạy lệnh này (giống như -n trong lệnh trước):
|
||||
|
||||
```
|
||||
firstboot
|
||||
```
|
||||
|
||||
Hãy nhớ! Người dùng và mật khẩu sẽ được đặt lại về mặc định trong hầu hết các trường hợp (mặc định thường là root/12345)
|
||||
|
||||
## Giải phẫu Dự án
|
||||
|
||||
OpenIPC firmware v2 sử dụng [Buildroot][1] để xây dựng các tệp nhị phân firmware của nó. Vì vậy
|
||||
bạn nên làm quen với [Tài liệu Buildroot][2] nếu bạn
|
||||
muốn không chỉ biên dịch mã nguồn được cung cấp mà còn thực hiện các sửa đổi của riêng bạn
|
||||
cho firmware.
|
||||
|
||||
Bạn có thể thêm trình điều khiển hoặc phần mềm không có trong bản phát hành chính thức của chúng tôi, bạn
|
||||
có thể xóa trình điều khiển hoặc phần mềm không cần thiết mà bạn sẽ không sử dụng, để giải phóng
|
||||
một số dung lượng trong firmware. Bạn có thể thay đổi cài đặt mặc định để phù hợp hơn
|
||||
với nhu cầu của bạn. Vẻ đẹp của mã nguồn mở là bất kỳ ai cũng có thể cải thiện nó, bất cứ lúc nào.
|
||||
Chỉ cần đừng quên đóng góp những thay đổi của bạn trở lại kho lưu trữ ngược dòng để
|
||||
mọi người đều có thể hưởng lợi từ nó.
|
||||
|
||||
Xin lưu ý rằng OpenIPC sử dụng phiên bản Buildroot hơi lỗi thời. Kể từ
|
||||
hôm nay, đó là Buildroot [2021.02.12][3], vì vậy bạn có thể cần kiểm tra
|
||||
tài liệu cho phiên bản cụ thể đó, vì các phiên bản sau có thể có
|
||||
những thay đổi không tương thích.
|
||||
|
||||
Nguồn firmware OpenIPC được tổ chức trong các thư mục theo nhà cung cấp SoC camera IP
|
||||
như các cây bên ngoài Buildroot, cụ thể là `br-ext-chip-<tên nhà cung cấp>`. Mỗi
|
||||
thư mục như vậy có một số thư mục con: `board/`, `configs/`, `linux/` và
|
||||
`packages/` và một số tệp cấu hình, tất cả đều liên quan đến các bảng khác nhau mang
|
||||
chip từ nhà cung cấp cụ thể đó.
|
||||
|
||||
Thư mục `board/` bao gồm các thư mục con được đặt tên theo các nhóm bộ xử lý được gọi là
|
||||
họ. Bên trong mỗi thư mục gia đình như vậy có cấu hình kernel
|
||||
tệp cho các bộ xử lý riêng lẻ trong họ đó, các bản vá chung và các
|
||||
tệp dành riêng cho gia đình khác.
|
||||
|
||||
Thư mục `configs/` bao gồm các tệp cấu hình mặc định (defconfig) cho
|
||||
nhiều bảng có bộ xử lý từ nhà cung cấp đã cho. Các tệp cấu hình này cũng
|
||||
có thể khác nhau về cài đặt phần cứng, tập hợp các gói bao gồm, cài đặt mặc định
|
||||
khác nhau, thương hiệu, v.v. Mỗi tệp defconfig này là một
|
||||
gói riêng biệt dẫn đến một tệp nhị phân firmware riêng biệt.
|
||||
|
||||
Thư mục `linux/` bao gồm các tệp cấu hình để vá kernel để tạo
|
||||
nó hoạt động với các đốm màu nhị phân do nhà cung cấp cung cấp, nếu có.
|
||||
|
||||
Thư mục `package/` có các liên kết tượng trưng đến các gói được sử dụng để xây dựng kết quả
|
||||
firmware.
|
||||
|
||||
`Config.in` là một tệp cấu hình hợp nhất các tệp cấu hình từ tất cả
|
||||
các gói được cung cấp.
|
||||
|
||||
`external.mk` là một makefile tham chiếu đến các makefile từ tất cả các gói được cung cấp.
|
||||
|
||||
`external.desc` là một tệp có mô tả về cây bên ngoài.
|
||||
|
||||
|
||||
### Thực hiện Thay đổi và Thêm Gói
|
||||
|
||||
Bạn có thể sửa đổi các gói hiện có hoặc thêm các gói mới để đáp ứng nhu cầu của dự án. Phần này cung cấp các hướng dẫn về cách thực hiện các thay đổi này một cách hiệu quả.
|
||||
|
||||
Khi bạn bắt đầu mày mò với các gói, bạn sẽ nhận ra rằng mình cần một cách để
|
||||
xây dựng lại chỉ một gói cụ thể, mà không cần xây dựng lại toàn bộ dự án.
|
||||
Liệu điều đó có khả thi? May mắn thay, có. Tất cả những gì bạn phải làm sau khi thực hiện thay đổi
|
||||
đối với cấu hình gói là chạy một vài lệnh:
|
||||
```
|
||||
make br-<package>-dirclean
|
||||
make br-<package>-rebuild
|
||||
```
|
||||
trong đó _\<package>_ là tên của gói bạn muốn biên dịch lại. Mặc dù,
|
||||
như hướng dẫn sử dụng Buildroot đã nêu,
|
||||
|
||||
> Trong khi `br-<package>-rebuild` ngụ ý `br-<package>-reinstall` và `br-<package>-reconfigure`
|
||||
ngụ ý `br-<package>-rebuild`, các mục tiêu này cũng như `<package>` chỉ hoạt động trên
|
||||
gói đã nói và không kích hoạt việc tạo lại hình ảnh hệ thống tệp gốc.
|
||||
Nếu cần tạo lại hệ thống tệp gốc, ngoài ra, người ta nên chạy
|
||||
`make br-all`.
|
||||
|
||||
Chạy `make br-linux-rebuild br-all` để xây dựng lại hình ảnh kernel Linux,
|
||||
`make br-busybox-rebuild br-all` để xây dựng lại busybox và đóng gói nó vào hình ảnh rootfs.
|
||||
|
||||
Hãy nhớ! tên của gói trong hai lệnh trên là tên thư mục của gói của bạn, không phải tên gói mà bạn đã đặt trong tệp Config.in
|
||||
|
||||
Nếu bạn muốn thêm gói mới vào một dự án cụ thể, đây là những thay đổi bạn cần thực hiện (ví dụ: bảng goke, loại firmware fpv; các bước có thể được áp dụng cho bất kỳ dự án nào hoặc tất cả các dự án):
|
||||
* Thêm gói mới của bạn vào thư mục [root]/general/package/ (trong đó [root] là thư mục cục bộ nơi bạn đã sao chép kho lưu trữ firmware);
|
||||
* Thêm tệp Config.in gói mới của bạn vào danh sách các gói nguồn trong tệp này: [root]/general/package/Config.in
|
||||
* Sửa đổi cấu hình dự án mục tiêu của bạn (tức là bảng goke, firmware fpv) để bao gồm và xây dựng gói mới của bạn, hãy thêm gói của bạn vào tệp này: [root]/br-ext-chip-qoke/configs/gk7205v200_fpv_def_config
|
||||
* Xây dựng firmware.
|
||||
|
||||
Sau khi bản dựng hoàn tất, gói của bạn (nếu nó đã cài đặt bất kỳ tệp nào) sẽ là một phần của hình ảnh và hệ thống tệp được tạo.
|
||||
|
||||
|
||||
### Xây dựng Phiên bản Firmware Tùy chỉnh
|
||||
|
||||
Đôi khi bạn cần thêm trình điều khiển hoặc gói vào firmware. Làm thế nào bạn có thể
|
||||
thực hiện điều đó bằng cách sử dụng nguồn Firmware OpenIPC được cung cấp? Nó thực sự dễ dàng. Sao chép
|
||||
kho lưu trữ firmware cục bộ và biên dịch các tệp nhị phân cho cụ thể của bạn
|
||||
phần cứng.
|
||||
|
||||
Quá trình biên dịch phụ thuộc rất nhiều vào hiệu suất máy tính của bạn. Càng nhiều CPU
|
||||
luồng và bộ nhớ bạn nhận được, quá trình càng nhanh. Dù sao, bạn có thể mong đợi
|
||||
việc biên dịch ban đầu sẽ kéo dài khoảng nửa giờ, cho hoặc nhận. Kết quả
|
||||
các tệp nhị phân sẽ nằm trong thư mục `output/images`. Nếu bạn không thực hiện bất kỳ
|
||||
thay đổi nào đối với nguồn thì các tệp này sẽ giống hệt với các tệp đó
|
||||
[có sẵn từ GitHub][4].
|
||||
|
||||
Quá trình biên dịch cũng đã xây dựng một chuỗi công cụ phù hợp để biên dịch các gói
|
||||
cho phiên bản firmware của bạn. Chuỗi công cụ nằm trong `output/host`
|
||||
danh mục.
|
||||
|
||||
Để tùy chỉnh firmware của bạn, thêm hoặc xóa một gói, hãy chạy `make br-menuconfig`.
|
||||
Điều đó sẽ tải menu cấu hình buildroot, nơi bạn có thể thực hiện thay đổi theo
|
||||
[Hướng dẫn sử dụng Buildroot][5]. Thực hiện thay đổi của bạn và lưu cấu hình đã sửa đổi khi thoát.
|
||||
Sau đó chạy `make clean all`.
|
||||
|
||||
__Hãy lưu ý rằng việc xây dựng firmware trực tiếp với buildroot sẽ không đổi tên
|
||||
các tệp hình ảnh kết quả bằng cách thêm hậu tố soc vào chúng. Bạn có thể tự làm
|
||||
điều đó hoặc điều chỉnh firmware của mình bằng cách cập nhật các lệnh cho phù hợp.__
|
||||
|
||||
|
||||
[1]: https://buildroot.org/
|
||||
[2]: https://buildroot.org/docs.html
|
||||
[3]: https://github.com/OpenIPC/firmware/blob/96b2a0ed2f5457fda5b903ab67146f30b5062147/Makefile#L25
|
||||
[4]: https://github.com/OpenIPC/firmware/releases/tag/latest
|
||||
[5]: https://buildroot.org/downloads/manual/manual.html
|
||||
|
|
@ -0,0 +1,76 @@
|
|||
# OpenIPC Wiki
|
||||
[Mục lục](../README.md)
|
||||
|
||||
So sánh các bộ phát trực tuyến
|
||||
-----------------------
|
||||
|
||||
### Mục lục
|
||||
|
||||
- [Các loại bộ phát trực tuyến chính và sự hiện diện của chúng](/en/streamer-comparison.md#main-types-of-streamers-and-their-presence)
|
||||
- [Bảng chức năng của bộ phát trực tuyến](/en/streamer-comparison.md#table-of-streamer-functionality)
|
||||
- [Bảng các nền tảng và nhóm được hỗ trợ](/en/streamer-comparison.md#table-of-supported-platforms-and-groups)
|
||||
|
||||
|
||||
### Các loại bộ phát trực tuyến chính và sự hiện diện của chúng
|
||||
|
||||
- [Divinus](https://github.com/OpenIPC/divinus) - bộ phát trực tuyến mới, mở và đang được phát triển tích cực với hỗ trợ cho nhiều nền tảng
|
||||
- [Majestic](https://github.com/OpenIPC/majestic) - dẫn đầu về chức năng và hỗ trợ cho nhiều nền tảng khác nhau
|
||||
- [Mini](https://github.com/OpenIPC/mini) - bộ phát trực tuyến lâu đời nhất, ông cố của tất cả các bộ phát trực tuyến khác
|
||||
- [Venc](https://github.com/OpenIPC/silicon_research/tree/master/venc) - bộ phát trực tuyến thu nhỏ cho FPV/URLLC cho hai nền tảng
|
||||
|
||||
|
||||
### Bảng chức năng của bộ phát trực tuyến
|
||||
|
||||
| Tính năng và khả năng | Divinus | Majestic | Mini | Venc |
|
||||
|:--------------------------------------------------------|:--------:|:--------:|:--------:|:--------:|
|
||||
| Phát triển dự án trong giai đoạn tích cực | Có | Có | Không | Không |
|
||||
| Dự án nguồn mở | Có | Không | Có | Có |
|
||||
| Số lượng nền tảng được hỗ trợ hạn chế | Không | Không | Có | Có |
|
||||
| Điều khiển bộ lọc IR và đèn nền | Có | Có | Có | Không |
|
||||
| Hỗ trợ phát hiện đóng băng và Watchdog | Có | Có | Không | Không |
|
||||
| Ghi video vào thẻ SD ở định dạng MP4 | ? | Có | Có | Không |
|
||||
| Chụp ảnh JPEG | Có | Có | Có | Không |
|
||||
| Gửi ảnh chụp nhanh JPEG đến máy chủ từ xa | ? | Không | Có | Không |
|
||||
| Hỗ trợ OSD cơ bản | Có | Có | Không | Không |
|
||||
| Hỗ trợ OSD mở rộng và dữ liệu động | Có | Không | Không | Không |
|
||||
| Hỗ trợ MJPEG | Có | Có | Có | Không |
|
||||
| Hỗ trợ RTSP cơ bản, H264 UDP | Có | Có | Có | Không |
|
||||
| Hỗ trợ RTSP mở rộng, H264/H265 và TCP/UDP | ? | Có | Không | Không |
|
||||
| Hai luồng video RTSP độc lập | Không | Có | Không | Không |
|
||||
| Hỗ trợ RTMP H264/H265 | Không | Có | Không | Không |
|
||||
| Hỗ trợ âm thanh trong tất cả các luồng | Không | Có | Không | Không |
|
||||
| Hỗ trợ cho các cấu hình điều chỉnh cảm biến | Không | Có | Không | Không |
|
||||
| Phát hiện chuyển động và khởi chạy tập lệnh | Không | Có | Không | Không |
|
||||
| Hỗ trợ giám sát video đám mây [ipeye.ae](https://ipeye.ae) | Không | Có | Không | Không |
|
||||
| Gửi luồng đến YouTube, Facebook, Telegram, v.v. | Không | Có | Không | Không |
|
||||
| Hỗ trợ HLS | Không | Có | Không | Không |
|
||||
| Hỗ trợ WebRTC | Không | Có | Không | Không |
|
||||
| Hỗ trợ giao thức NetIP cho DVR | Không | Có | Không | Không |
|
||||
| Hỗ trợ ONVIF cơ bản, tìm kiếm tài nguyên | Không | Có | Không | Không |
|
||||
| Hỗ trợ cho plugin tùy chỉnh | Không | Có | Không | Không |
|
||||
| Cài đặt qua WebUI | Không | Có | Không | Không |
|
||||
| Cài đặt ISP tùy chỉnh, số lượng lớn | Không | Có | Không | Không |
|
||||
| Luồng RTP tùy chỉnh, thông qua bài đăng UDP hoặc ổ cắm | Không | Có | Không | Có |
|
||||
| Gửi thông tin từ xa đến nhà phát triển | Không | Có | Không | Không |
|
||||
| | | | | |
|
||||
| Sẽ được tiếp tục, tài liệu đang được viết | | | | |
|
||||
|
||||
|
||||
### Bảng các nền tảng và nhóm được hỗ trợ
|
||||
|
||||
| Tính năng và khả năng | Divinus | Majestic | Mini | Venc |
|
||||
|:--------------------------------------------------------|:--------:|:--------:|:--------:|:--------:|
|
||||
| Nhóm HiSilicon HS3516AV100 | Không | Có | Không | Không |
|
||||
| Nhóm HiSilicon HS3516CV100 | ? | Có | Một phần | Không |
|
||||
| Nhóm HiSilicon HS3516CV200 | ? | Có | Có | Không |
|
||||
| Nhóm HiSilicon HS3516CV300 | Có | Có | Có | Không |
|
||||
| Nhóm HiSilicon HS3516CV500 | ? | Có | Không | Không |
|
||||
| Nhóm HiSilicon HS3516EV200 | Có | Có | Không | Có |
|
||||
| Nhóm HiSilicon HS3519V101 | Không | Có | Không | Không |
|
||||
| | | | | |
|
||||
| Sẽ được tiếp tục, tài liệu đang được viết | | | | |
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
# OpenIPC Wiki
|
||||
[Mục lục](../README.md)
|
||||
|
||||
Syslog từ xa
|
||||
-------------
|
||||
|
||||
Đôi khi cần phải lấy nhật ký từ nhiều thiết bị OpenIPC từ xa.
|
||||
|
||||
Điều này không có gì khó khăn, bạn cần cấu hình máy chủ bằng cách bật tùy chọn nhận thông tin và ghi địa chỉ IP của nó trong lệnh gọi đến trình xử lý trên camera.
|
||||
|
||||
Sẽ bắt đầu với camera. Thêm tùy chọn -R địa chỉ-ip-máy-chủ:514 với địa chỉ như được hiển thị trong ví dụ và khởi động lại thiết bị.
|
||||
|
||||
```bash
|
||||
root@openipc-hi3516ev300:~# differ /etc/init.d/S01syslogd
|
||||
```
|
||||
|
||||
```diff
|
||||
--- /rom/etc/init.d/S01syslogd
|
||||
+++ /etc/init.d/S01syslogd
|
||||
@@ -3,7 +3,7 @@
|
||||
DAEMON="syslogd"
|
||||
PIDFILE="/var/run/$DAEMON.pid"
|
||||
.
|
||||
-SYSLOGD_ARGS="-C64 -t"
|
||||
+SYSLOGD_ARGS="-C64 -t -R 172.19.32.17:514"
|
||||
.
|
||||
# shellcheck source=/dev/null
|
||||
[ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON"
|
||||
```
|
||||
|
||||
Trong tệp cấu hình máy chủ, hãy ghi lại các tùy chọn về số cổng và giao thức nào để lắng nghe nó và khởi động lại dịch vụ.
|
||||
|
||||
```diff
|
||||
--- rsyslog.conf.orig 2022-09-30 16:41:52.081353630 +0300
|
||||
+++ rsyslog.conf 2023-05-01 12:44:06.098032982 +0300
|
||||
@@ -14,12 +14,12 @@
|
||||
#module(load="immark") # provides --MARK-- message capability
|
||||
.
|
||||
# provides UDP syslog reception
|
||||
-#module(load="imudp")
|
||||
-#input(type="imudp" port="514")
|
||||
+module(load="imudp")
|
||||
+input(type="imudp" port="514")
|
||||
.
|
||||
# provides TCP syslog reception
|
||||
-#module(load="imtcp")
|
||||
-#input(type="imtcp" port="514")
|
||||
+module(load="imtcp")
|
||||
+input(type="imtcp" port="514")
|
||||
.
|
||||
# provides kernel logging support and enables non-kernel klog messages
|
||||
module(load="imklog" permitnonkernelselfacility="on")
|
||||
```
|
||||
|
||||
Hoan nghênh ý kiến và bổ sung. Tạm biệt !
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
# OpenIPC Wiki
|
||||
[Mục lục](../README.md)
|
||||
|
||||
Tính năng hệ thống
|
||||
---------------
|
||||
|
||||
* Hỗ trợ cho hầu hết các phông chữ TrueType (.ttf) và một số phông chữ OpenType (.otf).
|
||||
|
||||
### Trình tạo số ngẫu nhiên
|
||||
|
||||
Hoạt động trên các thiết bị Hi3516Ev200/Hi3516Ev300.
|
||||
|
||||
### Watchdog
|
||||
|
||||
Hoạt động trên các thiết bị Hi3516Ev200/Hi3516Ev300.
|
||||
|
||||
### WiFi
|
||||
|
||||
* Bộ điều hợp mạng Realtek Semiconductor RTL8188ETV Wireless LAN 802.11n
|
||||
* [https://linux-hardware.org/index.php?id=usb:0bda-0179](https://linux-hardware.org/index.php?id=usb:0bda-0179)
|
|
@ -0,0 +1,161 @@
|
|||
# OpenIPC Wiki
|
||||
[Mục lục](../README.md)
|
||||
|
||||
Nâng cấp firmware
|
||||
------------------
|
||||
|
||||
### Nâng cấp từ GitHub
|
||||
Đối với firmware cũ, chạy `sysupgrade` không có tham số là đủ. Đối với firmware mới hơn, hãy chạy `sysupgrade -k -r` để cập nhật cả kernel và rootfs.
|
||||
|
||||
__CHÚ Ý! Nâng cấp firmware có thể dẫn đến việc "biến camera của bạn thành cục gạch". Hãy chắc chắn rằng bạn đã chuẩn bị cả về mặt tinh thần và kỹ năng. Chuẩn bị sẵn thẻ SD cứu hộ và/hoặc bộ điều hợp UART của bạn. Hãy chuẩn bị để hàn lại và lập trình lại chip flash như là phương sách cuối cùng. Không nâng cấp camera đang hoạt động trừ khi bạn thực sự phải làm vậy!__
|
||||
|
||||
### Nâng cấp từ máy chủ TFTP
|
||||
|
||||
[Thiết lập máy chủ TFTP](installation-tftpd.md).
|
||||
|
||||
Truy cập <https://github.com/OpenIPC/firmware/releases/tag/latest> và tải xuống gói firmware mới nhất cho SoC của bạn.
|
||||
Giải nén nội dung của gói vào thư mục gốc của máy chủ TFTP của bạn.
|
||||
|
||||
Trên camera, hãy chạy:
|
||||
|
||||
#### Github: Từ Linux
|
||||
|
||||
```bash
|
||||
soc=$(fw_printenv -n soc)
|
||||
serverip=$(fw_printenv -n serverip)
|
||||
busybox tftp -r rootfs.squashfs.${soc} -g ${serverip}
|
||||
busybox tftp -r uImage.${soc} -g ${serverip}
|
||||
```
|
||||
|
||||
#### Github: Ngoài ra, từ U-Boot
|
||||
|
||||
đối với ảnh 8MB
|
||||
|
||||
```bash
|
||||
tftp ${baseaddr} uImage.${soc}
|
||||
sf probe 0; sf erase 0x50000 0x200000; sf write ${baseaddr} 0x50000 ${filesize}
|
||||
|
||||
tftp ${baseaddr} rootfs.squashfs.${soc}
|
||||
sf probe 0; sf erase 0x250000 0x500000; sf write ${baseaddr} 0x250000 ${filesize}
|
||||
```
|
||||
|
||||
đối với ảnh 16MB
|
||||
|
||||
```bash
|
||||
tftp ${baseaddr} uImage.${soc}
|
||||
sf probe 0; sf erase 0x50000 0x200000; sf write ${baseaddr} 0x50000 ${filesize}
|
||||
|
||||
tftp ${baseaddr} rootfs.squashfs.${soc}
|
||||
sf probe 0; sf erase 0x250000 0xA00000; sf write ${baseaddr} 0x250000 ${filesize}
|
||||
```
|
||||
|
||||
### Nâng cấp từ tệp cục bộ
|
||||
|
||||
Truy cập <https://github.com/OpenIPC/firmware/releases/tag/latest> và tải xuống gói firmware mới nhất cho SoC của bạn.
|
||||
Giải nén gói và tải nội dung của nó lên camera bằng cách sử dụng `scp`:
|
||||
|
||||
```bash
|
||||
tar xvf <firmware.tgz>
|
||||
scp uImage* rootfs* root@<yourcameraip>:/tmp/
|
||||
```
|
||||
|
||||
Trên camera, hãy chạy:
|
||||
|
||||
```bash
|
||||
soc=$(fw_printenv -n soc)
|
||||
sysupgrade --kernel=/tmp/uImage.${soc} --rootfs=/tmp/rootfs.squashfs.${soc} -z
|
||||
```
|
||||
|
||||
### Nâng cấp từ thẻ SD
|
||||
|
||||
#### Thẻ SD: Từ Linux
|
||||
|
||||
Truy cập <https://github.com/OpenIPC/firmware/releases/tag/latest> và tải xuống gói firmware mới nhất cho SoC của bạn.
|
||||
Lắp thẻ SD vào máy tính để bàn của bạn. Giải nén gói và sao chép nội dung của nó vào thẻ:
|
||||
|
||||
```bash
|
||||
tar xvf <firmware.tgz>
|
||||
cp uImage* rootfs* /media/<username>/<card-id>/
|
||||
```
|
||||
|
||||
Lắp thẻ SD vào camera của bạn.
|
||||
Trên camera, hãy chạy:
|
||||
|
||||
```bash
|
||||
soc=$(fw_printenv -n soc)
|
||||
sysupgrade --kernel=/mnt/mmcblk0p1/uImage.${soc} --rootfs=/mnt/mmcblk0p1/rootfs.squashfs.${soc} --force_ver -z
|
||||
```
|
||||
|
||||
#### Thẻ SD: Ngoài ra, từ U-Boot
|
||||
|
||||
đối với ảnh 8MB
|
||||
|
||||
```bash
|
||||
mw.b ${baseaddr} 0xff 0x200000
|
||||
fatload mmc 0:1 ${baseaddr} uImage.${soc}
|
||||
sf probe 0; sf erase 0x50000 0x200000; sf write ${baseaddr} 0x50000 ${filesize}
|
||||
|
||||
mw.b ${baseaddr} 0xff 0x500000
|
||||
fatload mmc 0:1 ${baseaddr} rootfs.squashfs.${soc}
|
||||
sf probe 0; sf erase 0x250000 0x500000; sf write ${baseaddr} 0x250000 ${filesize}
|
||||
```
|
||||
|
||||
đối với ảnh 16MB
|
||||
|
||||
```bash
|
||||
mw.b ${baseaddr} 0xff 0x300000
|
||||
fatload mmc 0:1 ${baseaddr} uImage.${soc}
|
||||
sf probe 0; sf erase 0x50000 0x300000; sf write ${baseaddr} 0x50000 ${filesize}
|
||||
|
||||
mw.b ${baseaddr} 0xff 0x500000
|
||||
fatload mmc 0:1 ${baseaddr} rootfs.squashfs.${soc}
|
||||
sf probe 0; sf erase 0x350000 0xa00000; sf write ${baseaddr} 0x350000 ${filesize}
|
||||
```
|
||||
|
||||
### Flash U-Boot qua ymodem
|
||||
|
||||
Dọn dẹp 320K RAM và tải tệp bộ tải khởi động vào đó:
|
||||
|
||||
```bash
|
||||
mw.b ${baseaddr} 0xff 0x50000
|
||||
loady
|
||||
```
|
||||
|
||||
> _(nhấn "Ctrl-a" theo sau là ":", sau đó nhập)_
|
||||
|
||||
```bash
|
||||
exec !! sz --ymodem u-boot.bin
|
||||
```
|
||||
|
||||
Sau khi tệp được tải lên, hãy ghi nó vào ROM:
|
||||
|
||||
```bash
|
||||
sf probe 0
|
||||
sf erase 0x0 0x50000
|
||||
sf write ${baseaddr} 0x0 ${filesize}
|
||||
```
|
||||
|
||||
### Khắc phục sự cố
|
||||
|
||||
Nếu bạn gặp lỗi này:
|
||||
|
||||
```console
|
||||
losetup: /tmp/rootfs.squashfs.${soc}: Không tìm thấy tệp hoặc thư mục
|
||||
Rootfs: Không thể lấy tên máy chủ, quá trình thực thi đã bị gián đoạn...
|
||||
```
|
||||
|
||||
thì hãy thử cập nhật kernel trước:
|
||||
`sysupgrade -k`
|
||||
|
||||
Nếu không được, hãy sử dụng tùy chọn `--force`:
|
||||
`sysupgrade -r --force`
|
||||
|
||||
Nếu bạn gặp trục trặc, hãy lấy phiên bản mới nhất của tiện ích:
|
||||
|
||||
```bash
|
||||
curl -k -L -o /usr/sbin/sysupgrade "https://raw.githubusercontent.com/OpenIPC/firmware/master/general/overlay/usr/sbin/sysupgrade"
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
# OpenIPC Wiki
|
||||
[Mục lục](../README.md)
|
||||
|
||||
Việc cần làm
|
||||
----
|
||||
|
||||
## Sửa lỗi
|
||||
|
||||
* Cần khắc phục sự cố khiến syslogd và logread ngừng hoạt động trên cấu hình hi35{16ev200,16ev300,18ev300}
|
||||
|
||||
|
||||
## Cải tiến và Tính năng
|
||||
|
||||
* Thêm khẩn cấp hỗ trợ cho bộ xử lý Goke
|
||||
* Thực hiện kiểm tra sự hiện diện của các thành phần nhị phân trong majestic, mini_snmpd, telnetd và các tập lệnh khác
|
||||
* Xây dựng gói [motors-openipc](https://github.com/OpenIPC/motors/tree/master/XM) mới
|
||||
* Tích hợp phiên bản mới của [libjson](https://github.com/json-c/json-c/tree/json-c-0.15) theo tiêu chuẩn OpenIPC và loại bỏ các liên kết tượng trưng cũ
|
||||
* Tạo bản dựng Initramfs và cpio cho tất cả các nền tảng
|
||||
* Tối ưu hóa các applet Busybox và tắt tất cả những cái không cần thiết
|
||||
* Thêm khởi chạy daemon Crond
|
||||
* Thêm tập lệnh bot Telegram từ dự án OpenIPC cũ
|
||||
* Tối ưu hóa tập lệnh show_modules để hiển thị bộ nhớ được sử dụng động
|
||||
* ~
|
||||
* Tích hợp Hi3516Av300/Hi3516Cv500/Hi3516Dv300
|
||||
* Tích hợp Hi3516Cv200/Hi3518Ev200/Hi3518Ev201
|
||||
* Tích hợp Hi3516Av100/Hi3516Dv100
|
||||
* Kết nối tập lệnh để khởi tạo các mô-đun và khởi động hệ thống
|
||||
|
||||
|
||||
## Giám sát và Quản lý
|
||||
|
||||
* Tải lên kho lưu trữ các ví dụ về làm việc với Ansible
|
||||
* Cài đặt máy chủ prometheus cục bộ
|
||||
* Đạt được phản hồi đo từ xa ổn định từ các thiết bị của ZFT Lab.
|
||||
|
||||
|
||||
## Tài liệu
|
||||
|
||||
* Tạo trang Wiki để nhập dữ liệu của các bảng có động cơ và thông số kỹ thuật giao thức
|
||||
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
TP-Link
|
||||
-------
|
||||
|
||||
| Tên model | SoC | Cảm biến hình ảnh | Chip Flash | Mô-đun WiFi | FCC ID |
|
||||
|-------------------------|--------------|--------------|------------|-------------|---------------|
|
||||
| TP-Link Tapo C100 | RTS3903N | SC2336 | 25Q64 | RTL8188FTV | TE7C100 |
|
||||
| TP-Link Tapo C100V4 | T31 | | 25Q64 | RTL8188FTV | 2AXJ4C100V4 |
|
||||
| TP-Link Tapo C110 | TP33A | | 25Q64 | SSW101B | 2AXJ4C110 |
|
||||
| TP-Link Tapo C110 (V1) | SSC335 | SC3335 | 25Q64 | SSW101B | |
|
||||
| TP-Link Tapo C110 (V2) | SSC333 | SC3338 | 25Q64 | SSW101B | TE7KC110 |
|
||||
| TP-Link Tapo C120 | SSC377 | | 25Q128 | RTL8188FTV | 2AXJ4C120 |
|
||||
| TP-Link Tapo C125 | SSC377D | | 25Q64 | SW6355 | 2AXJ4C125 |
|
||||
| TP-Link Tapo C200 | RTS3903 | SC2232H | 25Q64 | RTL8188FTV | TE7C200 |
|
||||
| TP-Link Tapo C200V2 | RTS3903N | | 25Q64 | RTL8188FTV | 2AXJ4C200V2 |
|
||||
| TP-Link Tapo C210 | SSC335 | | 25Q? | SSW101B | 2AXJ4C210 |
|
||||
| TP-Link Tapo C210P2 | | | | | |
|
||||
| TP-Link Tapo C220 | SSC377 | | 25Q128 | RTL8188FTV | 2BCGWC220 |
|
||||
| TP-Link Tapo C225 | SSC30KQ | | F50L1G41LB | RTL8188FTV | 2AXJ4C225 |
|
||||
| TP-Link Tapo C225V2 | SSC337D | | 25Q128 | SV6355 | 2AXJ4C225V2 |
|
||||
| TP-Link Tapo C310 | SSC325 | SC3335 | 25Q64 | RTL8192EU | |
|
||||
| TP-Link Tapo C310V2 | SSC335 | SC3338 | 25Q64 | RTL8192EU | 2AXJ4C310V2 |
|
||||
| TP-Link Tapo C320WS | SSC337 | | 25Q? | RTL8192EU | 2AXJ4C320WS |
|
||||
| TP-Link Tapo C320WSV2 | NT98562 | | 25Q? | RTL8192EU | 2AXJ4C320WSV2 |
|
||||
| TP-Link Tapo C325WB | NT98562 | | 25Q128 | RTL8192EU | 2AXJ4C325WB |
|
||||
| TP-Link Tapo C340W | NT98566 | | 25Q128 | RTL8192EU | 2AXJ4C340W |
|
||||
| TP-Link Tapo C400 | T31ZL | | 25Q128 | MT7682SN | 2AXJ4C400 |
|
||||
| TP-Link Tapo C420 | T31ZX | | 25Q64 | MT7682SN | 2AXJ4C420 |
|
||||
| TP-Link Tapo C425 | T41ZN | | 25Q128 | MT7682SN | 2AXJ4C425 |
|
||||
| TP-Link Tapo C440W | NT98566 | | 25Q? | RTL | 2AXJ4C440W |
|
||||
| TP-Link Tapo C500 | T31L | | 25Q64 | RTL8188FTV | 2AXJ4C500 |
|
||||
| TP-Link Tapo C510W | T31L | | 25Q64 | RTL8188FTV | 2AXJ4C510W |
|
||||
| TP-Link Tapo C510WS | | | | | |
|
||||
| TP-Link Tapo C520WS | NT98562 | | 25Q128 | RTL8192EU | 2AXJ4C520WS |
|
||||
| TP-Link Tapo C720 | SSC30KQ | | F50L1G41LB | RTL8192EU | 2AXJ4C720 |
|
||||
| TP-Link Tapo D230 | T31ZX | | 25Q128 | MT7682SN | 2AXJ4D230 |
|
||||
| TP-Link Tapo D230S1 | | | | | |
|
||||
| TP-Link Kasa KC100 | Hi3518EV200 | | 25Q? | RTL8188FTV | TE7KC100 |
|
||||
| TP-Link Kasa KC105 | Hi3518EV300 | | 25Q? | RTL8188FTV | TE7KC105 |
|
||||
| TP-Link Kasa KC110 | Hi3518EV200 | | 25Q? | RTL8188FTV | TE7KC110 |
|
||||
| TP-Link Kasa KC115 | Hi3518EV300 | | 25Q? | RTL8188FTV | TE7KC115 |
|
||||
| TP-Link Kasa KC120 | ? | | 25Q? | MT7610UN? | TE7KC120 |
|
||||
| TP-Link Kasa KC120V2 | Hi3518EV300 | | 25Q? | RTL8188FTV | TE7KC120V2 |
|
||||
| TP-Link Kasa KC125 | Hi3518EV300? | | 25Q? | RTL8188FTV | TE7KC125 |
|
||||
| TP-Link Kasa KC200 | Hi3518CV200 | | 25Q? | MT7601UN | TE7KC200 |
|
||||
| TP-Link Kasa KC300 | S2L-M-A2 | | F59L1G81MA | CYW4334W | TE7KC300 |
|
||||
| TP-Link Kasa KC310 | AN3918V300 | | 25Q? | 88W8801 | TE7KC310 |
|
||||
| TP-Link Kasa KC400 | SSC337 | | 25Q? | RTL8188FTV | TE7KC400 |
|
||||
| TP-Link Kasa KC410S | SSC337 | | 25Q? | RTL8188FTV | 2AXJ4KC410S |
|
||||
| TP-Link Kasa KC420WS | SSC337 | | 25Q128 | RTL8188FTV | 2AXJ4KC420WS |
|
||||
| TP-Link Kasa KD110 | ? | | 25Q? | RTL8188FTV | 2AXJ4KD110 |
|
||||
| TP-Link NC200 | MT7620N | | | | TE7NC200 |
|
||||
| TP-Link NC210 | Hi3518EV100 | | 25Q128 | MT7601UN | TE7NC210 |
|
||||
| TP-Link NC220 | MT7620N | | | | TE7NC220 |
|
||||
| TP-Link NC230 | MT7620N | | | | TE7NC230 |
|
||||
| TP-Link NC250 | MT7620N | | | | TE7NC250 |
|
||||
| TP-Link SC3430N | GM8139 | | | | TE7SC3430N |
|
||||
| TP-Link SC3171G | GM8180SS | | | RT2561T | TE7SC3171G |
|
||||
| TP-Link SC4171G | GM8120SF | | | RT2561T | TE7SC4171G |
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
# OpenIPC Wiki
|
||||
[Mục lục](../README.md)
|
||||
|
||||
## Khắc phục sự cố: Majestic không hoạt động, camera khởi động lại
|
||||
|
||||
Để khắc phục sự cố majestic, trước tiên bạn cần truy cập vào nhật ký của nó, ngay tại thời điểm nó gặp sự cố,
|
||||
điều này dẫn đến việc watchdog khởi động lại hệ thống và xóa nhật ký khỏi camera. Vì vậy, bạn cần sao chép
|
||||
nhật ký đến một nơi an toàn khi nó được tạo ra. Và bạn có thể đạt được điều đó bằng cách sử dụng quyền truy cập ssh vào camera và chuyển
|
||||
đầu ra sang một tệp trên máy tính để bàn của bạn.
|
||||
|
||||
Chạy lệnh này trên máy tính để bàn Linux của bạn (đừng quên thay thế _192.168.1.10_ bằng địa chỉ IP thực tế của camera)
|
||||
và đợi camera khởi động lại một lần nữa. Tệp nhật ký kết quả sẽ nằm trong cùng thư mục được đặt tên và
|
||||
được ghi ngày tháng tương tự như _majestic-2022-12-14.log_
|
||||
```
|
||||
ssh root@192.168.1.10 "killall majestic; sleep 2; majestic" > majestic-$(date +"%F").log
|
||||
```
|
|
@ -0,0 +1,119 @@
|
|||
# OpenIPC Wiki
|
||||
[Mục lục](../README.md)
|
||||
|
||||
## Khắc phục sự cố: Mạng không hoạt động trên hi35xx
|
||||
Nếu mạng không hoạt động trên thiết bị hi35xx của bạn sau khi cài đặt OpenIPC (không có liên kết), bạn có thể phải điều chỉnh cài đặt MII (Giao diện Độc lập Phương tiện).
|
||||
Đối với U-Boot, điều này được thực hiện bằng cách đặt giá trị cho `phyaddru`, `phyaddrd` và `mdio_intf`.
|
||||
Các giá trị có thể có cho `phyaddru` và `phyaddrd` là: `0-3`, các giá trị có thể có cho `mdio_intf` là: `rmii`, `rgmii`, `gmii`.
|
||||
Đối với kernel Linux / Hệ điều hành, các giá trị có thể được đặt thông qua các biến khởi động `extras` là `hieth.phyaddru`, `hieth.phyaddrd`, `hieth.mdioifu` và `hieth.mdioifd`.
|
||||
|
||||
Thông thường, các giá trị chính xác có thể được tìm thấy trong firmware gốc của bạn. Việc xem nhật ký khởi động hoặc chạy [ipctool](https://github.com/OpenIPC/ipctool) trên firmware gốc của bạn có thể cung cấp manh mối.
|
||||
|
||||
Dưới đây là một số kết hợp bạn có thể thử:
|
||||
|
||||
### Đối với ethernet trong Linux:
|
||||
|
||||
Trong bảng điều khiển Linux, hãy chạy lệnh này:
|
||||
```
|
||||
fw_setenv extras 'hieth.phyaddru=0 hieth.phyaddrd=1' && reboot
|
||||
```
|
||||
Nếu cài đặt trên không hoạt động, hãy thử cài đặt này:
|
||||
```
|
||||
fw_setenv extras 'hieth.phyaddru=1 hieth.phyaddrd=0' && reboot
|
||||
```
|
||||
Hoặc:
|
||||
```
|
||||
fw_setenv extras 'hieth.mdioifu=0 hieth.mdioifd=0' && reboot
|
||||
```
|
||||
Hoặc:
|
||||
```
|
||||
fw_setenv extras 'hieth.mdioifu=1 hieth.mdioifd=1' && reboot
|
||||
```
|
||||
Hoặc:
|
||||
```
|
||||
fw_setenv extras hieth.mdioifu=0 hieth.mdioifd=0 hieth.phyaddru=1 hieth.phyaddrd=2 && reboot
|
||||
```
|
||||
Hoặc:
|
||||
```
|
||||
fw_setenv extras hieth.phyaddru=3 hieth.mdioifu=0 && reboot
|
||||
```
|
||||
|
||||
*Lưu ý: nếu một kết hợp nhất định khiến thiết bị của bạn không khởi động được, bạn có thể xóa các biến trong dấu nhắc U-Boot bằng cách gọi `setenv <biến>`, tức là đặt biến bằng một đối số trống, theo sau là `saveenv`.*
|
||||
|
||||
### Đối với ethernet trong U-boot:
|
||||
|
||||
Đặt các biến `phyaddru` và `phyaddrd` từ bảng điều khiển U-Boot:
|
||||
```
|
||||
setenv phyaddru 0; setenv phyaddrd 1; saveenv; reset
|
||||
```
|
||||
Nếu cài đặt trên không hoạt động, hãy thử cài đặt này
|
||||
```
|
||||
setenv phyaddru 1; setenv phyaddrd 0; saveenv; reset
|
||||
```
|
||||
Hoặc:
|
||||
```
|
||||
setenv phyaddru 0; setenv phyaddrd 0; saveenv; reset
|
||||
```
|
||||
Hoặc:
|
||||
```
|
||||
setenv phyaddru 1; setenv phyaddrd 1; saveenv; reset
|
||||
```
|
||||
|
||||
*Lưu ý: để khởi tạo và kiểm tra kết nối mạng trong U-Boot, có thể sử dụng lệnh `ping`.*
|
||||
|
||||
Một số kết hợp đã biết cho các bảng cụ thể:
|
||||
|
||||
### XiongMai, HI3518EV100
|
||||
*Đối với mạng U-boot:*
|
||||
```
|
||||
setenv phyaddru 1
|
||||
setenv phyaddrd 2
|
||||
setenv mdio_intf rmii
|
||||
saveenv
|
||||
```
|
||||
*Đối với mạng Linux:*
|
||||
```
|
||||
setenv extras 'hieth.phyaddru=1 hieth.phyaddrd=2'
|
||||
saveenv
|
||||
```
|
||||
|
||||
### XiongMai IPG-53H20AF, HI3516CV100
|
||||
|
||||
*Đối với mạng Linux:*
|
||||
```
|
||||
setenv hieth.mdioifu=0 hieth.mdioifd=0 hieth.phyaddru=1 hieth.phyaddrd=2
|
||||
saveenv
|
||||
```
|
||||
|
||||
### CamHi/HiChip/Xin, HI3518EV200
|
||||
|
||||
*Đối với mạng U-boot:*
|
||||
```
|
||||
setenv phyaddru 0
|
||||
setenv phyaddrd 1
|
||||
saveenv
|
||||
```
|
||||
|
||||
### HiWatch, HI3518CV100
|
||||
|
||||
*Đối với mạng U-boot:*
|
||||
```
|
||||
setenv phyaddru 3
|
||||
saveenv
|
||||
```
|
||||
|
||||
*Đối với mạng Linux:*
|
||||
```
|
||||
setenv extras 'hieth.phyaddru=3 hieth.mdioifu=0'
|
||||
saveenv
|
||||
```
|
||||
|
||||
### Harex (5013A-CF/5020A-FF), HI3516CV100
|
||||
|
||||
*Đối với mạng U-boot:*
|
||||
```
|
||||
setenv extras 'hieth.phyaddru=1 hieth.mdioifu=0'
|
||||
saveenv
|
||||
```
|
||||
|
||||
Nếu không có cách nào ở trên hiệu quả với bạn, vui lòng hỏi trong [kênh Telegram của chúng tôi](https://t.me/openipc).
|
|
@ -0,0 +1,40 @@
|
|||
# OpenIPC Wiki
|
||||
[Mục lục](../README.md)
|
||||
|
||||
Cài đặt U-Boot
|
||||
---------------
|
||||
|
||||
### bootdelay
|
||||
Sử dụng tùy chọn này để đặt độ trễ trước khi chúng ta khởi động kernel, đây là khoảng thời gian bạn có thể vào bộ tải khởi động.
|
||||
|
||||
### bootnfs
|
||||
Sẽ được tiếp tục...
|
||||
|
||||
### ethaddr
|
||||
Cài đặt bắt buộc, có sẵn trong tất cả các bộ tải khởi động OpenIPC
|
||||
|
||||
### gatewayip
|
||||
Đây là địa chỉ IP cổng gateway của camera, chủ yếu được sử dụng khi bạn đang flash bằng TFTP trong U-Boot.
|
||||
|
||||
### ipaddr
|
||||
Đây là địa chỉ IP của camera, chủ yếu được sử dụng khi bạn đang flash bằng TFTP trong U-Boot.
|
||||
|
||||
### netaddr_fallback
|
||||
Đặt địa chỉ dự phòng trên giao diện Ethernet nếu WiFi được bật
|
||||
|
||||
### osmem
|
||||
Cài đặt bắt buộc, có sẵn trong tất cả các bộ tải khởi động OpenIPC
|
||||
|
||||
### sensor
|
||||
Loại cảm biến được sử dụng trên thiết bị được đặt tự động trong hầu hết các trường hợp
|
||||
|
||||
### upgrade
|
||||
Chỉ định đường dẫn đầy đủ đến kho lưu trữ với firmware OpenIPC tùy chỉnh ở định dạng .tgz
|
||||
|
||||
### wlandev
|
||||
Trình điều khiển Wi-Fi để sử dụng cho giao diện Wi-Fi. ([Tìm hiểu cách sử dụng nó tại đây](../en/wireless-settings.md))
|
||||
|
||||
### wlanmac
|
||||
MAC cho giao diện Wi-Fi.
|
||||
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
# Hình ảnh cận cảnh cảm biến
|
||||
-----------------
|
||||
|
||||
Có thể được sử dụng để nhận dạng trực quan cảm biến thực tế, ví dụ: xác minh người bán trực tuyến có thực sự bán cho bạn cảm biến được quảng cáo hay không. Và đôi khi, việc nhìn nhanh hơn là chạy ipctool trên ipc mới mua.
|
||||
|
||||
Điều đáng quan tâm là dây nối và vị trí đặt pad.
|
||||
|
||||
## Sony IMX
|
||||
|
||||
| Cảm biến | Hình ảnh | Ghi chú |
|
||||
|---------|-----------------------------------------------|---------------------------------------|
|
||||
| IMX307 |  | |
|
||||
| IMX335 |  | |
|
||||
| IMX415 |  | |
|
||||
|
||||
|
||||
## SuperPix (một phần của Omnivision Group)
|
||||
|
||||
| Cảm biến | Hình ảnh | Ghi chú |
|
||||
|---------|-----------------------------------------------|---------------------------------------|
|
||||
| SP4329 |  | Được bán dưới dạng SC450AI và OS03A10 |
|
|
@ -0,0 +1,19 @@
|
|||
# OpenIPC Wiki
|
||||
[Mục lục](../README.md)
|
||||
|
||||
Giao diện web
|
||||
---------------------
|
||||
|
||||
Giao diện web có sẵn trên cổng 80 dưới dạng _http://camera-ip_.
|
||||
Tên đăng nhập và mật khẩu mặc định lần lượt là _admin_ và _12345_.
|
||||
|
||||
### Cập nhật giao diện web từ giao diện web
|
||||
|
||||
Trong một số trường hợp, đặc biệt là nếu có vẻ như có thứ gì đó không hoạt động, bạn có thể
|
||||
cần cài đặt lại bản cập nhật giao diện web bằng cách chọn hộp kiểm "Cài đặt ngay cả khi
|
||||
khớp với phiên bản hiện tại".
|
||||
|
||||
Cập nhật kép giao diện web có thể cần thiết nếu chúng tôi đã thực hiện một số thay đổi
|
||||
đối với mã của quy trình cập nhật. Trong trường hợp như vậy, quy trình cập nhật đầu tiên
|
||||
sẽ cài đặt mã đã sửa đổi và vòng thứ hai sẽ được thực hiện bằng
|
||||
mã đã cập nhật đó.
|
|
@ -0,0 +1,35 @@
|
|||
# OpenIPC Wiki
|
||||
[Mục lục](../README.md)
|
||||
|
||||
Wi-Fi cho các thiết bị dựa trên XM530
|
||||
-----------------------------
|
||||
|
||||
Lưu tập lệnh này dưới dạng `/usr/sbin/wifi`
|
||||
|
||||
```bash
|
||||
#!/bin/sh
|
||||
|
||||
WIFI=$1
|
||||
|
||||
if [ "$WIFI" = "xm711" ]; then
|
||||
insmod /lib/modules/3.10.103+/xiongmai/dwc_common_port_lib.ko
|
||||
insmod /lib/modules/3.10.103+/xiongmai/dwc_otg.ko
|
||||
insmod /lib/modules/3.10.103+/xiongmai/wifi_pdn.ko value=96
|
||||
insmod /lib/modules/3.10.103+/xiongmai/compat.ko
|
||||
insmod /lib/modules/3.10.103+/kernel/net/wireless/cfg80211.ko # lấy từ firmware gốc
|
||||
insmod /lib/modules/3.10.103+/kernel/net/mac80211/mac80211.ko
|
||||
insmod /lib/modules/3.10.103+/xiongmai/xm711.ko
|
||||
fi
|
||||
```
|
||||
|
||||
Lưu các cài đặt này vào `/etc/network/interfaces`
|
||||
|
||||
```bash
|
||||
auto eth2
|
||||
iface eth2 inet dhcp
|
||||
pre-up wifi xm711
|
||||
pre-up wpa_passphrase "SSID" "password" >/tmp/wpa_supplicant.conf
|
||||
pre-up sed -i '2i \\tscan_ssid=1' /tmp/wpa_supplicant.conf
|
||||
pre-up (sleep 3; wpa_supplicant -B -Dnl80211 -ieth2 -c/tmp/wpa_supplicant.conf)
|
||||
post-down killall -q wpa_supplicant
|
||||
```
|
|
@ -0,0 +1,68 @@
|
|||
# OpenIPC Wiki
|
||||
[Mục lục](../README.md)
|
||||
|
||||
Cài đặt Wireless
|
||||
---
|
||||
|
||||
### Cấu hình ban đầu
|
||||
|
||||
- Cài đặt wireless được cung cấp dựa trên một biến uboot:
|
||||
|
||||
```diff
|
||||
# HI3516EV300 CamHi
|
||||
+if [ "$1" = "mt7601u-hi3516ev300-camhi" ]; then
|
||||
devmem 0x100C0080 32 0x530
|
||||
```
|
||||
|
||||
> [!QUAN TRỌNG]
|
||||
> Một số trình điều khiển không được bao gồm trong các tệp nhị phân firmware OpenIPC được tạo sẵn, bạn có thể phải tự biên dịch nó.
|
||||
|
||||
- Các biến [được liệt kê ở đây][1] và có thể được đặt bằng:
|
||||
```shell
|
||||
fw_setenv wlandev mt7601u-hi3516ev300-camhi
|
||||
```
|
||||
|
||||
### Nhập thông tin đăng nhập wireless
|
||||
|
||||
- Thông tin đăng nhập có thể được thêm bằng:
|
||||
|
||||
```shell
|
||||
fw_setenv wlanssid MySSID
|
||||
fw_setenv wlanpass MyPassword
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Áp dụng cài đặt tùy chỉnh
|
||||
|
||||
- Có thể chuyển đổi [cài đặt wlan0 hiện có](../en/network-settings.md) sang [cấu hình mới][1]:
|
||||
|
||||
```diff
|
||||
auto wlan0
|
||||
iface wlan0 inet dhcp
|
||||
+ pre-up devmem 0x100C0080 32 0x530
|
||||
+ pre-up echo 7 > /sys/class/gpio/export
|
||||
+ pre-up echo out > /sys/class/gpio/gpio7/direction
|
||||
+ pre-up echo 0 > /sys/class/gpio/gpio7/value
|
||||
+ pre-up modprobe mt7601u
|
||||
pre-up wpa_passphrase "SSID" "password" >/tmp/wpa_supplicant.conf
|
||||
pre-up sed -i '2i \\tscan_ssid=1' /tmp/wpa_supplicant.conf
|
||||
pre-up sleep 3
|
||||
pre-up wpa_supplicant -B -D nl80211 -i wlan0 -c/tmp/wpa_supplicant.conf
|
||||
post-down killall -q wpa_supplicant
|
||||
post-down echo 1 > /sys/class/gpio/gpio7/value
|
||||
post-down echo 7 > /sys/class/gpio/unexport
|
||||
```
|
||||
|
||||
```diff
|
||||
# HI3516EV300 CamHi
|
||||
if [ "$1" = "mt7601u-hi3516ev300-camhi" ]; then
|
||||
+ devmem 0x100C0080 32 0x530
|
||||
+ set_gpio 7 0
|
||||
+ modprobe mt7601u
|
||||
exit 0
|
||||
fi
|
||||
```
|
||||
|
||||
[1]: https://github.com/OpenIPC/firmware/blob/master/general/overlay/etc/wireless
|
||||
|
|
@ -0,0 +1,96 @@
|
|||
# OpenIPC Wiki
|
||||
[Mục lục](../README.md)
|
||||
|
||||
Yêu cầu cấu hình
|
||||
--------------------------
|
||||
|
||||
Để ngăn việc luồng phát trực tiếp bị chấm dứt do kết nối bị gián đoạn tạm thời,
|
||||
hãy lên lịch phát trực tiếp với ngày bắt đầu trong tương lai xa (ví dụ: ngày 31 tháng 12
|
||||
của năm hiện tại). Nó sẽ hoạt động trơn tru khi bạn phát trực tiếp, ngắt kết nối
|
||||
camera và sau đó tiếp tục phát trực tiếp.
|
||||
|
||||
### HLS + H.265
|
||||
|
||||
Theo dõi [Cung cấp Nội dung qua HLS](https://developers.google.com/youtube/v3/live/guides/hls-ingestion)
|
||||
để biết thêm thông tin.
|
||||
|
||||
### Tạo luồng mới
|
||||
|
||||
- Điều hướng đến trang <https://developers.google.com/youtube/v3/live/code_samples>.
|
||||
- Chọn 'liveStreams' làm Tài nguyên và 'insert' làm Phương thức.
|
||||
- Trong bảng bên dưới, nhấp vào trường hợp sử dụng 'insert'.
|
||||
- Ở phía bên phải của trang:
|
||||
- trong đối tượng 'cdn', thay đổi "frameRate" từ "60fps" thành "variable";
|
||||
- chuyển "resolution" từ "1080p" thành "variable";
|
||||
- chuyển "ingestionType" từ "rtmp" thành "hls":
|
||||
|
||||
```json
|
||||
"cdn": {
|
||||
"ingestionType": "hls",
|
||||
"frameRate": "variable",
|
||||
"resolution": "variable"
|
||||
}
|
||||
```
|
||||
|
||||
- trong phần Thông tin đăng nhập, hãy đảm bảo rằng bạn đã chọn 'Google OAuth 2.0' và
|
||||
phạm vi 'https://www.googleapis.com/auth/youtube' (sử dụng 'Hiển thị phạm vi') và
|
||||
bỏ chọn tùy chọn 'Khóa API', sau đó nhấn nút 'Thực thi' bên dưới.
|
||||
- Ủy quyền cho chính bạn bằng tài khoản được kết nối với YouTube của bạn.
|
||||
- Đảm bảo rằng bạn nhận được phản hồi 200, nếu không hãy kiểm tra lỗi và lặp lại.
|
||||
Lỗi phổ biến là khi [phát trực tiếp](https://support.google.com/youtube/answer/2474026?hl=en)
|
||||
chưa được bật trước đó trong tài khoản của bạn.
|
||||
- Lưu "channelId" từ phản hồi (nó trông giống như "UCPJRjbxYlq6h2cCqy8RCRjg").
|
||||
|
||||
|
||||
### Tạo chương trình phát sóng mới:
|
||||
|
||||
- Điều hướng đến trang <https://developers.google.com/youtube/v3/live/code_samples>.
|
||||
- Chọn 'liveBroadcast' làm Tài nguyên và 'insert' làm Phương thức.
|
||||
- Trong bảng bên dưới, nhấp vào trường hợp sử dụng 'insert'.
|
||||
- Ở phía bên phải của trang:
|
||||
- trường 'title' cho chương trình phát sóng của bạn như 'My Hometown Camera'
|
||||
- 'scheduledStartTime' như '2020-04-21T00:00:00.000Z' (đảm bảo thời gian này trong tương lai),
|
||||
- 'scheduledEndTime' như '2020-04-21T01:00:00.000Z' (thời gian kết thúc theo lịch trình phải sau thời gian bắt đầu theo lịch trình)
|
||||
- cũng nhấn nút cộng màu xanh lam bên trong khối "snippet" và thêm "channelId" với giá trị được cung cấp từ bước luồng
|
||||
|
||||
```json
|
||||
"snippet": {`
|
||||
`"title": "My Hometown Camera",`
|
||||
`"scheduledStartTime": "2021-04-12T00:00:00.000Z",`
|
||||
`"scheduledEndTime": "2021-04-13T00:00:00.000Z",`
|
||||
`"channelId": "MCpZqkqqEZw806aGGHUdepIl"`
|
||||
`},
|
||||
```
|
||||
|
||||
- trong phần Thông tin đăng nhập, hãy đảm bảo rằng bạn đã chọn 'Google OAuth 2.0' và
|
||||
phạm vi 'https://www.googleapis.com/auth/youtube' (sử dụng 'Hiển thị phạm vi') và
|
||||
bỏ chọn tùy chọn 'Khóa API', sau đó nhấn nút 'Thực thi' bên dưới.
|
||||
- Ủy quyền cho chính bạn bằng tài khoản được kết nối với YouTube của bạn.
|
||||
- Đảm bảo rằng bạn nhận được phản hồi 200, nếu không hãy kiểm tra lỗi và lặp lại.
|
||||
|
||||
|
||||
### Liên kết chương trình phát sóng với luồng:
|
||||
|
||||
- Điều hướng đến trang <https://developers.google.com/youtube/v3/live/code_samples>.
|
||||
- Chọn 'liveBroadcast' làm Tài nguyên và 'bind' làm Phương thức.
|
||||
- Trong bảng bên dưới, nhấp vào trường hợp sử dụng 'Liên kết chương trình phát sóng với luồng'.
|
||||
- Ở phía bên phải của trang:
|
||||
- 'id' - ID của chương trình phát sóng (có thể được tìm thấy trong phản hồi của máy chủ trong bước 'Tạo chương trình phát sóng mới', trường 'id')
|
||||
- 'streamId' - ID của luồng (có thể được tìm thấy trong phản hồi của máy chủ trong bước 'Tạo luồng mới', trường 'id')
|
||||
- trong phần Thông tin đăng nhập, hãy đảm bảo rằng bạn đã chọn 'Google OAuth 2.0' và phạm vi 'https://www.googleapis.com/auth/youtube' (sử dụng 'Hiển thị phạm vi') và bỏ chọn tùy chọn 'Khóa API', sau đó nhấn nút 'Thực thi' bên dưới
|
||||
- Ủy quyền cho chính bạn bằng tài khoản được kết nối với YouTube của bạn.
|
||||
- Đảm bảo rằng bạn nhận được phản hồi 200, nếu không hãy kiểm tra lỗi và lặp lại.
|
||||
|
||||
|
||||
### Phát trực tiếp!
|
||||
|
||||
Điều hướng đến <https://studio.youtube.com/>.
|
||||
|
||||
Ở phía bên phải, nhấp vào nút 'TẠO' và sau đó 'Phát trực tiếp'.
|
||||
|
||||
|
||||
(c) Victor, Nguồn: https://github.com/OpenIPC/camerasrnd/blob/master/streaming/youtube.md
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
# ZeroTier One
|
||||
Gói [ZeroTier One](https://www.zerotier.com) cho các bản dựng ultimate.
|
||||
|
||||
### Bắt đầu
|
||||
- Để bắt đầu dịch vụ, hãy thực thi lệnh này:
|
||||
```
|
||||
/usr/sbin/zerotier-one -d &
|
||||
```
|
||||
|
||||
### Thiết lập
|
||||
1. Đăng ký tại [my.zerotier.com](https://my.zerotier.com).
|
||||
2. Nhận ID mạng, cấu hình mạng là riêng tư.
|
||||
3. Từ bảng điều khiển ssh (hoặc bảng điều khiển web) hãy chạy như sau:
|
||||
```
|
||||
zerotier-cli join [ID mạng]
|
||||
```
|
||||
|
||||
4. Truy cập giao diện web tại [my.zerotier.com](https://my.zerotier.com) và ủy quyền cho camera mới được kết nối, ủy quyền diễn ra bằng cách chọn hộp bên cạnh peer tương ứng.
|
||||
|
||||
### Cài đặt
|
||||
- Cấu hình được lưu trữ trong `/var/lib/zerotier-one`
|
||||
- Bạn có thể rời khỏi mạng bằng cách chạy lệnh sau:
|
||||
```
|
||||
zerotier-cli leave [ID mạng]
|
||||
```
|
Loading…
Reference in New Issue