mirror of https://github.com/OpenIPC/wiki.git
				
				
				
			Update pages
							parent
							
								
									0175437080
								
							
						
					
					
						commit
						9fc1baf941
					
				|  | @ -13,10 +13,10 @@ | |||
| 
 | ||||
| ## Resources for recycling and integration | ||||
| 
 | ||||
| * [https://github.com/OpenIPC/wiki/blob/master/en/old_manual.md](https://openipc.org/wiki/en/old-manual) | ||||
| * [https://github.com/OpenIPC/wiki/blob/master/en/old-notes-for-resorting.md](https://github.com/OpenIPC/wiki/blob/master/en/old-notes-for-resorting.md) | ||||
| * [https://github.com/OpenIPC/camerasrnd](https://github.com/OpenIPC/camerasrnd) | ||||
| * [https://github.com/OpenIPC/firmware/wiki](https://github.com/OpenIPC/firmware/wiki) | ||||
| * [https://github.com/OpenIPC/openipc.github.io](https://github.com/OpenIPC/openipc.github.io) | ||||
| * [https://github.com/OpenIPC/openipc.github.io/blob/main/docs/manual.md](https://github.com/OpenIPC/openipc.github.io/blob/main/docs/manual.md) | ||||
| * [https://openwrt.org/docs/techref/hardware/soc/soc.hisilicon.hi35xx](https://openwrt.org/docs/techref/hardware/soc/soc.hisilicon.hi35xx) | ||||
| 
 | ||||
|  |  | |||
|  | @ -0,0 +1,704 @@ | |||
| 
 | ||||
| ## Introduction | ||||
| 
 | ||||
| This page describes OpenWRT-based firmware variant. | ||||
| 
 | ||||
| ### Firmware features | ||||
| 
 | ||||
| * RTSP, ONVIF, NETIP | ||||
| * Native ipeye service support | ||||
| * Support squashfs, jffs2, overlayfs, vfat | ||||
| * Vlan and bridges support | ||||
| * Standard OPKG package system | ||||
| * Tiny SNMP daemon | ||||
| * Curl with SSL for upload/download files | ||||
| * Run arbitrary command from u-boot ENV (linux_cmd=) | ||||
| * Simple L2/L3 VPN with traffic shaping and compression (vtun) | ||||
| * Simply sender Telegram bot (estgb) | ||||
| * Low cost  3G USB modems support in hilink and ppp modes | ||||
| * µVPN tunnel service | ||||
| * and more ... | ||||
| 
 | ||||
| ### Supported devices | ||||
| 
 | ||||
| We aim to develop **universal**, portable firmware supporting wide range of | ||||
| manufacturers and delivering updates and fixes which vendors oftentimes | ||||
| unable to deliver. | ||||
| 
 | ||||
| The list is constantly updated, please visit often and/or follow our | ||||
| Telegram groups for new release notifications. | ||||
| 
 | ||||
| #### OpenIPC 1.0 (OpenWRT based) | ||||
| 
 | ||||
| | Processor   | Sensor          | Vendor     | SKU          | Board                          | Status | | ||||
| |-------------|-----------------|------------|--------------|--------------------------------|--------| | ||||
| | Hi3516Cv100 | IMX222_spi_dc   | XM         |              | [BLK18C-0222-38X38_S-V1.03](https://aliexpress.com/item/32493067946.html)  | test   | | ||||
| | Hi3518Ev100 | OV9712_i2c_dc   | CamHi/Xin  |              | IPC18E_9712_V2.0/V3.1          | test   | | ||||
| |             |                 |            |              |                                |        | | ||||
| | Hi3516Cv200 | IMX323_i2c_dc   | XM         |              | BLK16CV-0323-38X38-V1.01       | yes    | | ||||
| | Hi3516Cv200 | IMX323_i2c_dc   | JVT        | S323H16VF    | IPS323-H16V-38X38-V2           | yes    | | ||||
| | Hi3516Cv200 | IMX323_i2c_mipi | XM         |              |                                | ?      | | ||||
| | Hi3518Ev200 | AR0130_i2c_dc   | XM         |              | BLK18EV-0732-0035-38X38-V1.01  | yes    | | ||||
| | Hi3518Ev200 | JXF22_i2c_dc    | XM         |              | BLK18EV-0002-2035-38X38-V1.01  | yes    | | ||||
| | Hi3518Ev200 | JXF22_i2c_dc    | XM         |              | BLK18EV-0022-0130-38X38-V1.01  | yes    | | ||||
| | Hi3518Ev200 | OV2735_i2c_dc   | Dahua      | DH-IPC-C22P  | E305654 JX02 94V-0             | wip    | | ||||
| | Hi3518Ev200 | OV9732_         | XM         |              | BLK18EV-0732-0035-38X38-V1.01  | yes    | | ||||
| | Hi3518Ev200 | OV9732_i2c_dc   | Longse/HS  | LS-IP100/40  | 3518EV200-OV9732-V1.0          | yes    | | ||||
| | Hi3518Ev200 | OV9732_i2c_dc   | Rostelecom | QVC-IPC-136W | E305654 JX02 94V-0             | wip    | | ||||
| | Hi3518Ev200 | SC2135_i2c_dc   | XM         |              | BLK18EV-0035-0042-38X38_S-V1.01| yes    | | ||||
| | Hi3518Ev200 | SC2235_i2c_dc   | XM         |              | BLK18EV-0235-38X38-B-V1.01     | yes    | | ||||
| |             |                 |            |              |                                |        | | ||||
| | Hi3516Cv300 | AR0237_i2c_dc   | XM         |              | BLK16CV3-0237P-38X38-S-V1.01   | yes    | | ||||
| | Hi3516Cv300 | IMX307_i2c_lvds | Raysharp   |              | RS-CM-188D 2018-03-16 E150111  | yes    | | ||||
| | Hi3516Cv300 | IMX323_i2c_dc   | Longse/HS  |              | HI3516CV300-IMX323-POE-TF V1.1 | yes    | | ||||
| | Hi3516Cv300 | IMX323_i2c_dc   | Sunywo     | ZB6323       | IPG5020A-T-N6-V0.1             | yes    | | ||||
| | Hi3516Cv300 | IMX323_i2c_dc   | XM         |              | [IVG-HP201Y-AE](https://aliexpress.com/item/32851596596.html)             | yes    | | ||||
| | Hi3516Cv300 | IMX291_i2c_lvds | XM         |              | [IVG-HP203Y-AE](https://aliexpress.com/item/1005002315913099.html)             | yes    | | ||||
| | Hi3516Cv300 | IMX323_spi_dc   | JVT        | S323H16XF    | IPS323-H16X-38X38-V2/V3        | yes    | | ||||
| | Hi3516Cv300 | JXF22_i2c_dc    | XM         |              | BLK16CV3-0022-38X38-S-V1.01    | yes    | | ||||
| | Hi3516Ev100 | IMX323_i2c_dc   | XM         |              | BLK16E-0323-38X38-B-V1.01      | yes    | | ||||
| | Hi3516Ev100 | SC2235P_i2c_dc  | XM         | 80HE20PS-S   | BLK16E-0235-38X38-S-V2.03      | yes    | | ||||
| 
 | ||||
| #### OpenIPC 2.1 (Buildroot based) | ||||
| 
 | ||||
| | Processor   | Sensor          | Vendor     | SKU          | Board                          | Status | | ||||
| |-------------|-----------------|------------|--------------|--------------------------------|--------| | ||||
| | Hi3516Ev200 | IMX307_i2c_mipi | XM         |              | [IVG-85HF20PY-S](https://aliexpress.com/item/1005002298832047.html) |  yes   | | ||||
| | Hi3516Ev200 | SC4239P_i2c_mipi | XM        |              | [IVG-85HF30PS-S](https://aliexpress.com/item/4000119561119.html)               |  yes   | | ||||
| | Hi3516Ev300 | IMX335_i2c_mipi | XM         |              | [IVG-85HG50PYA-S](https://aliexpress.com/item/4000054902736.html)  | yes | | ||||
| | SSC335      | SC3335          |            |              | [Uniview](https://aliexpress.com/item/1005001933429701.html)  | yes | | ||||
| 
 | ||||
| More information about sensors (translated from Russian automatically) - [https://cctvsp.ru](https://translate.google.com/translate?sl=ru&tl=en&u=https://www.cctvsp.ru/articles/obzor-i-sravnenie-matrits-dlya-kamer-videonablyudeniya) | ||||
| 
 | ||||
| 
 | ||||
| ### Web interface | ||||
| 
 | ||||
| * [http://192.168.1.10](http://192.168.1.10) - Standard system interface based on OpenWrt Luci | ||||
| 
 | ||||
| ### Majestic streamer | ||||
| 
 | ||||
| Majestic is a video streaming application, the heart of our firmware (in | ||||
| relation to camera/video surveillance functionality). It's configurable | ||||
| via file `/etc/majestic.yaml` and by default has many features/services | ||||
| enabled. Unneded options can be turned off for better security and | ||||
| performance. | ||||
| 
 | ||||
| To run `majestic` in debug mode: | ||||
| 
 | ||||
| ``` | ||||
| killall -sigint majestic; export SENSOR=$(ipctool --sensor_id); majestic | ||||
| ``` | ||||
| 
 | ||||
| To run `majestic` in production mode restart the camera or run command: | ||||
| 
 | ||||
| ``` | ||||
| killall -sigint majestic; export SENSOR=$(ipctool --sensor_id); majestic 2>&1 | logger -p daemon.info -t majestic & | ||||
| ``` | ||||
| 
 | ||||
| ### Camera related URLs in firmware | ||||
| 
 | ||||
| 
 | ||||
| Information on the streamer URL's and their description can be found in the [Wiki](https://github.com/OpenIPC/openipc-2.1/wiki/majestic_streamer) | ||||
| 
 | ||||
| 
 | ||||
| ### Statistical data | ||||
| 
 | ||||
| Software might do product usage data collection including SoC and sensor model name to gather statistics used in QA process. | ||||
| 
 | ||||
| We guaranty that the data is fully anonymized, and does not contain anything that can arguably be considered data about an individual, that could be considered end-user data; or that could be sensitive or confidential to users. | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ## Getting firmware | ||||
| 
 | ||||
| ### Downloads (latest dev) | ||||
| 
 | ||||
| | Building status |    SoC    | U-Boot | Kernel | Rootfs | | ||||
| |-----------------|-----------|--------|--------|--------| | ||||
| ||Hi3516CV100|[uboot](https://github.com/OpenIPC/chaos_calmer/releases/download/latest/openwrt-hi35xx-16cv100-u-boot.bin)|[kernel](https://github.com/OpenIPC/chaos_calmer/releases/download/latest/openwrt-hi35xx-16cv100-default-uImage)|[rootfs](https://github.com/OpenIPC/chaos_calmer/releases/download/latest/openwrt-hi35xx-16cv100-default-root.squashfs) | ||||
| ||Hi3516CV200|[uboot](https://github.com/OpenIPC/chaos_calmer/releases/download/latest/openwrt-hi35xx-16cv200-u-boot.bin)|[kernel](https://github.com/OpenIPC/chaos_calmer/releases/download/latest/openwrt-hi35xx-16cv200-default-uImage)|[rootfs](https://github.com/OpenIPC/chaos_calmer/releases/download/latest/openwrt-hi35xx-16cv200-default-root.squashfs) | ||||
| ||Hi3516CV300|[uboot](https://github.com/OpenIPC/chaos_calmer/releases/download/latest/openwrt-hi35xx-16cv300-u-boot.bin)|[kernel](https://github.com/OpenIPC/chaos_calmer/releases/download/latest/openwrt-hi35xx-16cv300-default-uImage)|[rootfs](https://github.com/OpenIPC/chaos_calmer/releases/download/latest/openwrt-hi35xx-16cv300-default-root.squashfs) | ||||
| ||Hi3516EV100|[uboot](https://github.com/OpenIPC/chaos_calmer/releases/download/latest/openwrt-hi35xx-16ev100-u-boot.bin)|[kernel](https://github.com/OpenIPC/chaos_calmer/releases/download/latest/openwrt-hi35xx-16ev100-default-uImage)|[rootfs](https://github.com/OpenIPC/chaos_calmer/releases/download/latest/openwrt-hi35xx-16ev100-default-root.squashfs) | ||||
| ||Hi3518AV100|[uboot](https://github.com/OpenIPC/chaos_calmer/releases/download/latest/openwrt-hi35xx-18av100-u-boot.bin)|[kernel](https://github.com/OpenIPC/chaos_calmer/releases/download/latest/openwrt-hi35xx-18av100-default-uImage)|[rootfs](https://github.com/OpenIPC/chaos_calmer/releases/download/latest/openwrt-hi35xx-18av100-default-root.squashfs) | ||||
| ||Hi3518CV100|[uboot](https://github.com/OpenIPC/chaos_calmer/releases/download/latest/openwrt-hi35xx-18cv100-u-boot.bin)|[kernel](https://github.com/OpenIPC/chaos_calmer/releases/download/latest/openwrt-hi35xx-18cv100-default-uImage)|[rootfs](https://github.com/OpenIPC/chaos_calmer/releases/download/latest/openwrt-hi35xx-18cv100-default-root.squashfs) | ||||
| ||Hi3518EV100|[uboot](https://github.com/OpenIPC/chaos_calmer/releases/download/latest/openwrt-hi35xx-18ev100-u-boot.bin)|[kernel](https://github.com/OpenIPC/chaos_calmer/releases/download/latest/openwrt-hi35xx-18ev100-default-uImage)|[rootfs](https://github.com/OpenIPC/chaos_calmer/releases/download/latest/openwrt-hi35xx-18ev100-default-root.squashfs) | ||||
| ||Hi3518EV200|[uboot](https://github.com/OpenIPC/chaos_calmer/releases/download/latest/openwrt-hi35xx-18ev200-u-boot.bin)|[kernel](https://github.com/OpenIPC/chaos_calmer/releases/download/latest/openwrt-hi35xx-18ev200-default-uImage)|[rootfs](https://github.com/OpenIPC/chaos_calmer/releases/download/latest/openwrt-hi35xx-18ev200-default-root.squashfs) | ||||
| ||Hi3518EV201|[uboot](https://github.com/OpenIPC/chaos_calmer/releases/download/latest/openwrt-hi35xx-18ev201-u-boot.bin)|[kernel](https://github.com/OpenIPC/chaos_calmer/releases/download/latest/openwrt-hi35xx-18ev201-default-uImage)|[rootfs](https://github.com/OpenIPC/chaos_calmer/releases/download/latest/openwrt-hi35xx-18ev201-default-root.squashfs) | ||||
| ||Hi3520DV100| ! |[kernel](https://github.com/OpenIPC/chaos_calmer/releases/download/latest/openwrt-hi35xx-20dv100-default-uImage)|[rootfs](https://github.com/OpenIPC/chaos_calmer/releases/download/latest/openwrt-hi35xx-20dv100-default-root.squashfs) | ||||
| ||Hi3520DV200| ! |[kernel](https://github.com/OpenIPC/chaos_calmer/releases/download/latest/openwrt-hi35xx-20dv200-default-uImage)|[rootfs](https://github.com/OpenIPC/chaos_calmer/releases/download/latest/openwrt-hi35xx-20dv200-default-root.squashfs) | ||||
| 
 | ||||
| 
 | ||||
| ### Releases | ||||
| 
 | ||||
| The **releases** of the OpenIPC firmware is hosted at https://github.com/OpenIPC/chaos_calmer/releases | ||||
| 
 | ||||
| ### Source code | ||||
| 
 | ||||
| The **source code** of the OpenIPC firmware is hosted at https://github.com/openipc/chaos_calmer | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ## Building from source | ||||
| 
 | ||||
| ### Build on Linux machine | ||||
| 
 | ||||
| Usage example for Debian 8/9 | ||||
| 
 | ||||
| ```bash | ||||
| git clone --depth=1 https://github.com/OpenIPC/chaos_calmer.git OpenIPC | ||||
| cd OpenIPC | ||||
| ./Project_OpenIPC.sh update | ||||
| ./Project_OpenIPC.sh 16cv300_DEFAULT | ||||
| ``` | ||||
| 
 | ||||
| ### Use Docker for building | ||||
| 
 | ||||
| **Default Dockerfile.openipc** | ||||
| 
 | ||||
| ```docker | ||||
| FROM debian:stretch | ||||
| 
 | ||||
| RUN DEBIAN_FRONTEND=noninteractive apt-get update \ | ||||
|     && apt-get --no-install-recommends -y install bc bison build-essential \ | ||||
|     ca-certificates cmake cpio curl dos2unix file flex gawk gcc-multilib \ | ||||
|     gettext gettext-base git intltool libc6-dev liblocale-gettext-perl \ | ||||
|     libncurses-dev libssl-dev locales mc openssl python rsync subversion \ | ||||
|     time tofrodos unzip upx wget zlib1g-dev \ | ||||
|     && localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias \ | ||||
|     en_US.UTF-8 && rm -rf /var/lib/apt/lists/* | ||||
| 
 | ||||
| ENV LANG en_US.utf8 | ||||
| 
 | ||||
| WORKDIR /src/openipc | ||||
| 
 | ||||
| RUN git clone --depth=1 https://github.com/OpenIPC/chaos_calmer.git /src/openipc | ||||
| RUN ./Project_OpenIPC.sh update | ||||
| RUN ./Project_OpenIPC.sh 18ev200_DEFAULT  # <= Change this ID to you profile | ||||
| ``` | ||||
| 
 | ||||
| **Start building** | ||||
| 
 | ||||
| ```bash | ||||
| #!/bin/bash | ||||
| 
 | ||||
| docker build -t openipc -f Dockerfile.openipc . | ||||
| ``` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ## Preparing to install | ||||
| 
 | ||||
| ### Get access to U-boot | ||||
| 
 | ||||
| Serial (UART) connection to your camera device is required. | ||||
| 
 | ||||
| * CamHi | Press **Ctrl+C** in U-boot start and access password - HI2105CHIP | ||||
| * Dahua | Press **Shift 8** in U-boot start | ||||
| * JVT | Press **Ctrl+Q** in U-boot start | ||||
| * XM | Press **Ctrl+C** in U-boot start | ||||
| * SigmaStar | Press **Ctrl+B** (UNIV) or **Enter** (Anjvision) in U-boot start | ||||
| 
 | ||||
| 
 | ||||
| ### Backup original MAC | ||||
| 
 | ||||
| You should definitely write the original MAC of your device on the eth0 port. | ||||
| 
 | ||||
| This is **important** and will be necessary at the final stage of device configuration. | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ### Backup original firmware | ||||
| 
 | ||||
| #### 8M Flash | ||||
| 
 | ||||
| ```txt | ||||
| setenv ipaddr 192.168.1.10 | ||||
| setenv serverip 192.168.1.254 | ||||
| sf probe 0 | ||||
| mw.b 0x82000000 ff 1000000 | ||||
| sf read 0x82000000 0x0 0x800000 | ||||
| tftp 0x82000000 fullflash.img 0x800000 | ||||
| ``` | ||||
| 
 | ||||
| #### 16M Flash | ||||
| 
 | ||||
| ```txt | ||||
| setenv ipaddr 192.168.1.10 | ||||
| setenv serverip 192.168.1.254 | ||||
| sf probe 0 | ||||
| mw.b 0x82000000 ff 1000000 | ||||
| sf read 0x82000000 0x0 0x1000000 | ||||
| tftp 0x82000000 fullflash.img 0x1000000 | ||||
| ``` | ||||
| 
 | ||||
| #### 32M Flash | ||||
| 
 | ||||
| ```txt | ||||
| setenv ipaddr 192.168.1.10 | ||||
| setenv serverip 192.168.1.254 | ||||
| sf probe 0 | ||||
| mw.b 0x82000000 ff 2000000 | ||||
| sf read 0x82000000 0x0 0x2000000 | ||||
| tftp 0x82000000 fullflash.img 0x2000000 | ||||
| ``` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ### Flash and memory layout | ||||
| 
 | ||||
| We have developed a universal partition system for camera flash chips | ||||
| and it is now available as standard for all types of devices. (Note | ||||
| that it means it likely doesn't match vendor flash layout.) | ||||
| 
 | ||||
| #### OpenIPC flash layout | ||||
| 
 | ||||
| ```txt | ||||
| 0x000000000000-0x000000040000 : "boot" | ||||
| 0x000000040000-0x000000050000 : "env" | ||||
| 0x000000050000-0x000000250000 : "kernel" | ||||
| 0x000000250000-0x000000750000 : "rootfs" | ||||
| 0x000000750000-0x000001000000 : "rootfs_data" | ||||
| ``` | ||||
| 
 | ||||
| #### Kernel Memory Load Addresses | ||||
| 
 | ||||
| ```txt | ||||
| loadaddr-$(CONFIG_TARGET_hi35xx_16cv100) := 0x80008000 | ||||
| loadaddr-$(CONFIG_TARGET_hi35xx_16cv200) := 0x80008000 | ||||
| loadaddr-$(CONFIG_TARGET_hi35xx_16cv300) := 0x80008000 | ||||
| loadaddr-$(CONFIG_TARGET_hi35xx_16dv100) := 0x80008000 | ||||
| loadaddr-$(CONFIG_TARGET_hi35xx_16ev100) := 0x80008000 | ||||
| loadaddr-$(CONFIG_TARGET_hi35xx_16ev200) := 0x40008000 | ||||
| loadaddr-$(CONFIG_TARGET_hi35xx_16ev300) := 0x40008000 | ||||
| loadaddr-$(CONFIG_TARGET_hi35xx_18cv100) := 0x80008000 | ||||
| loadaddr-$(CONFIG_TARGET_hi35xx_18ev100) := 0x80008000 | ||||
| loadaddr-$(CONFIG_TARGET_hi35xx_18ev200) := 0x80008000 | ||||
| loadaddr-$(CONFIG_TARGET_hi35xx_18ev201) := 0x80008000 | ||||
| loadaddr-$(CONFIG_TARGET_hi35xx_18ev300) := 0x40008000 | ||||
| loadaddr-$(CONFIG_TARGET_hi35xx_20dv100) := 0x80008000 | ||||
| loadaddr-$(CONFIG_TARGET_hi35xx_20dv200) := 0x80008000 | ||||
| ``` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ## Flashing new firmware | ||||
| 
 | ||||
| **Attention !** | ||||
| 
 | ||||
| All examples indicate the download of firmware components via the TFTP server.  | ||||
| If your device does not have an Ethernet port, replace in all lines the **tftp** command everywhere with **fatload mmc 0:1** For example: | ||||
| 
 | ||||
| ```txt | ||||
| tftp 0x82000000 openwrt-hi35xx-XXXXX-u-boot.bin | ||||
| # | ||||
| fatload mmc 0:1 0x82000000 openwrt-hi35xx-XXXXX-u-boot.bin | ||||
| ``` | ||||
| 
 | ||||
| 
 | ||||
| ### Hi3516Cv100 | ||||
| 
 | ||||
| **This type of board has additional Ethernet control systems via GPIO and registers. Consult with experts !** | ||||
| 
 | ||||
| **Experimental devices:** | ||||
| 
 | ||||
| * 00:12:16:FA:F3:52 | ||||
| * 00:12:12:10:31:54 - BLK18C_0222_38x38_S_v1.03 | ||||
| 
 | ||||
| ```txt | ||||
| setenv ipaddr 192.168.1.10 | ||||
| setenv serverip 192.168.1.254 | ||||
| sf probe 0; sf lock 0 | ||||
| 
 | ||||
| mw.b 0x82000000 ff 1000000 | ||||
| tftp 0x82000000 openwrt-hi35xx-16cv100-u-boot.bin | ||||
| sf erase 0x0 0x50000 | ||||
| sf write 0x82000000 0x0 ${filesize} | ||||
| 
 | ||||
| mw.b 0x82000000 ff 1000000 | ||||
| tftp 0x82000000 openwrt-hi35xx-16cv100-default-uImage | ||||
| sf erase 0x50000 0x200000 | ||||
| sf write 0x82000000 0x50000 ${filesize} | ||||
| 
 | ||||
| mw.b 0x82000000 ff 1000000 | ||||
| tftp 0x82000000 openwrt-hi35xx-16cv100-default-root.squashfs | ||||
| sf erase 0x250000 0x500000 | ||||
| sf write 0x82000000 0x250000 ${filesize} | ||||
| ``` | ||||
| 
 | ||||
| ### Hi3516Cv200 | ||||
| 
 | ||||
| ```txt | ||||
| setenv ipaddr 192.168.1.10 | ||||
| setenv serverip 192.168.1.254 | ||||
| sf probe 0; sf lock 0 | ||||
| 
 | ||||
| mw.b 0x82000000 ff 1000000 | ||||
| tftp 0x82000000 openwrt-hi35xx-16cv200-u-boot.bin | ||||
| sf erase 0x0 0x50000 | ||||
| sf write 0x82000000 0x0 ${filesize} | ||||
| 
 | ||||
| mw.b 0x82000000 ff 1000000 | ||||
| tftp 0x82000000 openwrt-hi35xx-16cv200-default-uImage | ||||
| sf erase 0x50000 0x200000 | ||||
| sf write 0x82000000 0x50000 ${filesize} | ||||
| 
 | ||||
| mw.b 0x82000000 ff 1000000 | ||||
| tftp 0x82000000 openwrt-hi35xx-16cv200-default-root.squashfs | ||||
| sf erase 0x250000 0x500000 | ||||
| sf write 0x82000000 0x250000 ${filesize} | ||||
| ``` | ||||
| 
 | ||||
| ### Hi3516Cv300 | ||||
| 
 | ||||
| ```txt | ||||
| setenv ipaddr 192.168.1.10 | ||||
| setenv serverip 192.168.1.254 | ||||
| sf probe 0; sf lock 0 | ||||
| 
 | ||||
| mw.b 0x82000000 ff 1000000 | ||||
| tftp 0x82000000 openwrt-hi35xx-16cv300-u-boot.bin | ||||
| sf erase 0x0 0x50000 | ||||
| sf write 0x82000000 0x0 ${filesize} | ||||
| 
 | ||||
| mw.b 0x82000000 ff 1000000 | ||||
| tftp 0x82000000 openwrt-hi35xx-16cv300-default-uImage | ||||
| sf erase 0x50000 0x200000 | ||||
| sf write 0x82000000 0x50000 ${filesize} | ||||
| 
 | ||||
| mw.b 0x82000000 ff 1000000 | ||||
| tftp 0x82000000 openwrt-hi35xx-16cv300-default-root.squashfs | ||||
| sf erase 0x250000 0x500000 | ||||
| sf write 0x82000000 0x250000 ${filesize} | ||||
| ``` | ||||
| 
 | ||||
| ### Hi3516Ev100 | ||||
| 
 | ||||
| **Experimental devices:** | ||||
| 
 | ||||
| * 00:12:13:02:d7:2c | ||||
| 
 | ||||
| ```txt | ||||
| setenv ipaddr 192.168.1.10 | ||||
| setenv serverip 192.168.1.254 | ||||
| sf probe 0; sf lock 0 | ||||
| 
 | ||||
| mw.b 0x82000000 ff 1000000 | ||||
| tftp 0x82000000 openwrt-hi35xx-16ev100-u-boot.bin | ||||
| sf erase 0x0 0x50000 | ||||
| sf write 0x82000000 0x0 ${filesize} | ||||
| 
 | ||||
| mw.b 0x82000000 ff 1000000 | ||||
| tftp 0x82000000 openwrt-hi35xx-16cv300-default-uImage | ||||
| sf erase 0x50000 0x200000 | ||||
| sf write 0x82000000 0x50000 ${filesize} | ||||
| 
 | ||||
| mw.b 0x82000000 ff 1000000 | ||||
| tftp 0x82000000 openwrt-hi35xx-16cv300-default-root.squashfs | ||||
| sf erase 0x250000 0x500000 | ||||
| sf write 0x82000000 0x250000 ${filesize} | ||||
| ``` | ||||
| 
 | ||||
| ### Hi3518Cv100 | ||||
| 
 | ||||
| **This type of board has additional Ethernet control systems via GPIO and registers. Consult with experts !** | ||||
| 
 | ||||
| ```txt | ||||
| setenv ipaddr 192.168.1.10 | ||||
| setenv serverip 192.168.1.254 | ||||
| sf probe 0; sf lock 0 | ||||
| 
 | ||||
| mw.b 0x82000000 ff 1000000 | ||||
| tftp 0x82000000 openwrt-hi35xx-18cv100-u-boot.bin | ||||
| sf erase 0x0 0x50000 | ||||
| sf write 0x82000000 0x0 ${filesize} | ||||
| 
 | ||||
| mw.b 0x82000000 ff 1000000 | ||||
| tftp 0x82000000 openwrt-hi35xx-16cv100-default-uImage | ||||
| sf erase 0x50000 0x200000 | ||||
| sf write 0x82000000 0x50000 ${filesize} | ||||
| 
 | ||||
| mw.b 0x82000000 ff 1000000 | ||||
| tftp 0x82000000 openwrt-hi35xx-16cv100-default-root.squashfs | ||||
| sf erase 0x250000 0x500000 | ||||
| sf write 0x82000000 0x250000 ${filesize} | ||||
| ``` | ||||
| 
 | ||||
| ### Hi3518Ev100 | ||||
| 
 | ||||
| **This type of board has additional Ethernet control systems via GPIO and registers. Consult with experts !** | ||||
| 
 | ||||
| ```txt | ||||
| setenv ipaddr 192.168.1.10 | ||||
| setenv serverip 192.168.1.254 | ||||
| sf probe 0; sf lock 0 | ||||
| 
 | ||||
| mw.b 0x82000000 ff 1000000 | ||||
| tftp 0x82000000 openwrt-hi35xx-18ev100-u-boot.bin | ||||
| sf erase 0x0 0x50000 | ||||
| sf write 0x82000000 0x0 ${filesize} | ||||
| 
 | ||||
| mw.b 0x82000000 ff 1000000 | ||||
| tftp 0x82000000 openwrt-hi35xx-18ev100-default-uImage | ||||
| sf erase 0x50000 0x200000 | ||||
| sf write 0x82000000 0x50000 ${filesize} | ||||
| 
 | ||||
| mw.b 0x82000000 ff 1000000 | ||||
| tftp 0x82000000 openwrt-hi35xx-18ev100-default-root.squashfs | ||||
| sf erase 0x250000 0x500000 | ||||
| sf write 0x82000000 0x250000 ${filesize} | ||||
| ``` | ||||
| 
 | ||||
| ### Hi3518Ev200 | ||||
| 
 | ||||
| ```txt | ||||
| setenv ipaddr 192.168.1.10 | ||||
| setenv serverip 192.168.1.254 | ||||
| sf probe 0; sf lock 0 | ||||
| 
 | ||||
| mw.b 0x82000000 ff 1000000 | ||||
| tftp 0x82000000 openwrt-hi35xx-18ev200-u-boot.bin | ||||
| sf erase 0x0 0x50000 | ||||
| sf write 0x82000000 0x0 ${filesize} | ||||
| 
 | ||||
| mw.b 0x82000000 ff 1000000 | ||||
| tftp 0x82000000 openwrt-hi35xx-18ev200-default-uImage | ||||
| sf erase 0x50000 0x200000 | ||||
| sf write 0x82000000 0x50000 ${filesize} | ||||
| 
 | ||||
| mw.b 0x82000000 ff 1000000 | ||||
| tftp 0x82000000 openwrt-hi35xx-18ev200-default-root.squashfs | ||||
| sf erase 0x250000 0x500000 | ||||
| sf write 0x82000000 0x250000 ${filesize} | ||||
| ``` | ||||
| 
 | ||||
| ### Hi3520Dv100 | ||||
| 
 | ||||
| ```txt | ||||
| setenv ipaddr 192.168.1.10 | ||||
| setenv serverip 192.168.1.254 | ||||
| sf probe 0; sf lock 0 | ||||
| 
 | ||||
| mw.b 0x82000000 ff 1000000 | ||||
| tftp 0x82000000 openwrt-hi35xx-20dv100-experimental-u-boot.bin | ||||
| sf erase 0x0 0x50000 | ||||
| sf write 0x82000000 0x0 ${filesize} | ||||
| 
 | ||||
| mw.b 0x82000000 ff 1000000 | ||||
| tftp 0x82000000 openwrt-hi35xx-20dv100-default-uImage | ||||
| sf erase 0x50000 0x200000 | ||||
| sf write 0x82000000 0x50000 ${filesize} | ||||
| 
 | ||||
| mw.b 0x82000000 ff 1000000 | ||||
| tftp 0x82000000 openwrt-hi35xx-20dv100-default-root.squashfs | ||||
| sf erase 0x250000 0x500000 | ||||
| sf write 0x82000000 0x250000 ${filesize} | ||||
| ``` | ||||
| 
 | ||||
| ### Hi3520Dv200 | ||||
| 
 | ||||
| ```txt | ||||
| setenv ipaddr 192.168.1.10 | ||||
| setenv serverip 192.168.1.254 | ||||
| sf probe 0; sf lock 0 | ||||
| 
 | ||||
| mw.b 0x82000000 ff 1000000 | ||||
| tftp 0x82000000 openwrt-hi35xx-20dv200-experimental-u-boot.bin | ||||
| sf erase 0x0 0x50000 | ||||
| sf write 0x82000000 0x0 ${filesize} | ||||
| 
 | ||||
| mw.b 0x82000000 ff 1000000 | ||||
| tftp 0x82000000 openwrt-hi35xx-20dv200-default-uImage | ||||
| sf erase 0x50000 0x200000 | ||||
| sf write 0x82000000 0x50000 ${filesize} | ||||
| 
 | ||||
| mw.b 0x82000000 ff 1000000 | ||||
| tftp 0x82000000 openwrt-hi35xx-20dv200-default-root.squashfs | ||||
| sf erase 0x250000 0x500000 | ||||
| sf write 0x82000000 0x250000 ${filesize} | ||||
| ``` | ||||
| 
 | ||||
| 
 | ||||
| ## Updating parts of the firmware | ||||
| 
 | ||||
| If you already have OpenIPC firmware installed, you can update individual | ||||
| flash partitions from shell command line: | ||||
| 
 | ||||
| ### Update u-boot | ||||
| 
 | ||||
| ```bash | ||||
| flashcp -v openwrt-hi35xx-XXXXX-u-boot.bin boot | ||||
| ``` | ||||
| 
 | ||||
| **or** | ||||
| 
 | ||||
| ```bash | ||||
| flashcp -v openwrt-hi35xx-XXXXX-u-boot.bin /dev/mtd0 | ||||
| ``` | ||||
| 
 | ||||
| ### Update kernel | ||||
| 
 | ||||
| ```bash | ||||
| flashcp -v openwrt-hi35xx-XXXXX-default-uImage kernel | ||||
| ``` | ||||
| 
 | ||||
| ### Update rootfs | ||||
| 
 | ||||
| ```bash | ||||
| flashcp -v openwrt-hi35xx-XXXXX-default-root.squashfs rootfs | ||||
| ``` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ## Configuring system after installation | ||||
| 
 | ||||
| 
 | ||||
| ### Format overlayfs partition | ||||
| 
 | ||||
| **Must be executed on first run** | ||||
| 
 | ||||
| ```txt | ||||
| flash_eraseall -j /dev/$(awk -F ':' '/rootfs_data/ {print $1}' /proc/mtd) | ||||
| reboot | ||||
| ``` | ||||
| 
 | ||||
| 
 | ||||
| ### Installing the original MAC | ||||
| 
 | ||||
| **U-boot ENV and Linux UCI** | ||||
| 
 | ||||
| ```txt | ||||
| fw_setenv ethaddr 00:01:02:03:04:05 | ||||
| uci set network.lan.macaddr=00:01:02:03:04:05 | ||||
| uci commit | ||||
| ``` | ||||
| 
 | ||||
| 
 | ||||
| ### Installing the correct sensor | ||||
| 
 | ||||
| **Specify your correct sensor, control type, and data bus** | ||||
| 
 | ||||
| ```txt | ||||
| fw_setenv sensor imx291_i2c_lvds | ||||
| ``` | ||||
| 
 | ||||
| 
 | ||||
| ## Resetting configuration | ||||
| 
 | ||||
| If something went wrong, you can reset configuration to defaults. | ||||
| 
 | ||||
| ### Clean overlayfs (reset) | ||||
| 
 | ||||
| **Restore to default Linux settings** | ||||
| 
 | ||||
| ```txt | ||||
| firstboot | ||||
| reboot | ||||
| ``` | ||||
| 
 | ||||
| 
 | ||||
| ### Clean u-boot env | ||||
| 
 | ||||
| **Restore to default u-boot env** | ||||
| 
 | ||||
| ```txt | ||||
| flash_eraseall -j /dev/$(awk -F ':' '/env/ {print $1}' /proc/mtd) | ||||
| reboot | ||||
| ``` | ||||
| 
 | ||||
| ### Recover backup firmware | ||||
| 
 | ||||
| If something goes horribly wrong and you want back your backed up firmware | ||||
| 
 | ||||
| **Restore backup up firmware via serial** | ||||
| 
 | ||||
| 
 | ||||
| Install kermit using instructions [**here**](https://glasstty.com/?p=662) or similar. | ||||
| Here are the sample commands for 8MB Flash | ||||
| ``` | ||||
| kermit | ||||
| Linux Kermit> CONNECT | ||||
| Connecting to /dev/ttyUSB0, speed 115200 | ||||
|  Escape character: Ctrl-\ (ASCII 28, FS): enabled | ||||
| Type the escape character followed by C to get back,  | ||||
| or followed by ? to see other options. | ||||
| ---------------------------------------------------- | ||||
| ## Total Size      = 0x002fb3f1 = 3126257 Bytes | ||||
| ## Start Addr      = 0x82000000 | ||||
| OpenIPC # sf probe 0 | ||||
| 8192 KiB hi_sfc at 0:0 is now current device | ||||
| OpenIPC # mw.b 0x82000000 ff 1000000 | ||||
| OpenIPC # loadb 0x82000000 | ||||
| ## Ready for binary (kermit) download to 0x82000000 at 115200 bps... | ||||
| 
 | ||||
| (Back at alex-B85M-D3H) | ||||
| ---------------------------------------------------- | ||||
| Linux Kermit> SEND /srv/tftp/fullflash.img | ||||
| Linux Kermit> CONNECT | ||||
| Connecting to /dev/ttyUSB0, speed 115200 | ||||
|  Escape character: Ctrl-\ (ASCII 28, FS): enabled | ||||
| Type the escape character followed by C to get back, | ||||
| or followed by ? to see other options. | ||||
| ---------------------------------------------------- | ||||
| ## Total Size      = 0x00800000 = 8388608 Bytes | ||||
| ## Start Addr      = 0x82000000 | ||||
| OpenIPC # sf erase 0x0 0x00800000 | ||||
| Erasing at 0x800000 -- 100% complete. | ||||
| OpenIPC # sf write 0x82000000 0x0 ${filesize} | ||||
| Writing at 0x800000 -- 100% complete. | ||||
| OpenIPC #  | ||||
| ``` | ||||
| **Restore backup up firmware via TFTP** | ||||
| 
 | ||||
| Here are the commands for 8MB Flash | ||||
| 
 | ||||
| ``` | ||||
| setenv ipaddr 192.168.1.10 | ||||
| setenv serverip 192.168.1.254 | ||||
| sf probe 0; sf lock 0 | ||||
| 
 | ||||
| mw.b 0x82000000 ff 1000000 | ||||
| tftp 0x82000000 fullflash.img | ||||
| sf erase 0x0 0x00800000 | ||||
| sf write 0x82000000 0x0 ${filesize} | ||||
| ``` | ||||
| 
 | ||||
| 
 | ||||
| ## Reference Book | ||||
| 
 | ||||
| To be written... | ||||
| 
 | ||||
| ### Vendors | ||||
| 
 | ||||
| * [**ACTi**](https://www.acti.com/) | ||||
| * [**Anjvision**](http://www.anjvision.com/) | http://icamra.cn/ | ||||
| * [**Ansjer / ZOSI**](https://www.ansjer.com/) | ||||
| * [**Anviz**](http://www.anviz.com) | ||||
| * [**Brovotech**](https://brovotech.com/) | ||||
| * [**Camasmart / Filsion**](http://www.camasmart.com) | ||||
| * [**Cantonk**](http://cantonk.com/) | ||||
| * [**CCDCAM**](http://www.ccdcam.com), maybe a trading house... | ||||
| * [**FSAN**](http://www.fsan.cn/) | ||||
| * [**Herospeed / Longse**](http://www.herospeed.net/en/index.php?m=content&c=index&a=lists&catid=11) | ||||
| * http://www.ipcam.xin/ | ||||
| * [**Jovision**](http://www.jovision.com/) | ||||
| * http://www.jvt.cc/English/about.html | ||||
| * [**LENOTEL**](http://www.lenoteltechnology.com/), maybe a trading house... | ||||
| * [**Longse / Herospeed**](http://www.longse.com/) | ||||
| * [**Milesight**](http://www.milesight.com/product/product_menu) | ||||
| * [**Raysharp**](http://raysharp.cn/en/index.html) | ||||
| * [**Ruision**](http://www.ruision.com/col/70560?lang=en) | ||||
| * [**Safer**](http://www.safer.net.cn/), maybe a hardware assembler... | ||||
| * http://www.sunywo.com/cn/index.shtml | ||||
| * [**Tiandy**](http://en.tiandy.com/) | ||||
| * [**Topsee**](http://www.en.tpsee.com/) | ||||
| * [**TVT**](http://www.tvt.net.cn/) | ||||
| * [**UNIVIEW**](http://uniview.com) | ||||
| * [**VandSec / Yoosee**](http://vandsec.com/), maybe a trading house... | ||||
| * [**VStarcam**](http://www.vstarcam.com), maybe a trading house... | ||||
| * [**Wansview**](http://wansview.com) | ||||
| * [**XM**](http://www.xiongmaitech.com/en/index.php) | ||||
| * [**Z-BEN**](http://www.z-ben.cn), maybe a trading house... | ||||
| * [**ZOSI / Ansjer**](https://www.zositech.com/) | ||||
		Loading…
	
		Reference in New Issue