Skip to content

HI3516CV100 + IMX322 ethernet and majestic issues #1818

@Moose-Gaming

Description

@Moose-Gaming

Hi,

so I have just successfully installed OpenIPC on a chinese HI3516CV100 + IMX322. There are two problems that I have sort of found a solution to already but don't know how to make it work on boot.

Firstly, the IP101GR chip connection issues.
To fix this I need to add setenv extras hieth.mdioifu=0 hieth.mdioifd=0 hieth.phyaddru=1 hieth.phyaddrd=2 to U-Boot on startup and then run run bootcmd. After that I could access the camera no problem. The thing is that I need to do this every time the camera boots. I know that there's probably a simple way to make this run automatically, but I'm quite new to this ;).
I found this here.

Secondly, majestic issues.
I don't expect much from this camera - just a simple rtsp stream. However, after booting the stream cannot be accessed. When looking at the majestic logs in the WebUI, I get this:

majestic[761]: Majestic Lite for HiSilicon, version master+67ed493, built on 2025-05-09
majestic[761]: Detected Hisilicon Watchdog
majestic[761]: Watchdog timeout set to 300 seconds
majestic[761]: Set server path: /var/www
majestic[761]: HTTP server started on :::80
majestic[761]: Loading main configuration: /etc/majestic.yaml
majestic[761]: SENSOR=imx323
majestic[761]: matched sensor config: imx323_spi_dc_1080p.ini
majestic[761]: Using /etc/sensors/imx323_spi_dc_1080p.ini sensor configuration file
majestic[761]: App was built with MPP version: Hi3518_MPP_V1.0.B.0.
majestic[761]: Current MPP version: HI_VERSION=Hi3518_MPP_V1.0.B.0 
majestic[761]: sensor imx222
majestic[761]:   dev [1920x1080]@200x20 30fps, RGGB
majestic[761]: trying to load /usr/lib/sensors/libsns_imx222_spi_dc.so
majestic[761]: Free MMZ mem before allocation: 97404KB
majestic[761]: VB configuration:
majestic[761]:   [0]: 3133440 x 10
majestic[761]:   [2]: 608256 x 1
majestic[761]: Free MMZ mem after allocation: 66188KB
majestic[761]: Sensor driver loaded
majestic[761]: -------Sony IMX122 Sensor Initial OK!-------
majestic[761]: h264 1920x1080@20fps 4096kbit 20gop
majestic[761]: Loading IQ profile /etc/sensors/iq/default.ini
majestic[761]:   venc_chn: 0, vpss_grp: 0, vpss_chn: 0
majestic[761]:   venc took 9184KB of MMZ [3037]
majestic[761]: h264 704x576@15fps 1024kbit 15gop
majestic[761]:   venc_chn: 1, vpss_grp: 0, vpss_chn: 1
majestic[761]:   venc took 1808KB of MMZ [594]
majestic[761]: MJPEG 1920x1080@5fps 50q 
majestic[761]:   venc_chn: 2, vpss_grp: 0, vpss_chn: 2
majestic[761]:   mpeg_enc took 2056KB of MMZ [2040]
majestic[761]: HiSilicon SDK started
majestic[761]: Free MMZ mem finally: 44180KB
majestic[761]: RTSP server started on port 554
majestic[761]: Timeout from venc channel 0
majestic[761]: Timeout from venc channel 1
majestic[761]: Timeout from venc channel 0
majestic[761]: Timeout from venc channel 1
majestic[761]: Timeout from venc channel 0
majestic[761]: Timeout from venc channel 1
majestic[761]: Timeout from venc channel 0
majestic[761]: Timeout from venc channel 1
majestic[761]: Timeout from venc channel 0
majestic[761]: Timeout from venc channel 1
majestic[761]: Timeout from venc channel 0
majestic[761]: Timeout from venc channel 1
majestic[761]: Timeout from venc channel 0
majestic[761]: Timeout from venc channel 1
majestic[761]: Timeout from venc channel 0
majestic[761]: Timeout from venc channel 1
majestic[761]: Timeout from venc channel 0
majestic[761]: Timeout from venc channel 1
majestic[761]: Timeout from venc channel 0
majestic[761]: Timeout from venc channel 1
majestic[761]: Timeout from venc channel 0
majestic[761]: Timeout from venc channel 1
majestic[761]: Timeout from venc channel 0
majestic[761]: Timeout from venc channel 1
majestic[761]: Timeout from venc channel 0
majestic[761]: Timeout from venc channel 1
majestic[761]: Timeout from venc channel 0
majestic[761]: Timeout from venc channel 1
majestic[761]: Timeout from venc channel 0
majestic[761]: Timeout from venc channel 1
majestic[761]: Timeout from venc channel 0
majestic[761]: Timeout from venc channel 1
majestic[761]: Timeout from venc channel 0
majestic[761]: Timeout from venc channel 1
majestic[761]: UDP RTSP SETUP done, stream_id=0 from 10.0.0.201:61430
majestic[761]: Timeout from venc channel 0
majestic[761]: Timeout from venc channel 1
majestic[761]: Timeout from venc channel 0
majestic[761]: Timeout from venc channel 1
majestic[761]: Timeout from venc channel 0
majestic[761]: Timeout from venc channel 1
majestic[761]: Timeout from venc channel 0
majestic[761]: Timeout from venc channel 1
majestic[761]: Timeout from venc channel 0
majestic[761]: Timeout from venc channel 1
majestic[761]: Timeout from venc channel 0
majestic[761]: Timeout from venc channel 1
majestic[761]: RTSP connection closed.

I can fix this simply by clicking restart majestic. After that everything works and I get this log:

Loading main configuration: /etc/majestic.yaml
majestic[761]: SENSOR=imx323
majestic[761]: matched sensor config: imx323_spi_dc_1080p.ini
majestic[761]: Using /etc/sensors/imx323_spi_dc_1080p.ini sensor configuration file
majestic[761]: App was built with MPP version: Hi3518_MPP_V1.0.B.0.
majestic[761]: Current MPP version: HI_VERSION=Hi3518_MPP_V1.0.B.0 
majestic[761]: sensor imx222
majestic[761]:   dev [1920x1080]@200x20 30fps, RGGB
majestic[761]: trying to load /usr/lib/sensors/libsns_imx222_spi_dc.so
majestic[761]: Free MMZ mem before allocation: 97404KB
majestic[761]: VB configuration:
majestic[761]:   [0]: 3133440 x 10
majestic[761]:   [2]: 608256 x 1
majestic[761]: Free MMZ mem after allocation: 66188KB
majestic[761]: Sensor driver loaded
majestic[761]: -------Sony IMX122 Sensor Initial OK!-------
majestic[761]: Loading IQ profile /etc/sensors/iq/default.ini
majestic[761]: h264 1920x1080@30fps 4096kbit 30gop
majestic[761]:   venc_chn: 0, vpss_grp: 0, vpss_chn: 0
majestic[761]:   venc took 9184KB of MMZ [3037]
majestic[761]: h264 704x576@15fps 1024kbit 15gop
majestic[761]:   venc_chn: 1, vpss_grp: 0, vpss_chn: 1
majestic[761]:   venc took 1808KB of MMZ [594]
majestic[761]: MJPEG 1920x1080@5fps 50q 
majestic[761]:   venc_chn: 2, vpss_grp: 0, vpss_chn: 2
majestic[761]:   mpeg_enc took 2056KB of MMZ [2040]
majestic[761]: HiSilicon SDK started
majestic[761]: Free MMZ mem finally: 44180KB
majestic[761]: RTSP server started on port 554
majestic[761]: RTSP chn 0 sps_len 21
majestic[761]: RTSP chn 0 pps_len 3
majestic[761]: RTSP chn 0 profile_level_id 002a95
majestic[761]: UDP RTSP SETUP done, stream_id=0 from 10.0.0.201:61646

and all the streams work! This is also a matter of automating on boot. I suspect the issue is that majestic is getting initialized to early at boot.

Some technical info from the status page:

Device Status
Hardware Processor: hi3516cv100
Family: hi3516cv100
Sensor: imx323 (this is what is detected by OpenIPC - the actual sensor is the IMX322)
Flash: 16 MB
Firmware Version: 2.5.05.16-lite
Build: master+134387d, 2025-05-16
Majestic: master+67ed493, 2025-05-09
U-Boot: U-Boot 2010.06 (Nov 14 2022 - 19:25:49)
Filesystem  Type  Size  Used  Available Use% Mounted on
/dev/root          squashfs      4.6M  4.6M       0  100%  /rom 
devtmpfs             devtmpfs       13.9M         0     13.9M   0% /dev
/dev/mtdblock4       jffs2           2.7M    220.0K      2.5M   8% /overlay
overlayfs            overlayfs       2.7M    220.0K      2.5M   8% /
tmpfs                tmpfs          14.0M         0     14.0M   0% /dev/shm
tmpfs                tmpfs          14.0M     24.0K     14.0M   0% /tmp
tmpfs                tmpfs          14.0M     32.0K     14.0M   0% /run
total        used        free      shared  buff/cache   available
Mem:          28.0M       12.7M        2.0M           0       13.3M           0
-/+ buffers/cache:        12.7M       15.3M
Swap:             0           0           0

So those are the issues I'm facing. I'd also like to quickly say how cool this project is - I guess through more optimized code I could go from ~21fps on stock firmware to a smooth 30fps on OpenIPC! Not to mention the security benefits...

Thanks in advance

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions