firmware icon indicating copy to clipboard operation
firmware copied to clipboard

No Video Preview. ssc377d lite with imx335

Open jawadbrayer opened this issue 1 year ago • 7 comments

I am trying to get the video preview, but without success. status

image

logs of majestic started manually: testing with RTSP stream also fails

root@openipc-ssc377d:~# majestic -s
08:04:00  <       majestic> [    main] main@237                      Majestic Lite for SigmaStar, version master+8bf12fe, built on 2024-11-24
08:04:01  <       majestic> [watchdog] watchdog_start@94             Detected infinity Watchdog
08:04:01  <       majestic> [watchdog] watchdog_start@115            Watchdog timeout set to 300 seconds
08:04:01  <       majestic> [   httpd] start_web_server@365          Set server path: /var/www
08:04:01  <       majestic> [   httpd] new_http_server@353           HTTP server started on 0.0.0.0:80
08:04:01  <       majestic> [    main] init_sdk@66                   Loading main configuration: /etc/majestic.yaml
08:04:01  <       majestic> [     sdk] start_sdk@1534                Initializing Sigmastar SDK, mi_sys_version_3.011
08:04:01  <       majestic> [     sdk] mi_snr_get_resolution@505     Sensor index 0: 2592x1944@25fps
08:04:01  <       majestic> [     log] printf@292                    [MI_ISP_CUS3A_Enable] AE = 1, AWB = 1, AF = 1
08:04:01  <       majestic> [     log] printf@292                    [MI_ISP_CUS3A_Enable] AE = 1, AWB = 1, AF = 1
08:04:01  <       majestic> [     log] printf@292                    [MI_ISP_CUS3A_Enable] AE = 1, AWB = 1, AF = 1
08:04:01  <       majestic> [     sdk] mi_venc_create_chn@1001       Channel 0: 2592x1944@20fps
08:04:01  <       majestic> [     sdk] mi_venc_create_chn@1002       - [H264, 4096Kb, RC1, GOP20]
08:04:01  <       majestic> [     sdk] mi_venc_create_chn@1066       - [minQp: 12, maxQp: 48, qpDelta: -4, slice: 0]
08:04:01  <       majestic> [     sdk] mi_venc_create_jpeg@899       Channel 2: 2592x1944@5fps
08:04:01  <       majestic> [     sdk] mi_venc_create_jpeg@900       - [JPEG, Q50, 4900Kb]
[    AeInit] FPS (Init, Input, Output, Cur, Deband) = (   27,   27,   27,   27,   27)
[    AeInit] Use AE Short Histogram = Valid
[    AeInit] --> Change  :      1,    CurYx10 :      0, CurY1x10 :      0   , Targetx10 :    470, BVx16384 : 111344, FNx10 :  16, IspGain :   1024, SensorGain :  10240, Shutter  :     72 us, Step      :   8080 ns

08:04:02  <       majestic> [     sdk] mi_isp_get_file@148           Load isp file /etc/sensors/imx335.bin
08:04:02  <       majestic> [     log] printf@292                    [MAJOR]: ispversion(1) in sdk, ispversion(1) in binfile.
08:04:02  <       majestic> [     log] printf@292                    [MINOR]: ispversion(2) in sdk, ispversion(2) in binfile.
[   pAE_SetPlainShortExpTbl]-------------HW:1024/1445888/72/333333-----TBL:1024/8192/30/1400-----Plain Table is not valid!
08:04:02  <       majestic> [     log] printf@292                    ******************** Load api bin Success - /etc/sensors/imx335.bin ********************
08:04:02  <       majestic> [     sdk] mi_isp_set_image@258          Set dynamic range: 0
08:04:02  <       majestic> [    rtsp] rtsp_init@28                  RTSP server started on port 554
08:04:17  <       majestic> [   night] set_night_mode@128            Change mode to NIGHT
08:04:19  <       majestic> [   night] set_night_mode@128            Change mode to DAY
08:04:19  <       majestic> [     sdk] mi_isp_set_image@258          Set dynamic range: 0
08:04:36  <       majestic> [  client] RtspClient_before@403         RTSP OPTIONS rtsp://192.168.11.101:554/stream=0 CSeq=2 from 192.168.11.104:50548
08:04:36  <       majestic> [  client] RtspClient_before@403         RTSP OPTIONS rtsp://192.168.11.101:554/stream=0 CSeq=3 from 192.168.11.104:50548
08:04:36  <       majestic> [  client] RtspClient_before@403         RTSP DESCRIBE rtsp://192.168.11.101:554/stream=0 CSeq=4 from 192.168.11.104:50548
08:04:40  <       majestic> [  client] RtspClient_before@403         RTSP OPTIONS rtsp://192.168.11.101:554/stream=0 CSeq=5 from 192.168.11.104:50548
08:04:40  <       majestic> [  client] RtspClient_before@403         RTSP OPTIONS rtsp://192.168.11.101:554/stream=0 CSeq=6 from 192.168.11.104:50548
08:04:40  <       majestic> [  client] RtspClient_before@403         RTSP DESCRIBE rtsp://192.168.11.101:554/stream=0 CSeq=7 from 192.168.11.104:50548
08:04:40  <       majestic> [  client] RtspClient_before@403         RTSP SETUP rtsp://192.168.11.101:554/stream=0/video CSeq=8 from 192.168.11.104:50548
08:04:40  <       majestic> [  client] RtspClient_setup@314          UDP RTSP SETUP done, stream_id=0 from 192.168.11.104:50548
08:04:40  <       majestic> [  client] RtspClient_before@403         RTSP PLAY rtsp://192.168.11.101:554/stream=0 CSeq=9 from 192.168.11.104:50548
08:04:51  <       majestic> [  client] RtspClient_before@403         RTSP TEARDOWN rtsp://192.168.11.101:554/stream=0 CSeq=10 from 192.168.11.104:50548
08:04:51  <       majestic> [  client] RtspClient_on_closed_conn@654 RTSP connection closed.

kernel logs :

