mirror of https://github.com/OpenIPC/wiki.git
verify translate from gpio to todo
parent
3bf71a29f5
commit
72e6f12402
|
@ -6,13 +6,14 @@ Danh sách cài đặt GPIO dành riêng cho bo mạch
|
|||
|
||||
### Bo mạch Anjoy / Anjvision
|
||||
|
||||
| Bộ xử lý | IRCUT1 | IRCUT2 | ÁNH SÁNG | RESET | I/O | USB_ENA | BO MẠCH ĐƯỢC KIỂM TRA | ĐẦU RA ÂM THANH |
|
||||
|-------------|--------|--------|-------|-------|-----|---------|------------------|-----------------|
|
||||
| SSC30KQ | 23 | 24 | 60/59 | 10 | | | MC-L12, MC-L12B | 9 |
|
||||
| SSC335 | 78 | 79 | 61/53 | 66 | 52 | | MS-J10, YM200J10 | 80 |
|
||||
| SSC337 | 78 | 79 | 61 | 66 | 52 | | MC-F40, YM-J10D | |
|
||||
| SSC337DE | 78 | 79 | 61 | 66 | | | MC500L8 | |
|
||||
| SSC338Q | 23 | 24 | 60 | 10 | | 8 | MC800S-V3 | 39 |
|
||||
| Bộ xử lý | IRCUT1 | IRCUT2 | Đèn hồng ngoại | Đèn trắng | RESET | I/O | USB_ENA | BO MẠCH ĐÃ KIỂM TRA | ĐẦU RA ÂM THANH |
|
||||
|-------------|--------|--------|----------|-------------|-------|-----|---------|------------------|-----------------|
|
||||
| SSC30KQ | 23 | 24 | 60/59 | | 10 | | | MC-L12, MC-L12B | 9 |
|
||||
| SSC335 | 78 | 79 | 61/53 | | 66 | 52 | | MS-J10, YM200J10 | 80 |
|
||||
| SSC337 | 78 | 79 | 61 | | 66 | 52 | | MC-F40, YM-J10D | |
|
||||
| SSC337DE | 78 | 79 | 61 | | 66 | | | MC500L8 | |
|
||||
| SSC338Q | 23 | 24 | 60 | 59 | 10 | | 8 | MC800S-V3 | 39 |
|
||||
| SSC377 | 11 | 80 | 9 | 13 | | | | MC-A42P-V1.1 | 12 |
|
||||
|
||||
### Bo mạch CamHi / Xin
|
||||
|
||||
|
@ -34,7 +35,7 @@ Danh sách cài đặt GPIO dành riêng cho bo mạch
|
|||
| | | | | | |
|
||||
| T31 | 58 | 57 | | 49 | 61i | 53 | 55 | 56 | 63 | 11 | 50 | 62 |
|
||||
|
||||
> _i - giá trị đảo ngược_
|
||||
> _i - đảo ngược_
|
||||
|
||||
```
|
||||
Đã thử nghiệm trên GK7205V200 cho /dev/ttyАМА1:
|
||||
|
@ -53,16 +54,16 @@ Danh sách cài đặt GPIO dành riêng cho bo mạch
|
|||
| Bộ xử lý | IRCUT1 | IRCUT2 | IRSTATUS | IRCTL | USB_ENA | Mô tả |
|
||||
|-------------|--------|--------|----------|-------|---------|-------------|
|
||||
| GK7205V200 | 68 | 70 | 9 | | | |
|
||||
| GK7205V200 | 50 | 51 | | | | Domophone nhựa cũ |
|
||||
| GK7205V200 | 50 | 51 | | | | Chuông cửa màn hình nhựa cũ |
|
||||
| GK7205V300 | 68 | 70 | 9 | | | |
|
||||
|
||||
> _Vâng, thật ngạc nhiên nhưng nó thực sự phù hợp với hai bộ xử lý Goke_
|
||||
> _Đúng vậy, thật ngạc nhiên nhưng nó thực sự khớp với hai bộ xử lý Goke_
|
||||
|
||||
### Bo mạch GSA
|
||||
### Bo mạch GSA / EnZhi
|
||||
|
||||
| Bộ xử lý | IRCUT1 | IRCUT2 | IRSTATUS | IRCTL | USB_ENA |
|
||||
|-------------|--------|--------|----------|-------|---------|
|
||||
| T31L | 58 | 57 | | | |
|
||||
| T31L | 58 | 57 | | 49 | |
|
||||
|
||||
|
||||
### Bo mạch Herospeed/Longse/Cantonk
|
||||
|
@ -71,21 +72,21 @@ Danh sách cài đặt GPIO dành riêng cho bo mạch
|
|||
|-------------|--------|--------|----------|-------|--------|---------|---------|
|
||||
| Gk7205v200 | 12 | 13 | | 4 | 15 | 14 | |
|
||||
| | | | | | | | |
|
||||
| Hi3516Cv100 | 18 | 19 |
|
||||
| Hi3516Cv200 |
|
||||
| Hi3516Dv100 | 3 | 4 | 85 |
|
||||
| Hi3516Cv300 | 1 | 2 | 24 |
|
||||
| Hi3518Ev200 | 65 | 64 | 63 |
|
||||
| Hi3516Ev200 | 12 | 13 | | 4 |
|
||||
| Hi3516Av300 | 5 | 6 |
|
||||
| Hi3516Cv100 | 18 | 19 | | | | | |
|
||||
| Hi3516Cv200 | | | | | | | |
|
||||
| Hi3516Dv100 | 3 | 4 | 85 | | | | |
|
||||
| Hi3516Cv300 | 1 | 2 | 24 | | | | |
|
||||
| Hi3518Ev200 | 65 | 64 | 63 | | | | |
|
||||
| Hi3516Ev200 | 12 | 13 | | 4 | | | |
|
||||
| Hi3516Av300 | 5 | 6 | | | | | |
|
||||
|
||||
|
||||
### Bo mạch Huishi / Vatilon
|
||||
|
||||
| Bộ xử lý | IRCUT1 | IRCUT2 | IRSTATUS |
|
||||
|-------------|--------|--------|----------|
|
||||
| SSC377 | 80 | 81 | |
|
||||
| SSC378DE | 80 | 81 | |
|
||||
| Bộ xử lý | IRCUT1 | IRCUT2 | IRSTATUS | IRLED |
|
||||
|-------------|--------|--------|----------|-------|
|
||||
| SSC377 | 80 | 81 | | |
|
||||
| SSC378DE | 80 | 81 | | 13 |
|
||||
|
||||
|
||||
### Bo mạch Jabsco
|
||||
|
@ -96,39 +97,39 @@ Danh sách cài đặt GPIO dành riêng cho bo mạch
|
|||
|
||||
### Bo mạch Jovision
|
||||
|
||||
| Bộ xử lý | IRCUT1 | IRCUT2 | ÁNH SÁNG | BO MẠCH ĐƯỢC KIỂM TRA |
|
||||
| Bộ xử lý | IRCUT1 | IRCUT2 | Đèn | BO MẠCH ĐÃ KIỂM TRA |
|
||||
|-------------|--------|--------|-------|------------------------------------|
|
||||
| Hi3516Ev200 | 53 | 52 | 4 | |
|
||||
| Hi3516Cv100 | 42 | 43 | 6 | IPG5020A-H-V1.0, 5013A-CF/5020A-FF |
|
||||
|
||||
### Bo mạch JUAN (Sannce)
|
||||
|
||||
| Bộ xử lý | IRCUT1 | IRCUT2 | IRSTATUS | BO MẠCH ĐƯỢC KIỂM TRA | ID THIẾT BỊ |
|
||||
| Bộ xử lý | IRCUT1 | IRCUT2 | IRSTATUS | BO MẠCH ĐÃ KIỂM TRA | ID THIẾT BỊ |
|
||||
|-------------|--------|--------|---------------|---------------|-----------|
|
||||
| Hi3518Ev200 | 65 | 64 | 62 (đảo ngược) | 18EV200_V205P | N18EV2W |
|
||||
|
||||
### Bo mạch JVT
|
||||
|
||||
| Bộ xử lý | IRCUT1 | IRCUT2 | ÁNH SÁNG |
|
||||
| Bộ xử lý | IRCUT1 | IRCUT2 | Đèn |
|
||||
|-------------|--------|--------|-------|
|
||||
| Hi3516Cv100 |
|
||||
| Hi3516Cv100 | | | |
|
||||
| Hi3516Cv200 | 64 | 65 | 62 |
|
||||
| Hi3516Cv300 |
|
||||
| Hi3516Ev200 |
|
||||
| Hi3516Cv300 | | | |
|
||||
| Hi3516Ev200 | | | |
|
||||
| Hi3518Ev200 | 64 | 65 | 47 |
|
||||
|
||||
### Camera mini "khối lập phương" iSNATCH (HeySmart)
|
||||
|
||||
| Bộ xử lý | IRCUT1 | IRCUT2 | IRSTATUS | IRLED | RESET |
|
||||
|-------------|--------|--------|----------|----------|---------
|
||||
|-------------|--------|--------|----------|----------|---------|
|
||||
| T10 | 25 | 26 | - | 19 | 60i |
|
||||
|
||||
### Bo mạch Netcam NVT
|
||||
|
||||
| Bộ xử lý | IRCUT1 | IRCUT2 | IRSTATUS | IRLED | ĐÈN LED ĐỎ | BO MẠCH |
|
||||
| Bộ xử lý | IRCUT1 | IRCUT2 | IRSTATUS | IRLED | Đèn LED đỏ | BO MẠCH |
|
||||
|-------------|--------|--------|----------|----------|---------|-----------------|
|
||||
| T10 | 25 | 26 | | 19 | 20 | |
|
||||
| T10 | 25 | 26 | 81 | 80 | | |
|
||||
| T10 | 25 | 26 | | 19 | 20 | |
|
||||
| T10 | 25 | 26 | 81 | 80 | | |
|
||||
| T31L | 58 | 57 | | | | T31L_F37_V1.1 |
|
||||
|
||||
### Camera an ninh Qihoo 360 D603
|
||||
|
@ -151,11 +152,11 @@ Danh sách cài đặt GPIO dành riêng cho bo mạch
|
|||
|
||||
### Bo mạch SJG
|
||||
|
||||
| Bộ xử lý | IRCUT1 | IRCUT2 | IRSTATUS | BO MẠCH ĐƯỢC KIỂM TRA |
|
||||
| Bộ xử lý | IRCUT1 | IRCUT2 | IRSTATUS | BO MẠCH |
|
||||
|-------------|--------|--------|---------------|---------------------------|
|
||||
| Hi3518Ev200 | 64 | | 62 (đảo ngược) | SJG_HI38_GW2M02_V1.3 |
|
||||
|
||||
> Đối với cảm biến `SC2135` trên bo mạch `SJG_HI38_GW2M02_V1.3`, cần phải thay đổi mặt nạ `ComMsk0` từ `fff0000` thành `3ff0000` trong cấu hình cảm biến (`/etc/sensors/sc2135_i2c_1080p.ini`) để loại bỏ màu hồng của hình ảnh ở chế độ ban ngày.
|
||||
> Đối với cảm biến `SC2135` trên bo mạch `SJG_HI38_GW2M02_V1.3`, cần phải thay đổi mặt nạ `ComMsk0` từ `fff0000` thành `3ff0000` trong cấu hình cảm biến (`/etc/sensors/sc2135_i2c_1080p.ini`) để loại bỏ hiện tượng ám hồng của hình ảnh ở chế độ ban ngày.
|
||||
|
||||
### Bo mạch Tiandy
|
||||
|
||||
|
@ -175,7 +176,7 @@ Danh sách cài đặt GPIO dành riêng cho bo mạch
|
|||
|
||||
| Bộ xử lý | IRCUT1 | IRCUT2 | Đèn LED IR | RESET | ETH_GR_BL | ETH_ORANGE| ID THIẾT BỊ |
|
||||
|-------------|--------|--------|---------|-------|-----------|-----------|-----------------------------|
|
||||
| T21 | 80 | 79 | 49 | 50 | 73 | 72 | Wansview W5/W6/Q5(1080p) |
|
||||
| T21 | 80 | 79 | 49 | 50 | 73 | 72 | Wansview W5/W6/Q5 (1080p) |
|
||||
|
||||
### Bo mạch Xiaomi
|
||||
|
||||
|
@ -185,7 +186,7 @@ Danh sách cài đặt GPIO dành riêng cho bo mạch
|
|||
| Hi3518Ev300 | 70 | 68 | 54 | MJSXJ02HL | 52 | 53 | 0 | 55 |
|
||||
| T31N | 49 | 50 | 60 | MJSXJ03HL | 38 | 39 | | |
|
||||
|
||||
### XiongMai, bảng XM
|
||||
### XiongMai, bo mạch XM
|
||||
|
||||
| Bộ xử lý | IRCUT1 | IRCUT2 | IRSTATUS | IRCTL | ALM_IN | ALM_OUT | ETH_ACT | ETH_STA | RESET | USB_ENA | AUDIO_POW | RS485_CTL | W_LED | GHI CHÚ |
|
||||
|-----------------|--------|--------|----------|-------|--------|---------|---------|---------|-------|---------|-----------|-----------|-------|-------|
|
||||
|
@ -204,12 +205,12 @@ Danh sách cài đặt GPIO dành riêng cho bo mạch
|
|||
| Hi3516Ev200 | 8 | 9 | 15 | 16 | 4, 53 | 55 | 14 | 12 | 0 | | | | | |
|
||||
| Hi3516Ev300 | 11 | 10 | 66 | 52 | 4, 67 | 65 | 30 | 31 | 0 | | | | | |
|
||||
| Hi3518Ev100 | 39 | 38 | 24 | | 49 | 26 | | | | | | | | |
|
||||
| Hi3518Ev200 | 33 | 34 | 24 | | 61 | 35 | | | | | 3 | | | IPG-50HV20PET-S |
|
||||
| Hi3518Ev200 | 33 | 34 | 24 | | 61 | 35 | | | | | 3 | | | IPG-50HV20PET-S |
|
||||
| Hi3518Ev300[^3] | 8 | | 55 | | 13 | | | | 15 | | 3 | | | |
|
||||
|
||||
> Có một bản đồ giữa các cột của bảng và các tham số trong phần `nightMode` trong `majestic.yaml`<br>
|
||||
> IRCUT1 là irCutPin1<br>
|
||||
> IRCUT2 là irCutPin1<br>
|
||||
> IRCUT2 là irCutPin2<br>
|
||||
> IRCTL là backlightPin<br>
|
||||
> IRSTATUS là irSensorPin
|
||||
|
||||
|
@ -233,4 +234,4 @@ Danh sách cài đặt GPIO dành riêng cho bo mạch
|
|||
|
||||
| Bộ xử lý | IRCUT1 | IRCUT2 | IRSTATUS | ID THIẾT BỊ |
|
||||
|-------------|--------|--------|--------------|---------------|
|
||||
| Hi3518Ev200 | 61 | 60 | 1 (đảo ngược) | ZG2622MW |
|
||||
| Hi3518Ev200 | 61 | 60 | 1 (đảo ngược) | ZG2622MW |
|
|
@ -4,11 +4,11 @@
|
|||
Thiết bị được hỗ trợ
|
||||
-----------------
|
||||
|
||||
Rất tiếc, chúng tôi không thể cung cấp cho bạn một danh sách dài các thiết bị chắc chắn tương thích với firmware của chúng tôi. Các nhà sản xuất camera có xu hướng thay đổi thiết kế phần cứng và hoán đổi các thành phần ngay cả trong cùng một dòng model mà không cần thông báo trước.
|
||||
Rất tiếc, chúng tôi không thể cung cấp cho bạn một danh sách dài các thiết bị chắc chắn tương thích với firmware của chúng tôi. Các nhà sản xuất camera có xu hướng thay đổi thiết kế phần cứng và hoán đổi các linh kiện ngay cả trong cùng một dòng model mà không cần thông báo trước.
|
||||
|
||||
Dưới đây, chúng tôi đã liệt kê một số camera mà chúng tôi đã sở hữu, nhưng một lần nữa, không có gì đảm bảo rằng nếu bạn mua một trong những camera đó ngày hôm nay, bạn sẽ không nhận được phần cứng không được hỗ trợ.
|
||||
Dưới đây, chúng tôi đã liệt kê một số camera mà chúng tôi đã sở hữu, nhưng một lần nữa, không có gì đảm bảo rằng nếu bạn mua một trong những camera đó ngày hôm nay, bạn sẽ không gặp phải phần cứng không được hỗ trợ.
|
||||
|
||||
Phương pháp hoạt động phần nào để xác định xem camera của bạn có được hỗ trợ bởi phiên bản firmware gần đây của chúng tôi hay không là mở[^1] vỏ camera và xem các dấu hiệu trên chip. Sau đó, tra cứu chip của bạn trong [danh sách phần cứng được hỗ trợ][1]
|
||||
Phương pháp tương đối hiệu quả để xác định xem camera của bạn có được hỗ trợ bởi phiên bản firmware gần đây của chúng tôi hay không là mở[^1] vỏ camera và xem các ký hiệu trên chip. Sau đó, tra cứu chip của bạn trong [danh sách phần cứng được hỗ trợ][1]
|
||||
và kiểm tra trạng thái phát triển của nó.
|
||||
|
||||
Nếu bạn vẫn còn nghi ngờ, hãy chụp ảnh cận cảnh phần cứng với độ phân giải cao
|
||||
|
@ -17,15 +17,15 @@ và yêu cầu trợ giúp trong một trong các nhóm Telegram của chúng t
|
|||
[^1]: Chú ý! Khi làm như vậy, bạn tự chịu trách nhiệm hoàn toàn về hành động của mình.
|
||||
Nhiều khả năng, việc mở vỏ máy sẽ làm mất hiệu lực bảo hành của thiết bị. Chúng tôi không thể
|
||||
chịu trách nhiệm cho bất kỳ thiệt hại nào đối với camera, bản thân bạn, ngôi nhà của bạn, thú cưng của bạn
|
||||
hoặc bất cứ thứ gì khác. Nếu bạn không cảm thấy thoải mái với phần cứng, dự án này
|
||||
hoặc bất cứ thứ gì khác. Nếu bạn không cảm thấy thoải mái khi tiếp xúc với phần cứng, dự án này
|
||||
có thể không phù hợp với bạn.
|
||||
|
||||
Bạn cũng có thể xem danh sách các thiết bị được điều chỉnh trong một dự án Trình tạo đặc biệt -
|
||||
Bạn cũng có thể xem danh sách các thiết bị được điều chỉnh trong một dự án Builder đặc biệt -
|
||||
https://github.com/OpenIPC/builder
|
||||
|
||||
_Nếu bạn có một thiết bị được hỗ trợ khác để thêm, vui lòng thực hiện [tại đây][2]._
|
||||
_Nếu bạn có một thiết bị được hỗ trợ khác để thêm vào, vui lòng thực hiện [tại đây][2]._
|
||||
|
||||
| Thương hiệu | Model | Bộ xử lý | Cảm biến | Bộ nhớ Flash | LAN | WLAN | USB | Thẻ |
|
||||
| Thương hiệu | Model | Bộ xử lý | Cảm biến | Bộ nhớ Flash | LAN | WLAN | USB | Thẻ nhớ |
|
||||
|------------|--------------------|-------------|--------|--------------|-----|----------------|------|------|
|
||||
| | | | | | | | | |
|
||||
| Anjoy | MS-J10 | SSC335 | IMX307 | | Có | Không | Có | Không |
|
||||
|
@ -41,7 +41,7 @@ _Nếu bạn có một thiết bị được hỗ trợ khác để thêm, vui l
|
|||
| | | | | | | | | |
|
||||
| Smartwares | [CIP-37210][4] | HI3518EV200 | | | Không | RTL8188FU | WiFi | Có |
|
||||
| | | | | | | | | |
|
||||
| TOP | TOP-201/MCO-720P Mini Camera | HI3518EV100 | OV9712 | | Có | Không | Không | Không |
|
||||
| TOP | TOP-201/MCO-720P Mini Camera | HI3518EV100 | OV9712 | | Có | Không | Không | Không |
|
||||
| | | | | | | | | |
|
||||
| Xiaomi | [MJSXJ02HL][7] | HI3518EV300 | | | Không | | | Có |
|
||||
| Xiaomi | [MJSXJ03HL][6] | T31N | JXQ03 | QH128A-104HIP | Không | RTL8189FTV | Không | Có |
|
||||
|
@ -63,7 +63,7 @@ _Nếu bạn có một thiết bị được hỗ trợ khác để thêm, vui l
|
|||
| Uniview | IPC-D122-PF28 | SSC335 | SC2335 | XM25QH64C | Có | Không | Không | Không |
|
||||
|
||||
|
||||
| Bộ xử lý | Cảm biến | Nhà cung cấp | SKU | Nhận dạng bảng |
|
||||
| Bộ xử lý | Cảm biến | Nhà cung cấp | SKU | Nhận dạng bo mạch |
|
||||
|-------------|------------------|------------|--------------|---------------------------------|
|
||||
| Hi3516Cv100 | IMX222_spi_dc | XM | | [BLK18C-0222-38X38_S-V1.03][1] |
|
||||
| Hi3516Cv100 | OV2710_i2c_dc | Jovision | | IPG5020A-H-V1.0 |
|
||||
|
@ -116,6 +116,5 @@ _Nếu bạn có một thiết bị được hỗ trợ khác để thêm, vui l
|
|||
[7]: https://github.com/OpenIPC/device-mjsxj02hl
|
||||
|
||||
|
||||
[^2]: WiFi có thể được bật với flash 8MB bằng cách sử dụng bản dựng tùy chỉnh hoặc bằng cách nâng cấp lên flash 16MB và sử dụng firmware Ultimate.
|
||||
|
||||
[^2]: WiFi có thể được bật với bộ nhớ flash 8MB bằng cách sử dụng bản dựng tùy chỉnh hoặc bằng cách nâng cấp lên bộ nhớ flash 16MB và sử dụng firmware Ultimate.
|
||||
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
## Wiki OpenIPC
|
||||
[Mục lục](../README.md)
|
||||
|
||||
## Các cảm biến được hỗ trợ theo SoC
|
||||
## Cảm biến được hỗ trợ theo SoC
|
||||
|
||||
_Lưu ý: Danh sách này không đảm bảo rằng cảm biến của bạn sẽ hoạt động. Có những điểm khác biệt như các cách kết nối cảm biến khác nhau, việc đổi tên cảm biến, sự không khớp giữa cảm biến được cài đặt và cảm biến được khai báo, v.v. Đây chỉ là danh sách các trình điều khiển được tìm thấy trong SDK cho bộ xử lý cụ thể. Vui lòng lưu ý điều này._
|
||||
_Lưu ý: Danh sách này không đảm bảo rằng cảm biến của bạn sẽ hoạt động. Có những điểm khác biệt như các cách kết nối cảm biến khác nhau, việc dán nhãn lại cảm biến, sự không khớp giữa cảm biến được cài đặt và cảm biến được khai báo, v.v. Đây chỉ là danh sách các trình điều khiển được tìm thấy trong SDK cho bộ xử lý cụ thể. Vui lòng lưu ý điều này._
|
||||
|
||||
### Ambarella
|
||||
|
||||
|
@ -40,7 +40,7 @@ _Lưu ý: Danh sách này không đảm bảo rằng cảm biến của bạn s
|
|||
- GK7205V200
|
||||
- ar0237, bt656, f23, f37, gc2053, gc4653, imx290, imx307, imx327, imx335, os05a, ov2718, sc200ai, sc2231, sc2232h, sc2235, sc2239, sc223a, sc2335, sc3235, sc3335, sc4236, sc500ai
|
||||
- GK7205V210
|
||||
- imx307, imx327, imx335, os05a, ov2718, sc200ai, sc2231, sc2232h, sc2235, sc2239, [sc223a(được bán dưới dạng sc5239s)](https://github.com/RoboSchmied/Documentation/blob/main/sc223a.md), sc2335, sc3235, sc3335, sc4236, sc500ai
|
||||
- imx307, imx327, imx335, os05a, ov2718, sc200ai, sc2231, sc2232h, sc2235, sc2239, [sc223a (được bán dưới dạng sc5239s)](https://github.com/RoboSchmied/Documentation/blob/main/sc223a.md), sc2335, sc3235, sc3335, sc4236, sc500ai
|
||||
- GK7205V300
|
||||
- GK7605V100
|
||||
|
||||
|
@ -71,8 +71,8 @@ _Lưu ý: Danh sách này không đảm bảo rằng cảm biến của bạn s
|
|||
- f23, f37, gc2053, imx307, imx335, sc2231, sc2232h, sc2239, sc2315e, sc3235, sc4236, sp2305
|
||||
- HI3516EV300
|
||||
- HI3518CV100
|
||||
- HI3518EV100
|
||||
- 9m034, ar0130, ar0130, ar0140, ar0330, himax1375, icx692, imx104, imx122, imx138, imx222, imx225, imx236, mn34031, mt9p006, ov2710, ov9712, ov9732, po3100k, sc1035, soih22, soih42
|
||||
- HI3518EV100
|
||||
- 9m034, ar0130, ar0140, ar0330, himax1375, icx692, imx104, imx122, imx138, imx222, imx225, imx236, mn34031, mt9p006, ov2710, ov9712, ov9732, po3100k, sc1035, soih22, soih42
|
||||
- HI3518EV200
|
||||
- ar0130, gc1034, gc2023, imx122, imx222, imx291, imx323, jxf22, jxf23, jxh62, jxh65, mn34222, ov2718, ov2735, ov9712, ov9732, ov9750, ov9752, sc1135, sc1145, sc1235, sc2035, sc2135, sc2235
|
||||
- HI3518EV201
|
||||
|
@ -131,10 +131,3 @@ _Lưu ý: Danh sách này không đảm bảo rằng cảm biến của bạn s
|
|||
- XM510
|
||||
- XM530
|
||||
- XM550
|
||||
|
||||
|
||||
**Giải thích thuật ngữ:**
|
||||
|
||||
* **SoC (System on a Chip):** Hệ thống trên một chip, là một mạch tích hợp chứa tất cả các thành phần cần thiết của một hệ thống máy tính, bao gồm CPU, GPU, bộ nhớ và các thiết bị ngoại vi khác.
|
||||
* **SDK (Software Development Kit):** Bộ công cụ phát triển phần mềm, là một bộ sưu tập các công cụ, thư viện và tài liệu mà các nhà phát triển sử dụng để tạo ra phần mềm cho một nền tảng hoặc hệ thống cụ thể.
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
[Mục lục](../README.md)
|
||||
|
||||
Phần cứng: Các nhà sản xuất bảng mạch IPC
|
||||
Phần cứng: Các nhà sản xuất bo mạch IPC
|
||||
---------------------------------
|
||||
|
||||
* [ACTi](https://www.acti.com/)
|
||||
|
@ -55,13 +55,4 @@ Phần cứng: Các nhà sản xuất bảng mạch IPC
|
|||
* [Zenotech](http://www.videopark.com.cn)
|
||||
* [ZOSI](https://www.zositech.com/)
|
||||
|
||||
> _th? -- có thể là một công ty thương mại_
|
||||
|
||||
|
||||
**Giải thích thuật ngữ:**
|
||||
|
||||
* **IPC (Internet Protocol Camera):** Camera IP, là một loại camera kỹ thuật số có thể gửi và nhận dữ liệu qua mạng IP.
|
||||
* **Board:** Bảng mạch.
|
||||
* **Trading house:** Công ty thương mại.
|
||||
|
||||
|
||||
> _th? -- có thể là công ty thương mại_
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
## Wiki OpenIPC
|
||||
# Wiki OpenIPC
|
||||
[Mục lục](../README.md)
|
||||
|
||||
Bộ lập trình CH341A
|
||||
Bộ nạp CH341A
|
||||
-----------------
|
||||
|
||||
### Khắc phục lỗi điện áp cao
|
||||
|
||||
Các phiên bản đầu tiên, trước phiên bản 1.7, của Bộ lập trình Mini CH341A phổ biến và giá rẻ có một lỗi khó chịu là mức điện áp trên các đường dữ liệu vẫn ở mức 5V mặc dù bộ lập trình được đặt thành 3.3V bằng jumper.
|
||||
Các phiên bản đầu tiên, trước phiên bản 1.7, của Bộ nạp Mini CH341A phổ biến và giá rẻ có một lỗi khó chịu là mức điện áp trên các đường dữ liệu vẫn ở mức 5V mặc dù bộ nạp được đặt thành 3.3V bằng jumper.
|
||||
|
||||
@ddemos1963 đã đưa ra một giải pháp hack thú vị để khắc phục sự cố một cách hiệu quả và khéo léo.
|
||||
|
||||
|
@ -17,15 +17,15 @@ Các phiên bản đầu tiên, trước phiên bản 1.7, của Bộ lập trì
|
|||
|
||||

|
||||
|
||||
Ngắt kết nối giữa đường dây nguồn 5V và chip CH341A. Dùng dao tiện ích sắc bén, cắt đường mạch ở mặt sau của bảng mạch lập trình.
|
||||
Ngắt kết nối giữa đường dây nguồn 5V và chip CH341A. Dùng dao rọc giấy sắc bén, cắt đường mạch ở mặt sau của bảng mạch bộ nạp.
|
||||
|
||||

|
||||
|
||||
Kết nối chân đầu ra 3.3v của bộ điều chỉnh điện áp với chân 9 của IC CH341A, bắc cầu nó với đường mạch tương ứng tại một tụ điện gần đó.
|
||||
Kết nối chân đầu ra 3.3v của bộ điều chỉnh điện áp với chân số 9 của IC CH341A, bắc cầu nó với đường mạch tương ứng tại một tụ điện gần đó.
|
||||
|
||||

|
||||
|
||||
Khôi phục nguồn điện cho chip bằng cách định tuyến lại điện áp 3.3V từ chân 3v3 đến chân 28 của IC CH341A thông qua đầu nối chân 5V trên đầu nối.
|
||||
Khôi phục nguồn điện cho chip bằng cách định tuyến lại điện áp 3.3V từ chân 3v3 đến chân số 28 của IC CH341A thông qua đầu nối chân 5V trên header.
|
||||
|
||||

|
||||
|
||||
|
@ -36,7 +36,7 @@ libusb: error [get_usbfs_fd] libusb couldn't open USB device /dev/bus/usb/001/00
|
|||
libusb: error [get_usbfs_fd] libusb requires write access to USB device nodes
|
||||
```
|
||||
|
||||
Nếu bạn nhận được thông báo lỗi như thế này khi chạy phần mềm lập trình, bạn cần điều chỉnh quyền trên cổng USB cho thiết bị đó.
|
||||
Nếu bạn nhận được thông báo lỗi như thế này khi chạy phần mềm nạp, bạn cần điều chỉnh quyền trên cổng USB cho thiết bị đó.
|
||||
|
||||
Tạo một tệp quy tắc udev
|
||||
|
||||
|
@ -47,8 +47,8 @@ sudo vi /etc/udev/rules.d/99-ch341a-prog.rules
|
|||
thêm nội dung sau vào tệp:
|
||||
|
||||
```bash
|
||||
# udev rule that sets permissions for CH341A programmer in Linux.
|
||||
# Put this file in /etc/udev/rules.d and reload udev rules or reboot to install
|
||||
# Quy tắc udev đặt quyền cho bộ nạp CH341A trong Linux.
|
||||
# Đặt tệp này vào /etc/udev/rules.d và tải lại quy tắc udev hoặc khởi động lại để cài đặt
|
||||
SUBSYSTEM=="usb", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="5512", MODE="0666"
|
||||
```
|
||||
|
||||
|
@ -59,7 +59,7 @@ sudo udevadm control --reload-rules
|
|||
sudo udevadm trigger
|
||||
```
|
||||
|
||||
sau đó rút bộ lập trình và cắm lại vào cổng USB.
|
||||
sau đó rút bộ nạp và cắm lại vào cổng USB.
|
||||
|
||||
### Phần mềm
|
||||
|
||||
|
@ -68,16 +68,6 @@ sau đó rút bộ lập trình và cắm lại vào cổng USB.
|
|||
- [ch341prog](https://github.com/setarcos/ch341prog/)
|
||||
- [flashrom](https://www.flashrom.org/Flashrom)
|
||||
- [Diễn đàn DIY BCQ CH341A](http://www.diybcq.com/thread-144131-1-1.html) (Tiếng Trung, sử dụng tính năng dịch tự động của Chrome)
|
||||
- [Bộ lập trình CH341A](https://4pda.to/forum/index.php?showtopic=884713) (Tiếng Nga, sử dụng tính năng dịch tự động của Chrome)
|
||||
|
||||
|
||||
**Giải thích thuật ngữ:**
|
||||
|
||||
* **Jumper:** Cầu nối, là một miếng nhựa nhỏ có thể được sử dụng để kết nối hoặc ngắt kết nối các mạch điện trên bảng mạch.
|
||||
* **Trace:** Đường mạch, là một đường dẫn dẫn điện trên bảng mạch.
|
||||
* **IC (Integrated Circuit):** Mạch tích hợp, là một mạch điện tử được chế tạo trên một miếng silicon nhỏ.
|
||||
* **Header:** Đầu nối, là một bộ phận được sử dụng để kết nối các dây hoặc cáp với bảng mạch.
|
||||
* **Udev:** Là một trình quản lý thiết bị cho nhân Linux, nó quản lý các tệp thiết bị trong `/dev`.
|
||||
* **Fork:** Bản sao chép của một dự án phần mềm, được tạo ra để phát triển độc lập với dự án gốc.
|
||||
- [Bộ nạp CH341A](https://4pda.to/forum/index.php?showtopic=884713) (Tiếng Nga, sử dụng tính năng dịch tự động của Chrome)
|
||||
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
## Wiki OpenIPC
|
||||
[Mục lục](../README.md)
|
||||
|
||||
Phần cứng: Các nhà sản xuất cảm biến hình ảnh
|
||||
Phần cứng: Nhà sản xuất cảm biến hình ảnh
|
||||
-------------------------------------
|
||||
- [Forza Silicon](https://www.forzasilicon.com/)
|
||||
- [GalaxyCore](https://en.gcoreinc.com/)
|
||||
|
@ -10,10 +10,3 @@ Phần cứng: Các nhà sản xuất cảm biến hình ảnh
|
|||
- [Silicon Optronics](https://www.soinc.com.tw/)
|
||||
- [SmartSens Technology](https://www.smartsenstech.com/)
|
||||
- [Sony Semiconductor](https://www.sony-semicon.co.jp/)
|
||||
|
||||
|
||||
**Giải thích thuật ngữ:**
|
||||
|
||||
* **Image Sensor:** Cảm biến hình ảnh, là một loại chip bán dẫn có khả năng chuyển đổi ánh sáng thành tín hiệu điện. Cảm biến hình ảnh được sử dụng trong nhiều thiết bị điện tử, bao gồm máy ảnh kỹ thuật số, điện thoại thông minh và máy quét.
|
||||
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
## Wiki OpenIPC
|
||||
[Mục lục](../README.md)
|
||||
|
||||
Phần cứng: Các nhà sản xuất SoC
|
||||
Phần cứng: Nhà sản xuất SoC
|
||||
---------------------------
|
||||
- [Ambarella](https://www.ambarella.com/)
|
||||
- [Anyka](http://www.anyka.com/)
|
||||
|
@ -16,10 +16,3 @@ Phần cứng: Các nhà sản xuất SoC
|
|||
- [Novatek](http://www.novatek.com.tw/)
|
||||
- [SigmaStar](http://www.sigmastarsemi.com/)
|
||||
- [XiongmaiTech](https://www.xiongmaitech.com/)
|
||||
|
||||
|
||||
**Giải thích thuật ngữ:**
|
||||
|
||||
* **SoC (System on a Chip):** Hệ thống trên một chip, là một mạch tích hợp chứa tất cả các thành phần cần thiết của một hệ thống máy tính, bao gồm CPU, GPU, bộ nhớ và các thiết bị ngoại vi khác.
|
||||
|
||||
|
||||
|
|
|
@ -1,23 +1,23 @@
|
|||
## Wiki OpenIPC
|
||||
# Wiki OpenIPC
|
||||
[Mục lục](../README.md)
|
||||
|
||||
Thêm trình điều khiển WiFi HaLow Huge-IC AH cho Ingenic T31
|
||||
----------------------------------------------------
|
||||
Đối với người dùng cơ bản như tôi, người dùng nâng cao có thể hoàn toàn bỏ qua tài liệu này.
|
||||
Người dùng cơ bản như tôi có thể tham khảo tài liệu này, người dùng nâng cao có thể bỏ qua.
|
||||
|
||||
Tài liệu này mô tả cách thêm trình điều khiển AH [WiFi HaLow](https://iot4beginners.com/wi-fi-halow/) của Huge-IC vào firmware OpenIPC.
|
||||
|
||||
### Lấy mã nguồn trình điều khiển và chỉnh sửa Makefile
|
||||
|
||||
Lấy tệp nguồn của trình điều khiển để bạn có thể biên dịch các trình điều khiển đó và tải lên hệ thống camera của mình. Nhờ đó, khi phần cứng được kết nối, camera (máy chủ) có thể nhận dạng phần cứng và kết nối với nó. Giống như khi bạn kết nối USB dongle với máy tính, nó sẽ tải trình điều khiển. Bộ vi xử lý của bạn không tải trình điều khiển như PC của bạn, vì vậy bạn cần tự thực hiện.
|
||||
Lấy tệp nguồn của trình điều khiển để bạn có thể biên dịch chúng và tải lên hệ thống camera. Nhờ đó, khi phần cứng được kết nối, camera (máy chủ) có thể nhận dạng phần cứng và kết nối với nó. Giống như khi bạn kết nối USB dongle với máy tính, nó sẽ tải trình điều khiển. Vi điều khiển của bạn không tự động tải trình điều khiển như PC, vì vậy bạn cần tự thực hiện.
|
||||
|
||||
Trước tiên, hãy xác định vị trí Makefile. Tệp này bao gồm các hướng dẫn biên dịch và nếu không thực hiện đúng cách sẽ đồng nghĩa với việc bảng mạch camera của bạn không có wifi. Trong Makefile, hãy chỉnh sửa các giá trị cho ARCH, COMPILER và LINUX_KERNEL_PATH.
|
||||
Trước tiên, hãy xác định vị trí Makefile. Tệp này bao gồm các hướng dẫn biên dịch và nếu không thực hiện đúng, bo mạch camera của bạn sẽ không có wifi. Trong Makefile, hãy chỉnh sửa các giá trị cho ARCH, COMPILER và LINUX_KERNEL_PATH.
|
||||
|
||||
Ingenic sử dụng kiến trúc MIPS nên hãy sử dụng nó cho ARCH ‘ARCH := mips’
|
||||
|
||||
Đối với COMPILER và Kernel Path, nó sẽ là một dạng biên dịch chéo - phụ thuộc vào những gì bạn có trong OpenIPC. Để hiểu rõ hơn, hãy đọc bài viết này: https://blukat.me/2017/12/cross-compile-arm-kernel-module/
|
||||
Đối với COMPILER và Kernel Path, nó sẽ là một dạng biên dịch chéo - phụ thuộc vào những gì bạn có trong OpenIPC. Để tìm hiểu thêm, hãy đọc bài viết này: https://blukat.me/2017/12/cross-compile-arm-kernel-module/
|
||||
|
||||
Bây giờ chúng ta có thể chuyển sang tải xuống và giải nén firmware OpenIPC, tệp giải nén của nó sẽ cung cấp cho chúng ta các đường dẫn cho Trình biên dịch và Kernel.
|
||||
Bây giờ chúng ta có thể chuyển sang tải xuống và giải nén firmware OpenIPC, tệp đã giải nén sẽ cung cấp cho chúng ta các đường dẫn cho Trình biên dịch và Kernel.
|
||||
|
||||
### Tải xuống Firmware OpenIPC
|
||||
|
||||
|
@ -27,52 +27,34 @@ git clone git@github.com:OpenIPC/firmware.git
|
|||
cd firmware
|
||||
./building.sh t31_ultimate
|
||||
```
|
||||
(t31_ultimate vì ultimate đi kèm với hỗ trợ cho các thiết bị không dây. lite bị loại bỏ những thiết bị đó để tiết kiệm dung lượng.)
|
||||
(t31_ultimate vì bản ultimate đi kèm với hỗ trợ cho các thiết bị không dây. Bản lite bị loại bỏ những thiết bị đó để tiết kiệm dung lượng.)
|
||||
|
||||
Bây giờ bạn có thể thay đổi đường dẫn Trình biên dịch và Kernel trong Makefile nguồn trình điều khiển:
|
||||
|
||||
```
|
||||
#Driver Compilation for Ingenic T31
|
||||
#Biên dịch trình điều khiển cho Ingenic T31
|
||||
ARCH := mips
|
||||
COMPILER := ~/firmware/output/host/bin/mipsel-linux-
|
||||
LINUX_KERNEL_PATH := ~/firmware/output/build/linux-3.10.14
|
||||
```
|
||||
|
||||
### Bây giờ chạy ‘make fmac’
|
||||
### Bây giờ hãy chạy ‘make fmac’
|
||||
|
||||
(ở đây FMAC hoặc bất kỳ tên liên quan nào khác cho trình điều khiển của bạn)
|
||||
|
||||
Nếu mọi việc diễn ra theo đúng kế hoạch, bạn sẽ có một tệp script và một hoặc nhiều tệp mở rộng .ko. Các tệp mở rộng .ko đó là trình điều khiển của bạn và tệp script bao gồm các hướng dẫn để bộ vi điều khiển máy chủ của bạn tìm và kích hoạt trình điều khiển.
|
||||
Nếu mọi việc diễn ra theo đúng kế hoạch, bạn sẽ có một tệp script và một hoặc nhiều tệp có phần mở rộng .ko. Các tệp .ko đó là trình điều khiển của bạn và tệp script bao gồm các hướng dẫn cho vi điều khiển máy chủ của bạn để tìm và kích hoạt trình điều khiển.
|
||||
|
||||
### Đã đến lúc tải trình điều khiển lên hệ thống camera
|
||||
|
||||
Nếu các tệp nhỏ và Ingenic có thêm dung lượng khả dụng, bạn có thể tải phụ trình điều khiển.
|
||||
Nếu các tệp nhỏ và Ingenic có thêm dung lượng khả dụng, bạn có thể tải bổ sung trình điều khiển.
|
||||
|
||||
Tải lên các tệp .ko (trình điều khiển) và script `fmac` (tệp script của bạn có thể có tên khác) vào thư mục bạn chọn. Vui lòng đảm bảo chỉnh sửa các đường dẫn tương ứng trong tệp script fmac, nếu cần.
|
||||
Tải các tệp .ko (trình điều khiển) và script `fmac` (tệp script của bạn có thể có tên khác) vào thư mục bạn chọn. Vui lòng đảm bảo chỉnh sửa các đường dẫn tương ứng trong tệp script fmac, nếu cần.
|
||||
|
||||
### Kiểm tra
|
||||
|
||||
Kiểm tra nó với phần cứng WiFi của bạn để đảm bảo rằng nó hoạt động.
|
||||
Hãy kiểm tra với phần cứng WiFi của bạn để đảm bảo rằng nó hoạt động.
|
||||
|
||||
### Tiếp theo, tạo một gói
|
||||
|
||||
Sau khi bạn đã học cách tạo gói, vui lòng chia sẻ nó với các thành viên nhóm quản trị OpenIPC. Họ có thể đồng ý đưa gói trình điều khiển của bạn vào kho lưu trữ. Sau khi được đưa vào dưới dạng một gói, lần sau bạn có thể sử dụng nó bằng cách bỏ ghi chú và kích hoạt gói trong tệp cấu hình OpenIPC.
|
||||
|
||||
|
||||
**Giải thích thuật ngữ:**
|
||||
|
||||
* **WiFi HaLow:** Là một tiêu chuẩn WiFi năng lượng thấp, tầm xa được thiết kế cho Internet of Things (IoT).
|
||||
* **Firmware:** Phần mềm được nhúng vào bộ nhớ ROM của thiết bị phần cứng.
|
||||
* **Makefile:** Là một tệp văn bản chứa các hướng dẫn cho công cụ make để tự động hóa quá trình biên dịch mã nguồn.
|
||||
* **MIPS:** Là một kiến trúc tập lệnh (ISA) của bộ vi xử lý.
|
||||
* **Cross Compilation:** Là quá trình biên dịch mã nguồn trên một nền tảng (ví dụ: PC) để chạy trên một nền tảng khác (ví dụ: bộ vi điều khiển nhúng).
|
||||
* **Kernel:** Là phần cốt lõi của hệ điều hành.
|
||||
* **Driver:** Trình điều khiển, là một phần mềm cho phép hệ điều hành giao tiếp với phần cứng.
|
||||
* **Sideload:** Là quá trình cài đặt ứng dụng hoặc tệp vào thiết bị mà không cần thông qua cửa hàng ứng dụng chính thức.
|
||||
* **Repo:** Kho lưu trữ, là một nơi lưu trữ mã nguồn hoặc các tệp khác.
|
||||
* **Package:** Gói, là một tập hợp các tệp và hướng dẫn để cài đặt phần mềm.
|
||||
* **Config file:** Tệp cấu hình, là một tệp văn bản chứa các cài đặt cho một chương trình hoặc hệ thống.
|
||||
|
||||
|
||||
|
||||
Sau khi bạn đã học cách tạo gói, vui lòng chia sẻ nó với các thành viên nhóm quản trị OpenIPC. Họ có thể đồng ý đưa gói trình điều khiển của bạn vào kho. Sau khi được đưa vào dưới dạng một gói, lần sau bạn có thể sử dụng nó bằng cách bỏ ghi chú và kích hoạt gói trong tệp cấu hình OpenIPC.
|
||||
|
||||
|
|
|
@ -1,17 +1,17 @@
|
|||
## Wiki OpenIPC
|
||||
# Wiki OpenIPC
|
||||
[Mục lục](../README.md)
|
||||
|
||||
Trợ giúp: U-Boot
|
||||
------------
|
||||
|
||||
### Chuẩn bị môi trường
|
||||
Trong shell bootloader, kiểm tra xem biến `baseaddr` đã được định nghĩa chưa.
|
||||
Trong shell của bootloader, kiểm tra xem biến `baseaddr` đã được định nghĩa chưa.
|
||||
|
||||
```bash
|
||||
printenv baseaddr
|
||||
```
|
||||
|
||||
Nếu nó không có ở đó, hãy tự thiết lập nó.
|
||||
Nếu nó không có ở đó, hãy tự thiết lập.
|
||||
|
||||
```bash
|
||||
# Tra cứu địa chỉ cho SoC của bạn tại https://openipc.org/supported-hardware/
|
||||
|
@ -35,7 +35,7 @@ saveenv
|
|||
|
||||
Trước khi bạn bắt đầu, [chuẩn bị môi trường](#prepare-the-environment).
|
||||
|
||||
Trong chương trình terminal mà bạn sử dụng để kết nối với cổng UART, hãy bật tính năng lưu tệp nhật ký của phiên. Tôi thích sử dụng `screen` cho việc này và lệnh của tôi để kết nối với bộ chuyển đổi UART với việc ghi nhật ký phiên hoạt động vào một tệp sẽ trông như thế này:
|
||||
Trong chương trình terminal mà bạn sử dụng để kết nối với cổng UART, hãy bật tính năng lưu tệp nhật ký của phiên làm việc. Tôi thích sử dụng `screen` cho việc này và lệnh của tôi để kết nối với bộ chuyển đổi UART với việc ghi nhật ký phiên làm việc vào một tệp sẽ trông như thế này:
|
||||
|
||||
```bash
|
||||
screen -L -Logfile fulldump.log /dev/ttyUSB0 115200
|
||||
|
@ -50,7 +50,7 @@ sf read ${baseaddr} 0x0 ${flashsize}
|
|||
md.b ${baseaddr} ${flashsize}
|
||||
```
|
||||
|
||||
Vì quá trình đọc sẽ mất một khoảng thời gian đáng kể (theo đúng nghĩa đen là hàng giờ), bạn có thể muốn ngắt kết nối khỏi phiên terminal để tránh các lần nhấn phím vô tình làm nhiễm bẩn đầu ra. Nhấn `Ctrl-a` theo sau là `d` để tách phiên khỏi terminal đang hoạt động. Chạy `screen -r` khi bạn cần kết nối lại sau, sau khi kích thước của tệp nhật ký ngừng tăng. Việc đọc bộ nhớ flash 8 MB sẽ tạo ra tệp nhật ký ~ 40 MB và đối với chip 16 MB, tệp sẽ có kích thước gấp đôi.
|
||||
Vì quá trình đọc sẽ mất một khoảng thời gian đáng kể (theo đúng nghĩa đen là hàng giờ), bạn có thể muốn ngắt kết nối khỏi phiên làm việc terminal để tránh các lần nhấn phím vô tình làm nhiễm bẩn đầu ra. Nhấn `Ctrl-a` theo sau là `d` để tách phiên làm việc khỏi terminal đang hoạt động. Chạy `screen -r` khi bạn cần kết nối lại sau, sau khi kích thước của tệp nhật ký ngừng tăng. Việc đọc bộ nhớ flash 8 MB sẽ tạo ra tệp nhật ký ~ 40 MB và đối với chip 16 MB, tệp sẽ có kích thước gấp đôi.
|
||||
|
||||
Chuyển đổi kết xuất hex thành tệp firmware nhị phân và sử dụng nó để nghiên cứu thêm hoặc khôi phục camera về trạng thái ban đầu.
|
||||
|
||||
|
@ -73,7 +73,7 @@ Lắp thẻ vào khe cắm thẻ trên camera, kết nối bộ chuyển đổi
|
|||
|
||||
Khởi tạo quyền truy cập vào thẻ và xóa một số dung lượng để lưu firmware. Dữ liệu được ghi lên thẻ theo khối 512 byte. Bạn cần xóa 16384 khối để xóa 8 MB, 32768 khối cho 16 MB, tương ứng là 0x4000 và 0x8000 thập lục phân.
|
||||
|
||||
Lưu ý rằng chúng ta sẽ ghi trực tiếp vào các thanh ghi thẻ, bỏ qua bảng phân vùng. Để tránh xung đột khi truy cập dữ liệu thẻ sau này từ PC của bạn, hãy bù 8 kilobyte từ đầu thẻ (8 * 1024 = 8192 byte hoặc 16 khối 512 byte, hoặc 0x10 khối ở dạng thập lục phân).
|
||||
Lưu ý rằng chúng ta sẽ ghi trực tiếp vào các thanh ghi thẻ, bỏ qua bảng phân vùng. Để tránh xung đột khi truy cập dữ liệu thẻ sau này từ PC của bạn, hãy offset 8 kilobyte từ đầu thẻ (8 * 1024 = 8192 byte hoặc 16 khối 512 byte, hoặc 0x10 khối ở dạng thập lục phân).
|
||||
|
||||
Ví dụ cho 8MB:
|
||||
|
||||
|
@ -125,9 +125,9 @@ Ví dụ cho 16MB:
|
|||
sudo dd bs=512 skip=16 count=32768 if=/dev/sdc of=./fulldump.bin
|
||||
```
|
||||
|
||||
### Tải lên hình ảnh nhị phân qua kết nối nối tiếp.
|
||||
### Tải lên ảnh nhị phân qua kết nối nối tiếp.
|
||||
|
||||
Có những camera chỉ có kết nối không dây không khả dụng trực tiếp từ bootloader. Hầu hết các camera như vậy cũng có khe cắm thẻ SD nhưng một số thì không, hoặc nó không hoạt động vì lý do nào đó, hoặc bạn không có thẻ, hoặc đại loại như vậy. Dù sao, bạn vẫn có thể tải lên hình ảnh nhị phân lên camera và chạy nó hoặc lưu nó vào bộ nhớ flash. Đây là cách thực hiện.
|
||||
Có những camera chỉ có kết nối không dây không khả dụng trực tiếp từ bootloader. Hầu hết các camera như vậy cũng có khe cắm thẻ SD nhưng một số thì không, hoặc nó không hoạt động vì lý do nào đó, hoặc bạn không có thẻ, hoặc đại loại như vậy. Dù sao, bạn vẫn có thể tải lên ảnh nhị phân lên camera và chạy nó hoặc lưu nó vào bộ nhớ flash. Đây là cách thực hiện.
|
||||
|
||||
Trước hết, bạn sẽ cần cài đặt gói `lrzsz` trên máy tính để bàn của mình. Tôi đoán nó chạy Linux và tốt nhất là thuộc họ Debian, điều đó sẽ dễ dàng hơn trên các ví dụ. Vì vậy, hãy chạy lệnh này để đáp ứng các điều kiện tiên quyết:
|
||||
|
||||
|
@ -139,13 +139,13 @@ Bây giờ bạn đã sẵn sàng.
|
|||
|
||||
Đặt tệp nhị phân mà bạn định tải lên vào cùng thư mục mà bạn sẽ bắt đầu phiên `screen` đến camera của mình. Bắt đầu phiên và khởi động vào bảng điều khiển bootloader bằng cách ngắt quy trình khởi động bằng tổ hợp phím.
|
||||
|
||||
Bây giờ bạn có thể chạy `help` và kiểm tra xem các giao thức truyền dữ liệu nào được hỗ trợ bởi phiên bản bootloader của bạn. Nếu bạn thấy `loady` trong danh sách các lệnh, thì bạn có thể sử dụng giao thức ymodem. Chạy `loady` trên camera của bạn, sau đó nhấn `Ctrl-a` theo sau là `:` (dấu chấm phẩy). Nó sẽ chuyển bạn vào dòng lệnh ở dưới cùng của màn hình.
|
||||
Bây giờ bạn có thể chạy `help` và kiểm tra xem các giao thức truyền dữ liệu nào được hỗ trợ bởi phiên bản bootloader của bạn. Nếu bạn thấy `loady` trong danh sách các lệnh, thì bạn có thể sử dụng giao thức ymodem. Chạy `loady` trên camera của bạn, sau đó nhấn `Ctrl-a` theo sau là `:` (dấu hai chấm). Nó sẽ chuyển bạn vào dòng lệnh ở dưới cùng của màn hình.
|
||||
|
||||
Nhập `exec !! sz --ymodem filename.bin` trong đó _filename.bin_ và xem tệp của bạn được tải lên qua kết nối nối tiếp. Ở tốc độ 115200 bps. Chậm, rất chậm.
|
||||
Nhập `exec !! sz --ymodem filename.bin` trong đó _filename.bin_ là tên tệp của bạn và xem tệp của bạn được tải lên qua kết nối nối tiếp. Ở tốc độ 115200 bps. Chậm, rất chậm.
|
||||
|
||||
Sau khi tệp được tải lên, bạn có thể thực hiện phép thuật thông thường. Hoặc khởi động từ hình ảnh bộ nhớ ngay lập tức bằng cách sử dụng `bootm`, hoặc ghi nó vào bộ nhớ flash.
|
||||
Sau khi tệp được tải lên, bạn có thể thực hiện phép thuật thông thường. Hoặc khởi động từ ảnh bộ nhớ ngay lập tức bằng cách sử dụng `bootm`, hoặc ghi nó vào bộ nhớ flash.
|
||||
|
||||
### Flash toàn bộ hình ảnh qua kết nối nối tiếp
|
||||
### Flash toàn bộ ảnh qua kết nối nối tiếp
|
||||
|
||||
Trước khi bạn bắt đầu, [chuẩn bị môi trường](#prepare-the-environment).
|
||||
|
||||
|
@ -172,7 +172,7 @@ nhấn "Ctrl-a" theo sau là ":", sau đó nhập
|
|||
exec !! sz --ymodem fullimage.bin
|
||||
```
|
||||
|
||||
sau khi hình ảnh được tải, tiếp tục
|
||||
sau khi ảnh được tải, tiếp tục
|
||||
|
||||
```shell
|
||||
sf probe 0
|
||||
|
@ -180,7 +180,7 @@ sf erase 0x0 ${flashsize}
|
|||
sf write ${baseaddr} 0x0 ${filesize}
|
||||
```
|
||||
|
||||
### Flash toàn bộ hình ảnh từ TFTP
|
||||
### Flash toàn bộ ảnh từ TFTP
|
||||
|
||||
Trước khi bạn bắt đầu, [chuẩn bị môi trường](#prepare-the-environment).
|
||||
|
||||
|
@ -217,13 +217,13 @@ reset
|
|||
|
||||
Ở lần khởi động đầu tiên, hãy đăng nhập vào shell bootloader một lần nữa và ánh xạ lại phân vùng bằng cách chạy lệnh `run setnor16m`.
|
||||
|
||||
### Đọc hình ảnh nhị phân từ thẻ SD.
|
||||
### Đọc ảnh nhị phân từ thẻ SD.
|
||||
|
||||
Trước khi bạn bắt đầu, [chuẩn bị môi trường](#prepare-the-environment).
|
||||
|
||||
Nếu camera của bạn hỗ trợ thẻ SD và bạn có lệnh `fatload` trong bootloader, thì bạn có thể đọc các tệp nhị phân firmware từ thẻ SD.
|
||||
|
||||
Đầu tiên, chuẩn bị thẻ: định dạng nó thành hệ thống tệp FAT và đặt các tệp nhị phân bootloader, kernel và rootfs ở đó. Lắp thẻ vào camera và khởi động vào bảng điều khiển bootloader.
|
||||
Đầu tiên, chuẩn bị thẻ: định dạng nó thành hệ thống tệp FAT và đặt bootloader, kernel và tệp nhị phân rootfs vào đó. Lắp thẻ vào camera và khởi động vào bảng điều khiển bootloader.
|
||||
|
||||
Kiểm tra xem bạn có quyền truy cập vào thẻ hay không.
|
||||
|
||||
|
@ -267,7 +267,7 @@ sf write ${baseaddr} 0x250000 ${filesize}
|
|||
|
||||
### Vượt qua bootloader được bảo vệ bằng mật khẩu.
|
||||
|
||||
Thay đổi bootloader là một thao tác rủi ro. Có khả năng cao là biến camera của bạn thành cục chặn giấy nếu có sự cố xảy ra. Vì vậy, trước khi bạn flash một bootloader mới, bạn phải cân nhắc tất cả các rủi ro và lợi ích. Trong hầu hết các trường hợp, bootloader gốc cộng với kernel mới và hệ điều hành mới sẽ hoạt động tốt. Nhưng có những trường hợp ngoại lệ.
|
||||
Thay đổi bootloader là một thao tác rủi ro. Có khả năng cao biến camera của bạn thành cục chặn giấy nếu có sự cố xảy ra. Vì vậy, trước khi bạn flash bootloader mới, bạn phải cân nhắc tất cả các rủi ro và lợi ích. Trong hầu hết các trường hợp, bootloader gốc cộng với kernel mới và hệ điều hành mới sẽ hoạt động tốt. Nhưng có những trường hợp ngoại lệ.
|
||||
|
||||
#### Chập các chân trên chip flash
|
||||
|
||||
|
@ -283,11 +283,11 @@ Các chân 5 và 6 của chip SOIC8 nằm ở góc đối diện với chân 1,
|
|||

|
||||

|
||||
|
||||
[Hack này chi tiết](https://cybercx.co.nz/bypassing-bios-password/) hoặc phiên bản [đã lưu trữ](https://github.com/OpenIPC/wiki/blob/master/en/help-uboot.md#bypassing-password-protected-bootloader) của bài viết
|
||||
[Bài viết chi tiết về thủ thuật này](https://cybercx.co.nz/bypassing-bios-password/) hoặc phiên bản [đã lưu trữ](https://github.com/OpenIPC/wiki/blob/master/en/help-uboot.md#bypassing-password-protected-bootloader) của bài viết
|
||||
|
||||
#### Hạ cấp firmware gốc.
|
||||
|
||||
Ngày nay, chúng ta thấy ngày càng nhiều camera có quyền truy cập vào bảng điều khiển bootloader được bảo vệ bằng mật khẩu. Do đó, ngay cả khi bạn kết nối với cổng UART của camera, tất cả những gì bạn sẽ thấy sau khi ngắt chu kỳ khởi động tiêu chuẩn là lời nhắc nhập mật khẩu. Trong trường hợp đó, một giải pháp tương đối an toàn là hạ cấp firmware xuống phiên bản mà tính năng bảo vệ bằng mật khẩu chưa được triển khai. Ví dụ: đối với camera Xiongmai, tính năng bảo vệ bằng mật khẩu bootloader bắt đầu xuất hiện ở đâu đó vào khoảng tháng 7 năm 2021, do đó bạn cần có firmware cho camera của mình từ ngày trước đó. Sau khi bạn hạ cấp thành công camera của mình xuống bootloader không có mật khẩu, bạn có thể cài đặt firmware OpenIPC theo cách thông thường.
|
||||
Ngày nay, chúng ta thấy ngày càng nhiều camera có quyền truy cập vào bảng điều khiển bootloader được bảo vệ bằng mật khẩu. Do đó, ngay cả khi bạn kết nối với cổng UART của camera, tất cả những gì bạn sẽ thấy sau khi ngắt chu kỳ khởi động tiêu chuẩn là lời nhắc nhập mật khẩu. Trong trường hợp đó, một giải pháp tương đối an toàn là hạ cấp firmware xuống phiên bản mà tính năng bảo vệ bằng mật khẩu chưa được triển khai. Ví dụ: đối với camera Xiongmai, tính năng bảo vệ bằng mật khẩu bootloader bắt đầu xuất hiện ở đâu đó vào khoảng tháng 7 năm 2021, do đó bạn cần firmware cho camera của mình từ ngày trước đó. Sau khi bạn hạ cấp thành công camera của mình xuống bootloader không có mật khẩu, bạn có thể cài đặt firmware OpenIPC theo cách thông thường.
|
||||
|
||||
#### Tải phụ bootloader đã mở khóa.
|
||||
|
||||
|
@ -295,7 +295,7 @@ Nhiều camera hiện đại sử dụng giao thức fastboot cho phép camera t
|
|||
|
||||
#### Sửa đổi firmware gốc.
|
||||
|
||||
Một cách để vượt qua bảo vệ bootloader là xuất firmware gốc và thay thế bootloader ở đó bằng một bản thay thế đã mở khóa. Hoặc bạn có thể flash toàn bộ firmware OpenIPC vì dù sao bạn cũng có chip trong bộ lập trình.
|
||||
Một cách để vượt qua bảo vệ bootloader là xuất firmware gốc và thay thế bootloader ở đó bằng một lựa chọn thay thế đã mở khóa. Hoặc bạn có thể flash toàn bộ firmware OpenIPC vì dù sao bạn cũng có chip trong bộ nạp.
|
||||
|
||||
__ĐỪNG QUÊN SAO LƯU FIRMWARE GỐC CỦA BẠN!__
|
||||
|
||||
|
@ -303,7 +303,7 @@ __ĐỪNG QUÊN SAO LƯU FIRMWARE GỐC CỦA BẠN!__
|
|||
|
||||
Trước khi bạn bắt đầu, [chuẩn bị môi trường](#prepare-the-environment).
|
||||
|
||||
Nếu bạn nhận được lỗi `Too many args` trong khi cố gắng đặt biến môi trường, hãy thử làm điều đó từ trong Linux bằng cách sử dụng `fw_setenv` thay vì `setenv` trong U-boot.
|
||||
Nếu bạn gặp lỗi `Too many args` (quá nhiều đối số) trong khi cố gắng đặt biến môi trường, hãy thử làm điều đó từ trong Linux bằng cách sử dụng `fw_setenv` thay vì `setenv` trong U-boot.
|
||||
|
||||
__Bảng điều khiển U-boot:__
|
||||
|
||||
|
@ -319,41 +319,4 @@ root@openipc-hi3518ev100:~# fw_setenv uk 'mw.b ${baseaddr} 0xff ${flashsize}; tf
|
|||
```
|
||||
|
||||
[burn]: https://github.com/OpenIPC/burn
|
||||
[telegram]: https://t.me/OpenIPC
|
||||
|
||||
|
||||
**Giải thích thuật ngữ:**
|
||||
|
||||
* **U-Boot:** Là một bootloader phổ biến được sử dụng trong các hệ thống nhúng.
|
||||
* **Bootloader:** Là một chương trình nhỏ được thực thi khi thiết bị khởi động, chịu trách nhiệm tải hệ điều hành.
|
||||
* **Shell:** Là một giao diện dòng lệnh cho phép người dùng tương tác với hệ thống.
|
||||
* **UART:** Là một giao diện truyền thông nối tiếp.
|
||||
* **RAM:** Bộ nhớ truy cập ngẫu nhiên.
|
||||
* **Hexadecimal:** Hệ thập lục phân.
|
||||
* **Binary:** Nhị phân.
|
||||
* **TFTP:** Là một giao thức truyền tệp đơn giản.
|
||||
* **SD card:** Thẻ nhớ SD.
|
||||
* **MicroSD:** Thẻ nhớ microSD.
|
||||
* **Partition table:** Bảng phân vùng.
|
||||
* **Kernel:** Là phần cốt lõi của hệ điều hành.
|
||||
* **Rootfs:** Hệ thống tệp gốc.
|
||||
* **Squashfs:** Là một hệ thống tệp nén chỉ đọc.
|
||||
* **Fastboot:** Là một giao thức được sử dụng để flash phân vùng trên thiết bị Android.
|
||||
* **SoC:** Hệ thống trên một chip.
|
||||
* **fw_setenv:** Là một lệnh được sử dụng để đặt biến môi trường trong firmware.
|
||||
* **tftpboot:** Là một lệnh được sử dụng để tải tệp qua TFTP.
|
||||
* **sf probe:** Là một lệnh được sử dụng để dò tìm chip flash.
|
||||
* **sf erase:** Là một lệnh được sử dụng để xóa chip flash.
|
||||
* **sf write:** Là một lệnh được sử dụng để ghi vào chip flash.
|
||||
* **reset:** Là một lệnh được sử dụng để khởi động lại thiết bị.
|
||||
* **run setnor16m:** Là một lệnh được sử dụng để ánh xạ lại phân vùng cho chip flash 16MB.
|
||||
* **fatload:** Là một lệnh được sử dụng để tải tệp từ hệ thống tệp FAT.
|
||||
* **mmc rescan:** Là một lệnh được sử dụng để quét lại thẻ SD.
|
||||
* **u-boot-with-spl.bin:** Là tệp bootloader.
|
||||
* **uImage.${soc}:** Là tệp kernel.
|
||||
* **rootfs.squashfs.${soc}:** Là tệp hệ thống tệp gốc.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[telegram]: https://t.me/OpenIPC
|
|
@ -1,4 +1,4 @@
|
|||
## Wiki OpenIPC
|
||||
# Wiki OpenIPC
|
||||
[Mục lục](../README.md)
|
||||
|
||||
Trợ giúp: Giao diện người dùng Web
|
||||
|
@ -6,13 +6,13 @@ Trợ giúp: Giao diện người dùng Web
|
|||
|
||||
### Cập nhật giao diện người dùng Web từ giao diện người dùng Web.
|
||||
|
||||
Trong một số trường hợp, đặc biệt nếu bạn nghĩ rằng có điều gì đó không hoạt động như bình thường, hãy thử cập nhật giao diện người dùng Web một lần nữa, ghi đè kiểm tra phiên bản cho lần cập nhật thứ hai. Điều này có thể được yêu cầu do một số thay đổi mà chúng tôi có thể đã thực hiện đối với quy trình cập nhật, do đó bạn sẽ phải truy xuất mã quy trình cập nhật bằng bản cập nhật đầu tiên, sau đó sử dụng nó cho bản cập nhật tiếp theo.
|
||||
Trong một số trường hợp, đặc biệt nếu bạn nghĩ rằng có điều gì đó không hoạt động như bình thường, hãy thử cập nhật giao diện người dùng Web một lần nữa, ghi đè kiểm tra phiên bản cho lần cập nhật thứ hai. Điều này có thể là bắt buộc do một số thay đổi mà chúng tôi có thể đã thực hiện đối với quy trình cập nhật, do đó bạn sẽ phải truy xuất mã quy trình cập nhật bằng bản cập nhật đầu tiên, sau đó sử dụng nó cho bản cập nhật tiếp theo.
|
||||
|
||||
### Phát triển giao diện người dùng Web.
|
||||
|
||||
Nếu bạn muốn giúp chúng tôi phát triển giao diện web cho firmware của chúng tôi, đây là những gì bạn cần biết trước. Camera rất hạn chế về không gian và hiệu suất. Tùy chọn duy nhất hiện có trong firmware mà ít nhiều phù hợp để tạo động các trang HTML là `haserl`, một biến thể thú vị của `ash` được uốn cong để phục vụ như một trình bao bọc CGI. Tôi đã nói `ash`? Đúng vậy, vì chúng tôi không có `bash`, `tcsh`, `zsh` trong Linux của chúng tôi. Ash là vậy. Như trong A shell, tên đầy đủ là Almquist shell. Nhỏ gọn, nhẹ và có phần hạn chế. Hệ thống cũng bị hạn chế - trong hầu hết các phần, nó là `busybox`. Vì vậy, nếu bạn vẫn cảm thấy thoải mái khi làm bẩn tay với phong cách phát triển web rất thập niên 80 thì xin chào mừng bạn đến với chúng tôi.
|
||||
Nếu bạn muốn giúp chúng tôi phát triển giao diện web cho firmware của chúng tôi, đây là những gì bạn cần biết trước. Camera rất hạn chế về không gian và hiệu suất. Tùy chọn duy nhất hiện có trong firmware mà ít nhiều phù hợp để tạo động các trang HTML là `haserl`, một biến thể thú vị của `ash` được bẻ cong để phục vụ như một trình bao bọc CGI. Tôi đã nói `ash`? Đúng vậy, vì chúng tôi không có `bash`, `tcsh`, `zsh` trong Linux của chúng tôi. Ash là vậy. Như trong A shell, tên đầy đủ là Almquist shell. Nhỏ gọn, nhẹ và có phần hạn chế. Hệ thống cũng bị hạn chế - trong hầu hết các phần, nó là `busybox`. Vì vậy, nếu bạn vẫn cảm thấy thoải mái khi làm bẩn tay với phong cách phát triển web rất thập niên 80 thì xin chào mừng bạn đến với chúng tôi.
|
||||
|
||||
Giao diện gần đây được xây dựng dựa trên framework CSS [Bootstrap](https://getbootstrap.com/), hơi quá mức cần thiết cho mục đích này nhưng cho phép chúng tôi theo dõi nhanh từ web vi khuẩn ban đầu đến những gì chúng tôi có bây giờ. Chúng tôi muốn thu gọn gói Bootstrap ban đầu và tạo một gói tùy chỉnh chỉ với các tính năng chúng tôi sử dụng. Nếu bạn sở hữu một kỹ năng như vậy, hãy đến và làm việc với chúng tôi.
|
||||
Giao diện gần đây được xây dựng dựa trên framework CSS [Bootstrap](https://getbootstrap.com/), hơi quá mức cần thiết cho mục đích này nhưng cho phép chúng tôi theo dõi nhanh từ web sơ khai ban đầu đến những gì chúng tôi có bây giờ. Chúng tôi muốn thu gọn gói Bootstrap ban đầu và tạo một gói tùy chỉnh chỉ với các tính năng chúng tôi sử dụng. Nếu bạn sở hữu một kỹ năng như vậy, hãy đến và làm việc với chúng tôi.
|
||||
|
||||
Ngoài ra, chúng tôi đang xem xét khả năng chuyển sang trình tạo giao diện web phía máy khách, chỉ để lại việc truyền dữ liệu cho máy chủ. Vue.js hoặc tương tự. Bạn có muốn thêm điều gì ở đây không? Hãy nói ra.
|
||||
|
||||
|
@ -35,30 +35,6 @@ Sau đó, khởi động một phiên bản khác của daemon httpd để phụ
|
|||
httpd -p 86 -h "/tmp/dev/var/www" -c /dev/null
|
||||
```
|
||||
|
||||
Bây giờ bạn có thể làm việc trên mã nguồn giao diện người dùng Web trong IDE hoặc trình soạn thảo văn bản yêu thích của mình trên máy trạm và kiểm tra ngay lập tức các thay đổi bằng trình duyệt web tr ínhỏ đến cổng 86 trên camera. _(Ví dụ: http://192.168.1.10:86/)_
|
||||
Bây giờ bạn có thể làm việc trên mã nguồn giao diện người dùng Web trong IDE hoặc trình soạn thảo văn bản yêu thích của mình trên máy trạm và kiểm tra ngay lập tức các thay đổi bằng trình duyệt web trỏ đến cổng 86 trên camera. _(Ví dụ: http://192.168.1.10:86/)_
|
||||
|
||||
Hãy nhớ rằng bạn chỉ thay thế nội dung máy chủ web, nhưng cũng có các tập lệnh hỗ trợ nằm bên ngoài thư mục web. Các tập lệnh này cũng có thể yêu cầu cập nhật trên camera trong trường hợp bạn cũng thực hiện các thay đổi đối với chúng. Để cập nhật tập lệnh trên camera, hãy mở phiên ssh đến camera và sao chép phiên bản cập nhật của tập lệnh từ `/tmp/dev/usr/sbin/` sang `/usr/sbin/`.
|
||||
|
||||
|
||||
|
||||
**Giải thích thuật ngữ:**
|
||||
|
||||
* **Web UI:** Giao diện người dùng Web.
|
||||
* **Firmware:** Phần mềm được nhúng vào bộ nhớ ROM của thiết bị phần cứng.
|
||||
* **CGI:** Common Gateway Interface, là một tiêu chuẩn cho phép máy chủ web tương tác với các chương trình bên ngoài.
|
||||
* **Ash:** Almquist shell, là một trình bao lệnh đơn giản và nhẹ.
|
||||
* **Busybox:** Là một tập hợp các tiện ích Unix được thiết kế cho các hệ thống nhúng.
|
||||
* **Bootstrap:** Là một framework CSS phổ biến được sử dụng để xây dựng giao diện web.
|
||||
* **Client-side:** Phía máy khách.
|
||||
* **Server-side:** Phía máy chủ.
|
||||
* **Vue.js:** Là một framework JavaScript được sử dụng để xây dựng giao diện người dùng.
|
||||
* **NFS:** Network File System, là một giao thức chia sẻ tệp qua mạng.
|
||||
* **Mount:** Gắn kết, là quá trình kết nối một hệ thống tệp với một thư mục.
|
||||
* **httpd:** Là một daemon máy chủ web.
|
||||
* **IDE:** Integrated Development Environment, là một môi trường phát triển tích hợp cung cấp các công cụ cho việc lập trình.
|
||||
* **ssh:** Secure Shell, là một giao thức kết nối an toàn đến máy chủ từ xa.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
## Wiki OpenIPC
|
||||
# Wiki OpenIPC
|
||||
[Mục lục](../README.md)
|
||||
|
||||
## Tích hợp PTZ với Home Assistant
|
||||
|
||||
Tích hợp này dựa trên lệnh ssh tới firmware OpenIPC để tích hợp các điều khiển PTZ, dành cho các camera không hỗ trợ ONVIF.
|
||||
Tích hợp này dựa trên lệnh SSH tới firmware OpenIPC để tích hợp các điều khiển PTZ, dành cho các camera không hỗ trợ ONVIF.
|
||||
|
||||
## Cấu hình Camera
|
||||
Tải các mô-đun với các tham số (bạn có thể cần thử nghiệm với các giá trị hmaxstep và vmaxstep cho camera cụ thể của mình).
|
||||
|
||||
Sao chép motor_sample.ko ---> bộ nhớ trong (sao chép ssh)
|
||||
Sao chép motor_sample.ko ---> bộ nhớ trong (sao chép qua SSH)
|
||||
```
|
||||
scp "C:\Users\Downloads\sample_motor.ko" root@192.168.1.29:/sample_motor.ko
|
||||
```
|
||||
|
@ -20,10 +20,10 @@ Thêm các dòng này
|
|||
```
|
||||
# addmod
|
||||
insmod /sample_motor.ko vstep_offset=0 hmaxstep=2130 vmaxstep=1600
|
||||
# go to 0 position
|
||||
# di chuyển đến vị trí 0
|
||||
t31-kmotor -d h -r
|
||||
```
|
||||
Thay đổi chế độ tệp (thêm quyền thực thi)
|
||||
Thay đổi quyền truy cập tệp (thêm quyền thực thi)
|
||||
```
|
||||
$ chmod +x /etc/rc.local
|
||||
```
|
||||
|
@ -89,7 +89,7 @@ c101_r:
|
|||
```
|
||||
|
||||
**TẬP LỆNH**
|
||||
Tập lệnh này được tìm thấy trong kho lưu trữ này
|
||||
Bạn có thể tìm thấy tập lệnh này trong kho lưu trữ này
|
||||
https://github.com/OpenIPC/motors/tree/4c7dc45e5e877f38c076343f361159844374920a/t31-kmotor
|
||||
|
||||
Tạo tập lệnh này trong thư mục /config
|
||||
|
@ -97,7 +97,7 @@ Tạo tập lệnh này trong thư mục /config
|
|||
```
|
||||
vi camara_scrip.sh
|
||||
```
|
||||
Dán tệp này
|
||||
Dán nội dung sau
|
||||
```
|
||||
#!/bin/bash
|
||||
|
||||
|
@ -157,12 +157,12 @@ chmod +x camara_scrip.sh
|
|||
```
|
||||
Nhập dữ liệu camera của bạn (tên trước ví dụ c101)
|
||||
|
||||
**Lưu ý:** cần tạo tập lệnh cho các tệp khác (configuration.yml và scrips.yml)
|
||||
**Lưu ý:** cần tạo tập lệnh cho các tệp khác (configuration.yml và scripts.yml)
|
||||
|
||||
|
||||
|
||||
## Ví dụ Lovelace
|
||||
Thêm đoạn trích này vào một thẻ mới theo cách thủ công (định dạng yaml)
|
||||
Thêm đoạn mã này vào một thẻ mới theo cách thủ công (định dạng YAML)
|
||||
```
|
||||
camera_view: live
|
||||
type: picture-elements
|
||||
|
@ -237,24 +237,3 @@ Ví dụ về chế độ xem
|
|||
|
||||

|
||||
# Tận hưởng luồng.
|
||||
|
||||
|
||||
**Giải thích thuật ngữ:**
|
||||
|
||||
* **PTZ:** Pan-Tilt-Zoom, là khả năng điều khiển camera xoay ngang, dọc và phóng to/thu nhỏ.
|
||||
* **Home Assistant:** Là một nền tảng tự động hóa nhà mã nguồn mở.
|
||||
* **ONVIF:** Là một tiêu chuẩn mở cho các thiết bị giám sát IP.
|
||||
* **SSH:** Secure Shell, là một giao thức kết nối an toàn đến máy chủ từ xa.
|
||||
* **Module:** Mô-đun, là một phần mềm có thể được tải vào kernel Linux.
|
||||
* **Autostart script:** Tập lệnh tự động khởi động, là một tập lệnh được thực thi khi hệ thống khởi động.
|
||||
* **Docker:** Là một nền tảng ảo hóa container.
|
||||
* **sshpass:** Là một công cụ cho phép bạn cung cấp mật khẩu cho SSH thông qua dòng lệnh.
|
||||
* **configuration.yaml:** Là tệp cấu hình chính cho Home Assistant.
|
||||
* **scripts.yaml:** Là tệp cấu hình cho các tập lệnh trong Home Assistant.
|
||||
* **Lovelace:** Là giao diện người dùng dựa trên web cho Home Assistant.
|
||||
* **YAML:** Là một ngôn ngữ đánh dấu dữ liệu được sử dụng trong các tệp cấu hình.
|
||||
* **Picture-elements card:** Là một loại thẻ trong Lovelace cho phép bạn tùy chỉnh giao diện của camera.
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
## Wiki OpenIPC
|
||||
# Wiki OpenIPC
|
||||
[Mục lục](../README.md)
|
||||
|
||||
|
||||
## Camera chung Home Assistant
|
||||
#### Lựa chọn 1
|
||||
## Tích hợp camera chung Home Assistant
|
||||
#### Tùy chọn 1
|
||||
Vào Cài đặt -> Thiết bị và dịch vụ -> Thêm tích hợp --> Camera chung
|
||||
|
||||
#### Lựa chọn 2
|
||||
#### Tùy chọn 2
|
||||
[HomeAssistan_Chung](https://my.home-assistant.io/redirect/config_flow_start/?domain=generic)
|
||||
|
||||
#### Lựa chọn 3
|
||||
#### Tùy chọn 3
|
||||
<"IP-HomeAsisstantServer">/config/integrations/dashboard
|
||||
|
||||
Thêm tích hợp --> Camera chung
|
||||
|
@ -25,24 +25,24 @@ Thêm tích hợp --> Camera chung
|
|||
<code>
|
||||
URL hình ảnh tĩnh -> http://<"IP-OIPC_Camera">/image.jpg
|
||||
URL nguồn luồng -> rtsp://<"User">:<"PASS">@<"IP-OIPC_Camera">:554/stream=0
|
||||
Giao thức vận chuyển RTSP -> TCP
|
||||
Giao thức truyền tải RTSP -> TCP
|
||||
Xác thực -> cơ bản
|
||||
Tên người dùng -> <"User">
|
||||
Mật khẩu -> <"PASS">
|
||||
Tốc độ khung hình -> 15
|
||||
Xác minh chứng chỉ SSL -> trống
|
||||
Giới hạn tải lại khi thay đổi url -> trống
|
||||
Xác minh chứng chỉ SSL -> bỏ trống
|
||||
Giới hạn tải lại khi thay đổi url -> bỏ trống
|
||||
</code>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
**Lưu ý:** Người dùng và Mật khẩu mặc định OpenIPC -> ("root" & ¨12345¨)
|
||||
**Lưu ý:** Tên người dùng và Mật khẩu mặc định của OpenIPC -> ("root" & ¨12345¨)
|
||||
|
||||
**Lưu ý:** Cẩn thận với tốc độ khung hình (Hiện tại, home assistant không hỗ trợ quá 20 khung hình/giây, nếu vượt quá sẽ gặp vấn đề nhấp nháy)
|
||||
**Lưu ý:** Cẩn thận với tốc độ khung hình (Hiện tại, Home Assistant không hỗ trợ quá 20 khung hình/giây, nếu vượt quá sẽ gặp vấn đề nhấp nháy)
|
||||
|
||||
## Ví dụ Lovelace
|
||||
Thêm đoạn trích này vào một thẻ mới theo cách thủ công (định dạng yaml)
|
||||
Thêm đoạn mã này vào thẻ mới theo cách thủ công (định dạng YAML)
|
||||
```
|
||||
camera_view: live
|
||||
type: picture-glance
|
||||
|
@ -53,31 +53,14 @@ view_layout:
|
|||
position: main
|
||||
camera_image: camera.192_168_1_29
|
||||
```
|
||||
**Lưu ý KHÁC:**
|
||||
**GHI CHÚ KHÁC:**
|
||||
## Cấu hình Camera
|
||||

|
||||
|
||||
## Cài đặt Router
|
||||
Hãy nhớ đặt địa chỉ IP cố định cho camera của bạn từ router, nếu không, nó có thể thay đổi khi khởi động lại.
|
||||
Hãy nhớ đặt địa chỉ IP tĩnh cho camera của bạn từ router, nếu không, địa chỉ IP có thể thay đổi khi camera khởi động lại.
|
||||
|
||||
|
||||
# Tận hưởng luồng.
|
||||
|
||||
|
||||
**Giải thích thuật ngữ:**
|
||||
|
||||
* **Home Assistant:** Là một nền tảng tự động hóa nhà mã nguồn mở.
|
||||
* **Generic camera:** Camera chung, là một loại tích hợp trong Home Assistant cho phép bạn thêm bất kỳ camera IP nào hỗ trợ RTSP.
|
||||
* **RTSP:** Real Time Streaming Protocol, là một giao thức mạng được sử dụng để truyền phát video và âm thanh trực tiếp.
|
||||
* **TCP:** Transmission Control Protocol, là một giao thức mạng đáng tin cậy được sử dụng để truyền dữ liệu.
|
||||
* **Authentication:** Xác thực, là quá trình xác minh danh tính của người dùng.
|
||||
* **SSL:** Secure Sockets Layer, là một giao thức bảo mật được sử dụng để mã hóa dữ liệu được truyền qua mạng.
|
||||
* **Lovelace:** Là giao diện người dùng dựa trên web cho Home Assistant.
|
||||
* **YAML:** Là một ngôn ngữ đánh dấu dữ liệu được sử dụng trong các tệp cấu hình.
|
||||
* **Picture-glance card:** Là một loại thẻ trong Lovelace cho phép bạn hiển thị hình ảnh từ camera.
|
||||
* **Router:** Bộ định tuyến, là một thiết bị mạng được sử dụng để kết nối các mạng với nhau.
|
||||
* **Fixed IP address:** Địa chỉ IP cố định, là một địa chỉ IP không thay đổi.
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
## Wiki OpenIPC
|
||||
# Wiki OpenIPC
|
||||
[Mục lục](../README.md)
|
||||
|
||||
|
||||
## Tích hợp OpenIPC vào HomeKit
|
||||
---
|
||||
|
||||
Hiện tại OpenIPC chưa có hỗ trợ HomeKit gốc, việc tích hợp được thực hiện bởi gói bên thứ 3 [go2rtc](https://github.com/AlexxIT/go2rtc "go2rtc"), cảm ơn [@gtxaspec](https://github.com/gtxaspec "@gtxaspec") đã thêm gói này vào OpenIPC.
|
||||
Hiện tại, OpenIPC chưa có hỗ trợ HomeKit gốc, việc tích hợp được thực hiện bởi gói bên thứ ba [go2rtc](https://github.com/AlexxIT/go2rtc "go2rtc"), cảm ơn [@gtxaspec](https://github.com/gtxaspec "@gtxaspec") đã thêm gói này vào OpenIPC.
|
||||
|
||||
### Yêu cầu phần cứng
|
||||
|
||||
|
@ -13,13 +13,13 @@ Vì tệp nhị phân đã biên dịch sẽ có kích thước 3,3MB, kích th
|
|||
|
||||
### Biên dịch gói go2rtc
|
||||
|
||||
Cài đặt go và upx trước
|
||||
Cài đặt Go và UPX trước
|
||||
```
|
||||
apt update
|
||||
apt install golang upx
|
||||
```
|
||||
- #### Phương pháp 1: Biên dịch toàn bộ firmware
|
||||
Chỉnh sửa tệp cấu hình bảng trong thư mục `firmware/br-ext-chip-xxxx/configs`, thêm dòng sau để bật gói go2rtc
|
||||
Chỉnh sửa tệp cấu hình bo mạch trong thư mục `firmware/br-ext-chip-xxxx/configs`, thêm dòng sau để bật gói go2rtc
|
||||
```
|
||||
BR2_PACKAGE_GO2RTC=y
|
||||
```
|
||||
|
@ -82,33 +82,10 @@ Thêm các dòng sau vào /etc/rc.local
|
|||
/usr/bin/go2rtc -config /etc/go2rtc.yaml &
|
||||
```
|
||||
|
||||
### Giới hạn
|
||||
### Hạn chế
|
||||
|
||||
- Chưa hỗ trợ HomeKit Secure Video.
|
||||
- Chưa hỗ trợ cảm biến chuyển động.
|
||||
- Chưa hỗ trợ âm thanh hai chiều.
|
||||
|
||||
|
||||
**Giải thích thuật ngữ:**
|
||||
|
||||
* **HomeKit:** Là một nền tảng tự động hóa nhà của Apple.
|
||||
* **go2rtc:** Là một ứng dụng trung gian cho phép bạn tích hợp các camera RTSP vào HomeKit.
|
||||
* **Firmware:** Phần mềm được nhúng vào bộ nhớ ROM của thiết bị phần cứng.
|
||||
* **Flash chip:** Chip flash, là một loại bộ nhớ không bay hơi được sử dụng để lưu trữ firmware.
|
||||
* **DDR:** Double Data Rate, là một loại bộ nhớ truy cập ngẫu nhiên.
|
||||
* **Board config file:** Tệp cấu hình bảng, là một tệp văn bản chứa các cài đặt cho quá trình biên dịch firmware.
|
||||
* **Binary file:** Tệp nhị phân, là một tệp chứa dữ liệu ở dạng nhị phân.
|
||||
* **Config file:** Tệp cấu hình, là một tệp văn bản chứa các cài đặt cho một chương trình.
|
||||
* **RTSP:** Real Time Streaming Protocol, là một giao thức mạng được sử dụng để truyền phát video và âm thanh trực tiếp.
|
||||
* **WebRTC:** Web Real-Time Communication, là một bộ API cho phép truyền thông âm thanh và video trực tiếp trong trình duyệt web.
|
||||
* **STUN:** Session Traversal Utilities for NAT, là một giao thức mạng được sử dụng để vượt qua NAT.
|
||||
* **Home app:** Ứng dụng Home, là ứng dụng của Apple để điều khiển các thiết bị HomeKit.
|
||||
* **PIN:** Personal Identification Number, là một mã số bí mật được sử dụng để xác thực.
|
||||
* **HomeKit Secure Video:** Là một tính năng của HomeKit cho phép bạn lưu trữ video được mã hóa từ camera của mình trên iCloud.
|
||||
* **Motion sensor:** Cảm biến chuyển động, là một cảm biến phát hiện chuyển động.
|
||||
* **Two-way audio:** Âm thanh hai chiều, là khả năng nói chuyện và nghe qua camera.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
## Wiki OpenIPC
|
||||
# Wiki OpenIPC
|
||||
[Mục lục](../README.md)
|
||||
|
||||
## Phát trực tiếp lên Telegram
|
||||
|
@ -7,43 +7,26 @@ Mở kênh mà bạn muốn phát trực tiếp. Bắt đầu phiên phát trự
|
|||
|
||||

|
||||
|
||||
Sao chép URL máy chủ và Khóa luồng từ Cài đặt.
|
||||
Sao chép URL Máy chủ và Khóa luồng từ Cài đặt.
|
||||
|
||||

|
||||
|
||||
Mở `/etc/majestic.yaml` trên camera và thêm URL và khóa vào phần `outgoing` của cấu hình.
|
||||
Mở `/etc/majestic.yaml` trên camera và thêm URL và khóa vào phần `outgoing` của tệp cấu hình.
|
||||
|
||||
**Lưu ý:** Nó sẽ phát trực tiếp `video0`. Nó **phải** được cấu hình thành codec video: `h264`.
|
||||
**Lưu ý:** Nó sẽ phát trực tiếp luồng `video0`. Luồng này **phải** được cấu hình với codec video là: `h264`.
|
||||
|
||||
**Lưu ý:** Đừng quên thêm dấu `-` trước các tham số!
|
||||
|
||||
**Lưu ý:** Phần `outgoing` có thể ảnh hưởng đến việc thêm phần khác. Hãy nhớ điều đó!
|
||||
**Lưu ý:** Phần `outgoing` có thể ảnh hưởng đến việc thêm các phần khác. Hãy nhớ điều đó!
|
||||
|
||||

|
||||

|
||||
|
||||
Khởi động lại trình phát trực tiếp majestic.
|
||||
Khởi động lại trình phát trực tiếp Majestic.
|
||||
|
||||

|
||||
|
||||
Tận hưởng luồng.
|
||||
Tận hưởng luồng phát.
|
||||
|
||||

|
||||
|
||||
|
||||
**Giải thích thuật ngữ:**
|
||||
|
||||
* **Telegram:** Là một ứng dụng nhắn tin tập trung vào tốc độ và bảo mật.
|
||||
* **Streaming:** Phát trực tiếp, là quá trình truyền dữ liệu liên tục từ máy chủ đến máy khách.
|
||||
* **Server URL:** URL máy chủ, là địa chỉ của máy chủ phát trực tiếp.
|
||||
* **Stream key:** Khóa luồng, là một mã bí mật được sử dụng để xác thực luồng phát trực tiếp.
|
||||
* **majestic.yaml:** Là tệp cấu hình cho trình phát trực tiếp majestic.
|
||||
* **outgoing:** Là một phần trong tệp cấu hình majestic.yaml, được sử dụng để định cấu hình các luồng phát trực tiếp ra bên ngoài.
|
||||
* **video0:** Là ID của luồng video mặc định.
|
||||
* **h264:** Là một codec video phổ biến.
|
||||
* **codec:** Bộ mã hóa/giải mã, là một thuật toán được sử dụng để nén và giải nén dữ liệu.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
## Wiki OpenIPC
|
||||
# Wiki OpenIPC
|
||||
[Mục lục](../README.md)
|
||||
|
||||
Tổng quan
|
||||
|
@ -10,11 +10,11 @@ Mỗi nhà sản xuất SoC có phần mềm riêng để điều chỉnh chất
|
|||
* Novatek - isptool
|
||||
* Fullhan - Coolview
|
||||
|
||||
## Bảng mạch dựa trên HiSilicon
|
||||
## Bo mạch dựa trên HiSilicon
|
||||
|
||||
### Dòng EV300
|
||||
### Họ EV300
|
||||
|
||||
#### Chạy mô-đun máy chủ trên bảng mạch OpenIPC
|
||||
#### Chạy mô-đun máy chủ trên bo mạch OpenIPC
|
||||
|
||||
```console
|
||||
$ pqtools
|
||||
|
@ -33,9 +33,9 @@ pqtools:server(port:4321)begin to listen
|
|||
pqtools:Waiting for connection from client!
|
||||
```
|
||||
|
||||
#### Chạy mô-đun máy chủ trên bảng mạch XM
|
||||
#### Chạy mô-đun máy chủ trên bo mạch XM
|
||||
|
||||
Để đơn giản, chúng tôi sử dụng máy chủ NFS công cộng:
|
||||
Để đơn giản, chúng tôi sẽ sử dụng máy chủ NFS công cộng:
|
||||
|
||||
```console
|
||||
$ mount -o nolock 95.217.179.189:/srv/ro /utils/
|
||||
|
@ -50,9 +50,9 @@ pqtools:Waiting for connection from client!
|
|||
|
||||
Tải xuống và cài đặt [MATLAB Compiler Runtime][mcr].
|
||||
|
||||
Tải xuống [PQTools][pqt] và giải nén kho lưu trữ zip ở đâu đó trên PC của bạn.
|
||||
Tải xuống [PQTools][pqt] và giải nén tập tin zip ở đâu đó trên PC của bạn.
|
||||
|
||||
Khởi chạy `HiPQTools.exe`, chọn `Hi3516EV200_V1.0.1.2`, nhập địa chỉ IP của camera của bạn và nhấp vào `OK`.
|
||||
Khởi chạy `HiPQTools.exe`, chọn `Hi3516EV200_V1.0.1.2`, nhập địa chỉ IP của camera và nhấp vào `OK`.
|
||||
|
||||
Sử dụng [hướng dẫn này][man] để tham khảo.
|
||||
|
||||
|
@ -60,25 +60,3 @@ Sử dụng [hướng dẫn này][man] để tham khảo.
|
|||
[pqt]: https://drive.google.com/file/d/1c4XZRbJKXjMBwfMJaLl5jUPcVqMbO936/view?usp=sharing
|
||||
[man]: https://drive.google.com/file/d/1mY1lXMZVNz2Ia5CPvTF-K-907eIioSYU/view?usp=sharing
|
||||
|
||||
|
||||
**Giải thích thuật ngữ:**
|
||||
|
||||
* **SoC (System on a Chip):** Hệ thống trên một vi mạch, là một mạch tích hợp chứa tất cả các thành phần cần thiết của một hệ thống máy tính.
|
||||
* **PQTools:** Là một bộ công cụ phần mềm được sử dụng để điều chỉnh chất lượng hình ảnh trên các bảng mạch dựa trên HiSilicon.
|
||||
* **isptool:** Là một bộ công cụ phần mềm được sử dụng để điều chỉnh chất lượng hình ảnh trên các bảng mạch dựa trên Novatek.
|
||||
* **Coolview:** Là một bộ công cụ phần mềm được sử dụng để điều chỉnh chất lượng hình ảnh trên các bảng mạch dựa trên Fullhan.
|
||||
* **EV300:** Là tên của một dòng SoC HiSilicon.
|
||||
* **OpenIPC:** Là một dự án phần mềm mã nguồn mở cung cấp firmware thay thế cho các camera IP.
|
||||
* **XM:** Là tên của một nhà sản xuất camera IP.
|
||||
* **NFS (Network File System):** Hệ thống tệp mạng, là một giao thức cho phép truy cập vào các tệp trên mạng.
|
||||
* **MATLAB Compiler Runtime:** Là một bộ thư viện cần thiết để chạy các ứng dụng được biên dịch bằng MATLAB Compiler.
|
||||
* **Client:** Máy khách, là một ứng dụng kết nối đến máy chủ để yêu cầu dịch vụ.
|
||||
* **Server:** Máy chủ, là một ứng dụng cung cấp dịch vụ cho máy khách.
|
||||
* **IP address:** Địa chỉ IP, là một địa chỉ định danh duy nhất cho một thiết bị trên mạng.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
### Tiện ích sao chép Ingenic
|
||||
### Tiện ích Sao chép Ingenic
|
||||
|
||||
Ứng dụng sao chép Ingenic là một tiện ích bên máy tính giao tiếp với chế độ "USB-Boot" được tích hợp trong các SoC Ingenic. Bằng cách đặt SoC vào chế độ "USB-Boot", bạn có thể sử dụng ứng dụng sao chép Ingenic để flash trực tiếp chip firmware mà không cần phải tháo rời hoặc giao tiếp với chip flash.
|
||||
Ứng dụng Sao chép Ingenic là một tiện ích bên máy tính giao tiếp với chế độ "USB-Boot" được tích hợp trong các SoC Ingenic. Bằng cách đặt SoC vào chế độ "USB-Boot", bạn có thể sử dụng ứng dụng Sao chép Ingenic để flash trực tiếp chip firmware mà không cần phải tháo rời vật lý hoặc giao tiếp với chip flash.
|
||||
|
||||
Hướng dẫn này là một công việc đang tiến hành.
|
||||
|
||||
|
@ -8,9 +8,9 @@ Hướng dẫn này là một công việc đang tiến hành.
|
|||
#### Chập các chân trên chip flash
|
||||
|
||||
Điều đầu tiên cần làm là xác định vị trí chip bộ nhớ flash trên bảng mạch camera. Thông thường đây là một chip vuông có 8 chân được dán nhãn 25Q64 hoặc 25Q128, hiếm khi là 25L64 hoặc 25L128. Nếu bạn gặp sự cố khi xác định vị trí chip, hãy thử chụp một số ảnh bảng của bạn từ cả hai phía. Sau đó, hãy yêu cầu trợ giúp [trong kênh Telegram của chúng tôi](https://t.me/openipc).
|
||||
**Không cố gắng làm đoản mạch bất kỳ chip ngẫu nhiên nào! Nó rất có thể sẽ làm cháy mạch camera của bạn.**
|
||||
**Không cố gắng chập mạch bất kỳ chip ngẫu nhiên nào! Nó rất có thể sẽ làm cháy mạch camera của bạn.**
|
||||
|
||||
Làm đoản mạch các chân 5 và 6 của chip flash bằng một vật kim loại nhỏ, tua vít hoặc nhíp, ngay sau khi bootloader khởi động nhưng trước khi nó gọi kernel Linux.
|
||||
Chập mạch các chân 5 và 6 của chip flash bằng một vật kim loại nhỏ, tua vít hoặc nhíp, ngay sau khi bootloader khởi động nhưng trước khi nó gọi kernel Linux.
|
||||
|
||||
Các chân 5 và 6 của chip SOIC8 nằm ở góc đối diện với chân 1, được biểu thị bằng dấu chấm nổi hoặc vẽ bên cạnh nó.
|
||||
|
||||
|
@ -29,7 +29,7 @@ Các chân 5 và 6 của chip SOIC8 nằm ở góc đối diện với chân 1,
|
|||
|
||||
---
|
||||
|
||||
**Hướng dẫn sử dụng ứng dụng OpenIPC Cloner**
|
||||
**Hướng dẫn ứng dụng OpenIPC Cloner**
|
||||
|
||||
1. **Truy cập Cloner**:
|
||||
- Điều hướng đến thư mục "cloner-2.5.xx-ubuntu_alpha", với "xx" cho biết phiên bản Cloner bạn đã tải xuống.
|
||||
|
@ -48,11 +48,11 @@ Các chân 5 và 6 của chip SOIC8 nằm ở góc đối diện với chân 1,
|
|||
- Nhấp vào nút 'Config' ở góc trên cùng bên phải.
|
||||
|
||||
6. **Điều hướng cấu hình**:
|
||||
- Trong cửa sổ Cấu hình, trong tab "Info", hãy truy cập các menu cấu hình khác nhau.
|
||||
- Trong cửa sổ Config, trong tab "Info", hãy truy cập các menu cấu hình khác nhau.
|
||||
|
||||
7. **Cài đặt dành riêng cho thiết bị**:
|
||||
- Chọn 'Platform T'.
|
||||
- Chọn phiên bản SOC phù hợp cho thiết bị của bạn bên cạnh Platform 'T'.
|
||||
- Chọn phiên bản SoC phù hợp cho thiết bị của bạn bên cạnh Platform 'T'.
|
||||
- Trong 'Board', chọn thao tác liên quan:
|
||||
- `txxx_sfc_nor_reader_8MB.cfg` cho thiết bị có chip flash 8MB.
|
||||
- `txxx_sfc_nor_reader_16MB.cfg` cho thiết bị có chip flash 16MB.
|
||||
|
@ -76,25 +76,3 @@ Các chân 5 và 6 của chip SOIC8 nằm ở góc đối diện với chân 1,
|
|||
|
||||
Hãy cẩn thận làm theo các bước này để đảm bảo ứng dụng Cloner được thiết lập chính xác và hoạt động như mong đợi.
|
||||
|
||||
|
||||
**Giải thích thuật ngữ:**
|
||||
|
||||
* **Ingenic Cloner Utility:** Tiện ích sao chép Ingenic, là một công cụ được sử dụng để flash firmware lên các thiết bị sử dụng SoC Ingenic.
|
||||
* **SoC (System on a Chip):** Hệ thống trên một vi mạch, là một mạch tích hợp chứa tất cả các thành phần cần thiết của một hệ thống máy tính.
|
||||
* **USB-Boot:** Là một chế độ cho phép bạn flash firmware lên thiết bị thông qua cổng USB.
|
||||
* **Firmware:** Phần mềm được nhúng vào bộ nhớ ROM của thiết bị phần cứng.
|
||||
* **Flash chip:** Chip flash, là một loại bộ nhớ không bay hơi được sử dụng để lưu trữ firmware.
|
||||
* **Bootloader:** Là một chương trình nhỏ được thực thi khi thiết bị khởi động, chịu trách nhiệm tải hệ điều hành.
|
||||
* **Kernel:** Là phần cốt lõi của hệ điều hành.
|
||||
* **SOIC8:** Small Outline Integrated Circuit 8, là một loại gói chip.
|
||||
* **OpenIPC:** Là một dự án phần mềm mã nguồn mở cung cấp firmware thay thế cho các camera IP.
|
||||
* **Telegram:** Là một ứng dụng nhắn tin tập trung vào tốc độ và bảo mật.
|
||||
* **Profile:** Cấu hình, là một tập hợp các cài đặt được sử dụng cho một tác vụ cụ thể.
|
||||
* **Progress bar:** Thanh tiến trình, là một chỉ báo trực quan cho biết tiến trình của một tác vụ.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ Tải mô-đun motor bằng lệnh sau (điều chỉnh GPIO khi cần cho phầ
|
|||
modprobe motor hmaxstep=2540 vmaxstep=720 hst1=52 hst2=53 hst3=57 hst4=51 vst1=59 vst2=61 vst3=62 vst4=63
|
||||
```
|
||||
|
||||
Để tự động hóa quá trình này trong quá trình khởi động, hãy thêm dòng `sample_motor hmaxstep=2540 vmaxstep=720 hst1=52 hst2=53 hst3=57 hst4=51 vst1=59 vst2=61 vst3=62 vst4=63` vào `/etc/modules`.
|
||||
Để tự động hóa quá trình này trong quá trình khởi động, hãy thêm dòng `motor hmaxstep=2540 vmaxstep=720 hst1=52 hst2=53 hst3=57 hst4=51 vst1=59 vst2=61 vst3=62 vst4=63` vào `/etc/modules`.
|
||||
|
||||
## Cấu hình mô-đun
|
||||
|
||||
|
@ -26,18 +26,4 @@ Sử dụng tiện ích dòng lệnh `ingenic-motor` để điều khiển độ
|
|||
|
||||
- Lưu ý rằng tùy thuộc vào GPIO cụ thể mà phần cứng của bạn sử dụng để điều khiển động cơ, bạn có thể gặp phải chuyển động bị hạn chế hoặc không hoạt động do việc xử lý GPIO bị lỗi trên nền tảng Ingenic.
|
||||
- Vấn đề này có thể được giải quyết trong các bản cập nhật trong tương lai.
|
||||
```
|
||||
|
||||
**Giải thích thuật ngữ:**
|
||||
|
||||
* **PTZ (Pan-Tilt-Zoom):** Xoay-Nghiêng-Phóng to, là khả năng điều khiển camera xoay ngang, dọc và phóng to/thu nhỏ.
|
||||
* **Module:** Mô-đun, là một phần mềm có thể được tải vào kernel Linux.
|
||||
* **Kernel:** Là phần cốt lõi của hệ điều hành.
|
||||
* **GPIO (General Purpose Input/Output):** Cổng vào/ra đa năng, là các chân trên vi điều khiển có thể được cấu hình làm đầu vào hoặc đầu ra.
|
||||
* **modprobe:** Là một lệnh được sử dụng để tải các mô-đun kernel.
|
||||
* **hmaxstep:** Số bước tối đa theo chiều ngang.
|
||||
* **vmaxstep:** Số bước tối đa theo chiều dọc.
|
||||
* **hstX:** Chân GPIO pha động cơ ngang.
|
||||
* **vstX:** Chân GPIO pha động cơ dọc.
|
||||
* `/etc/modules`: Là một tệp cấu hình chứa danh sách các mô-đun kernel cần được tải khi khởi động.
|
||||
* **ingenic-motor:** Là một tiện ích dòng lệnh được sử dụng để điều khiển động cơ trên nền tảng Ingenic.
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
## Wiki OpenIPC
|
||||
# Wiki OpenIPC
|
||||
[Mục lục](../README.md)
|
||||
|
||||
Ghi chú nghiên cứu và gỡ lỗi SoC Ingenic
|
||||
|
@ -16,16 +16,16 @@ Options:
|
|||
-e, --enable Bật kênh
|
||||
-d, --disable Tắt kênh
|
||||
-p, --polarity=<0|1> Đặt cực tính (0: Đảo ngược, 1: Bình thường)
|
||||
-D, --duty=<duty_ns> Đặt chu kỳ nhiệm vụ tính bằng ns
|
||||
-P, --period=<period_ns> Đặt chu kỳ tính bằng ns
|
||||
-r, --ramp=<value> Tăng dần PWM (+value: Tăng dần, -value: Giảm dần)
|
||||
-D, --duty=<duty_ns> Đặt chu kỳ nhiệm vụ tính bằng nano giây
|
||||
-P, --period=<period_ns> Đặt chu kỳ tính bằng nano giây
|
||||
-r, --ramp=<value> Tăng/giảm dần PWM (+value: Tăng dần, -value: Giảm dần)
|
||||
-x, --max_duty=<max_duty_ns> Đặt chu kỳ nhiệm vụ tối đa cho việc tăng dần
|
||||
-n, --min_duty=<min_duty_ns> Đặt chu kỳ nhiệm vụ tối thiểu cho việc tăng dần
|
||||
-h, --help Hiển thị thông báo trợ giúp này
|
||||
```
|
||||
|
||||
Ví dụ về lệnh:
|
||||
Bật đèn LED, Dim ON: Đặt kênh PWM 3 được bật, Chu kỳ thành 1000000, Nhiệm vụ tối thiểu 0, Nhiệm vụ tối đa 1000000, tốc độ tăng dần + Dim Up, - để Dim Down
|
||||
Bật đèn LED, Dim ON: Đặt kênh PWM 3 được bật, Chu kỳ thành 1000000, Nhiệm vụ tối thiểu 0, Nhiệm vụ tối đa 1000000, tốc độ tăng dần + để tăng độ sáng, - để giảm độ sáng.
|
||||
|
||||
`ingenic-pwm -c 3 -e -p 1 -P 1000000 -n 0 -x 1000000 -r 50000`
|
||||
`ingenic-pwm -c 3 -e -p 1 -P 1000000 -n 0 -x 1000000 -r -50000`
|
||||
|
@ -79,7 +79,7 @@ Lưu ý: Một số mô-đun kernel cũ có thể phàn nàn về các ký hiệ
|
|||
[ 4.357160] sample_core: Ký hiệu không xác định __dynamic_dev_dbg (lỗi 1)
|
||||
[ 4.361299] sample_hal: Ký hiệu không xác định __dynamic_dev_dbg (lỗi 1)
|
||||
```
|
||||
Để giải quyết vấn đề này, hãy đảm bảo bạn cập nhật toàn bộ cài đặt OpenIPC lên phiên bản mới nhất sau ngày 10-20-2023 hoặc thử cập nhật các mô-đun kernel riêng lẻ gặp sự cố. Là phương sách cuối cùng, bạn cũng có thể tắt `CONFIG_DYNAMIC_DEBUG` trong cấu hình kernel của mình, nhưng thử nghiệm rộng rãi đã cho thấy đây không phải là vấn đề.
|
||||
Để giải quyết vấn đề này, hãy đảm bảo bạn cập nhật toàn bộ cài đặt OpenIPC lên phiên bản mới nhất sau ngày 20/10/2023 hoặc thử cập nhật các mô-đun kernel riêng lẻ gặp sự cố. Là phương sách cuối cùng, bạn cũng có thể tắt `CONFIG_DYNAMIC_DEBUG` trong cấu hình kernel của mình, nhưng thử nghiệm rộng rãi đã cho thấy đây không phải là vấn đề.
|
||||
|
||||
---
|
||||
|
||||
|
@ -97,19 +97,19 @@ Sử dụng các lệnh này để bật hoặc tắt thiết bị SDIO sau khi
|
|||
`echo "INSERT" > /sys/devices/platform/jzmmc_v1.2.X/present`
|
||||
`echo "REMOVE" > /sys/devices/platform/jzmmc_v1.2.X/present`
|
||||
|
||||
Trong đó X = thiết bị MMC bạn muốn điều khiển MSC0 = 0 MSC1 = 1
|
||||
Trong đó X = thiết bị MMC bạn muốn điều khiển MSC0=0 MSC1=1
|
||||
|
||||
---
|
||||
|
||||
### IMP-Control
|
||||
|
||||
IMP-Control là một công cụ linh hoạt được thiết kế để điều khiển và cấu hình nhiều tham số trong thư viện IMP Ingenic, trong trình phát Majestic. Công cụ này cho phép tinh chỉnh cả cài đặt âm thanh và video để đạt được hiệu suất tối ưu trong các môi trường khác nhau.
|
||||
IMP-Control là một công cụ linh hoạt được thiết kế để điều khiển và cấu hình nhiều tham số trong thư viện IMP Ingenic, trong trình phát trực tuyến Majestic. Công cụ này cho phép tinh chỉnh cả cài đặt âm thanh và video để đạt được hiệu suất tối ưu trong các môi trường khác nhau.
|
||||
|
||||
#### Các tính năng và chức năng chính
|
||||
1. **Điều chỉnh âm thanh:**
|
||||
- `aihpf`: Bật/tắt bộ lọc High Pass Filter.
|
||||
- `aihpf`: Bật/tắt bộ lọc thông cao.
|
||||
- `aiagc`: Điều khiển khuếch đại tự động với các mức khuếch đại và bù có thể điều chỉnh.
|
||||
- `ains`: Loại bỏ tiếng ồn với các mức cường độ.
|
||||
- `ains`: Khử nhiễu với các mức cường độ.
|
||||
- `aiaec`: Bật/tắt khử tiếng vọng.
|
||||
- `aivol` và `aovol`: Điều chỉnh âm lượng đầu vào và đầu ra âm thanh tương ứng.
|
||||
- `aigain` và `aogain`: Đặt mức khuếch đại đầu vào và đầu ra âm thanh.
|
||||
|
@ -123,7 +123,7 @@ IMP-Control là một công cụ linh hoạt được thiết kế để điều
|
|||
- `dpc`, `drc`: Điều khiển cường độ DPC và DRC.
|
||||
- `hilight`: Điều chỉnh cường độ điểm sáng.
|
||||
- `again`, `dgain`: Đặt mức khuếch đại tương tự và kỹ thuật số.
|
||||
- `hue`: Sửa đổi màu sắc.
|
||||
- `hue`: Sửa đổi sắc độ màu.
|
||||
- `ispmode`: Chuyển đổi giữa chế độ ngày và đêm.
|
||||
- `flicker`: Cài đặt chống nhấp nháy.
|
||||
|
||||
|
@ -161,4 +161,4 @@ Các tham số khác nhau tùy thuộc vào lệnh và trong một số trườn
|
|||
```
|
||||
imp-control help
|
||||
```
|
||||
---
|
||||
---
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
## Wiki OpenIPC
|
||||
[Mục lục](../README.md)
|
||||
|
||||
Phục hồi Ingenic T31 bằng thẻ SD
|
||||
|
@ -14,9 +13,9 @@ Trên một số thiết bị, như nhiều model Wyze và Atom, thẻ SD đư
|
|||
|
||||

|
||||
|
||||
Nếu không khởi động được từ uboot trên bộ nhớ flash, T31 sẽ thử khởi động từ thẻ SD, bất kể chân bootsel được đặt là gì. Vì vậy, nếu uboot trên chip flash bị hỏng, chúng ta có thể ghi uboot vào thẻ SD và khởi động từ đó. Tệp uboot phải được biên dịch đặc biệt để khởi động thẻ SD, bạn không thể sử dụng tệp dành cho khởi động flash thông thường.
|
||||
Nếu không khởi động được từ u-boot trên bộ nhớ flash, T31 sẽ thử khởi động từ thẻ SD, bất kể chân bootsel được đặt là gì. Vì vậy, nếu u-boot trên chip flash bị hỏng, chúng ta có thể ghi u-boot vào thẻ SD và khởi động từ đó. Tệp u-boot phải được biên dịch đặc biệt để khởi động thẻ SD, bạn không thể sử dụng tệp dành cho khởi động flash thông thường.
|
||||
|
||||
### Biên dịch uboot để khởi động thẻ SD
|
||||
### Biên dịch u-boot để khởi động thẻ SD
|
||||
|
||||
```
|
||||
mkdir /opt/openipc
|
||||
|
@ -29,16 +28,16 @@ make distclean
|
|||
```
|
||||
Bây giờ hãy chọn lệnh `make` cuối cùng theo loại chip T31 của bạn
|
||||
|
||||
SoC | Lệnh
|
||||
SoC | Lệnh
|
||||
---- | ---------------------------
|
||||
T31N | make isvp_t31_msc0
|
||||
T31L | make isvp_t31_msc0_lite
|
||||
T31X | make isvp_t31_msc0_ddr128M
|
||||
T31A | make isvp_t31a_msc0_ddr128M
|
||||
T31N | `make isvp_t31_msc0`
|
||||
T31L | `make isvp_t31_msc0_lite`
|
||||
T31X | `make isvp_t31_msc0_ddr128M`
|
||||
T31A | `make isvp_t31a_msc0_ddr128M`
|
||||
|
||||
Bây giờ bạn sẽ nhận được tệp uboot đã biên dịch `u-boot-with-spl.bin`
|
||||
Bây giờ bạn sẽ nhận được tệp u-boot đã biên dịch `u-boot-with-spl.bin`
|
||||
|
||||
### Ghi uboot vào thẻ SD
|
||||
### Ghi u-boot vào thẻ SD
|
||||
|
||||
Lắp thẻ SD vào PC của bạn, chạy `fdisk -l` để kiểm tra, bạn sẽ thấy thiết bị giống như trong trường hợp của tôi là `Disk /dev/sdb: 29.72 GiB, 31914983424 bytes, 62333952 sectors`.
|
||||
|
||||
|
@ -47,19 +46,19 @@ Lắp thẻ SD vào PC của bạn, chạy `fdisk -l` để kiểm tra, bạn s
|
|||
```
|
||||
dd if=./u-boot-with-spl.bin of=/dev/sdb bs=512 seek=34
|
||||
```
|
||||
Điều này sẽ ghi tệp uboot vào thẻ SD ở vị trí bù 17KBytes từ 0x0
|
||||
Điều này sẽ ghi tệp u-boot vào thẻ SD ở vị trí offset 17KB từ 0x0
|
||||
|
||||
### Khởi động từ thẻ SD
|
||||
|
||||
Nếu uboot gốc trên chip flash bị hỏng hoặc trống, nó sẽ tự động chọn khởi động từ thẻ SD, nhưng nếu bạn chỉ muốn tải uboot của riêng mình khi có uboot đang hoạt động trên chip flash và chân `bootsel` của bảng mạch PCB camera được đặt thành 1, nó sẽ vẫn khởi động từ uboot trên chip flash. Để buộc khởi động từ thẻ SD, bạn có thể ngắn mạch chân 5 và 6 của chip flash SOIC8 khi bật nguồn camera để chặn việc đọc bộ nhớ flash, chi tiết [tại đây](https://github.com/gitgayhub/wiki/blob/master/en/help-uboot.md#shorting-pins-on-flash-chip).
|
||||
Nếu u-boot gốc trên chip flash bị hỏng hoặc trống, nó sẽ tự động chọn khởi động từ thẻ SD, nhưng nếu bạn chỉ muốn tải u-boot của riêng mình khi có u-boot đang hoạt động trên chip flash và chân `bootsel` của bảng mạch PCB camera được đặt thành 1, nó sẽ vẫn khởi động từ u-boot trên chip flash. Để buộc khởi động từ thẻ SD, bạn có thể ngắn mạch chân 5 và 6 của chip flash SOIC8 khi cấp nguồn cho camera để chặn việc đọc bộ nhớ flash, chi tiết [tại đây](https://github.com/gitgayhub/wiki/blob/master/en/help-uboot.md#shorting-pins-on-flash-chip).
|
||||
|
||||
#### Vấn đề tự động đặt lại uboot của OpenIPC
|
||||
#### Vấn đề tự động đặt lại của u-boot OpenIPC
|
||||
|
||||
Uboot của OpenIPC sẽ tự động đặt lại nếu không tải được kernel từ địa chỉ mặc định, nếu bạn đang cố gắng tải uboot từ thẻ SD khi có một uboot hợp lệ trên chip flash, điều này sẽ dẫn đến việc camera khởi động lại uboot ban đầu. Để tắt chức năng tự động đặt lại, hãy chỉnh sửa `include/configs/isvp_common.h`, xóa `; reset` khỏi phần cuối của dòng `bootcmd`
|
||||
U-boot của OpenIPC sẽ tự động đặt lại nếu không tải được kernel từ địa chỉ mặc định, nếu bạn đang cố gắng tải u-boot từ thẻ SD khi có một u-boot hợp lệ trên chip flash, điều này sẽ dẫn đến việc camera khởi động lại u-boot ban đầu. Để tắt chức năng tự động đặt lại, hãy chỉnh sửa `include/configs/isvp_common.h`, xóa `; reset` khỏi phần cuối của dòng `bootcmd`
|
||||
|
||||
### uboot cho các SoC Ingenic khác T10 T20 T21 & T30
|
||||
### u-boot cho các SoC Ingenic khác T10 T20 T21 & T30
|
||||
|
||||
Uboot có thể được xây dựng để khởi động thẻ SD cho các SoC này, nhưng chưa được xác minh trên thiết bị thực
|
||||
u-boot có thể được xây dựng để khởi động thẻ SD cho các SoC này, nhưng chưa được xác minh trên thiết bị thực
|
||||
|
||||
#### T10 & T20
|
||||
|
||||
|
@ -82,21 +81,21 @@ isvp_t30a_msc0_ddr128M mips xburst isvp_t30 ingenic
|
|||
|
||||
Chọn lệnh `make` theo loại chip của bạn
|
||||
|
||||
SoC | Lệnh
|
||||
SoC | Lệnh
|
||||
-----| -----------------------------
|
||||
T21 | `make isvp_t21_msc0`
|
||||
T21 | `make isvp_t21_msc0`
|
||||
T30N | `make isvp_t30_msc0`
|
||||
T30L | `make isvp_t30_msc0_lite`
|
||||
T30X | `make isvp_t30_msc0_ddr128M`
|
||||
T30A | `make isvp_t30a_msc0_ddr128M`
|
||||
|
||||
### Cài đặt OpenIPC từ thẻ SD trong uboot
|
||||
### Cài đặt OpenIPC từ thẻ SD trong u-boot
|
||||
|
||||
Sử dụng T31ZX với flash NOR 16MB làm ví dụ, tải xuống [ảnh full size 16MB](https://openipc.org/cameras/vendors/ingenic/socs/t31x/download_full_image?flash_size=16&flash_type=nor&fw_release=ultimate)
|
||||
|
||||
#### Phương pháp 1
|
||||
|
||||
Được sử dụng nếu có `mmc` nhưng không có lệnh `fatload` trong uboot, chúng ta có thể ghi firmware vào thẻ SD mà không cần bất kỳ hệ thống tệp nào
|
||||
Được sử dụng nếu có lệnh `mmc` nhưng không có lệnh `fatload` trong u-boot, chúng ta có thể ghi firmware vào thẻ SD mà không cần bất kỳ hệ thống tệp nào
|
||||
|
||||
**THẬN TRỌNG!** kiểm tra kỹ tên thiết bị `/dev` có thực sự là thẻ SD của bạn hay không, nếu không bạn có thể mất dữ liệu trên các ổ đĩa khác
|
||||
|
||||
|
@ -104,9 +103,9 @@ Sử dụng T31ZX với flash NOR 16MB làm ví dụ, tải xuống [ảnh full
|
|||
dd if=./openipc-t31x-ultimate-16mb.bin of=/dev/[thiết-bị-thẻ-sd] seek=20480
|
||||
```
|
||||
|
||||
Điều này sẽ ghi hình ảnh OpenIPC vào thẻ SD ở vị trí bù 10MB, khi kích thước khối thẻ là 512 byte
|
||||
Điều này sẽ ghi hình ảnh OpenIPC vào thẻ SD ở offset 10MB, khi kích thước khối thẻ là 512 byte
|
||||
|
||||
Trong uboot, chạy
|
||||
Trong u-boot, chạy
|
||||
|
||||
```
|
||||
mw.b 0x80600000 0xff 0x1000000
|
||||
|
@ -118,9 +117,9 @@ sf write 0x80600000 0x0 0x1000000
|
|||
|
||||
#### Phương pháp 2
|
||||
|
||||
Được sử dụng nếu có lệnh `fatload` trong uboot để tải trực tiếp tệp từ hệ thống tệp FAT
|
||||
Được sử dụng nếu có lệnh `fatload` trong u-boot để tải trực tiếp tệp từ hệ thống tệp FAT
|
||||
|
||||
Gắn kết hệ thống tệp FAT của thẻ SD vào PC của bạn, sao chép hình ảnh firmware OpenIPC vào đó. Trong uboot, chạy `fatls mmc 0` để liệt kê các tệp trong thẻ SD, sau đó
|
||||
Gắn kết hệ thống tệp FAT của thẻ SD vào PC của bạn, sao chép hình ảnh firmware OpenIPC vào đó. Trong u-boot, chạy `fatls mmc 0` để liệt kê các tệp trong thẻ SD, sau đó
|
||||
|
||||
```
|
||||
mw.b 0x80600000 0xff 0x1000000
|
||||
|
@ -130,26 +129,4 @@ sf erase 0x0 0x1000000
|
|||
sf write 0x80600000 0x0 0x1000000
|
||||
```
|
||||
|
||||
**Giải thích thuật ngữ:**
|
||||
|
||||
* **Unbrick:** Phục hồi, là quá trình khôi phục một thiết bị bị brick (không hoạt động).
|
||||
* **Ingenic T31:** Là một loại SoC được sử dụng trong các camera IP.
|
||||
* **SD card:** Thẻ nhớ SD, là một loại thẻ nhớ được sử dụng để lưu trữ dữ liệu.
|
||||
* **U-Boot:** Là một bootloader phổ biến được sử dụng trong các hệ thống nhúng.
|
||||
* **Bootloader:** Là một chương trình nhỏ được thực thi khi thiết bị khởi động, chịu trách nhiệm tải hệ điều hành.
|
||||
* **Flash chip:** Chip flash, là một loại bộ nhớ không bay hơi được sử dụng để lưu trữ firmware.
|
||||
* **Bootsel pin:** Chân bootsel, là một chân trên bảng mạch được sử dụng để chọn chế độ khởi động.
|
||||
* **SOIC8:** Small Outline Integrated Circuit 8, là một loại gói chip.
|
||||
* **Offset:** Vị trí bù, là khoảng cách từ đầu của một vùng dữ liệu.
|
||||
* **Filesystem:** Hệ thống tệp, là một phương pháp để tổ chức và lưu trữ dữ liệu trên thiết bị lưu trữ.
|
||||
* **FAT (File Allocation Table):** Là một hệ thống tệp phổ biến được sử dụng trong thẻ nhớ SD.
|
||||
* **mmc:** Là một lệnh trong uboot được sử dụng để truy cập vào thẻ SD.
|
||||
* **fatload:** Là một lệnh trong uboot được sử dụng để tải tệp từ hệ thống tệp FAT.
|
||||
* **sf probe:** Là một lệnh trong uboot được sử dụng để dò tìm chip flash.
|
||||
* **sf erase:** Là một lệnh trong uboot được sử dụng để xóa chip flash.
|
||||
* **sf write:** Là một lệnh trong uboot được sử dụng để ghi vào chip flash.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# Wiki OpenIPC
|
||||
[Mục lục](../README.md)
|
||||
|
||||
**CHỈ** dành cho bảng XM với SoC GK7202V300, GK7205V200, GK7205V300!!!
|
||||
**CHỈ** dành cho bo mạch XM với SoC GK7202V300, GK7205V200, GK7205V300!!!
|
||||
-----------------------------------------------------------------
|
||||
|
||||
### Cảm biến được hỗ trợ
|
||||
|
@ -21,7 +21,7 @@ setenv soc gk7xxxxxxx # Đặt SoC của bạn. gk7202v300, gk7205v20
|
|||
setenv osmem 32M
|
||||
setenv totalmem 64M # 64M cho gk7202v300, gk7205v200, 128M cho gk7205v300.
|
||||
setenv ipaddr 192.168.1.10
|
||||
setenv serverip 192.168.1.254 # Địa chỉ IP máy chủ TFTP của bạn.
|
||||
setenv serverip 192.168.1.254 # Địa chỉ IP của máy chủ TFTP của bạn.
|
||||
saveenv
|
||||
|
||||
run uk; run ur; reset # Flash kernel, rootfs và khởi động lại thiết bị
|
||||
|
@ -33,7 +33,7 @@ run uk; run ur; reset # Flash kernel, rootfs và khởi động lại
|
|||
run uk; run ur; reset
|
||||
```
|
||||
|
||||
### Thủ thuật dành cho người dùng GK7205V300+IMX335
|
||||
### Mẹo dành cho người dùng GK7205V300+IMX335
|
||||
|
||||
```
|
||||
echo -e "!/bin/sh\n\ndevmem 0x120100f0 32 0x19\n" >/etc/init.d/S96trick
|
||||
|
@ -44,9 +44,9 @@ Cách thay thế [tại đây](https://github.com/OpenIPC/firmware/pull/117/file
|
|||
|
||||
### Khu vực nguy hiểm
|
||||
|
||||
Bạn luôn có tùy chọn cập nhật bootloader. Tuy nhiên, bạn cần hiểu những gì bạn đang làm.
|
||||
Bạn luôn có tùy chọn cập nhật bootloader. Tuy nhiên, bạn cần phải hiểu rõ những gì bạn đang làm.
|
||||
|
||||
Lưu ý! Thay thế tên tệp bootloader bằng tên phù hợp với SoC của bạn.
|
||||
Lưu ý! Thay thế tên tệp bootloader bằng tên tệp phù hợp với SoC của bạn.
|
||||
Danh sách đầy đủ có [tại đây](https://github.com/OpenIPC/firmware/releases/tag/latest).
|
||||
|
||||
```
|
||||
|
@ -59,28 +59,3 @@ reset
|
|||
```
|
||||
|
||||
[1]: guide-supported-devices.md
|
||||
|
||||
|
||||
**Giải thích thuật ngữ:**
|
||||
|
||||
* **XM boards:** Bảng mạch XM, là một loại bảng mạch được sử dụng trong camera IP.
|
||||
* **SoC (System on a Chip):** Hệ thống trên một vi mạch, là một mạch tích hợp chứa tất cả các thành phần cần thiết của một hệ thống máy tính.
|
||||
* **GK7202V300, GK7205V200, GK7205V300:** Là tên của các SoC được sản xuất bởi Goke.
|
||||
* **Sensor:** Cảm biến, là một thiết bị chuyển đổi tín hiệu vật lý thành tín hiệu điện.
|
||||
* **Firmware:** Phần mềm được nhúng vào bộ nhớ ROM của thiết bị phần cứng.
|
||||
* **U-Boot:** Là một bootloader phổ biến được sử dụng trong các hệ thống nhúng.
|
||||
* **Bootloader:** Là một chương trình nhỏ được thực thi khi thiết bị khởi động, chịu trách nhiệm tải hệ điều hành.
|
||||
* **Kernel:** Là phần cốt lõi của hệ điều hành.
|
||||
* **Rootfs:** Hệ thống tệp gốc, là hệ thống tệp chứa các tệp cần thiết để khởi động hệ điều hành.
|
||||
* **TFTP (Trivial File Transfer Protocol):** Giao thức truyền tệp đơn giản, là một giao thức mạng được sử dụng để truyền tệp giữa máy khách và máy chủ.
|
||||
* **IP address:** Địa chỉ IP, là một địa chỉ định danh duy nhất cho một thiết bị trên mạng.
|
||||
* **Bootsel pin:** Chân bootsel, là một chân trên bảng mạch được sử dụng để chọn chế độ khởi động.
|
||||
* **IMX335:** Là tên của một cảm biến hình ảnh được sản xuất bởi Sony.
|
||||
* **Danger zone:** Khu vực nguy hiểm, là một phần của tài liệu cảnh báo người dùng về các thao tác có thể gây hại cho thiết bị.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
## Wiki OpenIPC
|
||||
# Wiki OpenIPC
|
||||
[Mục lục](../README.md)
|
||||
|
||||
**CHỈ** dành cho bảng XM với SoC Hi35{16Ev200,16Ev300,18Ev300}!!!
|
||||
**CHỈ** dành cho bo mạch XM với SoC Hi35{16Ev200,16Ev300,18Ev300}!!!
|
||||
------------------------------------------------------------
|
||||
|
||||
Các bảng mạch khác có thể có bố cục bộ nhớ khác, ví dụ như HI3518Ev200 sử dụng 0x82000000 thay vì 0x42000000.
|
||||
Các bo mạch khác có thể có bố cục bộ nhớ khác, ví dụ như HI3518Ev200 sử dụng 0x82000000 thay vì 0x42000000.
|
||||
|
||||
### Cảm biến được hỗ trợ
|
||||
|
||||
|
@ -29,7 +29,7 @@ saveenv
|
|||
run uk; run ur; reset # Flash kernel, rootfs và khởi động lại thiết bị
|
||||
```
|
||||
|
||||
### Cập nhật nhanh tiếp theo
|
||||
### Các bản cập nhật nhanh tiếp theo
|
||||
|
||||
```
|
||||
run uk; run ur; reset
|
||||
|
@ -37,13 +37,13 @@ run uk; run ur; reset
|
|||
|
||||
### Thực thi lệnh sau lần chạy đầu tiên
|
||||
|
||||
Đối với bảng Hi3516Ev300:
|
||||
Đối với bo mạch Hi3516Ev300:
|
||||
```
|
||||
set_allocator cma
|
||||
firstboot
|
||||
```
|
||||
|
||||
Đối với bảng Hi3516Ev200 hoặc Hi3518Ev300:
|
||||
Đối với bo mạch Hi3516Ev200 hoặc Hi3518Ev300:
|
||||
```
|
||||
set_allocator hisi
|
||||
firstboot
|
||||
|
@ -51,7 +51,7 @@ firstboot
|
|||
|
||||
### Khu vực nguy hiểm
|
||||
|
||||
Bạn luôn có tùy chọn cập nhật bootloader. Tuy nhiên, bạn cần hiểu những gì bạn đang làm.
|
||||
Bạn luôn có tùy chọn cập nhật bootloader. Tuy nhiên, bạn cần hiểu rõ những gì bạn đang làm.
|
||||
|
||||
Lưu ý! Thay thế tên tệp bootloader bằng tên phù hợp với SoC của bạn.
|
||||
Danh sách đầy đủ có [tại đây](https://github.com/OpenIPC/firmware/releases/tag/latest).
|
||||
|
@ -68,7 +68,7 @@ reset
|
|||
[1]: guide-supported-devices.md
|
||||
|
||||
|
||||
### Uboot không có lệnh tftp
|
||||
### U-Boot không có lệnh tftp
|
||||
|
||||
```
|
||||
setenv uk 'mw.b 0x42000000 ff 1000000; setenv bootfile uImage.${soc} && tftpboot && sf probe 0; sf erase 0x50000 0x200000; sf write 0x40080000 0x50000 ${filesize}'
|
||||
|
@ -89,7 +89,7 @@ tftpput 0x42000000 0x800000 backup.img
|
|||
|
||||
### Khôi phục thiết bị
|
||||
|
||||
Nếu có sự cố xảy ra, uboot có thể bị brick!
|
||||
Nếu có sự cố xảy ra, u-boot có thể bị brick!
|
||||
|
||||
```
|
||||
setenv bootfile backup.img
|
||||
|
@ -100,30 +100,3 @@ sf write 0x40080000 0x0 ${filesize}
|
|||
reset
|
||||
```
|
||||
|
||||
**Giải thích thuật ngữ:**
|
||||
|
||||
* **XM boards:** Bảng mạch XM, là một loại bảng mạch được sử dụng trong camera IP.
|
||||
* **SoC (System on a Chip):** Hệ thống trên một vi mạch, là một mạch tích hợp chứa tất cả các thành phần cần thiết của một hệ thống máy tính.
|
||||
* **Hi35{16Ev200,16Ev300,18Ev300}:** Là tên của các SoC được sản xuất bởi HiSilicon.
|
||||
* **Memory layout:** Bố cục bộ nhớ, là cách tổ chức bộ nhớ trong thiết bị.
|
||||
* **Sensor:** Cảm biến, là một thiết bị chuyển đổi tín hiệu vật lý thành tín hiệu điện.
|
||||
* **Firmware:** Phần mềm được nhúng vào bộ nhớ ROM của thiết bị phần cứng.
|
||||
* **U-Boot:** Là một bootloader phổ biến được sử dụng trong các hệ thống nhúng.
|
||||
* **Bootloader:** Là một chương trình nhỏ được thực thi khi thiết bị khởi động, chịu trách nhiệm tải hệ điều hành.
|
||||
* **Kernel:** Là phần cốt lõi của hệ điều hành.
|
||||
* **Rootfs:** Hệ thống tệp gốc, là hệ thống tệp chứa các tệp cần thiết để khởi động hệ điều hành.
|
||||
* **TFTP (Trivial File Transfer Protocol):** Giao thức truyền tệp đơn giản, là một giao thức mạng được sử dụng để truyền tệp giữa máy khách và máy chủ.
|
||||
* **IP address:** Địa chỉ IP, là một địa chỉ định danh duy nhất cho một thiết bị trên mạng.
|
||||
* **CMA (Contiguous Memory Allocator):** Bộ cấp phát bộ nhớ liền kề, là một phương pháp cấp phát bộ nhớ cho kernel Linux.
|
||||
* **Hisi:** Là một bộ cấp phát bộ nhớ được sử dụng bởi HiSilicon.
|
||||
* **Firstboot:** Khởi động lần đầu, là lần khởi động đầu tiên sau khi flash firmware.
|
||||
* **Danger zone:** Khu vực nguy hiểm, là một phần của tài liệu cảnh báo người dùng về các thao tác có thể gây hại cho thiết bị.
|
||||
* **Bricked:** Bị brick, là tình trạng thiết bị không hoạt động do lỗi firmware.
|
||||
* **Backup:** Sao lưu, là quá trình tạo bản sao dữ liệu để phòng trường hợp mất dữ liệu.
|
||||
* **Restore:** Khôi phục, là quá trình khôi phục dữ liệu từ bản sao lưu.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
## Wiki OpenIPC
|
||||
# Wiki OpenIPC
|
||||
[Mục lục](../README.md)
|
||||
|
||||
**CHỈ** dành cho bảng mạch XM với SoC NT98562 và NT98566!!!
|
||||
**CHỈ** dành cho bo mạch của nhà cung cấp XM với SoC NT98562 và NT98566!!!
|
||||
---------------------------------------------------------
|
||||
|
||||
### Cập nhật firmware thiết bị ban đầu
|
||||
|
@ -32,23 +32,5 @@ setenv bootcmd 'setenv setargs setenv bootargs ${bootargs};run setargs;sf probe
|
|||
saveenv
|
||||
```
|
||||
|
||||
**Giải thích thuật ngữ:**
|
||||
|
||||
* **XM vendor boards:** Bảng mạch của nhà cung cấp XM, là một loại bảng mạch được sử dụng trong camera IP.
|
||||
* **SoC (System on a Chip):** Hệ thống trên một vi mạch, là một mạch tích hợp chứa tất cả các thành phần cần thiết của một hệ thống máy tính.
|
||||
* **NT98562 và NT98566:** Là tên của các SoC được sản xuất bởi Novatek.
|
||||
* **Firmware:** Phần mềm được nhúng vào bộ nhớ ROM của thiết bị phần cứng.
|
||||
* **U-Boot:** Là một bootloader phổ biến được sử dụng trong các hệ thống nhúng.
|
||||
* **Bootloader:** Là một chương trình nhỏ được thực thi khi thiết bị khởi động, chịu trách nhiệm tải hệ điều hành.
|
||||
* **Kernel:** Là phần cốt lõi của hệ điều hành.
|
||||
* **Rootfs:** Hệ thống tệp gốc, là hệ thống tệp chứa các tệp cần thiết để khởi động hệ điều hành.
|
||||
* **jffs2 (Journaling Flash File System version 2):** Là một hệ thống tệp được thiết kế dành riêng cho bộ nhớ flash.
|
||||
* **Partition:** Phân vùng, là một phần của bộ nhớ được chia thành các phần riêng biệt.
|
||||
* **Known issues:** Vấn đề đã biết, là những vấn đề đã được xác định trong quá trình phát triển.
|
||||
* **Memory address:** Địa chỉ bộ nhớ, là một vị trí cụ thể trong bộ nhớ.
|
||||
* **nvt_boot:** Là một lệnh được sử dụng để khởi động kernel Novatek.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
## Wiki OpenIPC
|
||||
# Wiki OpenIPC
|
||||
[Mục lục](../README.md)
|
||||
|
||||
**CHỈ** dành cho bảng mạch Anjoy/Brovotech/Gospell/Uniview với SoC SSC335!!!
|
||||
**CHỈ** dành cho bo mạch của các nhà cung cấp Anjoy/Brovotech/Gospell/Uniview với SoC SSC335!!!
|
||||
------------------------------------------------------------------
|
||||
|
||||
### Cập nhật firmware thiết bị ban đầu
|
||||
|
@ -13,8 +13,8 @@ setenv uk 'mw.b 0x21000000 ff 1000000; tftpboot 0x21000000 uImage.${soc}; sf pro
|
|||
setenv ur 'mw.b 0x21000000 ff 1000000; tftpboot 0x21000000 rootfs.squashfs.${soc}; sf probe 0; sf erase 0x250000 0x500000; sf write 0x21000000 0x250000 ${filesize}'
|
||||
saveenv
|
||||
|
||||
setenv soc ssc335 # SoC của bạn. ssc325, ssc335, or ssc337.
|
||||
setenv sensor none # Cảm biến của bạn. gc2053, imx307, or sc3335.
|
||||
setenv soc ssc335 # SoC của bạn. ssc325, ssc335, hoặc ssc337.
|
||||
setenv sensor none # Cảm biến của bạn. gc2053, imx307, hoặc sc3335.
|
||||
setenv osmem 32M
|
||||
setenv totalmem 64M # 64M cho ssc335.
|
||||
setenv ipaddr 192.168.1.10 # Địa chỉ IP camera của bạn.
|
||||
|
@ -38,7 +38,7 @@ Sau khi bạn hoàn thành việc flash firmware mới, vui lòng chạy lệnh
|
|||
|
||||
### Thông tin khác
|
||||
|
||||
#### Tên bộ xử lý dễ đọc dành cho thiết bị SigmaStar.
|
||||
#### Tên bộ xử lý ở dạng văn bản dành cho thiết bị SigmaStar.
|
||||
Dữ liệu được lấy từ firmware gốc.
|
||||
|
||||
| Khắc | /sys/class/mstar/msys/CHIP_ID | /sys/devices/soc0/soc_id | /sys/devices/soc0/machine |
|
||||
|
@ -52,26 +52,3 @@ Dữ liệu được lấy từ firmware gốc.
|
|||
|
||||
|
||||
|
||||
**Giải thích thuật ngữ:**
|
||||
|
||||
* **Anjoy/Brovotech/Gospell/Uniview boards:** Bảng mạch của các nhà sản xuất Anjoy, Brovotech, Gospell và Uniview.
|
||||
* **SSC335 SoC:** Hệ thống trên một vi mạch SSC335, được sản xuất bởi SigmaStar.
|
||||
* **Firmware:** Phần mềm được nhúng vào bộ nhớ ROM của thiết bị phần cứng.
|
||||
* **U-Boot:** Là một bootloader phổ biến được sử dụng trong các hệ thống nhúng.
|
||||
* **Bootloader:** Là một chương trình nhỏ được thực thi khi thiết bị khởi động, chịu trách nhiệm tải hệ điều hành.
|
||||
* **Kernel:** Là phần cốt lõi của hệ điều hành.
|
||||
* **Rootfs:** Hệ thống tệp gốc, là hệ thống tệp chứa các tệp cần thiết để khởi động hệ điều hành.
|
||||
* **TFTP (Trivial File Transfer Protocol):** Giao thức truyền tệp đơn giản, là một giao thức mạng được sử dụng để truyền tệp giữa máy khách và máy chủ.
|
||||
* **IP address:** Địa chỉ IP, là một địa chỉ định danh duy nhất cho một thiết bị trên mạng.
|
||||
* **jffs2 (Journaling Flash File System version 2):** Là một hệ thống tệp được thiết kế dành riêng cho bộ nhớ flash.
|
||||
* **Partition:** Phân vùng, là một phần của bộ nhớ được chia thành các phần riêng biệt.
|
||||
* **Human-readable processor names:** Tên bộ xử lý dễ đọc, là tên bộ xử lý được hiển thị theo cách dễ hiểu cho người dùng.
|
||||
* **Engraving:** Khắc, là thông tin được khắc trên chip.
|
||||
* **CHIP_ID:** ID chip, là một số định danh duy nhất cho chip.
|
||||
* **soc_id:** ID SoC, là một số định danh duy nhất cho SoC.
|
||||
* **machine:** Máy, là tên của bảng mạch.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
## Wiki OpenIPC
|
||||
# Wiki OpenIPC
|
||||
[Mục lục](../README.md)
|
||||
|
||||
**CHỈ** dành cho bảng mạch XM với SoC XM510!!!
|
||||
**CHỈ** dành cho bo mạch của nhà cung cấp XM với SoC XM510!!!
|
||||
-------------------------------------------
|
||||
|
||||
### Cập nhật firmware thiết bị ban đầu
|
||||
|
@ -38,24 +38,7 @@ run uk; run ur; reset
|
|||
Sau khi bạn hoàn thành việc flash firmware mới, vui lòng chạy lệnh `firstboot`
|
||||
để định dạng phân vùng jffs2 được sử dụng để lưu trữ cài đặt.
|
||||
|
||||
### Vấn đề đã biết
|
||||
|
||||
**Giải thích thuật ngữ:**
|
||||
|
||||
* **XM vendor boards:** Bảng mạch của nhà cung cấp XM, là một loại bảng mạch được sử dụng trong camera IP.
|
||||
* **XM510 SoC:** Hệ thống trên một vi mạch XM510, được sản xuất bởi Xiongmai.
|
||||
* **Firmware:** Phần mềm được nhúng vào bộ nhớ ROM của thiết bị phần cứng.
|
||||
* **U-Boot:** Là một bootloader phổ biến được sử dụng trong các hệ thống nhúng.
|
||||
* **Bootloader:** Là một chương trình nhỏ được thực thi khi thiết bị khởi động, chịu trách nhiệm tải hệ điều hành.
|
||||
* **Kernel:** Là phần cốt lõi của hệ điều hành.
|
||||
* **Rootfs:** Hệ thống tệp gốc, là hệ thống tệp chứa các tệp cần thiết để khởi động hệ điều hành.
|
||||
* **TFTP (Trivial File Transfer Protocol):** Giao thức truyền tệp đơn giản, là một giao thức mạng được sử dụng để truyền tệp giữa máy khách và máy chủ.
|
||||
* **IP address:** Địa chỉ IP, là một địa chỉ định danh duy nhất cho một thiết bị trên mạng.
|
||||
* **jffs2 (Journaling Flash File System version 2):** Là một hệ thống tệp được thiết kế dành riêng cho bộ nhớ flash.
|
||||
* **Known issues:** Vấn đề đã biết, là những vấn đề đã được xác định trong quá trình phát triển.
|
||||
|
||||
|
||||
|
||||
### Các vấn đề đã biết
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
## Wiki OpenIPC
|
||||
# Wiki OpenIPC
|
||||
[Mục lục](../README.md)
|
||||
|
||||
**CHỈ** dành cho bảng mạch XM với SoC XM530/XM550!!!
|
||||
**CHỈ** dành cho bo mạch của nhà cung cấp XM với SoC XM530/XM550!!!
|
||||
--------------------------------------------------
|
||||
|
||||
### Cập nhật firmware thiết bị ban đầu
|
||||
|
@ -38,7 +38,7 @@ run uk; run ur; reset
|
|||
Sau khi bạn hoàn thành việc flash firmware mới, vui lòng chạy lệnh `firstboot`
|
||||
để định dạng phân vùng jffs2 được sử dụng để lưu trữ cài đặt.
|
||||
|
||||
### Vấn đề đã biết
|
||||
### Các vấn đề đã biết
|
||||
|
||||
|
||||
### Uboot không có lệnh tftp
|
||||
|
@ -57,8 +57,8 @@ run uk; run ur; reset
|
|||
|
||||
### Sao lưu thiết bị (không có tftpput)
|
||||
|
||||
Mở bảng điều khiển nối tiếp với một tệp nhật ký
|
||||
Lưu ý: việc dump qua Serial mất nhiều thời gian
|
||||
Mở bảng điều khiển nối tiếp với một tệp nhật ký.
|
||||
Lưu ý: việc xuất dữ liệu qua cổng nối tiếp mất nhiều thời gian.
|
||||
|
||||
```
|
||||
sf probe 0
|
||||
|
@ -66,28 +66,7 @@ sf read 0x81000000 0x0 0x800000
|
|||
md.b 0x81000000 0x800000
|
||||
```
|
||||
|
||||
Sử dụng `cut -b 11-57 | xxd -r -p` để tái tạo lại tệp nhị phân từ đầu ra của `md.b`
|
||||
|
||||
|
||||
**Giải thích thuật ngữ:**
|
||||
|
||||
* **XM vendor boards:** Bảng mạch của nhà cung cấp XM, là một loại bảng mạch được sử dụng trong camera IP.
|
||||
* **XM530/XM550 SoC:** Hệ thống trên một vi mạch XM530/XM550, được sản xuất bởi Xiongmai.
|
||||
* **Firmware:** Phần mềm được nhúng vào bộ nhớ ROM của thiết bị phần cứng.
|
||||
* **U-Boot:** Là một bootloader phổ biến được sử dụng trong các hệ thống nhúng.
|
||||
* **Bootloader:** Là một chương trình nhỏ được thực thi khi thiết bị khởi động, chịu trách nhiệm tải hệ điều hành.
|
||||
* **Kernel:** Là phần cốt lõi của hệ điều hành.
|
||||
* **Rootfs:** Hệ thống tệp gốc, là hệ thống tệp chứa các tệp cần thiết để khởi động hệ điều hành.
|
||||
* **TFTP (Trivial File Transfer Protocol):** Giao thức truyền tệp đơn giản, là một giao thức mạng được sử dụng để truyền tệp giữa máy khách và máy chủ.
|
||||
* **IP address:** Địa chỉ IP, là một địa chỉ định danh duy nhất cho một thiết bị trên mạng.
|
||||
* **jffs2 (Journaling Flash File System version 2):** Là một hệ thống tệp được thiết kế dành riêng cho bộ nhớ flash.
|
||||
* **Known issues:** Vấn đề đã biết, là những vấn đề đã được xác định trong quá trình phát triển.
|
||||
* **tftpput:** Là một lệnh trong U-Boot được sử dụng để truyền tệp đến máy chủ TFTP.
|
||||
* **Serial console:** Bảng điều khiển nối tiếp, là một giao diện dòng lệnh được truy cập thông qua cổng nối tiếp.
|
||||
* **md.b:** Là một lệnh trong U-Boot được sử dụng để hiển thị nội dung của bộ nhớ theo định dạng thập lục phân.
|
||||
* **cut:** Là một lệnh trong Linux được sử dụng để trích xuất các phần của tệp.
|
||||
* **xxd:** Là một lệnh trong Linux được sử dụng để chuyển đổi tệp giữa định dạng nhị phân và thập lục phân.
|
||||
|
||||
Sử dụng `cut -b 11-57 | xxd -r -p` để tái tạo lại tệp nhị phân từ đầu ra của lệnh `md.b`.
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
## Wiki OpenIPC
|
||||
# Wiki OpenIPC
|
||||
[Mục lục](../README.md)
|
||||
|
||||
Chạy máy chủ TFTP trong Docker
|
||||
|
@ -6,7 +6,7 @@ Chạy máy chủ TFTP trong Docker
|
|||
|
||||
Cách dễ nhất để chạy máy chủ TFTP là thực hiện điều đó bên trong môi trường container. Không quan trọng bạn chạy Linux, Windows hay Mac, chỉ cần thực hiện các bước sau:
|
||||
|
||||
### Cài đặt Docker Composer
|
||||
### Cài đặt Docker Compose
|
||||
Làm theo [hướng dẫn cài đặt Docker][1].
|
||||
|
||||
### Tạo tệp ảnh Docker
|
||||
|
@ -41,7 +41,7 @@ services:
|
|||
```bash
|
||||
docker-compose up -d
|
||||
```
|
||||
Docker sẽ tạo một ảnh nếu cần và khởi chạy nó trong nền. Trong quá trình tạo container, Docker cũng sẽ tạo thư mục con `tftp/` từ đó các tệp của bạn sẽ được phục vụ. Docker hoạt động với tư cách là người dùng `systemd-network` từ nhóm
|
||||
Docker sẽ build một image nếu cần và khởi chạy nó trong nền. Trong quá trình build container, Docker cũng sẽ tạo thư mục con `tftp/` để phục vụ các tệp của bạn. Docker hoạt động với tư cách là người dùng `systemd-network` từ nhóm
|
||||
`input` để truy cập thư mục đó. Nếu bạn muốn cho phép lưu các tệp được gửi qua
|
||||
TFTP vào máy của bạn, bạn sẽ cần thay đổi quyền sở hữu trên thư mục đó:
|
||||
```bash
|
||||
|
@ -64,25 +64,4 @@ Container sẽ được lưu trên máy tính của bạn cho đến lần tiế
|
|||
[1]: https://docs.docker.com/compose/install/
|
||||
|
||||
|
||||
**Giải thích thuật ngữ:**
|
||||
|
||||
* **TFTP (Trivial File Transfer Protocol):** Giao thức truyền tệp đơn giản, là một giao thức mạng được sử dụng để truyền tệp giữa máy khách và máy chủ.
|
||||
* **Docker:** Là một nền tảng ảo hóa container.
|
||||
* **Container:** Là một môi trường biệt lập để chạy ứng dụng.
|
||||
* **Docker Composer:** Là một công cụ để định nghĩa và quản lý các ứng dụng đa container với Docker.
|
||||
* **Dockerfile:** Là một tệp văn bản chứa các hướng dẫn để tạo ảnh Docker.
|
||||
* **docker-compose.yml:** Là một tệp YAML chứa các cấu hình cho Docker Compose.
|
||||
* **Image:** Ảnh, là một khuôn mẫu để tạo container.
|
||||
* **Container name:** Tên container, là tên được sử dụng để nhận dạng container.
|
||||
* **Network mode:** Chế độ mạng, là cách container kết nối với mạng.
|
||||
* **Restart:** Khởi động lại, là một tùy chọn để tự động khởi động lại container khi nó dừng.
|
||||
* **Volumes:** Khối lượng, là một cách để chia sẻ dữ liệu giữa máy chủ và container.
|
||||
* **IP address:** Địa chỉ IP, là một địa chỉ định danh duy nhất cho một thiết bị trên mạng.
|
||||
* **Ownership:** Quyền sở hữu, là thông tin xác định người dùng và nhóm có quyền truy cập vào tệp hoặc thư mục.
|
||||
* **Permissions:** Quyền, là các quy tắc xác định ai có thể đọc, ghi và thực thi tệp hoặc thư mục.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -2,27 +2,27 @@
|
|||
|
||||
[Mục lục](../README.md)
|
||||
|
||||
Các phương pháp cài đặt có sẵn
|
||||
Các phương pháp cài đặt khả dụng
|
||||
==============================
|
||||
|
||||
Rất tiếc, các nhà sản xuất camera IP **chưa** cung cấp phần cứng được cài đặt sẵn OpenIPC, vì vậy để cài đặt OpenIPC lên camera vẫn đang sử dụng hình ảnh firmware gốc, bạn phải sử dụng một trong các phương pháp sau:
|
||||
Rất tiếc, các nhà sản xuất camera IP **chưa** cung cấp phần cứng được cài đặt sẵn OpenIPC, vì vậy để cài đặt OpenIPC lên một camera vẫn đang sử dụng hình ảnh firmware gốc, bạn phải sử dụng một trong các phương pháp sau:
|
||||
|
||||
* Dự án [Coupler](https://github.com/openipc/coupler/) cung cấp hình ảnh firmware có thể được cài đặt bằng cách sử dụng các cơ chế nâng cấp firmware được tích hợp trong firmware gốc của nhiều camera.
|
||||
|
||||
* Flash firmware OpenIPC bằng cách sử dụng bootloader [*U-Boot*](https://en.wikipedia.org/wiki/Das_U-Boot) được bao gồm trong firmware của nhà cung cấp. Phương pháp này làm gián đoạn quá trình khởi động bình thường của firmware nhà cung cấp và thay vào đó hướng dẫn U-Boot tải firmware OpenIPC qua mạng và ghi nó vào bộ nhớ flash (thay thế phần chính của firmware nhà cung cấp). **Phương pháp này yêu cầu mở vỏ camera** để kết nối [**bộ chuyển đổi UART**][FTDI] với cổng nối tiếp/gỡ lỗi "bảng điều khiển" bên trong của camera.
|
||||
* Flash firmware OpenIPC bằng bootloader [*U-Boot*](https://en.wikipedia.org/wiki/Das_U-Boot) được bao gồm trong firmware của nhà cung cấp. Phương pháp này làm gián đoạn quá trình khởi động bình thường của firmware nhà cung cấp, và thay vào đó hướng dẫn U-Boot tải firmware OpenIPC qua mạng và ghi nó vào bộ nhớ flash (thay thế phần chính của firmware nhà cung cấp). **Phương pháp này yêu cầu mở vỏ camera** để kết nối [**bộ chuyển đổi UART**][FTDI] với cổng nối tiếp/gỡ lỗi "bảng điều khiển" bên trong của camera.
|
||||
|
||||
|
||||
Cài đặt firmware OpenIPC bằng Coupler.
|
||||
Cài đặt firmware OpenIPC bằng Coupler
|
||||
--------------------------------------------
|
||||
|
||||
Hướng dẫn sử dụng [Coupler](https://github.com/openipc/coupler/) có thể được tìm thấy trong [tài liệu của dự án](https://github.com/openipc/coupler/).
|
||||
Bạn có thể tìm thấy hướng dẫn sử dụng [Coupler](https://github.com/openipc/coupler/) trong [tài liệu của dự án](https://github.com/openipc/coupler/).
|
||||
|
||||
Cài đặt firmware OpenIPC qua TFTP và UART, từng bước.
|
||||
Cài đặt firmware OpenIPC qua TFTP và UART, từng bước một
|
||||
--------------------------------------------------------------
|
||||
|
||||
### Bước 1. Xác định Hệ thống trên Chip.
|
||||
|
||||
SoC bao gồm lõi CPU của camera, cũng như tất cả các thiết bị ngoại vi cần thiết như giao diện camera và mạng. Vì nhiều lý do khác nhau (bao gồm không gian lưu trữ hạn chế trên hầu hết các Camera IP), dự án OpenIPC hiện đang xây dựng các tệp nhị phân firmware riêng biệt cho mỗi model SoC. **Bạn phải xác định SoC mà camera của bạn sử dụng**, để bạn có thể sử dụng đúng tệp nhị phân firmware. Điều này có thể được thực hiện bằng cách đọc các dấu hiệu trên gói IC SoC trên PCB chính của camera (xem ảnh ví dụ bên dưới) hoặc bằng cách sử dụng phần mềm như [ipctool](https://github.com/openipc/ipctool/) để xác định model SoC từ firmware của nhà cung cấp.
|
||||
SoC bao gồm lõi CPU của camera, cũng như tất cả các thiết bị ngoại vi cần thiết như giao diện camera và mạng. Vì nhiều lý do khác nhau (bao gồm không gian lưu trữ trên bo mạch hạn chế trên hầu hết các Camera IP), dự án OpenIPC hiện đang xây dựng các tệp nhị phân firmware riêng biệt cho mỗi model SoC. **Bạn phải xác định SoC mà camera của bạn sử dụng** để có thể sử dụng đúng tệp nhị phân firmware. Điều này có thể được thực hiện bằng cách đọc các dấu hiệu trên gói IC SoC trên PCB chính của camera (xem ảnh ví dụ bên dưới) hoặc bằng cách sử dụng phần mềm như [ipctool](https://github.com/openipc/ipctool/) để xác định model SoC từ firmware của nhà cung cấp.
|
||||
|
||||

|
||||

|
||||
|
@ -34,7 +34,7 @@ Các ký hiệu liên quan được đánh dấu bằng màu vàng._
|
|||
|
||||
### Bước 2. Cài đặt và thiết lập máy chủ TFTP.
|
||||
|
||||
TFTP là viết tắt của _Trivial File Transfer Protocol_. Đúng như tên gọi của nó, đây là một giao thức rất đơn giản, nhằm mục đích truyền tệp qua mạng máy tính cục bộ. TFTP không hỗ trợ xác thực. Mã của nó rất nhỏ và đơn giản nên các máy khách TFTP được sử dụng rộng rãi trong các máy khách mỏng và hệ thống nhúng để truy xuất hình ảnh có thể khởi động từ máy chủ khởi động được chỉ định trên mạng cục bộ.
|
||||
TFTP là viết tắt của _Trivial File Transfer Protocol_. Đúng như tên gọi của nó, đây là một giao thức rất đơn giản nhằm mục đích truyền tệp qua mạng máy tính cục bộ. TFTP không hỗ trợ xác thực. Mã của nó rất nhỏ và đơn giản nên máy khách TFTP được sử dụng rộng rãi trong các máy khách mỏng và hệ thống nhúng để truy xuất hình ảnh có thể khởi động từ máy chủ khởi động được chỉ định trên mạng cục bộ.
|
||||
|
||||
#### Nếu bạn có Linux ...
|
||||
|
||||
|
@ -56,7 +56,7 @@ sudo systemctl restart tftpd-hpa.service
|
|||
|
||||
__Trước khi kết nối bộ chuyển đổi đó với camera của bạn, hãy đảm bảo rằng điện áp hoạt động của nó được đặt thành 3,3 volt!__ Đôi khi, bạn chỉ cần lật một jumper để đạt được điều đó. Nhưng trong một số trường hợp, bạn có thể cần phải hàn dây, điện trở zero Ohm hoặc tạo kết nối giữa hai tiếp điểm bằng một giọt hàn. Một số bộ chuyển đổi chỉ hỗ trợ 5 volt. Trong trường hợp đó, bạn sẽ cần thêm [bộ chuyển đổi mức logic][TLLC] được kết nối giữa bộ chuyển đổi và cổng UART trên camera của bạn.
|
||||
|
||||
Một trong những miếng tiếp xúc mà bạn sẽ cần kết nối bộ chuyển đổi của mình là GND (đất). Rất dễ dàng để khám phá bằng cách sử dụng đồng hồ vạn năng ở chế độ liên tục. Đặt một trong các dây dẫn lên miếng tiếp xúc đất lộ ra đã biết. Thông thường, đây là những khu vực tiếp xúc bằng đồng mở rộng lớn xung quanh các lỗ vít gắn, vỏ cổng USB, thành kim loại của khe cắm thẻ SD. Sử dụng dây dẫn khác để chạm nhẹ vào các miếng tiếp xúc điều khiển cho đến khi bạn nhìn thấy hoặc nghe thấy thông báo từ đồng hồ vạn năng rằng mạch đã được đóng. Điều đó có nghĩa là bạn đã tìm thấy mặt đất. Bây giờ, bạn cần tìm thêm hai điểm nữa: `RX` và `TX`, cả hai được sử dụng để nhận và truyền dữ liệu tương ứng. Bắt đầu với `TX`. Nó truyền một loạt các ký tự và khá dễ phát hiện.
|
||||
Một trong những miếng tiếp xúc mà bạn sẽ cần kết nối bộ chuyển đổi của mình là GND (đất). Rất dễ dàng để khám phá bằng cách sử dụng đồng hồ vạn năng ở chế độ kiểm tra liên tục. Đặt một trong các dây dẫn lên miếng tiếp xúc đất lộ ra đã biết. Thông thường, đây là những khu vực tiếp xúc bằng đồng mở rộng lớn xung quanh các lỗ vít gắn, vỏ cổng USB, thành kim loại của khe cắm thẻ SD. Sử dụng dây dẫn khác để chạm nhẹ vào các miếng tiếp xúc điều khiển cho đến khi bạn nhìn thấy hoặc nghe thấy thông báo từ đồng hồ vạn năng rằng mạch đã được đóng. Điều đó có nghĩa là bạn đã tìm thấy mặt đất. Bây giờ, bạn cần tìm thêm hai điểm nữa: `RX` và `TX`, cả hai được sử dụng để nhận và truyền dữ liệu tương ứng. Bắt đầu với `TX`. Nó truyền một loạt các ký tự và khá dễ phát hiện.
|
||||
|
||||
Lưu ý rằng bạn đang tìm kiếm một tiếp điểm có điện thế 3,3v giữa nó và mặt đất. Kiểm tra các điểm kết nối có thể có bằng đồng hồ vạn năng và đánh dấu những điểm hiển thị 3,3 volt. Bằng cách này, bạn sẽ không phải kiểm tra mọi thứ và bạn tự cứu mình khỏi việc đánh vào, chẳng hạn như đầu nối 12 volt dành cho dãy đèn LED hồng ngoại hoặc những thứ khác.
|
||||
|
||||
|
@ -101,15 +101,15 @@ Nếu bạn chọn terminal GUI, cụ thể là [PuTTY](https://www.putty.org/),
|
|||

|
||||

|
||||
|
||||
Sau đó, kết nối chân `RX` trên bộ chuyển đổi với tiếp điểm `TX` có thể có của cổng UART trên camera của bạn. Cấp nguồn cho camera bằng bộ chuyển đổi nguồn OEM của nó. Nếu bạn đoán may mắn thì bạn sẽ bắt đầu thấy nhật ký khởi động trong cửa sổ terminal của mình. Trong một số trường hợp, nếu bạn thấy văn bản bị lỗi trên màn hình thay vì kernel khởi động, bạn có thể cần thay đổi tốc độ kết nối thành 57600 bps và thử lại.
|
||||
Sau đó, kết nối chân `RX` trên bộ chuyển đổi với tiếp điểm `TX` có thể có của cổng UART trên camera của bạn. Cấp nguồn cho camera bằng bộ chuyển đổi nguồn OEM của nó. Nếu bạn đoán may mắn, bạn sẽ bắt đầu thấy nhật ký khởi động trong cửa sổ terminal của mình. Trong một số trường hợp, nếu bạn thấy văn bản bị lỗi trên màn hình thay vì kernel khởi động, bạn có thể cần thay đổi tốc độ kết nối thành 57600 bps và thử lại.
|
||||
|
||||
Nếu màn hình của bạn vẫn trống, hãy thử tiếp điểm UART khác, rồi tiếp điểm khác, cho đến khi bạn nhấn đúng điểm.
|
||||
Nếu màn hình của bạn vẫn trống, hãy thử tiếp điểm UART khác, rồi tiếp điểm khác, cho đến khi bạn nhấn đúng tiếp điểm.
|
||||
|
||||
Sau khi bạn tìm thấy miếng `TX`, hãy kết nối nó với chân `RX` trên bộ chuyển đổi của bạn. Đúng vậy, đó là một kết nối chéo. Bất cứ thứ gì truyền đi sẽ đi vào bộ thu và ngược lại. Bây giờ, hãy đặt một vật nặng - một đai ốc đường sắt, một hộp thiếc hàn cổ, một ly vodka (đầy) - lên bất kỳ phím chữ nào trên bàn phím máy tính của bạn và bắt đầu kết nối chân `TX` còn lại của bộ chuyển đổi của bạn với các miếng khác nhau trên camera cho đến khi bạn thấy nó phản hồi lại terminal. Khi điều đó xảy ra, bạn đã kết nối UART thành công với camera của mình. Bây giờ bạn có thể uống vodka.
|
||||
|
||||
Lưu ý! Thông thường, có một tiếp điểm thứ tư trên đầu nối UART được đánh dấu `VCC`. Nó được sử dụng để cấp nguồn cho camera trong quá trình lập trình ban đầu bởi nhà sản xuất. Chúng tôi khuyên bạn không nên cấp nguồn cho camera của mình thông qua chân đó mà hãy sử dụng đầu nối nguồn OEM cho mục đích này.
|
||||
Lưu ý! Thông thường, có một tiếp điểm thứ tư trên đầu nối UART được đánh dấu `VCC`. Nó được sử dụng để cấp nguồn cho camera trong quá trình lập trình ban đầu bởi nhà sản xuất. Chúng tôi khuyên bạn **không nên** cấp nguồn cho camera của mình thông qua chân đó mà hãy sử dụng đầu nối nguồn OEM cho mục đích này.
|
||||
|
||||
### Bước 4. Truy cập bootloader.
|
||||
### Bước 4. Truy cập vào bootloader.
|
||||
|
||||
Khởi động lại camera và thử làm gián đoạn trình tự khởi động của nó để truy cập bảng điều khiển bootloader bằng cách nhấn tổ hợp phím trên bàn phím máy tính của bạn, giữa thời điểm bootloader khởi động và trước khi kernel Linux khởi động. Các tổ hợp phím khác nhau tùy theo nhà cung cấp nhưng trong hầu hết các trường hợp, đó là `Ctrl-C`, ít phổ biến hơn là `Enter`, `Esc`, `*` hoặc bất kỳ phím nào. Đọc kỹ văn bản xuất hiện trên màn hình trong khi khởi động, bạn có thể thấy gợi ý ở đó. Một số camera yêu cầu các tổ hợp kỳ lạ hơn không được tiết lộ trong nhật ký khởi động. Bạn có thể thử tra cứu chúng trên internet hoặc hỏi trên [kênh Telegram của chúng tôi][telegram]. Rất có thể, chúng tôi đã xử lý một chiếc camera như vậy và biết tổ hợp đó.
|
||||
|
||||
|
@ -161,7 +161,7 @@ setenv serverip 192.168.1.254
|
|||
saveenv
|
||||
```
|
||||
|
||||
Để dump firmware gốc, bạn cần lưu nội dung bộ nhớ flash của camera vào một tệp. Đối với điều đó, trước tiên bạn phải tải nội dung vào RAM. Đây là cách bạn thực hiện điều đó. Khởi tạo bộ nhớ Flash. Làm sạch một vùng RAM đủ lớn để chứa toàn bộ nội dung của chip bộ nhớ flash. Đọc nội dung của flash vào vùng đó, sau đó xuất nó sang một tệp trên máy chủ TFTP.
|
||||
Để dump firmware gốc, bạn cần lưu nội dung bộ nhớ flash của camera vào một tệp. Để làm được điều đó, trước tiên bạn phải tải nội dung vào RAM. Đây là cách bạn thực hiện. Khởi tạo bộ nhớ Flash. Xóa một vùng RAM đủ lớn để chứa toàn bộ nội dung của chip bộ nhớ flash. Đọc nội dung của flash vào vùng đó, sau đó xuất nó sang một tệp trên máy chủ TFTP.
|
||||
|
||||
Xin lưu ý rằng loại flash, kích thước và địa chỉ bắt đầu khác nhau đối với các camera khác nhau! Để biết các lệnh chính xác, vui lòng sử dụng [hướng dẫn được tạo tự động](https://openipc.org/supported-hardware/) cho phần cứng của bạn, tham khảo bảng dữ liệu hoặc tìm kiếm trợ giúp trên [kênh Telegram của chúng tôi][telegram].
|
||||
|
||||
|
@ -175,7 +175,7 @@ Nhưng ngay cả các thành phần dường như ít quan trọng hơn cũng c
|
|||
|
||||
Như đã nói trước đây, quy trình cài đặt firmware khác nhau đối với các camera khác nhau. Có các địa chỉ bộ nhớ khác nhau và các tham số môi trường khác nhau, vì vậy trước khi tiếp tục, hãy xác định loại SoC nào có trong camera của bạn, cảm biến nào, chip bộ nhớ flash nào và dung lượng bộ nhớ của nó.
|
||||
|
||||
Dưới đây, chúng tôi mô tả quy trình cài đặt firmware OpenIPC Lite trên camera có bộ nhớ flash 8 MB, làm ví dụ. Ngay cả khi camera của bạn có bộ nhớ flash lớn hơn, đừng bỏ qua phần văn bản này. Đọc kỹ để hiểu nguyên tắc và trình tự các thao tác. Chúng tôi sẽ cung cấp các lệnh cụ thể cho các camera khác nhau trong phần thứ hai của phần này.
|
||||
Dưới đây, chúng tôi mô tả quy trình cài đặt firmware OpenIPC Lite trên một camera có bộ nhớ flash 8 MB, làm ví dụ. Ngay cả khi camera của bạn có bộ nhớ flash lớn hơn, đừng bỏ qua phần văn bản này. Đọc kỹ để hiểu nguyên tắc và trình tự các thao tác. Chúng tôi sẽ cung cấp các lệnh cụ thể cho các camera khác nhau trong phần thứ hai của phần này.
|
||||
|
||||
#### Chuẩn bị firmware và máy chủ TFTP.
|
||||
|
||||
|
@ -191,7 +191,7 @@ sudo tar -C /srv/tftp/ -xvf openipc.*.tgz
|
|||
|
||||
Vì vậy, chúng ta có một con chuột lang, một chiếc camera có SoC hi3518ev100, được trang bị cảm biến OV9712, RAM 64 MB và bộ nhớ flash NOR 8MB.
|
||||
|
||||
Kết nối với camera qua cổng UART và truy cập bảng điều khiển bootloader. Đặt các tham số thành phần cho các biến môi trường thích hợp. Đặt các biến môi trường để tải kernel Linux và hệ thống tệp gốc của firmware mới. Đặt các biến môi trường để camera truy cập mạng cục bộ, trong đó `ethaddr` là địa chỉ MAC gốc của camera, `ipaddr` là địa chỉ IP của camera trên mạng, `gatewayip` là địa chỉ IP của bộ định tuyến để truy cập mạng, `netmask` là mặt nạ mạng con và `serverip` là địa chỉ IP của máy chủ TFTP từ bước 3. Lưu các giá trị đã cập nhật vào bộ nhớ flash.
|
||||
Kết nối với camera qua cổng UART và truy cập bảng điều khiển bootloader. Đặt các tham số thành phần cho các biến môi trường thích hợp. Đặt các biến môi trường để tải kernel Linux và hệ thống tệp gốc của firmware mới. Đặt các biến môi trường để camera truy cập mạng cục bộ, trong đó `ethaddr` là địa chỉ MAC gốc của camera, `ipaddr` là địa chỉ IP của camera trên mạng, `gatewayip` là địa chỉ IP của bộ định tuyến để truy cập mạng, `netmask` là subnet mask và `serverip` là địa chỉ IP của máy chủ TFTP từ bước 3. Lưu các giá trị đã cập nhật vào bộ nhớ flash.
|
||||
|
||||
Để biết các lệnh chính xác, vui lòng sử dụng [hướng dẫn được tạo tự động](https://openipc.org/supported-hardware/) cho phần cứng của bạn, tham khảo bảng dữ liệu hoặc tìm kiếm trợ giúp trên [kênh Telegram của chúng tôi][telegram].
|
||||
|
||||
|
@ -205,7 +205,7 @@ Lưu ý! Hãy chú ý đến các thông báo trên màn hình terminal! Nếu b
|
|||
|
||||
Nếu tất cả các bước trước đó được thực hiện chính xác, camera của bạn sẽ khởi động với firmware mới. Chào mừng bạn đến với OpenIPC!
|
||||
|
||||
Sau khi khởi động lần đầu với firmware mới, bạn cần dọn dẹp phân vùng lớp phủ. Chạy lệnh này trong cửa sổ terminal của bạn:
|
||||
Sau khi khởi động lần đầu với firmware mới, bạn cần dọn dẹp phân vùng overlay. Chạy lệnh này trong cửa sổ terminal của bạn:
|
||||
|
||||
```bash
|
||||
firstboot
|
||||
|
|
|
@ -22,24 +22,10 @@ CONFIG_ROOT_NFS=y
|
|||
|
||||
- Tên tệp vá không được chứa bất kỳ tham chiếu nào đến phiên bản gói.
|
||||
|
||||
- Phần `<số>` trong tên tệp của bản vá đề cập đến thứ tự áp dụng bắt đầu từ 1. Nên thêm số 0 vào bên trái cho đến khi tổng số chữ số là bốn, giống như `git-format-patch`. Ví dụ: _0001-foobar-the-buz.patch_
|
||||
- Phần `<số>` trong tên tệp của bản vá đề cập đến thứ tự áp dụng, bắt đầu từ 1. Nên thêm số 0 vào bên trái cho đến khi tổng số chữ số là bốn, giống như `git-format-patch`. Ví dụ: _0001-foobar-the-buz.patch_
|
||||
|
||||
- Tệp vá nên chứa phần chú thích trong tiêu đề, giải thích bản vá này thực hiện điều gì và tại sao cần nó.
|
||||
|
||||
- Thêm câu lệnh _Signed-off-by_ trong tiêu đề của mỗi tệp vá để giúp theo dõi các thay đổi và chứng nhận rằng bản vá được phát hành theo cùng giấy phép với phần mềm mà nó sửa đổi.
|
||||
|
||||
|
||||
**Giải thích thuật ngữ:**
|
||||
|
||||
* **Kernel:** Là phần cốt lõi của hệ điều hành.
|
||||
* **Kernel configuration:** Cấu hình kernel, là quá trình thiết lập các tùy chọn cho kernel.
|
||||
* **Patch file:** Tệp vá, là một tệp văn bản chứa các thay đổi đối với mã nguồn.
|
||||
* **CONFIG_BLK_DEV:** Bật hỗ trợ cho các thiết bị khối.
|
||||
* **CONFIG_BLK_DEV_LOOP:** Bật hỗ trợ cho thiết bị loopback.
|
||||
* **CONFIG_IP_MULTICAST:** Bật hỗ trợ cho multicast IP.
|
||||
* **CONFIG_IP_PNP:** Bật hỗ trợ cho Plug and Play IP.
|
||||
* **CONFIG_IP_PNP_DHCP:** Bật hỗ trợ cho DHCP trong Plug and Play IP.
|
||||
* **CONFIG_ROOT_NFS:** Bật hỗ trợ cho việc sử dụng hệ thống tệp mạng (NFS) làm hệ thống tệp gốc.
|
||||
* **Signed-off-by:** Là một câu lệnh được thêm vào tệp vá để xác nhận rằng người đóng góp đã đồng ý với các điều khoản của Thỏa thuận cấp phép đóng góp của dự án.
|
||||
|
||||
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
# OpenIPC Wiki
|
||||
[Mục lục](../README.md)
|
||||
|
||||
Ví dụ cấu hình Majestic
|
||||
-----------------------
|
||||
|
||||
```
|
||||
system:
|
||||
webPort: 80
|
||||
|
@ -17,6 +23,9 @@ isp:
|
|||
#iqProfile: <đường dẫn/tới/tệp>
|
||||
#lowDelay: false
|
||||
#awbMode: auto
|
||||
#memMode: reduction
|
||||
#slowShutter: disabled
|
||||
#dis: false
|
||||
|
||||
image:
|
||||
mirror: false
|
||||
|
@ -34,7 +43,7 @@ video0:
|
|||
fps: 20
|
||||
bitrate: 4096
|
||||
rcMode: vbr
|
||||
gopSize: 1
|
||||
gopSize: 1.0
|
||||
#gopMode: normal
|
||||
#crop: 0x0x960x540
|
||||
#sliceUnits: 4
|
||||
|
@ -51,7 +60,8 @@ jpeg:
|
|||
enabled: true
|
||||
qfactor: 50
|
||||
fps: 5
|
||||
#size: 1920x1080
|
||||
#size: 160x120
|
||||
rtsp: false
|
||||
|
||||
#mjpeg:
|
||||
#size: 1280x720
|
||||
|
@ -81,7 +91,7 @@ rtsp:
|
|||
port: 554
|
||||
|
||||
nightMode:
|
||||
enabled: false
|
||||
lightMonitor: true
|
||||
#irCutPin1: 1
|
||||
#irCutPin2: 2
|
||||
irCutSingleInvert: false
|
||||
|
@ -90,8 +100,8 @@ nightMode:
|
|||
#overrideDrc: 300
|
||||
#minThreshold: 2000
|
||||
#maxThreshold: 5000
|
||||
#irSensorPin: 62
|
||||
irSensorPinInvert: false
|
||||
#lightSensorPin: 62
|
||||
lightSensorPinInvert: false
|
||||
#dncDelay: 30
|
||||
|
||||
motionDetect:
|
||||
|
@ -112,7 +122,7 @@ outgoing:
|
|||
enabled: false
|
||||
#server: udp://192.168.1.10:5600
|
||||
#naluSize: 1200
|
||||
#- udp://IP:cổng # Gửi dữ liệu đa cổng chỉ được cấu hình trong tệp /etc/majestic.yaml và không khả dụng để điều khiển từ WebUI
|
||||
#- udp://IP:cổng # Gửi dữ liệu đa luồng chỉ được cấu hình trong tệp /etc/majestic.yaml và không khả dụng để điều khiển từ WebUI
|
||||
#- unix:/tmp/rtpstream.sock
|
||||
#- rtmps://dc4-1.rtmp.t.me/s/mykey
|
||||
|
||||
|
@ -151,122 +161,6 @@ cloud:
|
|||
|
||||
```
|
||||
|
||||
**Giải thích các thuật ngữ:**
|
||||
|
||||
* **system:** Hệ thống, chứa các cài đặt chung cho camera.
|
||||
* **webPort:** Cổng web, cổng được sử dụng cho giao diện web.
|
||||
* **httpsPort:** Cổng HTTPS, cổng được sử dụng cho giao diện web bảo mật.
|
||||
* **httpsCertificate:** Chứng chỉ HTTPS, đường dẫn đến tệp chứng chỉ SSL.
|
||||
* **httpsCertificateKey:** Khóa chứng chỉ HTTPS, đường dẫn đến tệp khóa chứng chỉ SSL.
|
||||
* **logLevel:** Mức ghi nhật ký, mức độ chi tiết của nhật ký.
|
||||
* **buffer:** Bộ đệm, kích thước bộ đệm cho luồng.
|
||||
* **plugins:** Plugin, cho phép hoặc không cho phép plugin.
|
||||
* **isp:** Bộ xử lý tín hiệu hình ảnh (Image Signal Processor), chứa các cài đặt liên quan đến cảm biến hình ảnh.
|
||||
* **sensorConfig:** Cấu hình cảm biến, đường dẫn đến tệp cấu hình cảm biến.
|
||||
* **antiFlicker:** Chống nhấp nháy, tắt hoặc bật tính năng chống nhấp nháy.
|
||||
* **blkCnt:** Số lượng khối, số lượng khối được sử dụng cho xử lý hình ảnh.
|
||||
* **drc:** Dải động rộng (Dynamic Range Control), cường độ của DRC.
|
||||
* **rawMode:** Chế độ thô, chế độ chụp ảnh thô.
|
||||
* **iqProfile:** Hồ sơ IQ, đường dẫn đến tệp hồ sơ IQ.
|
||||
* **lowDelay:** Độ trễ thấp, bật hoặc tắt chế độ độ trễ thấp.
|
||||
* **awbMode:** Chế độ cân bằng trắng, chế độ cân bằng trắng tự động hoặc thủ công.
|
||||
* **image:** Hình ảnh, chứa các cài đặt liên quan đến hình ảnh.
|
||||
* **mirror:** Lật gương, lật hình ảnh theo chiều ngang.
|
||||
* **flip:** Lật dọc, lật hình ảnh theo chiều dọc.
|
||||
* **rotate:** Xoay, xoay hình ảnh theo một góc cụ thể.
|
||||
* **contrast:** Độ tương phản, mức độ tương phản của hình ảnh.
|
||||
* **hue:** Sắc độ, sắc độ của hình ảnh.
|
||||
* **saturation:** Độ bão hòa, mức độ bão hòa màu của hình ảnh.
|
||||
* **luminance:** Độ sáng, độ sáng của hình ảnh.
|
||||
* **video0:** Luồng video chính, chứa các cài đặt cho luồng video chính.
|
||||
* **enabled:** Bật, bật hoặc tắt luồng video.
|
||||
* **codec:** Codec, codec được sử dụng cho luồng video.
|
||||
* **size:** Kích thước, kích thước của luồng video.
|
||||
* **fps:** Khung hình trên giây (Frames Per Second), tốc độ khung hình của luồng video.
|
||||
* **bitrate:** Tốc độ bit, tốc độ bit của luồng video.
|
||||
* **rcMode:** Chế độ điều khiển tốc độ (Rate Control Mode), chế độ điều khiển tốc độ bit.
|
||||
* **gopSize:** Kích thước GOP, kích thước của Nhóm hình ảnh (Group of Pictures).
|
||||
* **gopMode:** Chế độ GOP, chế độ mã hóa GOP.
|
||||
* **crop:** Cắt, cắt hình ảnh.
|
||||
* **sliceUnits:** Đơn vị lát, số lượng đơn vị lát cho mỗi khung hình.
|
||||
* **minQp:** QP tối thiểu, giá trị lượng tử hóa tối thiểu.
|
||||
* **maxQp:** QP tối đa, giá trị lượng tử hóa tối đa.
|
||||
* **video1:** Luồng video phụ, chứa các cài đặt cho luồng video phụ.
|
||||
* **jpeg:** JPEG, chứa các cài đặt cho ảnh chụp nhanh JPEG.
|
||||
* **enabled:** Bật, bật hoặc tắt ảnh chụp nhanh JPEG.
|
||||
* **qfactor:** Hệ số chất lượng, hệ số chất lượng của ảnh chụp nhanh JPEG.
|
||||
* **fps:** Khung hình trên giây (Frames Per Second), tốc độ khung hình của ảnh chụp nhanh JPEG.
|
||||
* **size:** Kích thước, kích thước của ảnh chụp nhanh JPEG.
|
||||
* **mjpeg:** MJPEG, chứa các cài đặt cho luồng MJPEG.
|
||||
* **osd:** Hiển thị trên màn hình (On-Screen Display), chứa các cài đặt cho OSD.
|
||||
* **enabled:** Bật, bật hoặc tắt OSD.
|
||||
* **font:** Phông chữ, phông chữ được sử dụng cho OSD.
|
||||
* **template:** Mẫu, mẫu được sử dụng cho OSD.
|
||||
* **posX:** Vị trí X, vị trí ngang của OSD.
|
||||
* **posY:** Vị trí Y, vị trí dọc của OSD.
|
||||
* **privacyMasks:** Mặt nạ riêng tư, các khu vực bị che trên hình ảnh.
|
||||
* **audio:** Âm thanh, chứa các cài đặt cho âm thanh.
|
||||
* **enabled:** Bật, bật hoặc tắt âm thanh.
|
||||
* **volume:** Âm lượng, âm lượng của âm thanh.
|
||||
* **srate:** Tốc độ lấy mẫu, tốc độ lấy mẫu của âm thanh.
|
||||
* **codec:** Codec, codec được sử dụng cho âm thanh.
|
||||
* **outputEnabled:** Bật đầu ra, bật hoặc tắt đầu ra âm thanh.
|
||||
* **outputVolume:** Âm lượng đầu ra, âm lượng của đầu ra âm thanh.
|
||||
* **speakerPin:** Chân loa, chân GPIO được sử dụng cho loa.
|
||||
* **speakerPinInvert:** Đảo ngược chân loa, đảo ngược cực tính của chân loa.
|
||||
* **rtsp:** RTSP, chứa các cài đặt cho RTSP.
|
||||
* **enabled:** Bật, bật hoặc tắt RTSP.
|
||||
* **port:** Cổng, cổng được sử dụng cho RTSP.
|
||||
* **nightMode:** Chế độ ban đêm, chứa các cài đặt cho chế độ ban đêm.
|
||||
* **enabled:** Bật, bật hoặc tắt chế độ ban đêm.
|
||||
* **irCutPin1:** Chân cắt IR 1, chân GPIO được sử dụng cho bộ lọc cắt IR.
|
||||
* **irCutPin2:** Chân cắt IR 2, chân GPIO thứ hai được sử dụng cho bộ lọc cắt IR.
|
||||
* **irCutSingleInvert:** Đảo ngược chân cắt IR đơn, đảo ngược cực tính của chân cắt IR đơn.
|
||||
* **backlightPin:** Chân đèn nền, chân GPIO được sử dụng cho đèn nền.
|
||||
* **colorToGray:** Chuyển đổi màu sang xám, chuyển đổi hình ảnh sang màu xám trong chế độ ban đêm.
|
||||
* **overrideDrc:** Ghi đè DRC, ghi đè cài đặt DRC trong chế độ ban đêm.
|
||||
* **minThreshold:** Ngưỡng tối thiểu, ngưỡng tối thiểu để chuyển sang chế độ ban đêm.
|
||||
* **maxThreshold:** Ngưỡng tối đa, ngưỡng tối đa để chuyển sang chế độ ban đêm.
|
||||
* **irSensorPin:** Chân cảm biến IR, chân GPIO được sử dụng cho cảm biến IR.
|
||||
* **irSensorPinInvert:** Đảo ngược chân cảm biến IR, đảo ngược cực tính của chân cảm biến IR.
|
||||
* **dncDelay:** Độ trễ DNC, độ trễ để chuyển sang chế độ ban đêm.
|
||||
* **motionDetect:** Phát hiện chuyển động, chứa các cài đặt cho phát hiện chuyển động.
|
||||
* **enabled:** Bật, bật hoặc tắt phát hiện chuyển động.
|
||||
* **visualize:** Trực quan hóa, hiển thị các khu vực phát hiện chuyển động trên hình ảnh.
|
||||
* **debug:** Gỡ lỗi, bật hoặc tắt gỡ lỗi phát hiện chuyển động.
|
||||
* **roi:** Vùng quan tâm (Region of Interest), các khu vực được sử dụng để phát hiện chuyển động.
|
||||
* **skipIn:** Bỏ qua trong, bỏ qua các khu vực trên hình ảnh khi phát hiện chuyển động.
|
||||
* **sensitivity:** Độ nhạy, độ nhạy của phát hiện chuyển động.
|
||||
* **records:** Bản ghi, chứa các cài đặt cho bản ghi.
|
||||
* **enabled:** Bật, bật hoặc tắt bản ghi.
|
||||
* **path:** Đường dẫn, đường dẫn đến thư mục lưu trữ bản ghi.
|
||||
* **maxUsage:** Sử dụng tối đa, tỷ lệ phần trăm dung lượng lưu trữ tối đa được sử dụng cho bản ghi.
|
||||
* **splitRecord:** Chia bản ghi, thời lượng tối đa của mỗi tệp bản ghi.
|
||||
* **outgoing:** Đầu ra, chứa các cài đặt cho luồng đầu ra.
|
||||
* **enabled:** Bật, bật hoặc tắt luồng đầu ra.
|
||||
* **server:** Máy chủ, địa chỉ của máy chủ để gửi luồng đầu ra.
|
||||
* **naluSize:** Kích thước NALU, kích thước của Đơn vị truy cập lớp mạng (Network Abstraction Layer Unit).
|
||||
* **watchdog:** Chó canh, chứa các cài đặt cho chó canh.
|
||||
* **enabled:** Bật, bật hoặc tắt chó canh.
|
||||
* **timeout:** Hết thời gian, thời gian chờ cho chó canh.
|
||||
* **hls:** HLS, chứa các cài đặt cho HLS.
|
||||
* **enabled:** Bật, bật hoặc tắt HLS.
|
||||
* **onvif:** ONVIF, chứa các cài đặt cho ONVIF.
|
||||
* **enabled:** Bật, bật hoặc tắt ONVIF.
|
||||
* **ipeye:** ipeye, chứa các cài đặt cho ipeye.
|
||||
* **enabled:** Bật, bật hoặc tắt ipeye.
|
||||
* **youtube:** YouTube, chứa các cài đặt cho YouTube.
|
||||
* **enabled:** Bật, bật hoặc tắt YouTube.
|
||||
* **key:** Khóa, khóa API YouTube.
|
||||
* **netip:** NetIP, chứa các cài đặt cho NetIP.
|
||||
* **enabled:** Bật, bật hoặc tắt NetIP.
|
||||
* **user:** Người dùng, tên người dùng cho NetIP.
|
||||
* **password:** Mật khẩu, mật khẩu cho NetIP.
|
||||
* **port:** Cổng, cổng được sử dụng cho NetIP.
|
||||
* **snapshots:** Ảnh chụp nhanh, bật hoặc tắt ảnh chụp nhanh.
|
||||
* **ignoreSetTime:** Bỏ qua cài đặt thời gian, bỏ qua cài đặt thời gian từ NetIP.
|
||||
* **cloud:** Đám mây, chứa các cài đặt cho đám mây.
|
||||
* **enabled:** Bật, bật hoặc tắt đám mây.
|
||||
* **webrtc:** WebRTC, chứa các cài đặt cho WebRTC.
|
||||
* **iceServers:** Máy chủ ICE, địa chỉ của máy chủ ICE để sử dụng cho WebRTC.
|
||||
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ Trình phát trực tiếp Majestic
|
|||
|
||||
### Lời mở đầu
|
||||
|
||||
Majestic là một ứng dụng phát trực tiếp video, trái tim của firmware của chúng tôi (liên quan đến chức năng camera / giám sát video). Majestic có thể cấu hình thông qua tệp /etc/majestic.yaml và có nhiều tính năng / dịch vụ được bật theo mặc định. 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. Xem /etc/majestic.full để biết các tùy chọn cấu hình.
|
||||
Majestic là một ứng dụng phát trực tiếp video, trái tim của firmware của chúng tôi (liên quan đến chức năng camera / giám sát video). Majestic có thể cấu hình thông qua tệp /etc/majestic.yaml và có nhiều tính năng/dịch vụ được bật theo mặc định. 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. Xem /etc/majestic.full để biết các tùy chọn cấu hình.
|
||||
|
||||
### Tín hiệu điều khiển
|
||||
|
||||
|
@ -20,7 +20,7 @@ Majestic là một ứng dụng phát trực tiếp video, trái tim của firmw
|
|||
Majestic hỗ trợ nhiều định dạng âm thanh, video và hình ảnh tĩnh, v.v.
|
||||
Bạn có thể tìm thấy danh sách đầy đủ các điểm cuối khả dụng trên [trang này](https://openipc.org/majestic-endpoints).
|
||||
|
||||
Tham số điều khiển JPEG dài không phù hợp với ví dụ trên trang web và chúng tôi xuất bản nó tại đây:
|
||||
Tham số điều khiển JPEG dài không vừa với ví dụ trên trang web và chúng tôi xuất bản nó tại đây:
|
||||
|
||||
`/image.jpg?width=640&height=360&qfactor=73&color2gray=1`
|
||||
|
||||
|
@ -100,7 +100,7 @@ Bạn sẽ thấy tập lệnh chạy sau các sự kiện phát hiện chuyển
|
|||
cli -s .video0.codec h264
|
||||
cli -s .audio.enabled true
|
||||
cli -s .outgoing.enabled true
|
||||
cli -s .outgoing.server rtmp://a.rtmp.youtube.com/live2/you-key-here
|
||||
cli -s .outgoing.server rtmp://a.rtmp.youtube.com/live2/your-key-here
|
||||
reboot
|
||||
```
|
||||
|
||||
|
@ -150,7 +150,7 @@ echo viewer:123456 | chpasswd
|
|||
|
||||
### JPEG và MJPEG
|
||||
|
||||
Nhằm mục đích thống nhất và tiêu chuẩn hóa cho tất cả các nền tảng, cũng như tăng tính ổn định của trình phát trực tiếp, kích thước hình ảnh sẽ luôn bằng kích thước trên kênh Video0 và không có cài đặt riêng biệt.
|
||||
Nhằm mục đích thống nhất và tiêu chuẩn hóa cho tất cả các nền tảng, cũng như tăng tính ổn định của trình phát trực tiếp, kích thước hình ảnh sẽ luôn bằng kích thước trên kênh Video0 và không có cài đặt riêng biệt nào được cung cấp.
|
||||
|
||||
### ROI
|
||||
|
||||
|
@ -217,3 +217,4 @@ curl -u root:12345 --data-binary @test.pcm http://192.168.1.10/play_audio
|
|||
[ffmpeg]: https://ffmpeg.org/
|
||||
[sox]: https://en.wikipedia.org/wiki/SoX
|
||||
|
||||
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
## Wiki OpenIPC
|
||||
# Wiki OpenIPC
|
||||
[Mục lục](../README.md)
|
||||
|
||||
Bảng mạch HiSilicon
|
||||
Bo mạch HiSilicon
|
||||
----------------
|
||||
|
||||
### Vô hiệu hóa các hệ thống con bạn không sử dụng
|
||||
|
||||
Các mô-đun kernel của nhà cung cấp chiếm khoảng 5 megabyte RAM (mã có bộ nhớ động cho bộ đệm) và một số trong số chúng khá vô dụng nếu bạn cần chức năng cụ thể như OSD, phát hiện chuyển động, hỗ trợ âm thanh hoặc codec H264/265/JPEG.
|
||||
Các mô-đun kernel của nhà cung cấp chiếm khoảng 5 megabyte RAM (mã có bộ nhớ động dành cho bộ đệm) và một số trong số chúng khá vô dụng nếu bạn cần chức năng cụ thể như OSD, phát hiện chuyển động, hỗ trợ âm thanh hoặc codec H.264/H.265/JPEG.
|
||||
|
||||
| Tính năng | Mô-đun | Kích thước |
|
||||
| Tính năng | Mô-đun | Kích thước |
|
||||
|------------------------------------------|----------------------------------------------------------------------------------------------------------|-----------|
|
||||
| Đầu ra âm thanh | hi3516ev200_ao, hi3516ev200_adec | |
|
||||
| Đầu vào âm thanh | hi3516ev200_ai, hi3516ev200_aenc | |
|
||||
|
@ -23,19 +23,3 @@ Các mô-đun kernel của nhà cung cấp chiếm khoảng 5 megabyte RAM (mã
|
|||
| Hỗ trợ OSD | hi3516ev200_rgn | |
|
||||
|
||||
|
||||
**Giải thích thuật ngữ:**
|
||||
|
||||
* **HiSilicon:** Là một công ty con của Huawei, chuyên sản xuất chip xử lý.
|
||||
* **Kernel module:** Mô-đun kernel, là một phần mềm có thể được tải vào kernel Linux.
|
||||
* **RAM (Random Access Memory):** Bộ nhớ truy cập ngẫu nhiên, là một loại bộ nhớ máy tính mà dữ liệu có thể được truy cập trực tiếp ở bất kỳ vị trí nào.
|
||||
* **OSD (On-Screen Display):** Hiển thị trên màn hình, là một tính năng cho phép hiển thị thông tin trên hình ảnh video.
|
||||
* **Motion detection:** Phát hiện chuyển động, là một tính năng cho phép camera phát hiện chuyển động trong trường nhìn của nó.
|
||||
* **Codec:** Bộ mã hóa/giải mã, là một thuật toán được sử dụng để nén và giải nén dữ liệu âm thanh hoặc video.
|
||||
* **H.264, H.265, JPEG:** Là các codec được sử dụng để nén video và hình ảnh.
|
||||
* **I2C, SPI:** Là các giao thức truyền thông được sử dụng để giao tiếp với các cảm biến và thiết bị ngoại vi khác.
|
||||
* **PWM (Pulse Width Modulation):** Điều chế độ rộng xung, là một kỹ thuật được sử dụng để điều khiển công suất được truyền đến một tải bằng cách thay đổi độ rộng của xung.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
You have not provided me with any document to translate. Please provide the text you would like me to translate into Vietnamese. For example:
|
||||
Bạn nói đúng! Tôi cần một tài liệu để dịch.
|
||||
|
||||
Vui lòng cung cấp văn bản bạn muốn tôi dịch sang tiếng Việt. Ví dụ:
|
||||
|
||||
"Vui lòng dịch tài liệu sau sang tiếng Việt:"
|
||||
|
||||
followed by the text of the document.
|
||||
theo sau là văn bản của tài liệu.
|
||||
|
||||
I am ready to assist you with your translation needs!
|
||||
Tôi sẵn sàng hỗ trợ bạn với nhu cầu dịch thuật của bạn!
|
||||
|
|
|
@ -18,7 +18,7 @@ Chúng tôi sẽ rất biết ơn mọi phản hồi và đề xuất.
|
|||
* [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).
|
||||
* [OpenIPC trên YouTube](https://www.youtube.com/channel/UCaXlbR2uGTRFh8jQ2lCFd2g) - Hướng dẫn và luồng của chúng tôi (đang trong kế hoạch).
|
||||
|
||||
|
||||
## Các nhóm trò chuyện Telegram
|
||||
|
@ -27,7 +27,7 @@ Chúng tôi sẽ rất biết ơn mọi phản hồi và đề xuất.
|
|||
* [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 Iranian](https://t.me/joinchat/T_GwQUBTJdfXJrFb) (IR) - nhóm đặc biệt dành cho người dùng Iran / OpenIPC Team dành cho người dùng Iran, [*](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
|
||||
|
@ -38,14 +38,14 @@ Chúng tôi sẽ rất biết ơn mọi phản hồi và đề xuất.
|
|||
|
||||
### 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.
|
||||
* [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
|
||||
### Trình phát trực tuyến
|
||||
|
||||
* [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ở.
|
||||
* [majestic](https://openipc.org/majestic-endpoints) - Trình phát trực tuyến IPCam phổ dụng.
|
||||
* [mini][mini] - Trình phát trực tuyến camera IP Mini mã nguồn mở.
|
||||
|
||||
### Công cụ
|
||||
|
||||
|
@ -61,19 +61,19 @@ Chúng tôi sẽ rất biết ơn mọi phản hồi và đề xuất.
|
|||
|
||||
## Các nhà phát triển
|
||||
|
||||
| Tên | Vai trò | Tham gia |
|
||||
| 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 | |
|
||||
| [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ợ
|
||||
|
|
|
@ -12,9 +12,9 @@ Bộ sưu tập các cài đặt mạng thực tế
|
|||
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
|
||||
#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
|
||||
```
|
||||
|
||||
|
||||
|
@ -27,13 +27,13 @@ iface eth0 inet static
|
|||
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
|
||||
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
|
||||
### ETH0:1 | Ví dụ Alias
|
||||
|
||||
```
|
||||
auto eth0
|
||||
|
@ -205,7 +205,7 @@ iface wlan0 inet dhcp
|
|||
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
|
||||
Lưu ý: Nhập các lệnh sau trong bảng điều khiển U-Boot để kích hoạt thiết bị wifi
|
||||
|
||||
```
|
||||
fw_setenv wlandev atbm603x-generic-usb
|
||||
|
@ -395,8 +395,8 @@ iface wlan0 inet dhcp
|
|||
|
||||
```
|
||||
fw_setenv wlandevice mt7601u-t31-camhi
|
||||
fw_setenv wlanssid MySSID
|
||||
fw_setenv wlanpass MyPassword
|
||||
fw_setenv wlanssid Tên-SSID-Của-Bạn
|
||||
fw_setenv wlanpass Mật-khẩu-Của-Bạn
|
||||
```
|
||||
|
||||
|
||||
|
@ -445,4 +445,5 @@ iface wlan0 inet dhcp
|
|||
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
|
||||
```
|
||||
```
|
||||
|
||||
|
|
|
@ -41,7 +41,7 @@ Buildroot nhanh hơn cho việc phát triển ban đầu cho các nền tảng m
|
|||
|
||||
### 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)
|
||||
* [OpenIPC Wiki (tiếng Nga)](https://github.com/OpenIPC/camerasrnd/blob/master/docs/FAQ-ru.md)
|
||||
|
||||
|
||||
## Những thứ liên quan đến mạng
|
||||
|
@ -66,7 +66,7 @@ Có một giao diện khác được lên kế hoạch ... Vẫn đang được
|
|||
|
||||
## Khuyến nghị liên quan đến phần cứng
|
||||
|
||||
### Power Over Internet PoE
|
||||
### Power Over Ethernet (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
|
||||
|
@ -74,11 +74,11 @@ Với bộ đổi nguồn 12V, dòng điện sẽ cao hơn 4 lần. Dòng điệ
|
|||
|
||||
## 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.
|
||||
* **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.
|
||||
* **М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__
|
||||
* **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
|
||||
|
||||
|
@ -95,7 +95,7 @@ Tệp cấu hình nằm trong `/etc/minihttp.ini`
|
|||
```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
|
||||
## Công cụ build 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)
|
||||
|
||||
|
@ -127,18 +127,18 @@ các lệnh khác để [[giám sát nhiệt độ]]
|
|||
|
||||
* [[Mẫu giám sát Zabbix]]
|
||||
|
||||
## Cấu hình nút Prometheus
|
||||
## Cấu hình node 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ể
|
||||
OpenIPC có trình xuất node 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/):
|
||||
Hoặc được trực quan hóa nếu bạn cài đặt [máy chủ Prometheus và Grafana](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`.
|
||||
Bạn có thể cấu hình node trong `/etc/config/prometheus-node-exporter-lua`.
|
||||
|
||||
### Gói meta
|
||||
|
||||
|
@ -149,7 +149,7 @@ Bạn có thể cấu hình nút trong `/etc/config/prometheus-node-exporter-lua
|
|||
### 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
|
||||
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)
|
||||
|
||||
|
@ -172,9 +172,9 @@ if(pinfo->mem->start = 0x20250000 /* địa chỉ i2c-2 */) {
|
|||
|
||||
## Thông tin liên quan đến R&D
|
||||
|
||||
### Cách [[đăng nhập bên trong]] firmware gốc
|
||||
### Cách [[đăng nhập vào bên trong]] firmware gốc
|
||||
|
||||
### Nhận xét [[Nhật ký Majestic]]
|
||||
### Nhận xét về [[Nhật ký Majestic]]
|
||||
|
||||
### [[DevTools]]
|
||||
|
||||
|
@ -186,8 +186,8 @@ if(pinfo->mem->start = 0x20250000 /* địa chỉ i2c-2 */) {
|
|||
## 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.
|
||||
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)
|
||||
|
||||
|
@ -203,11 +203,11 @@ Dưới đây là một số ví dụ về cách ghi lại luồng video bằng
|
|||
|
||||
### gstreamer
|
||||
|
||||
* luồng rtsp h264:
|
||||
* luồng RTSP H.264:
|
||||
|
||||
`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:
|
||||
* luồng RTSP H.265:
|
||||
|
||||
`gst-launch-1.0 rtspsrc location=rtsp://192.168.1.10:554/stream=0 ! rtpjitterbuffer ! rtph265depay ! h265parse ! mp4mux ! filesink location=stream0_h265.mp4 -e`
|
||||
|
||||
|
@ -215,11 +215,11 @@ Dưới đây là một số ví dụ về cách ghi lại luồng video bằng
|
|||
|
||||
### vlc
|
||||
|
||||
## Cách đăng nhập bên trong firmware gốc
|
||||
## Cách đăng nhập vào 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
|
||||
### Bật máy chủ Telnet
|
||||
|
||||
Trong bảng điều khiển U-Boot:
|
||||
|
||||
|
@ -227,7 +227,7 @@ Trong bảng điều khiển U-Boot:
|
|||
setenv telnetctrl 1; saveenv
|
||||
```
|
||||
|
||||
### Kết nối bằng telnet
|
||||
### Kết nối bằng Telnet
|
||||
|
||||
```
|
||||
LocalHost login: root
|
||||
|
@ -237,21 +237,21 @@ 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)
|
||||
### Tùy chọn: bật khởi động chi tiết kernel Linux (nếu armbenv tồn tại)
|
||||
|
||||
```
|
||||
# armbenv -s xmuart 0
|
||||
# reboot
|
||||
```
|
||||
|
||||
Hoặc trong trường hợp tồn tại XmEnv:
|
||||
Hoặc trong trường hợp XmEnv tồn tại:
|
||||
|
||||
```
|
||||
# XmEnv -s xmuart 0
|
||||
# reboot
|
||||
```
|
||||
|
||||
### Bật telnet mà không cần mở camera (từ xa)
|
||||
### 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.
|
||||
|
||||
|
@ -269,7 +269,7 @@ Hoặc trong trường hợp tồn tại XmEnv:
|
|||
* 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:
|
||||
* Nén 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.
|
||||
|
@ -322,7 +322,7 @@ 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}'`
|
||||
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
|
||||
|
@ -330,28 +330,28 @@ 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.
|
||||
YouTube không chỉ cung cấp tính năng Phát trực tiếp mà còn có thể ghi lại luồng này.
|
||||
|
||||
Có thể ghi lại tối đa 12 giờ LiveStream.
|
||||
Có thể ghi lại tối đa 12 giờ phát trực tiếp.
|
||||
|
||||
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.
|
||||
không có kế hoạch 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 chế độ khả dụng: chế độ cũ, hỗ trợ H.264 qua RTMP,
|
||||
và chế độ mới, với H.265 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.
|
||||
Cả hai phương pháp đều chưa được thử nghiệm trong môi trường 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
|
||||
### H.264 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)
|
||||
Điều hướng đến gói đã biên dịch [H.264 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/`
|
||||
|
||||
|
@ -359,15 +359,18 @@ 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:
|
||||
Chạy `ffmpeg` với các tham 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)
|
||||
[H.265 qua HLS](https://gist.github.com/widgetii/ec275524dd621cd55774c952bee4c622)
|
||||
|
||||
Một số hướng dẫn xây dựng:
|
||||
Một số hướng dẫn build:
|
||||
|
||||
<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
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -9,4 +9,4 @@ Cài đặt cũ
|
|||
- [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)
|
||||
- [Hướng dẫn XM530 cũ](../en/install-xm530.md)
|
||||
|
|
|
@ -11,13 +11,13 @@ Trang này mô tả biến thể firmware dựa trên OpenWRT.
|
|||
* 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ỗ 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)
|
||||
* Bot Telegram gửi đơn giản (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 ...
|
||||
|
@ -41,7 +41,7 @@ với Google Dịch).
|
|||
* <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
|
||||
### Trình 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
|
||||
|
@ -63,7 +63,7 @@ killall -sigint majestic; export SENSOR=$(ipctool --sensor_id); majestic 2>&1 |
|
|||
|
||||
### 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].
|
||||
Bạn có thể tìm thấy thông tin về URL của trình phát trực tuyến và mô tả của chúng trong [Wiki][9].
|
||||
|
||||
|
||||
### Dữ liệu thống kê
|
||||
|
@ -81,19 +81,19 @@ 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 |
|
||||
| Trạng thái build | 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] |
|
||||
| ![Ảnh Hi3516Cv100][b1] | Hi3516CV100 | [uboot][u1] | [kernel][k1] | [rootfs][r1] |
|
||||
| ![Ảnh Hi3516Cv200][b2] | Hi3516CV200 | [uboot][u2] | [kernel][k2] | [rootfs][r2] |
|
||||
| ![Ảnh Hi3516Cv300][b3] | Hi3516CV300 | [uboot][u3] | [kernel][k3] | [rootfs][r3] |
|
||||
| ![Ảnh Hi3516Ev100][b4] | Hi3516EV100 | [uboot][u4] | [kernel][k4] | [rootfs][r4] |
|
||||
| ![Ảnh Hi3518Av100][b5] | Hi3518AV100 | [uboot][u5] | [kernel][k5] | [rootfs][r5] |
|
||||
| ![Ảnh Hi3518Cv100][b6] | Hi3518CV100 | [uboot][u6] | [kernel][k6] | [rootfs][r6] |
|
||||
| ![Ảnh Hi3518Ev100][b7] | Hi3518EV100 | [uboot][u7] | [kernel][k7] | [rootfs][r7] |
|
||||
| ![Ảnh Hi3518Ev200][b8] | Hi3518EV200 | [uboot][u8] | [kernel][k8] | [rootfs][r8] |
|
||||
| ![Ảnh Hi3518Ev201][b9] | Hi3518EV201 | [uboot][u9] | [kernel][k9] | [rootfs][r9] |
|
||||
| ![Ảnh Hi3520Dv100][b10] | Hi3520DV100 | ! | [kernel][k10] | [rootfs][r10] |
|
||||
| ![Ảnh Hi3520Dv200][b11] | Hi3520DV200 | ! | [kernel][k11] | [rootfs][r11] |
|
||||
|
||||
|
||||
### Bản phát hành
|
||||
|
@ -162,7 +162,7 @@ Chuẩn bị cài đặt
|
|||
|
||||
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
|
||||
* CamHi | Nhấn **Ctrl+C** trong khi khởi động U-boot và truy cập mật khẩu - 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
|
||||
|
@ -178,7 +178,7 @@ Bạn chắc chắn nên ghi lại MAC gốc của thiết bị trên cổng eth
|
|||
|
||||
### Sao lưu firmware gốc
|
||||
|
||||
#### Flash 8M
|
||||
#### Flash 8MB
|
||||
|
||||
```txt
|
||||
setenv ipaddr 192.168.1.10
|
||||
|
@ -189,7 +189,7 @@ sf read 0x82000000 0x0 0x800000
|
|||
tftp 0x82000000 fullflash.img 0x800000
|
||||
```
|
||||
|
||||
#### Flash 16M
|
||||
#### Flash 16MB
|
||||
|
||||
```txt
|
||||
setenv ipaddr 192.168.1.10
|
||||
|
@ -200,7 +200,7 @@ sf read 0x82000000 0x0 0x1000000
|
|||
tftp 0x82000000 fullflash.img 0x1000000
|
||||
```
|
||||
|
||||
#### Flash 32M
|
||||
#### Flash 32MB
|
||||
|
||||
```txt
|
||||
setenv ipaddr 192.168.1.10
|
||||
|
@ -253,7 +253,7 @@ 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.
|
||||
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ụ:
|
||||
|
||||
|
@ -266,7 +266,7 @@ 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!**
|
||||
thanh ghi. Hãy tham khảo ý kiến chuyên gia!**
|
||||
|
||||
**Thiết bị thử nghiệm:**
|
||||
|
||||
|
@ -370,7 +370,7 @@ 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!**
|
||||
thanh ghi. Hãy tham khảo ý kiến chuyên gia!**
|
||||
|
||||
```txt
|
||||
setenv ipaddr 192.168.1.10
|
||||
|
@ -396,7 +396,7 @@ 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!**
|
||||
thanh ghi. Hãy tham khảo ý kiến chuyên gia!**
|
||||
|
||||
```txt
|
||||
setenv ipaddr 192.168.1.10
|
||||
|
@ -492,8 +492,8 @@ 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:
|
||||
Nếu bạn đã cài đặt firmware OpenIPC, bạn có thể cập nhật riêng lẻ
|
||||
các phân vùng flash từ dòng lệnh shell:
|
||||
|
||||
|
||||
### Cập nhật u-boot
|
||||
|
@ -572,9 +572,9 @@ reboot
|
|||
```
|
||||
|
||||
|
||||
### Dọn dẹp u-boot env
|
||||
### Dọn dẹp môi trường u-boot
|
||||
|
||||
> **Khôi phục về mặc định u-boot env**
|
||||
> **Khôi phục về môi trường u-boot mặc định**
|
||||
|
||||
```txt
|
||||
flash_eraseall -j /dev/$(awk -F ':' '/env/ {print $1}' /proc/mtd)
|
||||
|
@ -648,4 +648,4 @@ Sẽ được viết ...
|
|||
[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/
|
||||
[5]: https://aliexpress.
|
|
@ -6,26 +6,26 @@ 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.
|
||||
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 không gian 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, mã hóa và nén được 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
|
||||
Để kết nối với máy chủ, hãy đi tới tab tiện ích 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
|
||||
- trong cấu hình vtund.conf, thêm tất cả các kết nối camera vào cầu nối
|
||||
- khởi độ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
|
||||
Cài đặt các thành phần và phần phụ thuộc cho Debian/Ubuntu
|
||||
|
||||
```
|
||||
apt install -y bison bridge-utils build-essential curl flex
|
||||
apt install -y bison bridge-utils build-essential curl flex bridge-utils
|
||||
```
|
||||
|
||||
### Tập lệnh biên dịch tự động
|
||||
|
@ -33,7 +33,7 @@ apt install -y bison bridge-utils build-essential curl flex
|
|||
```
|
||||
#!/bin/bash
|
||||
#
|
||||
# OpenIPC.org | v.20240824
|
||||
# OpenIPC.org | v.20240908
|
||||
#
|
||||
|
||||
LANG=C
|
||||
|
@ -54,8 +54,8 @@ compile() {
|
|||
}
|
||||
|
||||
install() {
|
||||
mkdir -p ../_binary
|
||||
mv -v vtund ../_binary/vtund_i386
|
||||
mkdir -p /usr/local/sbin
|
||||
mv -v vtund /usr/local/sbin/vtund
|
||||
cd -
|
||||
rm -rf vtun-${vtun_version}
|
||||
}
|
||||
|
@ -85,7 +85,7 @@ iface br-openipc inet static
|
|||
|
||||
```
|
||||
|
||||
### Ví dụ về /etc/vtund.conf cho máy chủ
|
||||
### Ví dụ về /etc/vtund.conf cho máy chủ
|
||||
|
||||
```
|
||||
options {
|
||||
|
@ -141,3 +141,18 @@ E60BFB000001 {
|
|||
#
|
||||
```
|
||||
|
||||
### Thay thế
|
||||
|
||||
```
|
||||
#!/bin/sh -x
|
||||
|
||||
curl -L -o vtun_3.0.4.orig.tar.gz http://archive.ubuntu.com/ubuntu/pool/universe/v/vtun/vtun_3.0.4.orig.tar.gz
|
||||
tar xvfz vtun_3.0.4.orig.tar.gz
|
||||
curl -L -o vtun_3.0.4-2build1.debian.tar.xz http://archive.ubuntu.com/ubuntu/pool/universe/v/vtun/vtun_3.0.4-2build1.debian.tar.xz
|
||||
tar xvfJ vtun_3.0.4-2build1.debian.tar.xz
|
||||
cd vtun-3.0.4
|
||||
cat ../debian/patches/*.patch | patch -p 1
|
||||
./configure --build=x86_64-linux-gnu --disable-lzo --disable-zlib --disable-ssl --prefix=''
|
||||
make && strip vtund && cp vtund ../ && cd -
|
||||
rm -rf vtun_3.0.4.orig.tar.gz vtun_3.0.4-2build1.debian.tar.xz debian vtun-3.0.4
|
||||
```
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# OpenIPC Wiki
|
||||
[Mục lục](../README.md)
|
||||
|
||||
Truy cập SSH, telnet, FTP và các dịch vụ khác
|
||||
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
|
||||
|
@ -45,7 +45,7 @@ mật khẩu văn bản thuần túy ban đầu có thể được chọn trong
|
|||
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`:
|
||||
mật khẩu bằng cách sử dụng `mkpasswd` hoặc `openssl`:
|
||||
|
||||
```bash
|
||||
$ mkpasswd -m md5crypt -S bh2njiGH openipc
|
||||
|
@ -54,9 +54,9 @@ $ 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!
|
||||
Khi tìm thấy mật khẩu, nên chia sẻ công khai để các nhà
|
||||
nghiên cứu khác trong lĩnh vực này có thể dành nguồn lực mật mã của họ cho
|
||||
việc 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
|
||||
|
||||
|
@ -105,43 +105,43 @@ khám phá thêm nhiều mật khẩu chưa biết. Chia sẻ là quan tâm, cá
|
|||
### 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
|
||||
Thông 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 shell Linux hạn chế ở giai đoạn đầu
|
||||
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`:
|
||||
Shell 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 nó theo cách thủ công.
|
||||
Đầu tiên, hãy mount 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 phần còn lại của các điểm mount từ `/etc/fstab`:
|
||||
```
|
||||
mount -a
|
||||
```
|
||||
Ngoài ra, hãy gắn kết thẻ SD để sao chép tệp đến và đi:
|
||||
Ngoài ra, hãy mount thẻ SD để sao chép tệp đến và đi:
|
||||
```
|
||||
mount /dev/mmcblk0p1 on /mnt/s0
|
||||
mount /dev/mmcblk0p1 trên /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
|
||||
Trên hệ thống tệp `/rom`, bạn có thể chỉnh sửa tệp `/room/etc/passwd` nhưng một 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
|
||||
một 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`:
|
||||
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à
|
||||
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`:
|
||||
|
@ -167,4 +167,3 @@ bạn khởi động lại thiết bị, bạn sẽ có hệ thống hoạt đ
|
|||
|
||||
---------------------------------------------------
|
||||
|
||||
|
||||
|
|
|
@ -8,43 +8,44 @@ Nếu đầu đọc thẻ SD bị lỗi và không có mạng nào được cấ
|
|||
|
||||
## Bên gửi:
|
||||
|
||||
1- Đầu tiên, chúng ta mã hóa các tệp
|
||||
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
|
||||
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.
|
||||
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.
|
||||
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
|
||||
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,
|
||||
5. Trên picocom, tôi chỉ cần nhấn `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 đủ.
|
||||
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ệ checksum.
|
||||
OpenIPC có `sha512sum`, nhưng bất kỳ lệnh checksum nào cũng đủ.
|
||||
|
||||
|
||||
```bash
|
||||
|
@ -52,9 +53,11 @@ 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
|
||||
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
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -4,14 +4,14 @@
|
|||
|
||||
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.
|
||||
Đâ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 dò tìm 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
|
||||
### T31 -- Đổi thương hiệu Wyze Cam Pan v3
|
||||
|
||||

|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
Lộ trình
|
||||
-------
|
||||
|
||||
### Truy cập nhanh vào Nhật ký Git cho các kho lưu trữ phổ biến:
|
||||
### Truy cập nhanh 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)
|
||||
|
@ -14,31 +14,31 @@ Lộ trình
|
|||
- 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ợ trình build.
|
||||
- Mở rộng hỗ trợ tài liệu.
|
||||
- Mở rộng hỗ trợ cho majestic-plugins.
|
||||
- Mở rộng hỗ trợ 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 build 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
|
||||
- [hisilicon/goke] Khắc phục việc ghép kênh các GPIO không cần thiết khiến IRCUT bị cháy 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ố 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 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.
|
||||
- Khắc phục sự cố với việc đảo ngược IRCUT đơn.
|
||||
- Đặ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.
|
||||
|
@ -64,19 +64,23 @@ Lộ trình
|
|||
- 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 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ố 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ợ H.265 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 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.
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
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
|
||||
#### Điều khiển các kênh PWM trên SigmaStar SSC338Q
|
||||
|
||||
Chuyển GPIO1 sang chế độ PWM1 và đặt tham số
|
||||
```
|
||||
|
@ -15,3 +15,4 @@ echo 25 > /sys/class/pwm/pwmchip0/pwm1/duty_cycle
|
|||
echo 1 > /sys/class/pwm/pwmchip0/pwm1/enable
|
||||
```
|
||||
|
||||
|
||||
|
|
|
@ -25,9 +25,9 @@ Phục hồi Sigmastar
|
|||
|
||||
---
|
||||
|
||||
**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ị.
|
||||
**Kiểm tra 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ộ nạp.
|
||||
- Tắt/bật nguồn có thể hữu ích nếu thiết bị không được phát hiện.
|
||||
```
|
||||
snander -i -q
|
||||
```
|
||||
|
@ -41,9 +41,9 @@ snander -l 0x200000 -e
|
|||
|
||||
<img src="../images/sigmastar-erase.webp">
|
||||
|
||||
**Ghi tệp uboot mới:**
|
||||
**Ghi tệp u-boot 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
|
||||
- Thả tệp vào cùng thư mục với chương trình
|
||||
```
|
||||
snander -w u-boot-ssc338q-nand.bin
|
||||
```
|
||||
|
@ -58,7 +58,7 @@ snander -w u-boot-ssc338q-nand.bin
|
|||
|
||||
---
|
||||
|
||||
- [Phương pháp Raspberry thay thế bởi MarioFPV](https://youtu.be/88C8UvyKQlQ)
|
||||
- [Phương pháp thay thế bằng Raspberry Pi của MarioFPV](https://youtu.be/88C8UvyKQlQ)
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# OpenIPC Wiki
|
||||
[Mục lục](../README.md)
|
||||
|
||||
Phần mềm Ghi hình Video
|
||||
Phần mềm Quay video
|
||||
------------------------
|
||||
|
||||
- [Agent DVR](https://www.ispyconnect.com/) (trước đây là iSpy)
|
||||
|
@ -25,3 +25,4 @@ Phần mềm Ghi hình Video
|
|||
- [Yucca](https://yucca.app)
|
||||
- [ZoneMinder](https://zoneminder.com/)
|
||||
|
||||
|
||||
|
|
|
@ -13,133 +13,136 @@
|
|||
|
||||
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.
|
||||
Chúng tôi liên tục nỗ lực để tạo ra 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. Chúng tôi hoan nghênh những suy nghĩ và phản hồi của bạn thông qua [kênh telegram OpenIPC](https://t.me/openipc/117235)
|
||||
|
||||
## 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
|
||||
Bước đầu tiên là tạo một bản sao cục bộ của mã nguồn firmware OpenIPC. Chúng tôi đang sử dụng 'mylocalOpenIPC/src' trong tập lệnh bên dưới nhưng bạn có thể thay đổi điều này thành bất kỳ vị trí nào bạn muốn, ví dụ: ~/myprojects/myOpenIPC
|
||||
|
||||
```cd
|
||||
mkdir -p local/src
|
||||
cd local/src
|
||||
mkdir -p mylocalOpenIPC/src
|
||||
cd mylocalOpenIPC/src
|
||||
git clone https://github.com/OpenIPC/firmware.git openipc-firmware
|
||||
cd openipc-firmware
|
||||
```
|
||||
Bây giờ chúng ta có một bản sao của mã nguồn kho lưu trữ firmware.
|
||||
|
||||
### Cài đặt các Gói Bắt buộc
|
||||
Để đảm bảo hệ thống của bạn có các phần phụ thuộc cần thiết cho bản dựng thành công, bạn có thể sử dụng lệnh **make deps** được tạo sẵn trong thư mục gốc openipc-firmware mà bạn vừa tạo hoặc nhập các lệnh theo cách thủ công trong cửa sổ terminal.
|
||||
|
||||
Để chạy tập lệnh make (cách được khuyến nghị vì điều này sẽ được duy trì trong chính kho lưu trữ git mã nguồn), hãy thực hiện điều này
|
||||
```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:
|
||||
|
||||
hoặc để tự nhập các lệnh theo cách thủ công, hãy làm như sau:
|
||||
```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}
|
||||
sudo apt-get install -y automake autotools-dev bc build-essential cpio \
|
||||
curl file fzf git libncurses-dev libtool lzop make rsync unzip wget libssl-dev
|
||||
```
|
||||
|
||||
### Tạo Bộ nhớ Lưu trữ Vĩnh viễn cho các Gói Đã tải xuống
|
||||
[Buildroot](https://buildroot.org/) là bản phân phối Linux được sử dụng cho OpenIPC. Nó được sử dụng trong nhiều hệ thống nhúng vì nó có dung lượng rất nhỏ và có thể dễ dàng tùy chỉnh để bao gồm hoặc loại trừ chức năng cụ thể (xem [bài viết này](https://github.com/OpenIPC/wiki/blob/master/en/dev-buildroot-packages.md) về những gì được bao gồm trong bản dựng OpenIPC).
|
||||
|
||||
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:
|
||||
Theo mặc định, mỗi khi bạn build firmware, tập lệnh build OpenIPC sẽ tạo một cây tệp nguồn buildroot mới dẫn đến việc tải xuống hoặc sao chép tệp không cần thiết. Để tránh điều này, bạn có thể tạo một vị trí vĩnh viễn và đặt biến môi trường BR2_DL_DIR để thông báo cho tập lệnh build sử dụng điều này mỗi lần.
|
||||
|
||||
Thêm đoạn mã sau vào tệp `.profile` trong thư mục chính của bạn bằng trình soạn thảo văn bản yêu thích của bạn, ví dụ: nano ~/.profile
|
||||
```bash
|
||||
#Thư mục Buildroot cho bản dựng OpenIPC
|
||||
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.
|
||||
Sau đó, lấy nguồn thay đổi để chúng có hiệu lực ngay lập tức.
|
||||
|
||||
```bash
|
||||
source ~/.profile
|
||||
```
|
||||
|
||||
### Xây dựng firmware.
|
||||
Nếu bạn đã làm theo các bước trên, thì bây giờ bạn đã sẵn sàng để build firmware cho model camera cụ thể của mình.
|
||||
|
||||
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:
|
||||
Makefile nằm trong thư mục firmware chứa tập lệnh build cho mỗi model camera được hỗ trợ.
|
||||
|
||||
Bạn chỉ cần đảm bảo rằng bạn đang ở trong thư mục firmware, ví dụ: ~/mylocalOpenIPC/src/openipc-firmware và chạy make.
|
||||
|
||||
```bash
|
||||
cd ~/mylocalOpenIPC/src/openipc-firmware
|
||||
make
|
||||
```
|
||||
|
||||
Bạn sẽ được chào đón với một danh sách các mục tiêu khả dụng.
|
||||
Bạn sẽ được chào đón bằng 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,
|
||||
Tên của mỗi mục tiêu bao gồm tên của nhà cung cấp, model 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ế.
|
||||
trình 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ờ
|
||||
_Nếu bạn gặp lỗi 'tar: This does not look like a tar archive', hãy xem Lưu ý ở cuối phần này_
|
||||
|
||||
Quá trình build tệp nhị phân firmware 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ì
|
||||
tăng tốc quá trình, hãy đảm bảo rằng 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
|
||||
cũng có lợi và 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 bằng
|
||||
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/`.
|
||||
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 **uImage** 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
|
||||
~/mylocalOpenIPC/src/openipc-firmware/output/images$ ls -la
|
||||
total 39352
|
||||
-rw-rw-r-- 1 chrisdev chrisdev 6515434 Sep 5 14:52 openipc.v83x-nor-lite.tgz
|
||||
-rw-r--r-- 1 chrisdev chrisdev 12971008 Sep 5 14:52 rootfs.cpio
|
||||
-rw-r--r-- 1 chrisdev chrisdev 4464640 Sep 5 14:52 rootfs.squashfs.v83x
|
||||
-rw-r--r-- 1 chrisdev chrisdev 14274560 Sep 5 14:52 rootfs.v83x.tar
|
||||
-rw-r--r-- 1 chrisdev chrisdev 2058032 Sep 5 14:50 uImage.v83x
|
||||
```
|
||||
|
||||
|
||||
** **Lưu ý: Lỗi 'tar: This does not look like a tar archive'** \
|
||||
Nếu bạn đang sử dụng Ubuntu, bạn có thể gặp phải sự cố khi sử dụng wget trong các tập lệnh make khiến bản dựng không thành công và được báo cáo cho bảng điều khiển với thông báo 'tar: This does not look like a tar archive'. Điều này là do lệnh wget được sử dụng trong tập lệnh không xác thực đúng cách và do đó kết quả là một tệp trống.
|
||||
|
||||
Cách giải quyết cho vấn đề này là đảm bảo Makefile trong thư mục firmware được cập nhật với việc thêm '--ca-directory=/etc/ssl/certs' để phần chuẩn bị bây giờ sẽ đọc
|
||||
```
|
||||
prepare:
|
||||
@if test ! -e $(TARGET)/buildroot-$(BR_VER); then \
|
||||
wget -c -q --ca-directory=/etc/ssl/certs $(BR_LINK)/$(BR_VER).tar.gz -O $(BR_FILE); \
|
||||
mkdir -p $(TARGET); tar -xf $(BR_FILE) -C $(TARGET); fi
|
||||
```
|
||||
và tệp general/external.mk cũng được cập nhật để bao gồm:
|
||||
```
|
||||
export WGET := wget --ca-directory=/etc/ssl/certs --show-progress --passive-ftp -nd -t5 -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 khi bạn đã xây dựng firmware, bạn cần cài đặt nó trên camera.
|
||||
|
||||
Bạn có thể làm điều đó theo nhiều cách:
|
||||
1) Nếu bạn có bảng mạch camera được hỗ trợ đầy đủ thì sau khi sao chép các tệp uImage và rootfs.squashfs mới từ thư mục output/images của bạn sang máy chủ tftp, hãy sử dụng hướng dẫn Cài đặt Nâng cao là một phần của hướng dẫn được tạo mà bạn đã sử dụng ban đầu. Nếu bạn không có sẵn điều này, thì [chỉ cần tạo lại](https://openipc.org/supported-hardware/featured).
|
||||
|
||||
2) Làm theo tài liệu wiki về [nâng cấp firmware](https://github.com/OpenIPC/wiki/blob/master/en/sysupgrade.md) bằng cách sử dụng các tệp do bạn tạo ra.
|
||||
|
||||
3) 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 (/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:
|
||||
|
||||
```
|
||||
|
@ -154,42 +157,45 @@ Kết nối lại với camera và chạy lệnh này (giống như -n trong l
|
|||
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)
|
||||
Hãy nhớ! Tên 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
|
||||
Firmware OpenIPC 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 tự 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 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
|
||||
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
|
||||
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
|
||||
Xin lưu ý rằng OpenIPC sử dụng phiên bản Buildroot hơi lỗi thời. Tính đến
|
||||
hôm nay, đó là Buildroot 2024.02.1, 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à
|
||||
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 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
|
||||
họ. Bên trong mỗi thư mục họ như vậy chứa 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.
|
||||
tệp dành riêng cho họ 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
|
||||
có thể khác nhau về cài đặt phần cứng, tập hợp các gói bao gồm, mặc định
|
||||
cài đặt 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
|
||||
|
@ -212,7 +218,7 @@ Bạn có thể sửa đổi các gói hiện có hoặc thêm các gói mới
|
|||
|
||||
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ều đó có khả thi không? 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
|
||||
|
@ -221,21 +227,21 @@ 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`.
|
||||
> Mặc dù `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, bạn nên chạy thêm
|
||||
> `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
|
||||
Hãy nhớ rằng 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):
|
||||
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 (lấy ví dụ bảng goke, loại firmware fpv; các bước có thể được áp dụng cho bất kỳ 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
|
||||
* Sửa đổi cấu hình dự án mục tiêu của bạn (ví dụ: bảng goke, firmware fpv) để bao gồm và xây dựng gói mới của bạn, 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.
|
||||
|
@ -245,28 +251,28 @@ Sau khi bản dựng hoàn tất, gói của bạn (nếu nó đã cài đặt b
|
|||
|
||||
Đô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.
|
||||
kho lưu trữ firmware cục bộ và biên dịch các tệp nhị phân cho phần cứng cụ thể
|
||||
của bạn.
|
||||
|
||||
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
|
||||
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 có 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 đó
|
||||
quá trình biên dịch ban đầu sẽ kéo dài khoảng nửa giờ, cho hoặc nhận. Các kết quả
|
||||
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 những 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`.
|
||||
Để tùy chỉnh firmware của bạn, thêm hoặc xóa 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
|
||||
**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.__
|
||||
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/
|
||||
|
|
|
@ -1,76 +1,74 @@
|
|||
# OpenIPC Wiki
|
||||
[Mục lục](../README.md)
|
||||
|
||||
So sánh các bộ phát trực tuyến
|
||||
So sánh các trình 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)
|
||||
- [Các loại trình 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 trình 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
|
||||
### Các loại trình 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
|
||||
- [Divinus](https://github.com/OpenIPC/divinus) - trình phát trực tuyến mới, mã nguồn 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) - trình phát trực tuyến 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) - trình phát trực tuyến lâu đời nhất, ông tổ của tất cả các trình phát trực tuyến khác
|
||||
- [Venc](https://github.com/OpenIPC/silicon_research/tree/master/venc) - trình phát trực tuyến thu nhỏ dà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
|
||||
### Bảng chức năng của trình phát trực tuyến
|
||||
|
||||
| Tính năng và khả năng | Divinus | Majestic | Mini | Venc |
|
||||
| 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 |
|
||||
| Phát triển dự án đang trong giai đoạn tích cực | Có | Có | Không | Không |
|
||||
| Dự án mã 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 nhanh 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 UDP post hoặc socket | 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 | | | | |
|
||||
| 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 |
|
||||
| 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 |
|
||||
| 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 | | | | |
|
||||
|
||||
|
||||
| Sẽ được tiếp tục, tài liệu đang được viết | | | | |
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -6,9 +6,9 @@ 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.
|
||||
Việc 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ị.
|
||||
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
|
||||
|
@ -28,7 +28,7 @@ root@openipc-hi3516ev300:~# differ /etc/init.d/S01syslogd
|
|||
[ -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ụ.
|
||||
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 và khởi động lại dịch vụ.
|
||||
|
||||
```diff
|
||||
--- rsyslog.conf.orig 2022-09-30 16:41:52.081353630 +0300
|
||||
|
@ -52,5 +52,5 @@ Trong tệp cấu hình máy chủ, hãy ghi lại các tùy chọn về số c
|
|||
module(load="imklog" permitnonkernelselfacility="on")
|
||||
```
|
||||
|
||||
Hoan nghênh ý kiến và bổ sung. Tạm biệt !
|
||||
Hoan nghênh các bình luận và bổ sung. Tạm biệt!
|
||||
|
||||
|
|
|
@ -4,17 +4,19 @@
|
|||
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).
|
||||
* Hỗ trợ cho hầu hết 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.
|
||||
Hoạt động trên thiết bị Hi3516Ev200/Hi3516Ev300.
|
||||
|
||||
### Watchdog
|
||||
|
||||
Hoạt động trên các thiết bị Hi3516Ev200/Hi3516Ev300.
|
||||
Hoạt động trên thiết bị Hi3516Ev200/Hi3516Ev300.
|
||||
|
||||
### WiFi
|
||||
|
||||
* Bộ điều hợp mạng Realtek Semiconductor RTL8188ETV Wireless LAN 802.11n
|
||||
* Bộ điều hợp mạng không dây 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)
|
||||
|
||||
|
||||
|
|
|
@ -5,9 +5,9 @@ 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.
|
||||
Đối với firmware cũ, chạy `sysupgrade` không cần 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!__
|
||||
**CHÚ Ý! Nâng cấp firmware có thể dẫn đến "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
|
||||
|
||||
|
@ -29,7 +29,7 @@ busybox tftp -r uImage.${soc} -g ${serverip}
|
|||
|
||||
#### Github: Ngoài ra, từ U-Boot
|
||||
|
||||
đối với ảnh 8MB
|
||||
Đối với ảnh 8MB
|
||||
|
||||
```bash
|
||||
tftp ${baseaddr} uImage.${soc}
|
||||
|
@ -39,7 +39,7 @@ tftp ${baseaddr} rootfs.squashfs.${soc}
|
|||
sf probe 0; sf erase 0x250000 0x500000; sf write ${baseaddr} 0x250000 ${filesize}
|
||||
```
|
||||
|
||||
đối với ảnh 16MB
|
||||
Đối với ảnh 16MB
|
||||
|
||||
```bash
|
||||
tftp ${baseaddr} uImage.${soc}
|
||||
|
@ -56,7 +56,7 @@ Giải nén gói và tải nội dung của nó lên camera bằng cách sử d
|
|||
|
||||
```bash
|
||||
tar xvf <firmware.tgz>
|
||||
scp uImage* rootfs* root@<yourcameraip>:/tmp/
|
||||
scp uImage* rootfs* root@<địa-chỉ-ip-camera-của-bạn>:/tmp/
|
||||
```
|
||||
|
||||
Trên camera, hãy chạy:
|
||||
|
@ -75,7 +75,7 @@ Lắp thẻ SD vào máy tính để bàn của bạn. Giải nén gói và sao
|
|||
|
||||
```bash
|
||||
tar xvf <firmware.tgz>
|
||||
cp uImage* rootfs* /media/<username>/<card-id>/
|
||||
cp uImage* rootfs* /media/<tên-người-dùng>/<id-thẻ>/
|
||||
```
|
||||
|
||||
Lắp thẻ SD vào camera của bạn.
|
||||
|
@ -88,7 +88,7 @@ sysupgrade --kernel=/mnt/mmcblk0p1/uImage.${soc} --rootfs=/mnt/mmcblk0p1/rootfs.
|
|||
|
||||
#### Thẻ SD: Ngoài ra, từ U-Boot
|
||||
|
||||
đối với ảnh 8MB
|
||||
Đối với ảnh 8MB
|
||||
|
||||
```bash
|
||||
mw.b ${baseaddr} 0xff 0x200000
|
||||
|
@ -100,7 +100,7 @@ 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
|
||||
Đối với ảnh 16MB
|
||||
|
||||
```bash
|
||||
mw.b ${baseaddr} 0xff 0x300000
|
||||
|
@ -114,7 +114,7 @@ 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 đó:
|
||||
Dọn dẹp 320K RAM và tải tệp bootloader vào đó:
|
||||
|
||||
```bash
|
||||
mw.b ${baseaddr} 0xff 0x50000
|
||||
|
@ -144,7 +144,7 @@ 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:
|
||||
thì trước tiên hãy thử cập nhật kernel:
|
||||
`sysupgrade -k`
|
||||
|
||||
Nếu không được, hãy sử dụng tùy chọn `--force`:
|
||||
|
@ -157,5 +157,3 @@ curl -k -L -o /usr/sbin/sysupgrade "https://raw.githubusercontent.com/OpenIPC/fi
|
|||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -11,12 +11,12 @@ Việc cần làm
|
|||
|
||||
## Cải tiến và Tính năng
|
||||
|
||||
* Thêm khẩn cấp hỗ trợ cho bộ xử lý Goke
|
||||
* Thêm hỗ trợ cho bộ xử lý Goke (ưu tiên cao)
|
||||
* 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
|
||||
* Tối ưu hóa các applet Busybox và vô hiệu hóa tất cả những applet 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
|
||||
|
@ -30,12 +30,12 @@ Việc cần làm
|
|||
## 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ộ
|
||||
* 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
|
||||
* Tạo trang Wiki để nhập dữ liệu của các bo mạch có động cơ và thông số kỹ thuật giao thức
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue