Skip to content

Experiments with OpenWrt + Hi35xx and other SoC's

License

Notifications You must be signed in to change notification settings

ZigFisher/openipc-1.0

 
 

Repository files navigation

OpenIPC v1.0 (stable, OpenWrt based)

Alternative firmware for IP cameras based on the HiSilicon (and other) SoC's

More information about project on our website openipc.org

CI status GitHub repo size GitHub issues GitHub pull requests License


Supporting

If you like our work, please consider supporting us on Opencollective or PayPal or YooMoney.

Backers Backers

Backers

Thanks a lot !!!

OpenCollective donate button PayPal donate button YooMoney donate button


Pre-built images

Latest development build

Building status SoC U-Boot Kernel Rootfs Maintainer
Hi3516Cv100 images Hi3516CV100 uboot kernel rootfs IZ+SS+DI
Hi3516Cv200 images Hi3516CV200 uboot kernel rootfs IZ
Hi3516Cv300 images Hi3516CV300 uboot kernel rootfs IZ+DI
Hi3516Ev100 images Hi3516EV100 uboot kernel rootfs IZ+DI
Hi3518Av100 images Hi3518AV100 uboot kernel rootfs IZ+SS+DI
Hi3518Cv100 images Hi3518CV100 uboot kernel rootfs IZ+SS+DI
Hi3518Ev100 images Hi3518EV100 uboot kernel rootfs IZ+SS+DI
Hi3518Ev200 images Hi3518EV200 uboot kernel rootfs IZ
Hi3518Ev201 images Hi3518EV201 uboot kernel rootfs IZ

How to flash to target hardware

  1. Backup your original flash firmware (use TFTP or Telnet method whether you prefer)

  2. Download U-Boot, kernel and rootfs images to your TFTP server

  3. Flash U-Boot

sf probe 0 ; sf lock 0
mw.b 0x82000000 ff 0x50000
tftp 0x82000000 openwrt-hi35xx-16cv300-u-boot.bin
sf erase 0x0 0x50000
sf write ${fileaddr} 0x0 ${filesize}
reset
  1. Flash Linux kernel
sf probe 0 ; sf lock 0
mw.b 0x82000000 ff 0x200000
tftp 0x82000000 openwrt-hi35xx-16cv300-default-uImage
sf erase 0x50000 0x200000
sf write ${fileaddr} 0x50000 ${filesize}
  1. Flash rootfs
sf probe 0 ; sf lock 0
mw.b 0x82000000 ff 0x500000
tftp 0x82000000 openwrt-hi35xx-16cv300-default-root.squashfs
sf erase 0x250000 0x500000
sf write ${fileaddr} 0x250000 ${filesize}

Build manually

Build on Linux machine

Usage example for Debian (8 or 9)/Ubuntu

git clone --depth=1 https://github.com/OpenIPC/chaos_calmer.git OpenIPC
cd OpenIPC
./Project_OpenIPC.sh update
./Project_OpenIPC.sh 18ev200_zftlab_rotek

Ready to flash images will be located at bin/hi35xx/openwrt-hi35xx-*

Or use Docker for building

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

Commercial Support

Commercial support for OpenIPC is available.

Please contact OpenIPC Inc. to inquire further.

Languages

  • C 76.8%
  • Makefile 11.5%
  • Shell 4.8%
  • Assembly 2.2%
  • Roff 1.9%
  • Perl 1.5%
  • Other 1.3%