[1;33m[MI WRN] _MI_SYS_Pass_DebugDumpInputTaskFence[344]: [0:c0aedf80 00000000] fence1 pulseindex2
[0m
[1;33m[MI WRN] _MI_SYS_Pass_DebugDumpInputTaskFence[344]: [1:c1890280 00000000] fence2 pulseindex4
[0m
[1;33m[MI WRN] MI_SYS_Pass_InternalMainWorkerThread[4139]: [scl0_P0_MAIN] NON-SelfDrive module mod34 pass0 input buffer has not been processed for more than 2 seconds!
[0m
[1;33m[MI WRN] _MI_SYS_Pass_TryDequeueInputTaskNoLock[2391]:  [thread:isp0_P0_MAIN] mod[33] dev[0] pass[0] chn[0] inputtask's fence is not finished more than 252830ms
[0m
[1;33m[MI WRN] _MI_SYS_Pass_DebugDumpInputTaskFence[344]: [0:c0aedd00 00000000] fence1 pulseindex-1
[0m
[1;33m[MI WRN] _MI_SYS_Pass_DebugDumpInputTaskFence[344]: [1:c1890300 00000000] fence2 pulseindex-1
[0m
[1;31m[MI ERR] MI_SYS_InferGraph_EnsureInputPortFifoEmpty[315]: Next input(mod33, dev0, pass0, chn0, port0, reject_cmdq0, fifo_cnt:1 2 0) no response in 1000ms!
[0m
[1;33m[MI WRN] _MI_SYS_Pass_TryDequeueInputTaskNoLock[2391]:  [thread:isp0_P0_MAIN] mod[33] dev[0] pass[0] chn[0] inputtask's fence is not finished more than 254860ms
[0m
[1;33m[MI WRN] _MI_SYS_Pass_DebugDumpInputTaskFence[344]: [0:c0aedd00 00000000] fence1 pulseindex-1
[0m
[1;33m[MI WRN] _MI_SYS_Pass_DebugDumpInputTaskFence[344]: [1:c1890300 00000000] fence2 pulseindex-1
[0m
[1;33m[MI WRN] _MI_SYS_Pass_TryDequeueInputTaskNoLock[2455]:  [thread:scl0_P0_MAIN] mod[34] dev[0] pass[0] chn[0] inputtask CheckInputTaskStatus failed more than 254980ms,total pending task-1073490121
[0m
[1;33m[MI WRN] _MI_SYS_Pass_DebugDumpInputTaskFence[344]: [0:c0aedf80 00000000] fence1 pulseindex2
[0m
[1;33m[MI WRN] _MI_SYS_Pass_DebugDumpInputTaskFence[344]: [1:c1890280 00000000] fence2 pulseindex4
[0m
[1;31m[MI ERR] MI_SYS_InferGraph_EnsureInputPortFifoEmpty[315]: Next input(mod33, dev0, pass0, chn0, port0, reject_cmdq0, fifo_cnt:1 2 0) no response in 1000ms!
[0m
[1;33m[MI WRN] _MI_SYS_Pass_WorkerThreadTimeoutMonitor[3905]: mod6 dev0 pass0 infer timeout for 10 seconds
[0m
[1;33m[MI WRN] _MI_SYS_Pass_TryDequeueInputTaskNoLock[2391]:  [thread:scl0_P0_MAIN] mod[34] dev[0] pass[0] chn[0] inputtask's fence is not finished more than 254910ms
[0m
[1;33m[MI WRN] _MI_SYS_Pass_DebugDumpInputTaskFence[344]: [0:c0aedf80 00000000] fence1 pulseindex2
[0m
[1;33m[MI WRN] _MI_SYS_Pass_DebugDumpInputTaskFence[344]: [1:c1890280 00000000] fence2 pulseindex4
[0m
[1;33m[MI WRN] MI_SYS_Pass_InternalMainWorkerThread[4139]: [scl0_P0_MAIN] NON-SelfDrive module mod34 pass0 input buffer has not been processed for more than 2 seconds!
[0m
[1;33m[MI WRN] _MI_SYS_Pass_TryDequeueInputTaskNoLock[2391]:  [thread:isp0_P0_MAIN] mod[33] dev[0] pass[0] chn[0] inputtask's fence is not finished more than 254920ms
[0m
[1;33m[MI WRN] _MI_SYS_Pass_DebugDumpInputTaskFence[344]: [0:c0aedd00 00000000] fence1 pulseindex-1
[0m
[1;33m[MI WRN] _MI_SYS_Pass_DebugDumpInputTaskFence[344]: [1:c1890300 00000000] fence2 pulseindex-1
[0m
[1;31m[MI ERR] MI_SYS_InferGraph_EnsureInputPortFifoEmpty[315]: Next input(mod33, dev0, pass0, chn0, port0, reject_cmdq0, fifo_cnt:1 2 0) no response in 1000ms!
[0m
[1;33m[MI WRN] _MI_SYS_Pass_TryDequeueInputTaskNoLock[2391]:  [thread:isp0_P0_MAIN] mod[33] dev[0] pass[0] chn[0] inputtask's fence is not finished more than 256950ms
[0m
[1;33m[MI WRN] _MI_SYS_Pass_DebugDumpInputTaskFence[344]: [0:c0aedd00 00000000] fence1 pulseindex-1
[0m
[1;33m[MI WRN] _MI_SYS_Pass_DebugDumpInputTaskFence[344]: [1:c1890300 00000000] fence2 pulseindex-1
[0m
[1;33m[MI WRN] _MI_SYS_Pass_TryDequeueInputTaskNoLock[2455]:  [thread:scl0_P0_MAIN] mod[34] dev[0] pass[0] chn[0] inputtask CheckInputTaskStatus failed more than 257070ms,total pending task-1073490121
[0m
[1;33m[MI WRN] _MI_SYS_Pass_DebugDumpInputTaskFence[344]: [0:c0aedf80 00000000] fence1 pulseindex2
[0m
[1;33m[MI WRN] _MI_SYS_Pass_DebugDumpInputTaskFence[344]: [1:c1890280 00000000] fence2 pulseindex4
[0m
[1;31m[MI ERR] MI_SYS_InferGraph_EnsureInputPortFifoEmpty[315]: Next input(mod33, dev0, pass0, chn0, port0, reject_cmdq0, fifo_cnt:1 2 0) no response in 1000ms!
[0m

**ipctool:**

chip:
  vendor: SigmaStar
  model: SSC37X
  family: infinity6c
  tag: "MVX4##I6C#gd11293fROM########XVM��\u0002"
board:
  vendor: OpenIPC
  version: 2.4.11.24
ethernet:
  mac: "9a:1d:0c:77:cc:98"
rom:
- type: nor
  block: 4K
  partitions:
    - name: boot
      size: 0x40000
      sha1: ce6b8e1e
    - name: env
      size: 0x10000
      sha1: bb47af92
      contains:
        - name: uboot-env
          offset: 0x0
    - name: kernel
      size: 0x200000
      sha1: 70486b29
    - name: rootfs
      size: 0x500000
      sha1: 5e7cbd3e
    - name: rootfs_data
      size: 0x8b0000
      path: /overlay,jffs2,rw
  size: 16M
ram:
  total: 128M
  media: 70M
firmware:
  u-boot: "2015.01 (Oct 27 2024 - 16:59:55)"
  kernel: "5.10.61 (PREEMPT Sun Nov 24 18:13:20 UTC 2024)"
  toolchain: buildroot-gcc-13.3.0
sensors:
- vendor: Sony
  model: IMX335
  control:
    bus: 0
    type: i2c
    addr: 0x34

jawadbrayer avatar Nov 25 '24 08:11 jawadbrayer

I pulled the drivers from one of my original anjvision cameras via an exploit image

majestic[655]: Majestic Lite for SigmaStar, version master+f25b567, built on 2024-12-05
majestic[655]: Detected infinity Watchdog
majestic[655]: Watchdog timeout set to 300 seconds
majestic[655]: Set server path: /var/www
majestic[655]: HTTP server started on 0.0.0.0:80
majestic[655]: Loading main configuration: /etc/majestic.yaml
majestic[655]: Initializing Sigmastar SDK, mi_sys_version_3.011
majestic[655]: Sensor index 0: 2592x1944@25fps
majestic[655]: [MI_ISP_CUS3A_Enable] AE = 1, AWB = 1, AF = 1
majestic[655]: [MI_ISP_CUS3A_Enable] AE = 1, AWB = 1, AF = 1
majestic[655]: [MI_ISP_CUS3A_Enable] AE = 1, AWB = 1, AF = 1
majestic[655]: Channel 0: 2592x1944@10fps
majestic[655]: - [H265, 4096Kb, RC1, GOP50]
majestic[655]: - [minQp: 12, maxQp: 48, qpDelta: -4, slice: 0]
majestic[655]: Channel 2: 2592x1944@5fps
majestic[655]: - [JPEG, Q50, 4900Kb]
majestic[655]: Load isp file /etc/sensors/imx335.bin
majestic[655]: [MAJOR]: ispversion(0) in sdk, ispversion(1) in binfile.
majestic[655]: [MINOR]: ispversion(-964716594) in sdk, ispversion(2) in binfile.
majestic[655]: ooooops,SDK & iqbinfile major version is not match.
majestic[655]: warning warning!!!SDK & iqbinfile minor version is not match.
majestic[655]: ******************** Load api bin Fail - ERROR CODE (0xffffffff) ********************
majestic[655]: Error loading isp file
majestic[655]: Cannot set color to gray
majestic[655]: Error setting isp parameters
majestic[655]: RTSP server started on port 554

To get the drivers you can either reverse one of these with binwalk http://www.anjvision.com:8021/firmware/online/public/MCL12D_V0-A-H5/ and check the config\modules\5.10 folder

Or if you have another camera with the origianl firmware you can exfiltrate the files via wget http://CAMERAIP/playback/lib/modules/5.10.61/5.10/mi_common.ko -O mi_common.ko

Fun fact anjvision camera root password are ANJVISION*SERIAL NUMBER* --> MD5 --> UPPERCASE --> last 8 chars example ANJVISIONEF00000000A12D61 --> 44af9a4ceecbad0c7be0a53972fed43a --> 44AF9A4CEECBAD0C7BE0A53972FED43A --> 72FED43A

A good reason to switch to OpenIPC :)

carcinogoy avatar Dec 12 '24 19:12 carcinogoy

A good reason to switch to OpenIPC :)

Thanks for the interesting information and research Write to me in Telegram messenger on the nickname @FlyRouter and we will discuss testing your device.

flyrouter avatar Dec 14 '24 19:12 flyrouter

I am also getting no video with oIPC. It seems there is no ultimate version available for this SoC? I was able to get root on MD-L12D's firmware by replacing the passwd link with a new passwd file.

tctlrd avatar Jan 24 '25 17:01 tctlrd

@tctlrd how did you do it? Did you generate a new firmware image, or was it something else?

jawadbrayer avatar Mar 17 '25 14:03 jawadbrayer

@jawadbrayer I extracted, modified, re-compressed the filesystem from the firmware image. I did a dd to replace the filesystem bytes in the firmware image. Attached is the result. It is not a .txt file, it is a .bin, you can rename it.

mod.txt

extract firmware image

setenv ipaddr 18.0.0.11; setenv serverip 18.0.0.115
mw.b 0x21000000 0xff 0x1000000
sf probe 0; sf read 0x21000000 0x0 0x1000000
sfbin 0x21000000 0x0 firmware.bin

restore firmware

setenv ipaddr 18.0.0.11; setenv serverip 18.0.0.115
mw.b 0x21000000 0xff 0x1000000
tftpboot 0x21000000 firmware.bin
sf probe 0; sf lock 0;
sf erase 0x0 0x1000000; sf write 0x21000000 0x0 0x1000000

unpack squashfs

binwalk -e firmware.bin

create password hash

openssl passwd -1 -salt bh2njiGH root

output: $1$bh2njiGH$cu/JY6OFbqFLLdzAnXyqP/

repack squashfs

mksquashfs squashfs-root 230000.squashfs -comp xz -b 262144 -no-duplicates

place squashfs in bin

dd if=230000.squashfs of=backup.bin bs=1 seek=2293760 conv=notrunc

anjvision firware info

Kernel Version
Linux 5.10.61 #132 PREEMPT Thu May 18 19:36:29 CST 2023 armv7l
Firmware Version
MCL12D_V0-A-H5 V3.3.2.0 build 2024-07-22 12:18:18
Web Version
2024-01-03 10:35:32
S/N
EF00000005006C91

tctlrd avatar Mar 18 '25 20:03 tctlrd

@carcinogoy what is your process to install the extracted drivers into openipc? My camera is a PTZ branded by Jennov A76WM55-5X-EA. I am wondering the correct process to implement openipc on this with PTZ onvif support.

tctlrd avatar Nov 09 '25 03:11 tctlrd

@carcinogoy what is your process to install the extracted drivers into openipc? My camera is a PTZ branded by Jennov A76WM55-5X-EA. I am wondering the correct process to implement openipc on this with PTZ onvif support.

Hi, I have a primitive understanding of linux so I just replace the *.ko files to change the driver

carcinogoy avatar Nov 10 '25 07:11 carcinogoy