Update some users projects

pull/7/head
Igor Zalatov (from Citadel PC) 2023-12-25 16:00:28 +03:00
parent efda8c616e
commit 3d88290992
38 changed files with 3483 additions and 304 deletions

View File

@ -0,0 +1,55 @@
#!/bin/sh
DAEMON="ntpd"
PIDFILE="/var/run/$DAEMON.pid"
NTPD_ARGS="-n"
# shellcheck source=/dev/null
[ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON"
# BusyBox' ntpd does not create a pidfile, so pass "-n" in the command line
# and use "-m" to instruct start-stop-daemon to create one.
start() {
printf 'Starting %s: ' "$DAEMON"
# shellcheck disable=SC2086 # we need the word splitting
hwclock -s
start-stop-daemon -b -m -S -q -p "$PIDFILE" -x "/usr/sbin/$DAEMON" -- $NTPD_ARGS
status=$?
if [ "$status" -eq 0 ]; then
echo "OK"
else
echo "FAIL"
fi
return "$status"
}
stop() {
printf 'Stopping %s: ' "$DAEMON"
start-stop-daemon -K -q -p "$PIDFILE"
status=$?
if [ "$status" -eq 0 ]; then
rm -f "$PIDFILE"
echo "OK"
else
echo "FAIL"
fi
return "$status"
}
case "$1" in
start|stop)
"$1"
;;
reload)
stop
sleep 1
start
;;
*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
;;
esac

View File

@ -0,0 +1,69 @@
#!/bin/sh
DAEMON="majestic"
PIDFILE="/var/run/$DAEMON.pid"
DAEMON_ARGS="-s"
# shellcheck source=/dev/null
[ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON"
load_majestic() {
printf 'Starting %s: ' "$DAEMON"
[ -f /usr/bin/$DAEMON ] || echo -en "DISABLED, "
# shellcheck disable=SC2086 # we need the word splitting
[ -f /etc/coredump.conf ] && . /etc/coredump.conf
if [ "$coredump_enabled" ]; then
[ "$(cli -g .watchdog.timeout)" -lt "30" ] && cli -s .watchdog.timeout 30
ulimit -c unlimited && echo "|/usr/sbin/sendcoredump.sh" >/proc/sys/kernel/core_pattern
fi
start-stop-daemon -b -m -S -q -p "$PIDFILE" -x "/usr/bin/$DAEMON" -- $DAEMON_ARGS
status=$?
if [ "$status" -eq 0 ]; then
echo "OK"
else
echo "FAIL"
fi
return "$status"
}
# The daemon does not create a pidfile, and use "-m" to instruct start-stop-daemon to create one.
start() {
logger -s -p daemon.info -t $(ipcinfo -v) "Loading video system has started..."
export SENSOR=$(fw_printenv -n sensor)
load_majestic
sleep 3
$(yaml-cli -i /etc/majestic.yaml -g .isp.sensorConfig | tr '/.' ' ' | awk '{print $3}').sh
}
stop() {
printf 'Stopping %s: ' "$DAEMON"
[ -f /usr/bin/$DAEMON ] || echo -en "DISABLED, "
start-stop-daemon -K -q -p "$PIDFILE"
status=$?
if [ "$status" -eq 0 ]; then
rm -f "$PIDFILE"
echo "OK"
else
echo "FAIL"
fi
return "$status"
}
restart() {
stop
sleep 1
reload
}
reload() {
load_majestic
}
case "$1" in
start|stop|restart|reload)
"$1";;
*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
esac

View File

@ -11,18 +11,13 @@ image:
saturation: 50
luminance: 50
osd:
enabled: true
enabled: false
template: "%a %e %B %Y %H:%M:%S %Z"
nightMode:
enabled: true
irSensorPin: 8
irSensorPinInvert: false
irCutPin1: 14
irCutPin2: 15
dncDelay: 3
enabled: false
records:
enabled: false
path: /mnt/mmc/%Y/%m/%d/%H.mp4
path: /mnt/mmcblk0p1/%F/%H.mp4
maxUsage: 95
video0:
enabled: true
@ -47,7 +42,7 @@ hls:
youtube:
enabled: false
motionDetect:
enabled: true
enabled: false
visualize: true
debug: true
ipeye:
@ -55,8 +50,6 @@ ipeye:
watchdog:
enabled: true
timeout: 10
cloud:
enabled: false
onvif:
enabled: true
isp:
lowDelay: false
sensorConfig: /etc/sensors/bt656_ahd_pal_1080p.ini

View File

@ -0,0 +1,56 @@
[sensor]
Sensor_type = stBt656_Obj
Mode = WDR_MODE_NONE
DllFile = libsns_bt656.so
[mode]
input_mode = INPUT_MODE_BT656
raw_bitness = 8
[isp_image]
Isp_FrameRate = 25
Isp_Bayer = BAYER_RGGB
[vi_dev]
Input_mod = VI_MODE_BT656
Work_mod = VI_WORK_MODE_1Multiplex
Mask_num = 2
Mask_0 = 0xff00000
Mask_1 = 0x0
Scan_mode = VI_SCAN_PROGRESSIVE
Data_seq = VI_DATA_SEQ_UYVY
Vsync = VI_VSYNC_PULSE
VsyncNeg = VI_VSYNC_NEG_LOW
Hsync = VI_HSYNC_VALID_SINGNAL
HsyncNeg = VI_HSYNC_NEG_HIGH
VsyncValid = VI_VSYNC_VALID_SINGAL
VsyncValidNeg = VI_VSYNC_VALID_NEG_HIGH
Timingblank_HsyncHfb = 0
Timingblank_HsyncAct = 1920
Timingblank_HsyncHbb = 0
Timingblank_VsyncVfb = 0
Timingblank_VsyncVact = 1080
Timingblank_VsyncVbb = 0
Timingblank_VsyncVbfb = 0
Timingblank_VsyncVbact = 0
Timingblank_VsyncVbbb = 0
;----- only for bt656 ----------
FixCode = BT656_FIXCODE_1
FieldPolar = BT656_FIELD_POLAR_STD
DataPath = VI_PATH_BYPASS
InputDataType = VI_DATA_TYPE_YUV
DataRev = FALSE
DevRect_x = 0
DevRect_y = 0
DevRect_w = 1920
DevRect_h = 1080
[vi_chn]
CapSel = VI_CAPSEL_BOTH
PixFormat = PIXEL_FORMAT_YVU_SEMIPLANAR_420
CompressMode = COMPRESS_MODE_NONE
SrcFrameRate = -1
FrameRate = -1

View File

@ -0,0 +1,56 @@
[sensor]
Sensor_type = stBt656_Obj
Mode = WDR_MODE_NONE
DllFile = libsns_bt656.so
[mode]
input_mode = INPUT_MODE_BT656
raw_bitness = 8
[isp_image]
Isp_FrameRate = 25
Isp_Bayer = BAYER_RGGB
[vi_dev]
Input_mod = VI_MODE_BT656
Work_mod = VI_WORK_MODE_1Multiplex
Mask_num = 2
Mask_0 = 0xff00000
Mask_1 = 0x0
Scan_mode = VI_SCAN_PROGRESSIVE
Data_seq = VI_DATA_SEQ_UYVY
Vsync = VI_VSYNC_PULSE
VsyncNeg = VI_VSYNC_NEG_LOW
Hsync = VI_HSYNC_VALID_SINGNAL
HsyncNeg = VI_HSYNC_NEG_HIGH
VsyncValid = VI_VSYNC_VALID_SINGAL
VsyncValidNeg = VI_VSYNC_VALID_NEG_HIGH
Timingblank_HsyncHfb = 0
Timingblank_HsyncAct = 1280
Timingblank_HsyncHbb = 0
Timingblank_VsyncVfb = 0
Timingblank_VsyncVact = 720
Timingblank_VsyncVbb = 0
Timingblank_VsyncVbfb = 0
Timingblank_VsyncVbact = 0
Timingblank_VsyncVbbb = 0
;----- only for bt656 ----------
FixCode = BT656_FIXCODE_1
FieldPolar = BT656_FIELD_POLAR_STD
DataPath = VI_PATH_BYPASS
InputDataType = VI_DATA_TYPE_YUV
DataRev = FALSE
DevRect_x = 0
DevRect_y = 0
DevRect_w = 1280
DevRect_h = 720
[vi_chn]
CapSel = VI_CAPSEL_BOTH
PixFormat = PIXEL_FORMAT_YVU_SEMIPLANAR_420
CompressMode = COMPRESS_MODE_NONE
SrcFrameRate = -1
FrameRate = -1

View File

@ -0,0 +1,56 @@
[sensor]
Sensor_type = stBt656_Obj
Mode = WDR_MODE_NONE
DllFile = libsns_bt656.so
[mode]
input_mode = INPUT_MODE_BT656
raw_bitness = 8
[isp_image]
Isp_FrameRate = 25
Isp_Bayer = BAYER_RGGB
[vi_dev]
Input_mod = VI_MODE_BT656
Work_mod = VI_WORK_MODE_1Multiplex
Mask_num = 2
Mask_0 = 0xff00000
Mask_1 = 0x0
Scan_mode = VI_SCAN_PROGRESSIVE
Data_seq = VI_DATA_SEQ_UYVY
Vsync = VI_VSYNC_PULSE
VsyncNeg = VI_VSYNC_NEG_LOW
Hsync = VI_HSYNC_VALID_SINGNAL
HsyncNeg = VI_HSYNC_NEG_HIGH
VsyncValid = VI_VSYNC_VALID_SINGAL
VsyncValidNeg = VI_VSYNC_VALID_NEG_HIGH
Timingblank_HsyncHfb = 0
Timingblank_HsyncAct = 960
Timingblank_HsyncHbb = 0
Timingblank_VsyncVfb = 0
Timingblank_VsyncVact = 576
Timingblank_VsyncVbb = 0
Timingblank_VsyncVbfb = 0
Timingblank_VsyncVbact = 0
Timingblank_VsyncVbbb = 0
;----- only for bt656 ----------
FixCode = BT656_FIXCODE_1
FieldPolar = BT656_FIELD_POLAR_STD
DataPath = VI_PATH_BYPASS
InputDataType = VI_DATA_TYPE_YUV
DataRev = FALSE
DevRect_x = 0
DevRect_y = 0
DevRect_w = 960
DevRect_h = 576
[vi_chn]
CapSel = VI_CAPSEL_BOTH
PixFormat = PIXEL_FORMAT_YVU_SEMIPLANAR_420
CompressMode = COMPRESS_MODE_NONE
SrcFrameRate = -1
FrameRate = -1

View File

@ -0,0 +1,173 @@
#!/bin/sh
ipctool2 i2cset 0x88 0x02 0xCC
ipctool2 i2cset 0x88 0x05 0x00
ipctool2 i2cset 0x88 0x06 0x32
ipctool2 i2cset 0x88 0x07 0xC0
ipctool2 i2cset 0x88 0x08 0x00
ipctool2 i2cset 0x88 0x09 0x24
ipctool2 i2cset 0x88 0x0A 0x48
ipctool2 i2cset 0x88 0x0B 0xC0
ipctool2 i2cset 0x88 0x0C 0x03
ipctool2 i2cset 0x88 0x0D 0x73
ipctool2 i2cset 0x88 0x0E 0x00
ipctool2 i2cset 0x88 0x0F 0x00
ipctool2 i2cset 0x88 0x10 0x00
ipctool2 i2cset 0x88 0x11 0x40
ipctool2 i2cset 0x88 0x12 0x60
ipctool2 i2cset 0x88 0x13 0x00
ipctool2 i2cset 0x88 0x14 0x00
ipctool2 i2cset 0x88 0x15 0x01
ipctool2 i2cset 0x88 0x16 0xF0
ipctool2 i2cset 0x88 0x17 0x80
ipctool2 i2cset 0x88 0x18 0x29
ipctool2 i2cset 0x88 0x19 0x38
ipctool2 i2cset 0x88 0x1A 0x47
ipctool2 i2cset 0x88 0x1B 0x01
ipctool2 i2cset 0x88 0x1C 0x0A
ipctool2 i2cset 0x88 0x1D 0x50
ipctool2 i2cset 0x88 0x1E 0x80
ipctool2 i2cset 0x88 0x1F 0x80
ipctool2 i2cset 0x88 0x20 0x3C
ipctool2 i2cset 0x88 0x21 0x46
ipctool2 i2cset 0x88 0x22 0x36
ipctool2 i2cset 0x88 0x23 0x3C
ipctool2 i2cset 0x88 0x24 0x04
ipctool2 i2cset 0x88 0x25 0xFE
ipctool2 i2cset 0x88 0x26 0x0D
ipctool2 i2cset 0x88 0x27 0x2D
ipctool2 i2cset 0x88 0x28 0x00
ipctool2 i2cset 0x88 0x29 0x48
ipctool2 i2cset 0x88 0x2A 0x30
ipctool2 i2cset 0x88 0x2B 0x60
ipctool2 i2cset 0x88 0x2C 0x1A
ipctool2 i2cset 0x88 0x2D 0x54
ipctool2 i2cset 0x88 0x2E 0x40
ipctool2 i2cset 0x88 0x2F 0x00
ipctool2 i2cset 0x88 0x30 0xA5
ipctool2 i2cset 0x88 0x31 0x86
ipctool2 i2cset 0x88 0x32 0xFB
ipctool2 i2cset 0x88 0x33 0x60
ipctool2 i2cset 0x88 0x34 0x00
ipctool2 i2cset 0x88 0x35 0x05
ipctool2 i2cset 0x88 0x36 0xDC
ipctool2 i2cset 0x88 0x37 0x00
ipctool2 i2cset 0x88 0x38 0x00
ipctool2 i2cset 0x88 0x39 0x1C
ipctool2 i2cset 0x88 0x3A 0x32
ipctool2 i2cset 0x88 0x3B 0x26
ipctool2 i2cset 0x88 0x3C 0x00
ipctool2 i2cset 0x88 0x3D 0x60
ipctool2 i2cset 0x88 0x3E 0x00
ipctool2 i2cset 0x88 0x3F 0x00
ipctool2 i2cset 0x88 0x40 0x00
ipctool2 i2cset 0x88 0x41 0x00
ipctool2 i2cset 0x88 0x42 0x00
ipctool2 i2cset 0x88 0x43 0x00
ipctool2 i2cset 0x88 0x44 0x00
ipctool2 i2cset 0x88 0x45 0x00
ipctool2 i2cset 0x88 0x46 0x00
ipctool2 i2cset 0x88 0x47 0x00
ipctool2 i2cset 0x88 0x48 0x00
ipctool2 i2cset 0x88 0x49 0x00
ipctool2 i2cset 0x88 0x4A 0x00
ipctool2 i2cset 0x88 0x4B 0x00
ipctool2 i2cset 0x88 0x4C 0x43
ipctool2 i2cset 0x88 0x4D 0x00
ipctool2 i2cset 0x88 0x4E 0x17
ipctool2 i2cset 0x88 0x4F 0x00
ipctool2 i2cset 0x88 0x50 0x00
ipctool2 i2cset 0x88 0x51 0x00
ipctool2 i2cset 0x88 0x52 0x00
ipctool2 i2cset 0x88 0x53 0x00
ipctool2 i2cset 0x88 0x54 0x00
ipctool2 i2cset 0x88 0xB3 0xFA
ipctool2 i2cset 0x88 0xB4 0x00
ipctool2 i2cset 0x88 0xB5 0x00
ipctool2 i2cset 0x88 0xB6 0x00
ipctool2 i2cset 0x88 0xB7 0x00
ipctool2 i2cset 0x88 0xB8 0x00
ipctool2 i2cset 0x88 0xB9 0x00
ipctool2 i2cset 0x88 0xBA 0x00
ipctool2 i2cset 0x88 0xBB 0x00
ipctool2 i2cset 0x88 0xBC 0x00
ipctool2 i2cset 0x88 0xBD 0x00
ipctool2 i2cset 0x88 0xBE 0x00
ipctool2 i2cset 0x88 0xBF 0x00
ipctool2 i2cset 0x88 0xC0 0x00
ipctool2 i2cset 0x88 0xC1 0x00
ipctool2 i2cset 0x88 0xC2 0x0B
ipctool2 i2cset 0x88 0xC3 0x0C
ipctool2 i2cset 0x88 0xC4 0x00
ipctool2 i2cset 0x88 0xC5 0x00
ipctool2 i2cset 0x88 0xC6 0x1F
ipctool2 i2cset 0x88 0xC7 0x78
ipctool2 i2cset 0x88 0xC8 0x27
ipctool2 i2cset 0x88 0xC9 0x00
ipctool2 i2cset 0x88 0xCA 0x00
ipctool2 i2cset 0x88 0xCB 0x07
ipctool2 i2cset 0x88 0xCC 0x08
ipctool2 i2cset 0x88 0xCD 0x00
ipctool2 i2cset 0x88 0xCE 0x00
ipctool2 i2cset 0x88 0xCF 0x04
ipctool2 i2cset 0x88 0xD0 0x00
ipctool2 i2cset 0x88 0xD1 0x00
ipctool2 i2cset 0x88 0xD2 0x60
ipctool2 i2cset 0x88 0xD3 0x10
ipctool2 i2cset 0x88 0xD4 0x06
ipctool2 i2cset 0x88 0xD5 0xBE
ipctool2 i2cset 0x88 0xD6 0x39
ipctool2 i2cset 0x88 0xD7 0x27
ipctool2 i2cset 0x88 0xD8 0x00
ipctool2 i2cset 0x88 0xD9 0x00
ipctool2 i2cset 0x88 0xDA 0x00
ipctool2 i2cset 0x88 0xDB 0x00
ipctool2 i2cset 0x88 0xDC 0x00
ipctool2 i2cset 0x88 0xDD 0x00
ipctool2 i2cset 0x88 0xDE 0x00
ipctool2 i2cset 0x88 0xDF 0x00
ipctool2 i2cset 0x88 0xE0 0x00
ipctool2 i2cset 0x88 0xE1 0x00
ipctool2 i2cset 0x88 0xE2 0x00
ipctool2 i2cset 0x88 0xE3 0x00
ipctool2 i2cset 0x88 0xE4 0x00
ipctool2 i2cset 0x88 0xE5 0x00
ipctool2 i2cset 0x88 0xE6 0x00
ipctool2 i2cset 0x88 0xE7 0x13
ipctool2 i2cset 0x88 0xE8 0x03
ipctool2 i2cset 0x88 0xE9 0x00
ipctool2 i2cset 0x88 0xEA 0x00
ipctool2 i2cset 0x88 0xEB 0x00
ipctool2 i2cset 0x88 0xEC 0x00
ipctool2 i2cset 0x88 0xED 0x00
ipctool2 i2cset 0x88 0xEE 0x00
ipctool2 i2cset 0x88 0xEF 0x00
ipctool2 i2cset 0x88 0xF0 0x00
ipctool2 i2cset 0x88 0xF1 0x00
ipctool2 i2cset 0x88 0xF2 0x00
ipctool2 i2cset 0x88 0xF3 0x00
ipctool2 i2cset 0x88 0xF4 0x20
ipctool2 i2cset 0x88 0xF5 0x10
ipctool2 i2cset 0x88 0xF6 0x00
ipctool2 i2cset 0x88 0xF7 0x00
ipctool2 i2cset 0x88 0xF8 0x00
ipctool2 i2cset 0x88 0xF9 0x00
ipctool2 i2cset 0x88 0xFA 0x88
ipctool2 i2cset 0x88 0xFB 0x00
ipctool2 i2cset 0x88 0xFC 0x00
ipctool2 i2cset 0x88 0x40 0x08
ipctool2 i2cset 0x88 0x00 0x00
ipctool2 i2cset 0x88 0x01 0xf8
ipctool2 i2cset 0x88 0x02 0x01
ipctool2 i2cset 0x88 0x08 0xF0
ipctool2 i2cset 0x88 0x13 0x04
ipctool2 i2cset 0x88 0x14 0x73
ipctool2 i2cset 0x88 0x15 0x08
ipctool2 i2cset 0x88 0x20 0x12
ipctool2 i2cset 0x88 0x34 0x1b
ipctool2 i2cset 0x88 0x23 0x02
ipctool2 i2cset 0x88 0x23 0x00
ipctool2 i2cset 0x88 0x40 0x00

View File

@ -0,0 +1,173 @@
#!/bin/sh
ipctool2 i2cset 0x88 0x02 0xCE
ipctool2 i2cset 0x88 0x05 0x00
ipctool2 i2cset 0x88 0x06 0x32
ipctool2 i2cset 0x88 0x07 0xC0
ipctool2 i2cset 0x88 0x08 0x00
ipctool2 i2cset 0x88 0x09 0x24
ipctool2 i2cset 0x88 0x0A 0x48
ipctool2 i2cset 0x88 0x0B 0xC0
ipctool2 i2cset 0x88 0x0C 0x03
ipctool2 i2cset 0x88 0x0D 0x71
ipctool2 i2cset 0x88 0x0E 0x00
ipctool2 i2cset 0x88 0x0F 0x00
ipctool2 i2cset 0x88 0x10 0x00
ipctool2 i2cset 0x88 0x11 0x40
ipctool2 i2cset 0x88 0x12 0x40
ipctool2 i2cset 0x88 0x13 0x00
ipctool2 i2cset 0x88 0x14 0x00
ipctool2 i2cset 0x88 0x15 0x13
ipctool2 i2cset 0x88 0x16 0x16
ipctool2 i2cset 0x88 0x17 0x00
ipctool2 i2cset 0x88 0x18 0x19
ipctool2 i2cset 0x88 0x19 0xD0
ipctool2 i2cset 0x88 0x1A 0x25
ipctool2 i2cset 0x88 0x1B 0x01
ipctool2 i2cset 0x88 0x1C 0x07
ipctool2 i2cset 0x88 0x1D 0xBC
ipctool2 i2cset 0x88 0x1E 0x80
ipctool2 i2cset 0x88 0x1F 0x80
ipctool2 i2cset 0x88 0x20 0x40
ipctool2 i2cset 0x88 0x21 0x46
ipctool2 i2cset 0x88 0x22 0x36
ipctool2 i2cset 0x88 0x23 0x3C
ipctool2 i2cset 0x88 0x24 0x04
ipctool2 i2cset 0x88 0x25 0xFE
ipctool2 i2cset 0x88 0x26 0x01
ipctool2 i2cset 0x88 0x27 0x2D
ipctool2 i2cset 0x88 0x28 0x00
ipctool2 i2cset 0x88 0x29 0x48
ipctool2 i2cset 0x88 0x2A 0x30
ipctool2 i2cset 0x88 0x2B 0x60
ipctool2 i2cset 0x88 0x2C 0x2A
ipctool2 i2cset 0x88 0x2D 0x5A
ipctool2 i2cset 0x88 0x2E 0x40
ipctool2 i2cset 0x88 0x2F 0x00
ipctool2 i2cset 0x88 0x30 0x9E
ipctool2 i2cset 0x88 0x31 0x20
ipctool2 i2cset 0x88 0x32 0x10
ipctool2 i2cset 0x88 0x33 0x90
ipctool2 i2cset 0x88 0x34 0x00
ipctool2 i2cset 0x88 0x35 0x25
ipctool2 i2cset 0x88 0x36 0xDC
ipctool2 i2cset 0x88 0x37 0x00
ipctool2 i2cset 0x88 0x38 0x00
ipctool2 i2cset 0x88 0x39 0x18
ipctool2 i2cset 0x88 0x3A 0x32
ipctool2 i2cset 0x88 0x3B 0x26
ipctool2 i2cset 0x88 0x3C 0x00
ipctool2 i2cset 0x88 0x3D 0x60
ipctool2 i2cset 0x88 0x3E 0x00
ipctool2 i2cset 0x88 0x3F 0x00
ipctool2 i2cset 0x88 0x40 0x00
ipctool2 i2cset 0x88 0x41 0x00
ipctool2 i2cset 0x88 0x42 0x00
ipctool2 i2cset 0x88 0x43 0x00
ipctool2 i2cset 0x88 0x44 0x00
ipctool2 i2cset 0x88 0x45 0x00
ipctool2 i2cset 0x88 0x46 0x00
ipctool2 i2cset 0x88 0x47 0x00
ipctool2 i2cset 0x88 0x48 0x00
ipctool2 i2cset 0x88 0x49 0x00
ipctool2 i2cset 0x88 0x4A 0x00
ipctool2 i2cset 0x88 0x4B 0x00
ipctool2 i2cset 0x88 0x4C 0x43
ipctool2 i2cset 0x88 0x4D 0x00
ipctool2 i2cset 0x88 0x4E 0x17
ipctool2 i2cset 0x88 0x4F 0x00
ipctool2 i2cset 0x88 0x50 0x00
ipctool2 i2cset 0x88 0x51 0x00
ipctool2 i2cset 0x88 0x52 0x00
ipctool2 i2cset 0x88 0x53 0x00
ipctool2 i2cset 0x88 0x54 0x00
ipctool2 i2cset 0x88 0x55 0x00
ipctool2 i2cset 0x88 0xB3 0xFA
ipctool2 i2cset 0x88 0xB4 0x00
ipctool2 i2cset 0x88 0xB5 0x00
ipctool2 i2cset 0x88 0xB6 0x00
ipctool2 i2cset 0x88 0xB7 0x00
ipctool2 i2cset 0x88 0xB8 0x00
ipctool2 i2cset 0x88 0xB9 0x00
ipctool2 i2cset 0x88 0xBA 0x00
ipctool2 i2cset 0x88 0xBB 0x00
ipctool2 i2cset 0x88 0xBC 0x00
ipctool2 i2cset 0x88 0xBD 0x00
ipctool2 i2cset 0x88 0xBE 0x00
ipctool2 i2cset 0x88 0xBF 0x00
ipctool2 i2cset 0x88 0xC0 0x00
ipctool2 i2cset 0x88 0xC1 0x00
ipctool2 i2cset 0x88 0xC2 0x0B
ipctool2 i2cset 0x88 0xC3 0x0C
ipctool2 i2cset 0x88 0xC4 0x00
ipctool2 i2cset 0x88 0xC5 0x00
ipctool2 i2cset 0x88 0xC6 0x1F
ipctool2 i2cset 0x88 0xC7 0x78
ipctool2 i2cset 0x88 0xC8 0x27
ipctool2 i2cset 0x88 0xC9 0x00
ipctool2 i2cset 0x88 0xCA 0x00
ipctool2 i2cset 0x88 0xCB 0x07
ipctool2 i2cset 0x88 0xCC 0x08
ipctool2 i2cset 0x88 0xCD 0x00
ipctool2 i2cset 0x88 0xCE 0x00
ipctool2 i2cset 0x88 0xCF 0x04
ipctool2 i2cset 0x88 0xD0 0x00
ipctool2 i2cset 0x88 0xD1 0x00
ipctool2 i2cset 0x88 0xD2 0x60
ipctool2 i2cset 0x88 0xD3 0x10
ipctool2 i2cset 0x88 0xD4 0x06
ipctool2 i2cset 0x88 0xD5 0xBE
ipctool2 i2cset 0x88 0xD6 0x39
ipctool2 i2cset 0x88 0xD7 0x27
ipctool2 i2cset 0x88 0xD8 0x00
ipctool2 i2cset 0x88 0xD9 0x00
ipctool2 i2cset 0x88 0xDA 0x00
ipctool2 i2cset 0x88 0xDB 0x00
ipctool2 i2cset 0x88 0xDC 0x00
ipctool2 i2cset 0x88 0xDD 0x00
ipctool2 i2cset 0x88 0xDE 0x00
ipctool2 i2cset 0x88 0xDF 0x00
ipctool2 i2cset 0x88 0xE0 0x00
ipctool2 i2cset 0x88 0xE1 0x00
ipctool2 i2cset 0x88 0xE2 0x00
ipctool2 i2cset 0x88 0xE3 0x00
ipctool2 i2cset 0x88 0xE4 0x00
ipctool2 i2cset 0x88 0xE5 0x00
ipctool2 i2cset 0x88 0xE6 0x00
ipctool2 i2cset 0x88 0xE7 0x13
ipctool2 i2cset 0x88 0xE8 0x03
ipctool2 i2cset 0x88 0xE9 0x00
ipctool2 i2cset 0x88 0xEA 0x00
ipctool2 i2cset 0x88 0xEB 0x00
ipctool2 i2cset 0x88 0xEC 0x00
ipctool2 i2cset 0x88 0xED 0x00
ipctool2 i2cset 0x88 0xEE 0x00
ipctool2 i2cset 0x88 0xEF 0x00
ipctool2 i2cset 0x88 0xF0 0x00
ipctool2 i2cset 0x88 0xF1 0x00
ipctool2 i2cset 0x88 0xF2 0x00
ipctool2 i2cset 0x88 0xF3 0x00
ipctool2 i2cset 0x88 0xF4 0x20
ipctool2 i2cset 0x88 0xF5 0x10
ipctool2 i2cset 0x88 0xF6 0x00
ipctool2 i2cset 0x88 0xF7 0x00
ipctool2 i2cset 0x88 0xF8 0x00
ipctool2 i2cset 0x88 0xF9 0x00
ipctool2 i2cset 0x88 0xFA 0x88
ipctool2 i2cset 0x88 0xFB 0x00
ipctool2 i2cset 0x88 0xFC 0x00
ipctool2 i2cset 0x88 0x40 0x08
ipctool2 i2cset 0x88 0x01 0xf8
ipctool2 i2cset 0x88 0x02 0x01
ipctool2 i2cset 0x88 0x08 0x0f
ipctool2 i2cset 0x88 0x13 0x24
ipctool2 i2cset 0x88 0x14 0x46
ipctool2 i2cset 0x88 0x15 0x08
ipctool2 i2cset 0x88 0x20 0x12
ipctool2 i2cset 0x88 0x34 0x1b
ipctool2 i2cset 0x88 0x23 0x02
ipctool2 i2cset 0x88 0x23 0x00
ipctool2 i2cset 0x88 0x40 0x00

View File

@ -0,0 +1,173 @@
#!/bin/sh
ipctool2 i2cset 0x88 0x02 0xCF
ipctool2 i2cset 0x88 0x05 0x00
ipctool2 i2cset 0x88 0x06 0x32
ipctool2 i2cset 0x88 0x07 0xC0
ipctool2 i2cset 0x88 0x08 0x00
ipctool2 i2cset 0x88 0x09 0x24
ipctool2 i2cset 0x88 0x0A 0x48
ipctool2 i2cset 0x88 0x0B 0xC0
ipctool2 i2cset 0x88 0x0C 0x13
ipctool2 i2cset 0x88 0x0D 0x51
ipctool2 i2cset 0x88 0x0E 0x00
ipctool2 i2cset 0x88 0x0F 0x00
ipctool2 i2cset 0x88 0x10 0xF8
ipctool2 i2cset 0x88 0x11 0x40
ipctool2 i2cset 0x88 0x12 0x60
ipctool2 i2cset 0x88 0x13 0x00
ipctool2 i2cset 0x88 0x14 0x00
ipctool2 i2cset 0x88 0x15 0x13
ipctool2 i2cset 0x88 0x16 0x70
ipctool2 i2cset 0x88 0x17 0xBC
ipctool2 i2cset 0x88 0x18 0x17
ipctool2 i2cset 0x88 0x19 0x20
ipctool2 i2cset 0x88 0x1A 0x17
ipctool2 i2cset 0x88 0x1B 0x01
ipctool2 i2cset 0x88 0x1C 0x09
ipctool2 i2cset 0x88 0x1D 0x48
ipctool2 i2cset 0x88 0x1E 0x80
ipctool2 i2cset 0x88 0x1F 0x80
ipctool2 i2cset 0x88 0x20 0x48
ipctool2 i2cset 0x88 0x21 0x84
ipctool2 i2cset 0x88 0x22 0x37
ipctool2 i2cset 0x88 0x23 0x3F
ipctool2 i2cset 0x88 0x24 0x04
ipctool2 i2cset 0x88 0x25 0xFF
ipctool2 i2cset 0x88 0x26 0x05
ipctool2 i2cset 0x88 0x27 0x2D
ipctool2 i2cset 0x88 0x28 0x00
ipctool2 i2cset 0x88 0x29 0x48
ipctool2 i2cset 0x88 0x2A 0x30
ipctool2 i2cset 0x88 0x2B 0x70
ipctool2 i2cset 0x88 0x2C 0x2A
ipctool2 i2cset 0x88 0x2D 0x64
ipctool2 i2cset 0x88 0x2E 0x56
ipctool2 i2cset 0x88 0x2F 0x00
ipctool2 i2cset 0x88 0x30 0x7A
ipctool2 i2cset 0x88 0x31 0x4A
ipctool2 i2cset 0x88 0x32 0x4D
ipctool2 i2cset 0x88 0x33 0xF0
ipctool2 i2cset 0x88 0x34 0x00
ipctool2 i2cset 0x88 0x35 0x65
ipctool2 i2cset 0x88 0x36 0xDC
ipctool2 i2cset 0x88 0x37 0x00
ipctool2 i2cset 0x88 0x38 0x00
ipctool2 i2cset 0x88 0x39 0x04
ipctool2 i2cset 0x88 0x3A 0x32
ipctool2 i2cset 0x88 0x3B 0x26
ipctool2 i2cset 0x88 0x3C 0x00
ipctool2 i2cset 0x88 0x3D 0x60
ipctool2 i2cset 0x88 0x3E 0x00
ipctool2 i2cset 0x88 0x3F 0x00
ipctool2 i2cset 0x88 0x40 0x00
ipctool2 i2cset 0x88 0x41 0x00
ipctool2 i2cset 0x88 0x42 0x00
ipctool2 i2cset 0x88 0x43 0x00
ipctool2 i2cset 0x88 0x44 0x00
ipctool2 i2cset 0x88 0x45 0x00
ipctool2 i2cset 0x88 0x46 0x00
ipctool2 i2cset 0x88 0x47 0x00
ipctool2 i2cset 0x88 0x48 0x00
ipctool2 i2cset 0x88 0x49 0x00
ipctool2 i2cset 0x88 0x4A 0x00
ipctool2 i2cset 0x88 0x4B 0x00
ipctool2 i2cset 0x88 0x4C 0x43
ipctool2 i2cset 0x88 0x4D 0x00
ipctool2 i2cset 0x88 0x4E 0x17
ipctool2 i2cset 0x88 0x4F 0x00
ipctool2 i2cset 0x88 0x50 0x00
ipctool2 i2cset 0x88 0x51 0x00
ipctool2 i2cset 0x88 0x52 0x00
ipctool2 i2cset 0x88 0x53 0x00
ipctool2 i2cset 0x88 0x54 0x00
ipctool2 i2cset 0x88 0xB3 0xFA
ipctool2 i2cset 0x88 0xB4 0x00
ipctool2 i2cset 0x88 0xB5 0x00
ipctool2 i2cset 0x88 0xB6 0x00
ipctool2 i2cset 0x88 0xB7 0x00
ipctool2 i2cset 0x88 0xB8 0x00
ipctool2 i2cset 0x88 0xB9 0x00
ipctool2 i2cset 0x88 0xBA 0x00
ipctool2 i2cset 0x88 0xBB 0x00
ipctool2 i2cset 0x88 0xBC 0x00
ipctool2 i2cset 0x88 0xBD 0x00
ipctool2 i2cset 0x88 0xBE 0x00
ipctool2 i2cset 0x88 0xBF 0x00
ipctool2 i2cset 0x88 0xC0 0x00
ipctool2 i2cset 0x88 0xC1 0x00
ipctool2 i2cset 0x88 0xC2 0x0B
ipctool2 i2cset 0x88 0xC3 0x0C
ipctool2 i2cset 0x88 0xC4 0x00
ipctool2 i2cset 0x88 0xC5 0x00
ipctool2 i2cset 0x88 0xC6 0x1F
ipctool2 i2cset 0x88 0xC7 0x78
ipctool2 i2cset 0x88 0xC8 0x27
ipctool2 i2cset 0x88 0xC9 0x00
ipctool2 i2cset 0x88 0xCA 0x00
ipctool2 i2cset 0x88 0xCB 0x07
ipctool2 i2cset 0x88 0xCC 0x08
ipctool2 i2cset 0x88 0xCD 0x00
ipctool2 i2cset 0x88 0xCE 0x00
ipctool2 i2cset 0x88 0xCF 0x04
ipctool2 i2cset 0x88 0xD0 0x00
ipctool2 i2cset 0x88 0xD1 0x00
ipctool2 i2cset 0x88 0xD2 0x60
ipctool2 i2cset 0x88 0xD3 0x10
ipctool2 i2cset 0x88 0xD4 0x06
ipctool2 i2cset 0x88 0xD5 0xBE
ipctool2 i2cset 0x88 0xD6 0x39
ipctool2 i2cset 0x88 0xD7 0x27
ipctool2 i2cset 0x88 0xD8 0x00
ipctool2 i2cset 0x88 0xD9 0x00
ipctool2 i2cset 0x88 0xDA 0x00
ipctool2 i2cset 0x88 0xDB 0x00
ipctool2 i2cset 0x88 0xDC 0x00
ipctool2 i2cset 0x88 0xDD 0x00
ipctool2 i2cset 0x88 0xDE 0x00
ipctool2 i2cset 0x88 0xDF 0x00
ipctool2 i2cset 0x88 0xE0 0x00
ipctool2 i2cset 0x88 0xE1 0x00
ipctool2 i2cset 0x88 0xE2 0x00
ipctool2 i2cset 0x88 0xE3 0x00
ipctool2 i2cset 0x88 0xE4 0x00
ipctool2 i2cset 0x88 0xE5 0x00
ipctool2 i2cset 0x88 0xE6 0x00
ipctool2 i2cset 0x88 0xE7 0x13
ipctool2 i2cset 0x88 0xE8 0x03
ipctool2 i2cset 0x88 0xE9 0x00
ipctool2 i2cset 0x88 0xEA 0x00
ipctool2 i2cset 0x88 0xEB 0x00
ipctool2 i2cset 0x88 0xEC 0x00
ipctool2 i2cset 0x88 0xED 0x00
ipctool2 i2cset 0x88 0xEE 0x00
ipctool2 i2cset 0x88 0xEF 0x00
ipctool2 i2cset 0x88 0xF0 0x00
ipctool2 i2cset 0x88 0xF1 0x00
ipctool2 i2cset 0x88 0xF2 0x00
ipctool2 i2cset 0x88 0xF3 0x00
ipctool2 i2cset 0x88 0xF4 0x20
ipctool2 i2cset 0x88 0xF5 0x10
ipctool2 i2cset 0x88 0xF6 0x00
ipctool2 i2cset 0x88 0xF7 0x00
ipctool2 i2cset 0x88 0xF8 0x00
ipctool2 i2cset 0x88 0xF9 0x00
ipctool2 i2cset 0x88 0xFA 0x0b
ipctool2 i2cset 0x88 0xFB 0x00
ipctool2 i2cset 0x88 0xFC 0x00
ipctool2 i2cset 0x88 0x40 0x08
ipctool2 i2cset 0x88 0x00 0x00
ipctool2 i2cset 0x88 0x01 0xf8
ipctool2 i2cset 0x88 0x02 0x01
ipctool2 i2cset 0x88 0x08 0xf0
ipctool2 i2cset 0x88 0x13 0x24
ipctool2 i2cset 0x88 0x14 0x73
ipctool2 i2cset 0x88 0x15 0x08
ipctool2 i2cset 0x88 0x20 0x12
ipctool2 i2cset 0x88 0x34 0x1b
ipctool2 i2cset 0x88 0x23 0x02
ipctool2 i2cset 0x88 0x23 0x00
ipctool2 i2cset 0x88 0x40 0x00

View File

@ -0,0 +1,270 @@
#!/usr/bin/haserl
<%in p/common.cgi %>
<%
page_title="Majestic settings"
mj=$(echo "$mj" | sed "s/ /_/g")
only="$GET_tab"; [ -z "$only" ] && only="system"
eval title="\$tT_mj_${only}"
if [ -n "$(eval echo "\$mj_hide_${only}_${fw_variant}" | sed -n "/\b${soc_family}\b/p")" ]; then
only="${only}_${fw_variant}"
variant="OpenIPC ${fw_variant}"
fi
# hide certain domains if not supported
if [ -n "$(eval echo "\$mj_hide_${only}" | sed -n "/\b${soc_family}\b/p")" ]; then
redirect_to "majestic-settings.cgi" "danger" "$title is not supported on ${variant:-your system}."
fi
if [ "POST" = "$REQUEST_METHOD" ]; then
mj_conf=/etc/majestic.yaml
temp_yaml=/tmp/majestic.yaml
# make a copy of the actual config into memory
cp -f $mj_conf $temp_yaml
OIFS=$IFS
IFS=$'\n' # make newlines the only separator
for yaml_param_name in $(printenv|grep POST_); do
form_field_name=$(echo $yaml_param_name | sed 's/^POST_mj_//')
key=".$(echo $form_field_name | cut -d= -f1 | sed 's/_/./g')"
# do not include helping fields into config
if [ "$key" = ".netip.password.plain" ] || [ "$key" = ".osd.corner" ]; then
continue
fi
value="$(echo $form_field_name | cut -d= -f2)"
# normalization
# (that's why we can't have nice things)
case "$key" in
.image.rotate)
[ "0" = "$value" ] && value="none"
;;
.isp.antiFlicker)
[ "50Hz" = "$value" ] && value="50"
[ "60Hz" = "$value" ] && value="60"
;;
.motionDetect.visualize)
[ "true" = "$value" ] && yaml-cli -s ".osd.enabled" "true" -i $temp_yaml
;;
.osd.enabled)
[ "false" = "$value" ] && yaml-cli -s ".motionDetect.visualize" "false" -i $temp_yaml
;;
.system.webAdmin)
[ "true" = "$value" ] && value="enabled"
[ "false" = "$value" ] && value="disabled"
;;
esac
# read existing value
oldvalue=$(yaml-cli -g "$key" -i $temp_yaml)
if [ -z "$value" ]; then
# if no new value submitted but there is an existing value, delete the yaml_param_name
[ -n "$oldvalue" ] && yaml-cli -d $key -i "$temp_yaml" -o "$temp_yaml"
else
# if new value is submitted and it differs from the existing one, update the yaml_param_name
[ "$oldvalue" != "$value" ] && yaml-cli -s $key "$value" -i "$temp_yaml" -o "$temp_yaml"
fi
done
IFS=$OIFS
# update config if differs
[ -n "$(diff -q $temp_yaml $mj_conf)" ] && cp -f $temp_yaml $mj_conf
# clean up
rm $temp_yaml
# reload majestic
killall -1 majestic
sleep 1
$(yaml-cli -i /etc/majestic.yaml -g .isp.sensorConfig | tr '/.' ' ' | awk '{print $3}').sh
redirect_to "$HTTP_REFERER"
fi
%>
<%in p/header.cgi %>
<ul class="nav nav-underline small mb-4 d-none d-lg-flex">
<%
mj=$(echo "$mj" | sed "s/ /_/g")
for _line in $mj; do
_parameter=${_line%%|*};
_param_name=${_parameter#.};
_param_domain=${_param_name%.*}
if [ "$_parameter_domain_old" != "$_param_domain" ]; then
# hide certain domains for certain familier
[ -n "$(eval echo "\$mj_hide_${_param_domain}" | sed -n "/\b${soc_family}\b/p")" ] && continue
# show certain domains only for certain vendors
[ -n "$(eval echo "\$mj_show_${_param_domain}_vendor")" ] && [ -z "$(eval echo "\$mj_show_${_param_domain}_vendor" | sed -n "/\b${soc_vendor}\b/p")" ] && continue
_parameter_domain_old="$_param_domain"
_css="class=\"nav-link\""; [ "$_param_domain" = "$only" ] && _css="class=\"nav-link active\" aria-current=\"true\""
echo "<li class=\"nav-item\"><a ${_css} href=\"majestic-settings.cgi?tab=${_param_domain}\">$(eval echo \$tT_mj_${_param_domain})</a></li>"
fi
done
unset _css; unset _param_domain; unset _line; unset _param_name; unset _parameter_domain_old; unset _parameter;
%>
</ul>
<div class="row row-cols-1 row-cols-md-2 row-cols-lg-3 g-4 mb-4">
<div class="col">
<h3><%= $title %></h3>
<form action="<%= $SCRIPT_NAME %>" method="post">
<%
config=""
_mj2="$(echo "$mj" | sed "s/ /_/g" | grep -E "^\.$only")"
for line in $_mj2; do
# line: .isp.exposure|Sensor_exposure_time|&micro;s|range|auto,1-500000|auto|From_1_to_500000.
yaml_param_name=${line%%|*} # => .isp.exposure
_param_name=${yaml_param_name#.} # => isp.exposure
_param_name=${_param_name//./_} # => isp_exposure
_param_name=${_param_name//-/_} # => isp_exposure
domain=${_param_name%%_*} # => isp
# hide certain domains if blacklisted
[ -n "$(eval echo "\$mj_hide_${domain}" | sed -n "/\b${soc_family}\b/p")" ] && continue
# hide certain parameters if blacklisted
[ -n "$(eval echo "\$mj_hide_${_param_name}_vendor" | sed -n "/\b${soc_vendor}\b/p")" ] && continue
[ -n "$(eval echo "\$mj_hide_${_param_name}" | sed -n "/\b${soc_family}\b/p")" ] && continue
# show certain domains only if whitelisted
[ -n "$(eval echo "\$mj_show_${domain}_vendor")" ] && [ -z "$(eval echo "\$mj_show_${domain}_vendor" | sed -n "/\b${soc_vendor}\b/p")" ] && continue
# show certain parameters only if whitelisted
[ -n "$(eval echo "\$mj_show_${_param_name}")" ] && [ -z "$(eval echo "\$mj_show_${_param_name}" | sed -n "/\b${soc_family}\b/p")" ] && continue
[ -n "$(eval echo "\$mj_show_${_param_name}_vendor")" ] && [ -z "$(eval echo "\$mj_show_${_param_name}_vendor" | sed -n "/\b${soc_vendor}\b/p")" ] && continue
# show certain parameters only in debug mode
[ -n "$(echo "$mj_hide_unless_debug" | sed -n "/\b${_param_name}\b/p")" ] && [ "0$debug" -lt "1" ] && continue
form_field_name=mj_${_param_name} # => mj_isp_exposure
line=${line#*|} # line: Sensor_exposure_time|&micro;s|range|auto,1-500000|auto|From_1_to_500000.
label_text=${line%%|*} # => Sensor_exposure_time
label_text=${label_text//_/ } # => Sensor exposure time
line=${line#*|} # line: &micro;s|range|auto,1-500000|auto|From_1_to_500000.
units=${line%%|*} # => &micro;s
line=${line#*|} # line: range|auto,1-500000|auto|From_1_to_500000.
form_field_type=${line%%|*} # => range
line=${line#*|} # line: auto,1-500000|auto|From_1_to_500000.
options=${line%%|*} # => auto,1-500000
line=${line#*|} # line: auto|From_1_to_500000.
placeholder=${line%%|*} # => auto
line=${line#*|} # line: From_1_to_500000.
hint=$line # => From_1_to_500000.
hint=${hint//_/ } # => From 1 to 500000.
value="$(yaml-cli -g "$yaml_param_name")"
# FIXME: this is not how it should be done. Instead, Majestic should be reporting its true values.
# [ -z "$value" ] && value="$placeholder"
# assign yaml_param_name's value to a variable with yaml_param_name's form_field_name for form fields values
eval "$form_field_name=\"\$value\""
# hide some params in config
if [ "mj_netip_password_plain" != "$form_field_name" ]; then
config="${config}\n$(eval echo ${yaml_param_name}: \"\$$form_field_name\")"
fi
case "$form_field_type" in
boolean) field_switch "$form_field_name" "$label_text" "$hint" "$options";;
hidden) field_hidden "$form_field_name" "$label_text" "$hint";;
number) field_number "$form_field_name" "$label_text" "$options" "$hint";;
password) field_password "$form_field_name" "$label_text" "$hint";;
range) field_range "$form_field_name" "$label_text" "$options" "$hint";;
select) field_select "$form_field_name" "$label_text" "$options" "$hint";;
string) field_text "$form_field_name" "$label_text" "$hint" "$placeholder";;
*) echo "<span class=\"text-danger\">UNKNOWN FIELD TYPE ${form_field_type} FOR ${_name} WITH LABEL ${label_text}</span>";;
esac
done
%>
<% button_submit %>
</form>
</div>
<div class="col">
<h3>Related settings</h3>
<pre><% echo -e "$config" %></pre>
</div>
<div class="col">
<h3>Quick Links</h3>
<p><a href="info-majestic.cgi">Majestic Config File (majestic.yaml)</a></p>
<p><a href="majestic-endpoints.cgi">Majestic Endpoints</a></p>
</div>
</div>
<script>
let MD5 = function(d){return V(Y(X(d),8*d.length))};
function X(d){for(var _=Array(d.length>>2),m=0;m<_.length;m++)_[m]=0;for(m=0;m<8*d.length;m+=8)_[m>>5]|=(255&d.charCodeAt(m/8))<<m%32;return _}
function V(d){for(var _="",m=0;m<32*d.length;m+=8)_+=String.fromCharCode(d[m>>5]>>>m%32&255);return _}
function Y(d,_){d[_>>5]|=128<<_%32,d[14+(_+64>>>9<<4)]=_;for(var m=1732584193,f=-271733879,r=-1732584194,i=271733878,n=0;n<d.length;n+=16){var h=m,t=f,g=r,e=i;f=md5_ii(f=md5_ii(f=md5_ii(f=md5_ii(f=md5_hh(f=md5_hh(f=md5_hh(f=md5_hh(f=md5_gg(f=md5_gg(f=md5_gg(f=md5_gg(f=md5_ff(f=md5_ff(f=md5_ff(f=md5_ff(f,r=md5_ff(r,i=md5_ff(i,m=md5_ff(m,f,r,i,d[n+0],7,-680876936),f,r,d[n+1],12,-389564586),m,f,d[n+2],17,606105819),i,m,d[n+3],22,-1044525330),r=md5_ff(r,i=md5_ff(i,m=md5_ff(m,f,r,i,d[n+4],7,-176418897),f,r,d[n+5],12,1200080426),m,f,d[n+6],17,-1473231341),i,m,d[n+7],22,-45705983),r=md5_ff(r,i=md5_ff(i,m=md5_ff(m,f,r,i,d[n+8],7,1770035416),f,r,d[n+9],12,-1958414417),m,f,d[n+10],17,-42063),i,m,d[n+11],22,-1990404162),r=md5_ff(r,i=md5_ff(i,m=md5_ff(m,f,r,i,d[n+12],7,1804603682),f,r,d[n+13],12,-40341101),m,f,d[n+14],17,-1502002290),i,m,d[n+15],22,1236535329),r=md5_gg(r,i=md5_gg(i,m=md5_gg(m,f,r,i,d[n+1],5,-165796510),f,r,d[n+6],9,-1069501632),m,f,d[n+11],14,643717713),i,m,d[n+0],20,-373897302),r=md5_gg(r,i=md5_gg(i,m=md5_gg(m,f,r,i,d[n+5],5,-701558691),f,r,d[n+10],9,38016083),m,f,d[n+15],14,-660478335),i,m,d[n+4],20,-405537848),r=md5_gg(r,i=md5_gg(i,m=md5_gg(m,f,r,i,d[n+9],5,568446438),f,r,d[n+14],9,-1019803690),m,f,d[n+3],14,-187363961),i,m,d[n+8],20,1163531501),r=md5_gg(r,i=md5_gg(i,m=md5_gg(m,f,r,i,d[n+13],5,-1444681467),f,r,d[n+2],9,-51403784),m,f,d[n+7],14,1735328473),i,m,d[n+12],20,-1926607734),r=md5_hh(r,i=md5_hh(i,m=md5_hh(m,f,r,i,d[n+5],4,-378558),f,r,d[n+8],11,-2022574463),m,f,d[n+11],16,1839030562),i,m,d[n+14],23,-35309556),r=md5_hh(r,i=md5_hh(i,m=md5_hh(m,f,r,i,d[n+1],4,-1530992060),f,r,d[n+4],11,1272893353),m,f,d[n+7],16,-155497632),i,m,d[n+10],23,-1094730640),r=md5_hh(r,i=md5_hh(i,m=md5_hh(m,f,r,i,d[n+13],4,681279174),f,r,d[n+0],11,-358537222),m,f,d[n+3],16,-722521979),i,m,d[n+6],23,76029189),r=md5_hh(r,i=md5_hh(i,m=md5_hh(m,f,r,i,d[n+9],4,-640364487),f,r,d[n+12],11,-421815835),m,f,d[n+15],16,530742520),i,m,d[n+2],23,-995338651),r=md5_ii(r,i=md5_ii(i,m=md5_ii(m,f,r,i,d[n+0],6,-198630844),f,r,d[n+7],10,1126891415),m,f,d[n+14],15,-1416354905),i,m,d[n+5],21,-57434055),r=md5_ii(r,i=md5_ii(i,m=md5_ii(m,f,r,i,d[n+12],6,1700485571),f,r,d[n+3],10,-1894986606),m,f,d[n+10],15,-1051523),i,m,d[n+1],21,-2054922799),r=md5_ii(r,i=md5_ii(i,m=md5_ii(m,f,r,i,d[n+8],6,1873313359),f,r,d[n+15],10,-30611744),m,f,d[n+6],15,-1560198380),i,m,d[n+13],21,1309151649),r=md5_ii(r,i=md5_ii(i,m=md5_ii(m,f,r,i,d[n+4],6,-145523070),f,r,d[n+11],10,-1120210379),m,f,d[n+2],15,718787259),i,m,d[n+9],21,-343485551),m=safe_add(m,h),f=safe_add(f,t),r=safe_add(r,g),i=safe_add(i,e)}return Array(m,f,r,i)}
function md5_cmn(d,_,m,f,r,i){return safe_add(bit_rol(safe_add(safe_add(_,d),safe_add(f,i)),r),m)}
function md5_ff(d,_,m,f,r,i,n){return md5_cmn(_&m|~_&f,d,_,r,i,n)}
function md5_gg(d,_,m,f,r,i,n){return md5_cmn(_&f|m&~f,d,_,r,i,n)}
function md5_hh(d,_,m,f,r,i,n){return md5_cmn(_^m^f,d,_,r,i,n)}
function md5_ii(d,_,m,f,r,i,n){return md5_cmn(m^(_|~f),d,_,r,i,n)}
function safe_add(d,_){var m=(65535&d)+(65535&_);return(d>>16)+(_>>16)+(m>>16)<<16|65535&m}
function bit_rol(d,_){return d<<_|d>>>32-_}
function ord(str){return str.charCodeAt(0)}
function chr(n){return String.fromCharCode(n)}
function generateSofiaHash(text) {
let h = "";
let md5 = MD5(text);
for (let i = 0; i <= 7; i++) {
let n = (ord(md5[2*i]) + ord(md5[2*i+1])) % 62;
n += (n > 9) ? (n > 35) ? 61 : 55 : 48;
h += chr(n);
}
return h;
}
<% if [ -d /etc/sensors/ ]; then %>
if ($("#mj_isp_sensorConfig")) {
const inp = $("#mj_isp_sensorConfig");
const sel = document.createElement("select");
sel.classList.add("form-select");
sel.name=inp.name;
sel.id=inp.id;
sel.options.add(new Option());
let opt;
<% for i in $(ls -1 /etc/sensors/*.ini || ls -1 /etc/sensors/*.bin); do %>
opt = new Option("<%= $i %>");
opt.selected = ("<%= $i %>" == inp.value);
sel.options.add(opt);
<% done %>
inp.replaceWith(sel);
}
<% fi %>
$("#mj_osd_corner")?.addEventListener("change", (ev) => {
const padding = 16;
switch (ev.target.value) {
case "bl":
$("#mj_osd_posX").value = padding;
$("#mj_osd_posY").value = -(padding);
break;
case "br":
$("#mj_osd_posX").value = -(padding);
$("#mj_osd_posY").value = -(padding);
break;
case "tl":
$("#mj_osd_posX").value = padding;
$("#mj_osd_posY").value = padding;
break;
case "tr":
$("#mj_osd_posX").value = -(padding);
$("#mj_osd_posY").value = padding;
break;
}
})
$("#mj_netip_enabled")?.addEventListener("change", (ev) => {
$("#mj_netip_user").required = ev.target.checked;
$("#mj_netip_password_plain").required = ev.target.checked;
})
$("#mj_netip_password_plain") && $("form").addEventListener("submit", (ev) => {
const pw = $("#mj_netip_password_plain").value.trim();
if (pw !== "") $("#mj_netip_password").value = generateSofiaHash(pw);
})
</script>
<%in p/footer.cgi %>

View File

@ -0,0 +1,41 @@
#
etc/sensors/4l_sc223a_i2c_1080p.ini
etc/sensors/5M_imx335.ini
etc/sensors/bt656_720p.ini
etc/sensors/gc2053_i2c_1080p.ini
etc/sensors/gc4653_i2c_4M.ini
etc/sensors/imx307_i2c_2l_1080p.ini
etc/sensors/imx335_i2c_4M.ini
etc/sensors/jxf23_i2c_1080p.ini
etc/sensors/jxf23_i2c_dc_1080p.ini
etc/sensors/sc2232h_i2c_1080p.ini
etc/sensors/sc2232h_i2c_1080p.ini
etc/sensors/sc2232h_i2c_1080p.ini
etc/sensors/sc2239_i2c_1080p.ini
etc/sensors/sc223a_i2c_1080p.ini
etc/sensors/sc2335_i2c_1080p.ini
etc/sensors/smtsec_imx307_i2c_4l_1080p.ini
#
etc/sensors/60fps
etc/sensors/WDR
etc/sensors/iq
#
usr/lib/sensors/libsns_f37.so
usr/lib/sensors/libsns_gc2053.so
usr/lib/sensors/libsns_gc4653_2l.so
usr/lib/sensors/libsns_imx307.so
usr/lib/sensors/libsns_imx307_2l.so
usr/lib/sensors/libsns_imx335.so
usr/lib/sensors/libsns_sc200ai.so
usr/lib/sensors/libsns_sc2232h.so
usr/lib/sensors/libsns_sc2239.so
usr/lib/sensors/libsns_sc223a.so
usr/lib/sensors/libsns_sc223a_4l.so
usr/lib/sensors/libsns_sc2335.so
usr/lib/sensors/libsns_sc3235.so
usr/lib/sensors/libsns_sc3335.so
#
lib/modules/4.9.37/kernel/drivers/i2c
lib/modules/4.9.37/kernel/drivers/scsi
lib/modules/4.9.37/kernel/drivers/usb
lib/modules/4.9.37/kernel/fs/f2fs

View File

@ -0,0 +1,55 @@
#!/bin/sh
DAEMON="ntpd"
PIDFILE="/var/run/$DAEMON.pid"
NTPD_ARGS="-n"
# shellcheck source=/dev/null
[ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON"
# BusyBox' ntpd does not create a pidfile, so pass "-n" in the command line
# and use "-m" to instruct start-stop-daemon to create one.
start() {
printf 'Starting %s: ' "$DAEMON"
# shellcheck disable=SC2086 # we need the word splitting
hwclock -s
start-stop-daemon -b -m -S -q -p "$PIDFILE" -x "/usr/sbin/$DAEMON" -- $NTPD_ARGS
status=$?
if [ "$status" -eq 0 ]; then
echo "OK"
else
echo "FAIL"
fi
return "$status"
}
stop() {
printf 'Stopping %s: ' "$DAEMON"
start-stop-daemon -K -q -p "$PIDFILE"
status=$?
if [ "$status" -eq 0 ]; then
rm -f "$PIDFILE"
echo "OK"
else
echo "FAIL"
fi
return "$status"
}
case "$1" in
start|stop)
"$1"
;;
reload)
stop
sleep 1
start
;;
*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
;;
esac

View File

@ -0,0 +1,69 @@
#!/bin/sh
DAEMON="majestic"
PIDFILE="/var/run/$DAEMON.pid"
DAEMON_ARGS="-s"
# shellcheck source=/dev/null
[ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON"
load_majestic() {
printf 'Starting %s: ' "$DAEMON"
[ -f /usr/bin/$DAEMON ] || echo -en "DISABLED, "
# shellcheck disable=SC2086 # we need the word splitting
[ -f /etc/coredump.conf ] && . /etc/coredump.conf
if [ "$coredump_enabled" ]; then
[ "$(cli -g .watchdog.timeout)" -lt "30" ] && cli -s .watchdog.timeout 30
ulimit -c unlimited && echo "|/usr/sbin/sendcoredump.sh" >/proc/sys/kernel/core_pattern
fi
start-stop-daemon -b -m -S -q -p "$PIDFILE" -x "/usr/bin/$DAEMON" -- $DAEMON_ARGS
status=$?
if [ "$status" -eq 0 ]; then
echo "OK"
else
echo "FAIL"
fi
return "$status"
}
# The daemon does not create a pidfile, and use "-m" to instruct start-stop-daemon to create one.
start() {
logger -s -p daemon.info -t $(ipcinfo -v) "Loading video system has started..."
export SENSOR=$(fw_printenv -n sensor)
load_majestic
sleep 3
$(yaml-cli -i /etc/majestic.yaml -g .isp.sensorConfig | tr '/.' ' ' | awk '{print $3}').sh
}
stop() {
printf 'Stopping %s: ' "$DAEMON"
[ -f /usr/bin/$DAEMON ] || echo -en "DISABLED, "
start-stop-daemon -K -q -p "$PIDFILE"
status=$?
if [ "$status" -eq 0 ]; then
rm -f "$PIDFILE"
echo "OK"
else
echo "FAIL"
fi
return "$status"
}
restart() {
stop
sleep 1
reload
}
reload() {
load_majestic
}
case "$1" in
start|stop|restart|reload)
"$1";;
*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
esac

View File

@ -0,0 +1,55 @@
system:
webAdmin: enabled
buffer: 1024
staticDir: /var/www/majestic
image:
mirror: false
flip: false
rotate: none
contrast: 50
hue: 50
saturation: 50
luminance: 50
osd:
enabled: false
template: "%a %e %B %Y %H:%M:%S %Z"
nightMode:
enabled: false
records:
enabled: false
path: /mnt/mmcblk0p1/%F/%H.mp4
maxUsage: 95
video0:
enabled: true
codec: h264
video1:
enabled: false
jpeg:
enabled: true
mjpeg:
size: 640x360
fps: 5
bitrate: 1024
audio:
enabled: false
volume: auto
srate: 8000
rtsp:
enabled: true
port: 554
hls:
enabled: false
youtube:
enabled: false
motionDetect:
enabled: false
visualize: true
debug: true
ipeye:
enabled: false
watchdog:
enabled: true
timeout: 10
isp:
lowDelay: false
sensorConfig: /etc/sensors/bt656_ahd_pal_1080p.ini

View File

@ -0,0 +1,56 @@
[sensor]
Sensor_type = stBt656_Obj
Mode = WDR_MODE_NONE
DllFile = libsns_bt656.so
[mode]
input_mode = INPUT_MODE_BT656
raw_bitness = 8
[isp_image]
Isp_FrameRate = 25
Isp_Bayer = BAYER_RGGB
[vi_dev]
Input_mod = VI_MODE_BT656
Work_mod = VI_WORK_MODE_1Multiplex
Mask_num = 2
Mask_0 = 0xff00000
Mask_1 = 0x0
Scan_mode = VI_SCAN_PROGRESSIVE
Data_seq = VI_DATA_SEQ_UYVY
Vsync = VI_VSYNC_PULSE
VsyncNeg = VI_VSYNC_NEG_LOW
Hsync = VI_HSYNC_VALID_SINGNAL
HsyncNeg = VI_HSYNC_NEG_HIGH
VsyncValid = VI_VSYNC_VALID_SINGAL
VsyncValidNeg = VI_VSYNC_VALID_NEG_HIGH
Timingblank_HsyncHfb = 0
Timingblank_HsyncAct = 1920
Timingblank_HsyncHbb = 0
Timingblank_VsyncVfb = 0
Timingblank_VsyncVact = 1080
Timingblank_VsyncVbb = 0
Timingblank_VsyncVbfb = 0
Timingblank_VsyncVbact = 0
Timingblank_VsyncVbbb = 0
;----- only for bt656 ----------
FixCode = BT656_FIXCODE_1
FieldPolar = BT656_FIELD_POLAR_STD
DataPath = VI_PATH_BYPASS
InputDataType = VI_DATA_TYPE_YUV
DataRev = FALSE
DevRect_x = 0
DevRect_y = 0
DevRect_w = 1920
DevRect_h = 1080
[vi_chn]
CapSel = VI_CAPSEL_BOTH
PixFormat = PIXEL_FORMAT_YVU_SEMIPLANAR_420
CompressMode = COMPRESS_MODE_NONE
SrcFrameRate = -1
FrameRate = -1

View File

@ -0,0 +1,56 @@
[sensor]
Sensor_type = stBt656_Obj
Mode = WDR_MODE_NONE
DllFile = libsns_bt656.so
[mode]
input_mode = INPUT_MODE_BT656
raw_bitness = 8
[isp_image]
Isp_FrameRate = 25
Isp_Bayer = BAYER_RGGB
[vi_dev]
Input_mod = VI_MODE_BT656
Work_mod = VI_WORK_MODE_1Multiplex
Mask_num = 2
Mask_0 = 0xff00000
Mask_1 = 0x0
Scan_mode = VI_SCAN_PROGRESSIVE
Data_seq = VI_DATA_SEQ_UYVY
Vsync = VI_VSYNC_PULSE
VsyncNeg = VI_VSYNC_NEG_LOW
Hsync = VI_HSYNC_VALID_SINGNAL
HsyncNeg = VI_HSYNC_NEG_HIGH
VsyncValid = VI_VSYNC_VALID_SINGAL
VsyncValidNeg = VI_VSYNC_VALID_NEG_HIGH
Timingblank_HsyncHfb = 0
Timingblank_HsyncAct = 1280
Timingblank_HsyncHbb = 0
Timingblank_VsyncVfb = 0
Timingblank_VsyncVact = 720
Timingblank_VsyncVbb = 0
Timingblank_VsyncVbfb = 0
Timingblank_VsyncVbact = 0
Timingblank_VsyncVbbb = 0
;----- only for bt656 ----------
FixCode = BT656_FIXCODE_1
FieldPolar = BT656_FIELD_POLAR_STD
DataPath = VI_PATH_BYPASS
InputDataType = VI_DATA_TYPE_YUV
DataRev = FALSE
DevRect_x = 0
DevRect_y = 0
DevRect_w = 1280
DevRect_h = 720
[vi_chn]
CapSel = VI_CAPSEL_BOTH
PixFormat = PIXEL_FORMAT_YVU_SEMIPLANAR_420
CompressMode = COMPRESS_MODE_NONE
SrcFrameRate = -1
FrameRate = -1

View File

@ -0,0 +1,56 @@
[sensor]
Sensor_type = stBt656_Obj
Mode = WDR_MODE_NONE
DllFile = libsns_bt656.so
[mode]
input_mode = INPUT_MODE_BT656
raw_bitness = 8
[isp_image]
Isp_FrameRate = 25
Isp_Bayer = BAYER_RGGB
[vi_dev]
Input_mod = VI_MODE_BT656
Work_mod = VI_WORK_MODE_1Multiplex
Mask_num = 2
Mask_0 = 0xff00000
Mask_1 = 0x0
Scan_mode = VI_SCAN_PROGRESSIVE
Data_seq = VI_DATA_SEQ_UYVY
Vsync = VI_VSYNC_PULSE
VsyncNeg = VI_VSYNC_NEG_LOW
Hsync = VI_HSYNC_VALID_SINGNAL
HsyncNeg = VI_HSYNC_NEG_HIGH
VsyncValid = VI_VSYNC_VALID_SINGAL
VsyncValidNeg = VI_VSYNC_VALID_NEG_HIGH
Timingblank_HsyncHfb = 0
Timingblank_HsyncAct = 960
Timingblank_HsyncHbb = 0
Timingblank_VsyncVfb = 0
Timingblank_VsyncVact = 576
Timingblank_VsyncVbb = 0
Timingblank_VsyncVbfb = 0
Timingblank_VsyncVbact = 0
Timingblank_VsyncVbbb = 0
;----- only for bt656 ----------
FixCode = BT656_FIXCODE_1
FieldPolar = BT656_FIELD_POLAR_STD
DataPath = VI_PATH_BYPASS
InputDataType = VI_DATA_TYPE_YUV
DataRev = FALSE
DevRect_x = 0
DevRect_y = 0
DevRect_w = 960
DevRect_h = 576
[vi_chn]
CapSel = VI_CAPSEL_BOTH
PixFormat = PIXEL_FORMAT_YVU_SEMIPLANAR_420
CompressMode = COMPRESS_MODE_NONE
SrcFrameRate = -1
FrameRate = -1

View File

@ -0,0 +1,173 @@
#!/bin/sh
ipctool2 i2cset 0x88 0x02 0xCC
ipctool2 i2cset 0x88 0x05 0x00
ipctool2 i2cset 0x88 0x06 0x32
ipctool2 i2cset 0x88 0x07 0xC0
ipctool2 i2cset 0x88 0x08 0x00
ipctool2 i2cset 0x88 0x09 0x24
ipctool2 i2cset 0x88 0x0A 0x48
ipctool2 i2cset 0x88 0x0B 0xC0
ipctool2 i2cset 0x88 0x0C 0x03
ipctool2 i2cset 0x88 0x0D 0x73
ipctool2 i2cset 0x88 0x0E 0x00
ipctool2 i2cset 0x88 0x0F 0x00
ipctool2 i2cset 0x88 0x10 0x00
ipctool2 i2cset 0x88 0x11 0x40
ipctool2 i2cset 0x88 0x12 0x60
ipctool2 i2cset 0x88 0x13 0x00
ipctool2 i2cset 0x88 0x14 0x00
ipctool2 i2cset 0x88 0x15 0x01
ipctool2 i2cset 0x88 0x16 0xF0
ipctool2 i2cset 0x88 0x17 0x80
ipctool2 i2cset 0x88 0x18 0x29
ipctool2 i2cset 0x88 0x19 0x38
ipctool2 i2cset 0x88 0x1A 0x47
ipctool2 i2cset 0x88 0x1B 0x01
ipctool2 i2cset 0x88 0x1C 0x0A
ipctool2 i2cset 0x88 0x1D 0x50
ipctool2 i2cset 0x88 0x1E 0x80
ipctool2 i2cset 0x88 0x1F 0x80
ipctool2 i2cset 0x88 0x20 0x3C
ipctool2 i2cset 0x88 0x21 0x46
ipctool2 i2cset 0x88 0x22 0x36
ipctool2 i2cset 0x88 0x23 0x3C
ipctool2 i2cset 0x88 0x24 0x04
ipctool2 i2cset 0x88 0x25 0xFE
ipctool2 i2cset 0x88 0x26 0x0D
ipctool2 i2cset 0x88 0x27 0x2D
ipctool2 i2cset 0x88 0x28 0x00
ipctool2 i2cset 0x88 0x29 0x48
ipctool2 i2cset 0x88 0x2A 0x30
ipctool2 i2cset 0x88 0x2B 0x60
ipctool2 i2cset 0x88 0x2C 0x1A
ipctool2 i2cset 0x88 0x2D 0x54
ipctool2 i2cset 0x88 0x2E 0x40
ipctool2 i2cset 0x88 0x2F 0x00
ipctool2 i2cset 0x88 0x30 0xA5
ipctool2 i2cset 0x88 0x31 0x86
ipctool2 i2cset 0x88 0x32 0xFB
ipctool2 i2cset 0x88 0x33 0x60
ipctool2 i2cset 0x88 0x34 0x00
ipctool2 i2cset 0x88 0x35 0x05
ipctool2 i2cset 0x88 0x36 0xDC
ipctool2 i2cset 0x88 0x37 0x00
ipctool2 i2cset 0x88 0x38 0x00
ipctool2 i2cset 0x88 0x39 0x1C
ipctool2 i2cset 0x88 0x3A 0x32
ipctool2 i2cset 0x88 0x3B 0x26
ipctool2 i2cset 0x88 0x3C 0x00
ipctool2 i2cset 0x88 0x3D 0x60
ipctool2 i2cset 0x88 0x3E 0x00
ipctool2 i2cset 0x88 0x3F 0x00
ipctool2 i2cset 0x88 0x40 0x00
ipctool2 i2cset 0x88 0x41 0x00
ipctool2 i2cset 0x88 0x42 0x00
ipctool2 i2cset 0x88 0x43 0x00
ipctool2 i2cset 0x88 0x44 0x00
ipctool2 i2cset 0x88 0x45 0x00
ipctool2 i2cset 0x88 0x46 0x00
ipctool2 i2cset 0x88 0x47 0x00
ipctool2 i2cset 0x88 0x48 0x00
ipctool2 i2cset 0x88 0x49 0x00
ipctool2 i2cset 0x88 0x4A 0x00
ipctool2 i2cset 0x88 0x4B 0x00
ipctool2 i2cset 0x88 0x4C 0x43
ipctool2 i2cset 0x88 0x4D 0x00
ipctool2 i2cset 0x88 0x4E 0x17
ipctool2 i2cset 0x88 0x4F 0x00
ipctool2 i2cset 0x88 0x50 0x00
ipctool2 i2cset 0x88 0x51 0x00
ipctool2 i2cset 0x88 0x52 0x00
ipctool2 i2cset 0x88 0x53 0x00
ipctool2 i2cset 0x88 0x54 0x00
ipctool2 i2cset 0x88 0xB3 0xFA
ipctool2 i2cset 0x88 0xB4 0x00
ipctool2 i2cset 0x88 0xB5 0x00
ipctool2 i2cset 0x88 0xB6 0x00
ipctool2 i2cset 0x88 0xB7 0x00
ipctool2 i2cset 0x88 0xB8 0x00
ipctool2 i2cset 0x88 0xB9 0x00
ipctool2 i2cset 0x88 0xBA 0x00
ipctool2 i2cset 0x88 0xBB 0x00
ipctool2 i2cset 0x88 0xBC 0x00
ipctool2 i2cset 0x88 0xBD 0x00
ipctool2 i2cset 0x88 0xBE 0x00
ipctool2 i2cset 0x88 0xBF 0x00
ipctool2 i2cset 0x88 0xC0 0x00
ipctool2 i2cset 0x88 0xC1 0x00
ipctool2 i2cset 0x88 0xC2 0x0B
ipctool2 i2cset 0x88 0xC3 0x0C
ipctool2 i2cset 0x88 0xC4 0x00
ipctool2 i2cset 0x88 0xC5 0x00
ipctool2 i2cset 0x88 0xC6 0x1F
ipctool2 i2cset 0x88 0xC7 0x78
ipctool2 i2cset 0x88 0xC8 0x27
ipctool2 i2cset 0x88 0xC9 0x00
ipctool2 i2cset 0x88 0xCA 0x00
ipctool2 i2cset 0x88 0xCB 0x07
ipctool2 i2cset 0x88 0xCC 0x08
ipctool2 i2cset 0x88 0xCD 0x00
ipctool2 i2cset 0x88 0xCE 0x00
ipctool2 i2cset 0x88 0xCF 0x04
ipctool2 i2cset 0x88 0xD0 0x00
ipctool2 i2cset 0x88 0xD1 0x00
ipctool2 i2cset 0x88 0xD2 0x60
ipctool2 i2cset 0x88 0xD3 0x10
ipctool2 i2cset 0x88 0xD4 0x06
ipctool2 i2cset 0x88 0xD5 0xBE
ipctool2 i2cset 0x88 0xD6 0x39
ipctool2 i2cset 0x88 0xD7 0x27
ipctool2 i2cset 0x88 0xD8 0x00
ipctool2 i2cset 0x88 0xD9 0x00
ipctool2 i2cset 0x88 0xDA 0x00
ipctool2 i2cset 0x88 0xDB 0x00
ipctool2 i2cset 0x88 0xDC 0x00
ipctool2 i2cset 0x88 0xDD 0x00
ipctool2 i2cset 0x88 0xDE 0x00
ipctool2 i2cset 0x88 0xDF 0x00
ipctool2 i2cset 0x88 0xE0 0x00
ipctool2 i2cset 0x88 0xE1 0x00
ipctool2 i2cset 0x88 0xE2 0x00
ipctool2 i2cset 0x88 0xE3 0x00
ipctool2 i2cset 0x88 0xE4 0x00
ipctool2 i2cset 0x88 0xE5 0x00
ipctool2 i2cset 0x88 0xE6 0x00
ipctool2 i2cset 0x88 0xE7 0x13
ipctool2 i2cset 0x88 0xE8 0x03
ipctool2 i2cset 0x88 0xE9 0x00
ipctool2 i2cset 0x88 0xEA 0x00
ipctool2 i2cset 0x88 0xEB 0x00
ipctool2 i2cset 0x88 0xEC 0x00
ipctool2 i2cset 0x88 0xED 0x00
ipctool2 i2cset 0x88 0xEE 0x00
ipctool2 i2cset 0x88 0xEF 0x00
ipctool2 i2cset 0x88 0xF0 0x00
ipctool2 i2cset 0x88 0xF1 0x00
ipctool2 i2cset 0x88 0xF2 0x00
ipctool2 i2cset 0x88 0xF3 0x00
ipctool2 i2cset 0x88 0xF4 0x20
ipctool2 i2cset 0x88 0xF5 0x10
ipctool2 i2cset 0x88 0xF6 0x00
ipctool2 i2cset 0x88 0xF7 0x00
ipctool2 i2cset 0x88 0xF8 0x00
ipctool2 i2cset 0x88 0xF9 0x00
ipctool2 i2cset 0x88 0xFA 0x88
ipctool2 i2cset 0x88 0xFB 0x00
ipctool2 i2cset 0x88 0xFC 0x00
ipctool2 i2cset 0x88 0x40 0x08
ipctool2 i2cset 0x88 0x00 0x00
ipctool2 i2cset 0x88 0x01 0xf8
ipctool2 i2cset 0x88 0x02 0x01
ipctool2 i2cset 0x88 0x08 0xF0
ipctool2 i2cset 0x88 0x13 0x04
ipctool2 i2cset 0x88 0x14 0x73
ipctool2 i2cset 0x88 0x15 0x08
ipctool2 i2cset 0x88 0x20 0x12
ipctool2 i2cset 0x88 0x34 0x1b
ipctool2 i2cset 0x88 0x23 0x02
ipctool2 i2cset 0x88 0x23 0x00
ipctool2 i2cset 0x88 0x40 0x00

View File

@ -0,0 +1,173 @@
#!/bin/sh
ipctool2 i2cset 0x88 0x02 0xCE
ipctool2 i2cset 0x88 0x05 0x00
ipctool2 i2cset 0x88 0x06 0x32
ipctool2 i2cset 0x88 0x07 0xC0
ipctool2 i2cset 0x88 0x08 0x00
ipctool2 i2cset 0x88 0x09 0x24
ipctool2 i2cset 0x88 0x0A 0x48
ipctool2 i2cset 0x88 0x0B 0xC0
ipctool2 i2cset 0x88 0x0C 0x03
ipctool2 i2cset 0x88 0x0D 0x71
ipctool2 i2cset 0x88 0x0E 0x00
ipctool2 i2cset 0x88 0x0F 0x00
ipctool2 i2cset 0x88 0x10 0x00
ipctool2 i2cset 0x88 0x11 0x40
ipctool2 i2cset 0x88 0x12 0x40
ipctool2 i2cset 0x88 0x13 0x00
ipctool2 i2cset 0x88 0x14 0x00
ipctool2 i2cset 0x88 0x15 0x13
ipctool2 i2cset 0x88 0x16 0x16
ipctool2 i2cset 0x88 0x17 0x00
ipctool2 i2cset 0x88 0x18 0x19
ipctool2 i2cset 0x88 0x19 0xD0
ipctool2 i2cset 0x88 0x1A 0x25
ipctool2 i2cset 0x88 0x1B 0x01
ipctool2 i2cset 0x88 0x1C 0x07
ipctool2 i2cset 0x88 0x1D 0xBC
ipctool2 i2cset 0x88 0x1E 0x80
ipctool2 i2cset 0x88 0x1F 0x80
ipctool2 i2cset 0x88 0x20 0x40
ipctool2 i2cset 0x88 0x21 0x46
ipctool2 i2cset 0x88 0x22 0x36
ipctool2 i2cset 0x88 0x23 0x3C
ipctool2 i2cset 0x88 0x24 0x04
ipctool2 i2cset 0x88 0x25 0xFE
ipctool2 i2cset 0x88 0x26 0x01
ipctool2 i2cset 0x88 0x27 0x2D
ipctool2 i2cset 0x88 0x28 0x00
ipctool2 i2cset 0x88 0x29 0x48
ipctool2 i2cset 0x88 0x2A 0x30
ipctool2 i2cset 0x88 0x2B 0x60
ipctool2 i2cset 0x88 0x2C 0x2A
ipctool2 i2cset 0x88 0x2D 0x5A
ipctool2 i2cset 0x88 0x2E 0x40
ipctool2 i2cset 0x88 0x2F 0x00
ipctool2 i2cset 0x88 0x30 0x9E
ipctool2 i2cset 0x88 0x31 0x20
ipctool2 i2cset 0x88 0x32 0x10
ipctool2 i2cset 0x88 0x33 0x90
ipctool2 i2cset 0x88 0x34 0x00
ipctool2 i2cset 0x88 0x35 0x25
ipctool2 i2cset 0x88 0x36 0xDC
ipctool2 i2cset 0x88 0x37 0x00
ipctool2 i2cset 0x88 0x38 0x00
ipctool2 i2cset 0x88 0x39 0x18
ipctool2 i2cset 0x88 0x3A 0x32
ipctool2 i2cset 0x88 0x3B 0x26
ipctool2 i2cset 0x88 0x3C 0x00
ipctool2 i2cset 0x88 0x3D 0x60
ipctool2 i2cset 0x88 0x3E 0x00
ipctool2 i2cset 0x88 0x3F 0x00
ipctool2 i2cset 0x88 0x40 0x00
ipctool2 i2cset 0x88 0x41 0x00
ipctool2 i2cset 0x88 0x42 0x00
ipctool2 i2cset 0x88 0x43 0x00
ipctool2 i2cset 0x88 0x44 0x00
ipctool2 i2cset 0x88 0x45 0x00
ipctool2 i2cset 0x88 0x46 0x00
ipctool2 i2cset 0x88 0x47 0x00
ipctool2 i2cset 0x88 0x48 0x00
ipctool2 i2cset 0x88 0x49 0x00
ipctool2 i2cset 0x88 0x4A 0x00
ipctool2 i2cset 0x88 0x4B 0x00
ipctool2 i2cset 0x88 0x4C 0x43
ipctool2 i2cset 0x88 0x4D 0x00
ipctool2 i2cset 0x88 0x4E 0x17
ipctool2 i2cset 0x88 0x4F 0x00
ipctool2 i2cset 0x88 0x50 0x00
ipctool2 i2cset 0x88 0x51 0x00
ipctool2 i2cset 0x88 0x52 0x00
ipctool2 i2cset 0x88 0x53 0x00
ipctool2 i2cset 0x88 0x54 0x00
ipctool2 i2cset 0x88 0x55 0x00
ipctool2 i2cset 0x88 0xB3 0xFA
ipctool2 i2cset 0x88 0xB4 0x00
ipctool2 i2cset 0x88 0xB5 0x00
ipctool2 i2cset 0x88 0xB6 0x00
ipctool2 i2cset 0x88 0xB7 0x00
ipctool2 i2cset 0x88 0xB8 0x00
ipctool2 i2cset 0x88 0xB9 0x00
ipctool2 i2cset 0x88 0xBA 0x00
ipctool2 i2cset 0x88 0xBB 0x00
ipctool2 i2cset 0x88 0xBC 0x00
ipctool2 i2cset 0x88 0xBD 0x00
ipctool2 i2cset 0x88 0xBE 0x00
ipctool2 i2cset 0x88 0xBF 0x00
ipctool2 i2cset 0x88 0xC0 0x00
ipctool2 i2cset 0x88 0xC1 0x00
ipctool2 i2cset 0x88 0xC2 0x0B
ipctool2 i2cset 0x88 0xC3 0x0C
ipctool2 i2cset 0x88 0xC4 0x00
ipctool2 i2cset 0x88 0xC5 0x00
ipctool2 i2cset 0x88 0xC6 0x1F
ipctool2 i2cset 0x88 0xC7 0x78
ipctool2 i2cset 0x88 0xC8 0x27
ipctool2 i2cset 0x88 0xC9 0x00
ipctool2 i2cset 0x88 0xCA 0x00
ipctool2 i2cset 0x88 0xCB 0x07
ipctool2 i2cset 0x88 0xCC 0x08
ipctool2 i2cset 0x88 0xCD 0x00
ipctool2 i2cset 0x88 0xCE 0x00
ipctool2 i2cset 0x88 0xCF 0x04
ipctool2 i2cset 0x88 0xD0 0x00
ipctool2 i2cset 0x88 0xD1 0x00
ipctool2 i2cset 0x88 0xD2 0x60
ipctool2 i2cset 0x88 0xD3 0x10
ipctool2 i2cset 0x88 0xD4 0x06
ipctool2 i2cset 0x88 0xD5 0xBE
ipctool2 i2cset 0x88 0xD6 0x39
ipctool2 i2cset 0x88 0xD7 0x27
ipctool2 i2cset 0x88 0xD8 0x00
ipctool2 i2cset 0x88 0xD9 0x00
ipctool2 i2cset 0x88 0xDA 0x00
ipctool2 i2cset 0x88 0xDB 0x00
ipctool2 i2cset 0x88 0xDC 0x00
ipctool2 i2cset 0x88 0xDD 0x00
ipctool2 i2cset 0x88 0xDE 0x00
ipctool2 i2cset 0x88 0xDF 0x00
ipctool2 i2cset 0x88 0xE0 0x00
ipctool2 i2cset 0x88 0xE1 0x00
ipctool2 i2cset 0x88 0xE2 0x00
ipctool2 i2cset 0x88 0xE3 0x00
ipctool2 i2cset 0x88 0xE4 0x00
ipctool2 i2cset 0x88 0xE5 0x00
ipctool2 i2cset 0x88 0xE6 0x00
ipctool2 i2cset 0x88 0xE7 0x13
ipctool2 i2cset 0x88 0xE8 0x03
ipctool2 i2cset 0x88 0xE9 0x00
ipctool2 i2cset 0x88 0xEA 0x00
ipctool2 i2cset 0x88 0xEB 0x00
ipctool2 i2cset 0x88 0xEC 0x00
ipctool2 i2cset 0x88 0xED 0x00
ipctool2 i2cset 0x88 0xEE 0x00
ipctool2 i2cset 0x88 0xEF 0x00
ipctool2 i2cset 0x88 0xF0 0x00
ipctool2 i2cset 0x88 0xF1 0x00
ipctool2 i2cset 0x88 0xF2 0x00
ipctool2 i2cset 0x88 0xF3 0x00
ipctool2 i2cset 0x88 0xF4 0x20
ipctool2 i2cset 0x88 0xF5 0x10
ipctool2 i2cset 0x88 0xF6 0x00
ipctool2 i2cset 0x88 0xF7 0x00
ipctool2 i2cset 0x88 0xF8 0x00
ipctool2 i2cset 0x88 0xF9 0x00
ipctool2 i2cset 0x88 0xFA 0x88
ipctool2 i2cset 0x88 0xFB 0x00
ipctool2 i2cset 0x88 0xFC 0x00
ipctool2 i2cset 0x88 0x40 0x08
ipctool2 i2cset 0x88 0x01 0xf8
ipctool2 i2cset 0x88 0x02 0x01
ipctool2 i2cset 0x88 0x08 0x0f
ipctool2 i2cset 0x88 0x13 0x24
ipctool2 i2cset 0x88 0x14 0x46
ipctool2 i2cset 0x88 0x15 0x08
ipctool2 i2cset 0x88 0x20 0x12
ipctool2 i2cset 0x88 0x34 0x1b
ipctool2 i2cset 0x88 0x23 0x02
ipctool2 i2cset 0x88 0x23 0x00
ipctool2 i2cset 0x88 0x40 0x00

View File

@ -0,0 +1,173 @@
#!/bin/sh
ipctool2 i2cset 0x88 0x02 0xCF
ipctool2 i2cset 0x88 0x05 0x00
ipctool2 i2cset 0x88 0x06 0x32
ipctool2 i2cset 0x88 0x07 0xC0
ipctool2 i2cset 0x88 0x08 0x00
ipctool2 i2cset 0x88 0x09 0x24
ipctool2 i2cset 0x88 0x0A 0x48
ipctool2 i2cset 0x88 0x0B 0xC0
ipctool2 i2cset 0x88 0x0C 0x13
ipctool2 i2cset 0x88 0x0D 0x51
ipctool2 i2cset 0x88 0x0E 0x00
ipctool2 i2cset 0x88 0x0F 0x00
ipctool2 i2cset 0x88 0x10 0xF8
ipctool2 i2cset 0x88 0x11 0x40
ipctool2 i2cset 0x88 0x12 0x60
ipctool2 i2cset 0x88 0x13 0x00
ipctool2 i2cset 0x88 0x14 0x00
ipctool2 i2cset 0x88 0x15 0x13
ipctool2 i2cset 0x88 0x16 0x70
ipctool2 i2cset 0x88 0x17 0xBC
ipctool2 i2cset 0x88 0x18 0x17
ipctool2 i2cset 0x88 0x19 0x20
ipctool2 i2cset 0x88 0x1A 0x17
ipctool2 i2cset 0x88 0x1B 0x01
ipctool2 i2cset 0x88 0x1C 0x09
ipctool2 i2cset 0x88 0x1D 0x48
ipctool2 i2cset 0x88 0x1E 0x80
ipctool2 i2cset 0x88 0x1F 0x80
ipctool2 i2cset 0x88 0x20 0x48
ipctool2 i2cset 0x88 0x21 0x84
ipctool2 i2cset 0x88 0x22 0x37
ipctool2 i2cset 0x88 0x23 0x3F
ipctool2 i2cset 0x88 0x24 0x04
ipctool2 i2cset 0x88 0x25 0xFF
ipctool2 i2cset 0x88 0x26 0x05
ipctool2 i2cset 0x88 0x27 0x2D
ipctool2 i2cset 0x88 0x28 0x00
ipctool2 i2cset 0x88 0x29 0x48
ipctool2 i2cset 0x88 0x2A 0x30
ipctool2 i2cset 0x88 0x2B 0x70
ipctool2 i2cset 0x88 0x2C 0x2A
ipctool2 i2cset 0x88 0x2D 0x64
ipctool2 i2cset 0x88 0x2E 0x56
ipctool2 i2cset 0x88 0x2F 0x00
ipctool2 i2cset 0x88 0x30 0x7A
ipctool2 i2cset 0x88 0x31 0x4A
ipctool2 i2cset 0x88 0x32 0x4D
ipctool2 i2cset 0x88 0x33 0xF0
ipctool2 i2cset 0x88 0x34 0x00
ipctool2 i2cset 0x88 0x35 0x65
ipctool2 i2cset 0x88 0x36 0xDC
ipctool2 i2cset 0x88 0x37 0x00
ipctool2 i2cset 0x88 0x38 0x00
ipctool2 i2cset 0x88 0x39 0x04
ipctool2 i2cset 0x88 0x3A 0x32
ipctool2 i2cset 0x88 0x3B 0x26
ipctool2 i2cset 0x88 0x3C 0x00
ipctool2 i2cset 0x88 0x3D 0x60
ipctool2 i2cset 0x88 0x3E 0x00
ipctool2 i2cset 0x88 0x3F 0x00
ipctool2 i2cset 0x88 0x40 0x00
ipctool2 i2cset 0x88 0x41 0x00
ipctool2 i2cset 0x88 0x42 0x00
ipctool2 i2cset 0x88 0x43 0x00
ipctool2 i2cset 0x88 0x44 0x00
ipctool2 i2cset 0x88 0x45 0x00
ipctool2 i2cset 0x88 0x46 0x00
ipctool2 i2cset 0x88 0x47 0x00
ipctool2 i2cset 0x88 0x48 0x00
ipctool2 i2cset 0x88 0x49 0x00
ipctool2 i2cset 0x88 0x4A 0x00
ipctool2 i2cset 0x88 0x4B 0x00
ipctool2 i2cset 0x88 0x4C 0x43
ipctool2 i2cset 0x88 0x4D 0x00
ipctool2 i2cset 0x88 0x4E 0x17
ipctool2 i2cset 0x88 0x4F 0x00
ipctool2 i2cset 0x88 0x50 0x00
ipctool2 i2cset 0x88 0x51 0x00
ipctool2 i2cset 0x88 0x52 0x00
ipctool2 i2cset 0x88 0x53 0x00
ipctool2 i2cset 0x88 0x54 0x00
ipctool2 i2cset 0x88 0xB3 0xFA
ipctool2 i2cset 0x88 0xB4 0x00
ipctool2 i2cset 0x88 0xB5 0x00
ipctool2 i2cset 0x88 0xB6 0x00
ipctool2 i2cset 0x88 0xB7 0x00
ipctool2 i2cset 0x88 0xB8 0x00
ipctool2 i2cset 0x88 0xB9 0x00
ipctool2 i2cset 0x88 0xBA 0x00
ipctool2 i2cset 0x88 0xBB 0x00
ipctool2 i2cset 0x88 0xBC 0x00
ipctool2 i2cset 0x88 0xBD 0x00
ipctool2 i2cset 0x88 0xBE 0x00
ipctool2 i2cset 0x88 0xBF 0x00
ipctool2 i2cset 0x88 0xC0 0x00
ipctool2 i2cset 0x88 0xC1 0x00
ipctool2 i2cset 0x88 0xC2 0x0B
ipctool2 i2cset 0x88 0xC3 0x0C
ipctool2 i2cset 0x88 0xC4 0x00
ipctool2 i2cset 0x88 0xC5 0x00
ipctool2 i2cset 0x88 0xC6 0x1F
ipctool2 i2cset 0x88 0xC7 0x78
ipctool2 i2cset 0x88 0xC8 0x27
ipctool2 i2cset 0x88 0xC9 0x00
ipctool2 i2cset 0x88 0xCA 0x00
ipctool2 i2cset 0x88 0xCB 0x07
ipctool2 i2cset 0x88 0xCC 0x08
ipctool2 i2cset 0x88 0xCD 0x00
ipctool2 i2cset 0x88 0xCE 0x00
ipctool2 i2cset 0x88 0xCF 0x04
ipctool2 i2cset 0x88 0xD0 0x00
ipctool2 i2cset 0x88 0xD1 0x00
ipctool2 i2cset 0x88 0xD2 0x60
ipctool2 i2cset 0x88 0xD3 0x10
ipctool2 i2cset 0x88 0xD4 0x06
ipctool2 i2cset 0x88 0xD5 0xBE
ipctool2 i2cset 0x88 0xD6 0x39
ipctool2 i2cset 0x88 0xD7 0x27
ipctool2 i2cset 0x88 0xD8 0x00
ipctool2 i2cset 0x88 0xD9 0x00
ipctool2 i2cset 0x88 0xDA 0x00
ipctool2 i2cset 0x88 0xDB 0x00
ipctool2 i2cset 0x88 0xDC 0x00
ipctool2 i2cset 0x88 0xDD 0x00
ipctool2 i2cset 0x88 0xDE 0x00
ipctool2 i2cset 0x88 0xDF 0x00
ipctool2 i2cset 0x88 0xE0 0x00
ipctool2 i2cset 0x88 0xE1 0x00
ipctool2 i2cset 0x88 0xE2 0x00
ipctool2 i2cset 0x88 0xE3 0x00
ipctool2 i2cset 0x88 0xE4 0x00
ipctool2 i2cset 0x88 0xE5 0x00
ipctool2 i2cset 0x88 0xE6 0x00
ipctool2 i2cset 0x88 0xE7 0x13
ipctool2 i2cset 0x88 0xE8 0x03
ipctool2 i2cset 0x88 0xE9 0x00
ipctool2 i2cset 0x88 0xEA 0x00
ipctool2 i2cset 0x88 0xEB 0x00
ipctool2 i2cset 0x88 0xEC 0x00
ipctool2 i2cset 0x88 0xED 0x00
ipctool2 i2cset 0x88 0xEE 0x00
ipctool2 i2cset 0x88 0xEF 0x00
ipctool2 i2cset 0x88 0xF0 0x00
ipctool2 i2cset 0x88 0xF1 0x00
ipctool2 i2cset 0x88 0xF2 0x00
ipctool2 i2cset 0x88 0xF3 0x00
ipctool2 i2cset 0x88 0xF4 0x20
ipctool2 i2cset 0x88 0xF5 0x10
ipctool2 i2cset 0x88 0xF6 0x00
ipctool2 i2cset 0x88 0xF7 0x00
ipctool2 i2cset 0x88 0xF8 0x00
ipctool2 i2cset 0x88 0xF9 0x00
ipctool2 i2cset 0x88 0xFA 0x0b
ipctool2 i2cset 0x88 0xFB 0x00
ipctool2 i2cset 0x88 0xFC 0x00
ipctool2 i2cset 0x88 0x40 0x08
ipctool2 i2cset 0x88 0x00 0x00
ipctool2 i2cset 0x88 0x01 0xf8
ipctool2 i2cset 0x88 0x02 0x01
ipctool2 i2cset 0x88 0x08 0xf0
ipctool2 i2cset 0x88 0x13 0x24
ipctool2 i2cset 0x88 0x14 0x73
ipctool2 i2cset 0x88 0x15 0x08
ipctool2 i2cset 0x88 0x20 0x12
ipctool2 i2cset 0x88 0x34 0x1b
ipctool2 i2cset 0x88 0x23 0x02
ipctool2 i2cset 0x88 0x23 0x00
ipctool2 i2cset 0x88 0x40 0x00

View File

@ -0,0 +1,270 @@
#!/usr/bin/haserl
<%in p/common.cgi %>
<%
page_title="Majestic settings"
mj=$(echo "$mj" | sed "s/ /_/g")
only="$GET_tab"; [ -z "$only" ] && only="system"
eval title="\$tT_mj_${only}"
if [ -n "$(eval echo "\$mj_hide_${only}_${fw_variant}" | sed -n "/\b${soc_family}\b/p")" ]; then
only="${only}_${fw_variant}"
variant="OpenIPC ${fw_variant}"
fi
# hide certain domains if not supported
if [ -n "$(eval echo "\$mj_hide_${only}" | sed -n "/\b${soc_family}\b/p")" ]; then
redirect_to "majestic-settings.cgi" "danger" "$title is not supported on ${variant:-your system}."
fi
if [ "POST" = "$REQUEST_METHOD" ]; then
mj_conf=/etc/majestic.yaml
temp_yaml=/tmp/majestic.yaml
# make a copy of the actual config into memory
cp -f $mj_conf $temp_yaml
OIFS=$IFS
IFS=$'\n' # make newlines the only separator
for yaml_param_name in $(printenv|grep POST_); do
form_field_name=$(echo $yaml_param_name | sed 's/^POST_mj_//')
key=".$(echo $form_field_name | cut -d= -f1 | sed 's/_/./g')"
# do not include helping fields into config
if [ "$key" = ".netip.password.plain" ] || [ "$key" = ".osd.corner" ]; then
continue
fi
value="$(echo $form_field_name | cut -d= -f2)"
# normalization
# (that's why we can't have nice things)
case "$key" in
.image.rotate)
[ "0" = "$value" ] && value="none"
;;
.isp.antiFlicker)
[ "50Hz" = "$value" ] && value="50"
[ "60Hz" = "$value" ] && value="60"
;;
.motionDetect.visualize)
[ "true" = "$value" ] && yaml-cli -s ".osd.enabled" "true" -i $temp_yaml
;;
.osd.enabled)
[ "false" = "$value" ] && yaml-cli -s ".motionDetect.visualize" "false" -i $temp_yaml
;;
.system.webAdmin)
[ "true" = "$value" ] && value="enabled"
[ "false" = "$value" ] && value="disabled"
;;
esac
# read existing value
oldvalue=$(yaml-cli -g "$key" -i $temp_yaml)
if [ -z "$value" ]; then
# if no new value submitted but there is an existing value, delete the yaml_param_name
[ -n "$oldvalue" ] && yaml-cli -d $key -i "$temp_yaml" -o "$temp_yaml"
else
# if new value is submitted and it differs from the existing one, update the yaml_param_name
[ "$oldvalue" != "$value" ] && yaml-cli -s $key "$value" -i "$temp_yaml" -o "$temp_yaml"
fi
done
IFS=$OIFS
# update config if differs
[ -n "$(diff -q $temp_yaml $mj_conf)" ] && cp -f $temp_yaml $mj_conf
# clean up
rm $temp_yaml
# reload majestic
killall -1 majestic
sleep 1
$(yaml-cli -i /etc/majestic.yaml -g .isp.sensorConfig | tr '/.' ' ' | awk '{print $3}').sh
redirect_to "$HTTP_REFERER"
fi
%>
<%in p/header.cgi %>
<ul class="nav nav-underline small mb-4 d-none d-lg-flex">
<%
mj=$(echo "$mj" | sed "s/ /_/g")
for _line in $mj; do
_parameter=${_line%%|*};
_param_name=${_parameter#.};
_param_domain=${_param_name%.*}
if [ "$_parameter_domain_old" != "$_param_domain" ]; then
# hide certain domains for certain familier
[ -n "$(eval echo "\$mj_hide_${_param_domain}" | sed -n "/\b${soc_family}\b/p")" ] && continue
# show certain domains only for certain vendors
[ -n "$(eval echo "\$mj_show_${_param_domain}_vendor")" ] && [ -z "$(eval echo "\$mj_show_${_param_domain}_vendor" | sed -n "/\b${soc_vendor}\b/p")" ] && continue
_parameter_domain_old="$_param_domain"
_css="class=\"nav-link\""; [ "$_param_domain" = "$only" ] && _css="class=\"nav-link active\" aria-current=\"true\""
echo "<li class=\"nav-item\"><a ${_css} href=\"majestic-settings.cgi?tab=${_param_domain}\">$(eval echo \$tT_mj_${_param_domain})</a></li>"
fi
done
unset _css; unset _param_domain; unset _line; unset _param_name; unset _parameter_domain_old; unset _parameter;
%>
</ul>
<div class="row row-cols-1 row-cols-md-2 row-cols-lg-3 g-4 mb-4">
<div class="col">
<h3><%= $title %></h3>
<form action="<%= $SCRIPT_NAME %>" method="post">
<%
config=""
_mj2="$(echo "$mj" | sed "s/ /_/g" | grep -E "^\.$only")"
for line in $_mj2; do
# line: .isp.exposure|Sensor_exposure_time|&micro;s|range|auto,1-500000|auto|From_1_to_500000.
yaml_param_name=${line%%|*} # => .isp.exposure
_param_name=${yaml_param_name#.} # => isp.exposure
_param_name=${_param_name//./_} # => isp_exposure
_param_name=${_param_name//-/_} # => isp_exposure
domain=${_param_name%%_*} # => isp
# hide certain domains if blacklisted
[ -n "$(eval echo "\$mj_hide_${domain}" | sed -n "/\b${soc_family}\b/p")" ] && continue
# hide certain parameters if blacklisted
[ -n "$(eval echo "\$mj_hide_${_param_name}_vendor" | sed -n "/\b${soc_vendor}\b/p")" ] && continue
[ -n "$(eval echo "\$mj_hide_${_param_name}" | sed -n "/\b${soc_family}\b/p")" ] && continue
# show certain domains only if whitelisted
[ -n "$(eval echo "\$mj_show_${domain}_vendor")" ] && [ -z "$(eval echo "\$mj_show_${domain}_vendor" | sed -n "/\b${soc_vendor}\b/p")" ] && continue
# show certain parameters only if whitelisted
[ -n "$(eval echo "\$mj_show_${_param_name}")" ] && [ -z "$(eval echo "\$mj_show_${_param_name}" | sed -n "/\b${soc_family}\b/p")" ] && continue
[ -n "$(eval echo "\$mj_show_${_param_name}_vendor")" ] && [ -z "$(eval echo "\$mj_show_${_param_name}_vendor" | sed -n "/\b${soc_vendor}\b/p")" ] && continue
# show certain parameters only in debug mode
[ -n "$(echo "$mj_hide_unless_debug" | sed -n "/\b${_param_name}\b/p")" ] && [ "0$debug" -lt "1" ] && continue
form_field_name=mj_${_param_name} # => mj_isp_exposure
line=${line#*|} # line: Sensor_exposure_time|&micro;s|range|auto,1-500000|auto|From_1_to_500000.
label_text=${line%%|*} # => Sensor_exposure_time
label_text=${label_text//_/ } # => Sensor exposure time
line=${line#*|} # line: &micro;s|range|auto,1-500000|auto|From_1_to_500000.
units=${line%%|*} # => &micro;s
line=${line#*|} # line: range|auto,1-500000|auto|From_1_to_500000.
form_field_type=${line%%|*} # => range
line=${line#*|} # line: auto,1-500000|auto|From_1_to_500000.
options=${line%%|*} # => auto,1-500000
line=${line#*|} # line: auto|From_1_to_500000.
placeholder=${line%%|*} # => auto
line=${line#*|} # line: From_1_to_500000.
hint=$line # => From_1_to_500000.
hint=${hint//_/ } # => From 1 to 500000.
value="$(yaml-cli -g "$yaml_param_name")"
# FIXME: this is not how it should be done. Instead, Majestic should be reporting its true values.
# [ -z "$value" ] && value="$placeholder"
# assign yaml_param_name's value to a variable with yaml_param_name's form_field_name for form fields values
eval "$form_field_name=\"\$value\""
# hide some params in config
if [ "mj_netip_password_plain" != "$form_field_name" ]; then
config="${config}\n$(eval echo ${yaml_param_name}: \"\$$form_field_name\")"
fi
case "$form_field_type" in
boolean) field_switch "$form_field_name" "$label_text" "$hint" "$options";;
hidden) field_hidden "$form_field_name" "$label_text" "$hint";;
number) field_number "$form_field_name" "$label_text" "$options" "$hint";;
password) field_password "$form_field_name" "$label_text" "$hint";;
range) field_range "$form_field_name" "$label_text" "$options" "$hint";;
select) field_select "$form_field_name" "$label_text" "$options" "$hint";;
string) field_text "$form_field_name" "$label_text" "$hint" "$placeholder";;
*) echo "<span class=\"text-danger\">UNKNOWN FIELD TYPE ${form_field_type} FOR ${_name} WITH LABEL ${label_text}</span>";;
esac
done
%>
<% button_submit %>
</form>
</div>
<div class="col">
<h3>Related settings</h3>
<pre><% echo -e "$config" %></pre>
</div>
<div class="col">
<h3>Quick Links</h3>
<p><a href="info-majestic.cgi">Majestic Config File (majestic.yaml)</a></p>
<p><a href="majestic-endpoints.cgi">Majestic Endpoints</a></p>
</div>
</div>
<script>
let MD5 = function(d){return V(Y(X(d),8*d.length))};
function X(d){for(var _=Array(d.length>>2),m=0;m<_.length;m++)_[m]=0;for(m=0;m<8*d.length;m+=8)_[m>>5]|=(255&d.charCodeAt(m/8))<<m%32;return _}
function V(d){for(var _="",m=0;m<32*d.length;m+=8)_+=String.fromCharCode(d[m>>5]>>>m%32&255);return _}
function Y(d,_){d[_>>5]|=128<<_%32,d[14+(_+64>>>9<<4)]=_;for(var m=1732584193,f=-271733879,r=-1732584194,i=271733878,n=0;n<d.length;n+=16){var h=m,t=f,g=r,e=i;f=md5_ii(f=md5_ii(f=md5_ii(f=md5_ii(f=md5_hh(f=md5_hh(f=md5_hh(f=md5_hh(f=md5_gg(f=md5_gg(f=md5_gg(f=md5_gg(f=md5_ff(f=md5_ff(f=md5_ff(f=md5_ff(f,r=md5_ff(r,i=md5_ff(i,m=md5_ff(m,f,r,i,d[n+0],7,-680876936),f,r,d[n+1],12,-389564586),m,f,d[n+2],17,606105819),i,m,d[n+3],22,-1044525330),r=md5_ff(r,i=md5_ff(i,m=md5_ff(m,f,r,i,d[n+4],7,-176418897),f,r,d[n+5],12,1200080426),m,f,d[n+6],17,-1473231341),i,m,d[n+7],22,-45705983),r=md5_ff(r,i=md5_ff(i,m=md5_ff(m,f,r,i,d[n+8],7,1770035416),f,r,d[n+9],12,-1958414417),m,f,d[n+10],17,-42063),i,m,d[n+11],22,-1990404162),r=md5_ff(r,i=md5_ff(i,m=md5_ff(m,f,r,i,d[n+12],7,1804603682),f,r,d[n+13],12,-40341101),m,f,d[n+14],17,-1502002290),i,m,d[n+15],22,1236535329),r=md5_gg(r,i=md5_gg(i,m=md5_gg(m,f,r,i,d[n+1],5,-165796510),f,r,d[n+6],9,-1069501632),m,f,d[n+11],14,643717713),i,m,d[n+0],20,-373897302),r=md5_gg(r,i=md5_gg(i,m=md5_gg(m,f,r,i,d[n+5],5,-701558691),f,r,d[n+10],9,38016083),m,f,d[n+15],14,-660478335),i,m,d[n+4],20,-405537848),r=md5_gg(r,i=md5_gg(i,m=md5_gg(m,f,r,i,d[n+9],5,568446438),f,r,d[n+14],9,-1019803690),m,f,d[n+3],14,-187363961),i,m,d[n+8],20,1163531501),r=md5_gg(r,i=md5_gg(i,m=md5_gg(m,f,r,i,d[n+13],5,-1444681467),f,r,d[n+2],9,-51403784),m,f,d[n+7],14,1735328473),i,m,d[n+12],20,-1926607734),r=md5_hh(r,i=md5_hh(i,m=md5_hh(m,f,r,i,d[n+5],4,-378558),f,r,d[n+8],11,-2022574463),m,f,d[n+11],16,1839030562),i,m,d[n+14],23,-35309556),r=md5_hh(r,i=md5_hh(i,m=md5_hh(m,f,r,i,d[n+1],4,-1530992060),f,r,d[n+4],11,1272893353),m,f,d[n+7],16,-155497632),i,m,d[n+10],23,-1094730640),r=md5_hh(r,i=md5_hh(i,m=md5_hh(m,f,r,i,d[n+13],4,681279174),f,r,d[n+0],11,-358537222),m,f,d[n+3],16,-722521979),i,m,d[n+6],23,76029189),r=md5_hh(r,i=md5_hh(i,m=md5_hh(m,f,r,i,d[n+9],4,-640364487),f,r,d[n+12],11,-421815835),m,f,d[n+15],16,530742520),i,m,d[n+2],23,-995338651),r=md5_ii(r,i=md5_ii(i,m=md5_ii(m,f,r,i,d[n+0],6,-198630844),f,r,d[n+7],10,1126891415),m,f,d[n+14],15,-1416354905),i,m,d[n+5],21,-57434055),r=md5_ii(r,i=md5_ii(i,m=md5_ii(m,f,r,i,d[n+12],6,1700485571),f,r,d[n+3],10,-1894986606),m,f,d[n+10],15,-1051523),i,m,d[n+1],21,-2054922799),r=md5_ii(r,i=md5_ii(i,m=md5_ii(m,f,r,i,d[n+8],6,1873313359),f,r,d[n+15],10,-30611744),m,f,d[n+6],15,-1560198380),i,m,d[n+13],21,1309151649),r=md5_ii(r,i=md5_ii(i,m=md5_ii(m,f,r,i,d[n+4],6,-145523070),f,r,d[n+11],10,-1120210379),m,f,d[n+2],15,718787259),i,m,d[n+9],21,-343485551),m=safe_add(m,h),f=safe_add(f,t),r=safe_add(r,g),i=safe_add(i,e)}return Array(m,f,r,i)}
function md5_cmn(d,_,m,f,r,i){return safe_add(bit_rol(safe_add(safe_add(_,d),safe_add(f,i)),r),m)}
function md5_ff(d,_,m,f,r,i,n){return md5_cmn(_&m|~_&f,d,_,r,i,n)}
function md5_gg(d,_,m,f,r,i,n){return md5_cmn(_&f|m&~f,d,_,r,i,n)}
function md5_hh(d,_,m,f,r,i,n){return md5_cmn(_^m^f,d,_,r,i,n)}
function md5_ii(d,_,m,f,r,i,n){return md5_cmn(m^(_|~f),d,_,r,i,n)}
function safe_add(d,_){var m=(65535&d)+(65535&_);return(d>>16)+(_>>16)+(m>>16)<<16|65535&m}
function bit_rol(d,_){return d<<_|d>>>32-_}
function ord(str){return str.charCodeAt(0)}
function chr(n){return String.fromCharCode(n)}
function generateSofiaHash(text) {
let h = "";
let md5 = MD5(text);
for (let i = 0; i <= 7; i++) {
let n = (ord(md5[2*i]) + ord(md5[2*i+1])) % 62;
n += (n > 9) ? (n > 35) ? 61 : 55 : 48;
h += chr(n);
}
return h;
}
<% if [ -d /etc/sensors/ ]; then %>
if ($("#mj_isp_sensorConfig")) {
const inp = $("#mj_isp_sensorConfig");
const sel = document.createElement("select");
sel.classList.add("form-select");
sel.name=inp.name;
sel.id=inp.id;
sel.options.add(new Option());
let opt;
<% for i in $(ls -1 /etc/sensors/*.ini || ls -1 /etc/sensors/*.bin); do %>
opt = new Option("<%= $i %>");
opt.selected = ("<%= $i %>" == inp.value);
sel.options.add(opt);
<% done %>
inp.replaceWith(sel);
}
<% fi %>
$("#mj_osd_corner")?.addEventListener("change", (ev) => {
const padding = 16;
switch (ev.target.value) {
case "bl":
$("#mj_osd_posX").value = padding;
$("#mj_osd_posY").value = -(padding);
break;
case "br":
$("#mj_osd_posX").value = -(padding);
$("#mj_osd_posY").value = -(padding);
break;
case "tl":
$("#mj_osd_posX").value = padding;
$("#mj_osd_posY").value = padding;
break;
case "tr":
$("#mj_osd_posX").value = -(padding);
$("#mj_osd_posY").value = padding;
break;
}
})
$("#mj_netip_enabled")?.addEventListener("change", (ev) => {
$("#mj_netip_user").required = ev.target.checked;
$("#mj_netip_password_plain").required = ev.target.checked;
})
$("#mj_netip_password_plain") && $("form").addEventListener("submit", (ev) => {
const pw = $("#mj_netip_password_plain").value.trim();
if (pw !== "") $("#mj_netip_password").value = generateSofiaHash(pw);
})
</script>
<%in p/footer.cgi %>

View File

@ -1,145 +0,0 @@
################################################################################
#
# goke-osdrv-gk7205v200
#
################################################################################
GOKE_OSDRV_GK7205V200_VERSION =
GOKE_OSDRV_GK7205V200_SITE =
GOKE_OSDRV_GK7205V200_LICENSE = MIT
GOKE_OSDRV_GK7205V200_LICENSE_FILES = LICENSE
GOKE_OSDRV_GK7205V200_INSTALL_STAGING = YES
define GOKE_OSDRV_GK7205V200_INSTALL_STAGING_CMDS
$(INSTALL) -m 755 -d $(STAGING_DIR)/usr/include/goke
#$(INSTALL) -m 644 -t $(STAGING_DIR)/usr/include/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/include/*
## $(INSTALL) -m 755 -d $(BUILD_DIR)/goke-osdrv-gk7205v200/include
## $(INSTALL) -m 644 -t $(BUILD_DIR)/goke-osdrv-gk7205v200/include $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/include/*
## $(INSTALL) -m 755 -d $(BUILD_DIR)/goke-osdrv-gk7205v200/kmod
## $(INSTALL) -m 644 -t $(BUILD_DIR)/goke-osdrv-gk7205v200/kmod $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/*.ko
## $(INSTALL) -m 755 -d $(BUILD_DIR)/goke-osdrv-gk7205v200/lib
## $(INSTALL) -m 644 -t $(BUILD_DIR)/goke-osdrv-gk7205v200/lib $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/*.so
endef
define GOKE_OSDRV_GK7205V200_INSTALL_TARGET_CMDS
$(INSTALL) -m 755 -d $(TARGET_DIR)/etc/sensors
$(INSTALL) -m 644 -t $(TARGET_DIR)/etc/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/config/bt656_720p.ini
#$(INSTALL) -m 755 -d $(TARGET_DIR)/etc/sensors/WDR
#$(INSTALL) -m 644 -t $(TARGET_DIR)/etc/sensors/WDR $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/config/WDR/*.ini
#$(INSTALL) -m 755 -d $(TARGET_DIR)/etc/sensors/60fps
#$(INSTALL) -m 644 -t $(TARGET_DIR)/etc/sensors/60fps $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/config/60fps/*.ini
$(INSTALL) -m 755 -d $(TARGET_DIR)/etc/sensors/iq
$(INSTALL) -m 644 -t $(TARGET_DIR)/etc/sensors/iq $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/iq/imx307.ini
#$(INSTALL) -m 644 -t $(TARGET_DIR)/etc/sensors/iq $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/iq/imx335.ini
#$(INSTALL) -m 644 -t $(TARGET_DIR)/etc/sensors/iq $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/iq/sc2232.ini
ln -sf imx307.ini $(TARGET_DIR)/etc/sensors/iq/default.ini
$(INSTALL) -m 755 -d $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke
## $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/cipher_drv.ko
## $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gfbg.ko
$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_acodec.ko
### $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_adc.ko
$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_adec.ko
$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_aenc.ko
$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_ai.ko
$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_aio.ko
$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_ao.ko
$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_base.ko
$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_chnl.ko
$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_h264e.ko
$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_h265e.ko
### $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_isp.ko
$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_ive.ko
$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_jpege.ko
$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_rc.ko
$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_rgn.ko
$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_sys.ko
## $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_tde.ko
$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_vedu.ko
$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_venc.ko
$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_vgs.ko
$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_vi.ko
## $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_vo.ko
$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_vpss.ko
### $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_wdt.ko
### $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/isp_piris.ko
### $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/isp_pwm.ko
### $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/isp_sample_ist.ko
### $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/isp_sensor_i2c.ko
### $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/isp_sensor_spi.ko
### $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/mipi_rx.ko
### $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/osal.ko
## $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/ssp_ota5182_ex.ko
## $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/ssp_st7789_ex.ko
## $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/ssp_st7796_ex.ko
### $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/sysconfig.ko
$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/bin
$(INSTALL) -m 755 -t $(TARGET_DIR)/usr/bin $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/script/load*
$(INSTALL) -m 755 -t $(TARGET_DIR)/usr/bin $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/script/ircut_demo
$(INSTALL) -m 755 -t $(TARGET_DIR)/usr/bin $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/script/set_allocator
$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/lib/sensors
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/*.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_ar0237.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_f23.so
# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_f37.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_gc2053_forcar.so
# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_gc2053.so
# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_gc4653_2l.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_imx290.so
# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_imx307_2l.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_imx307.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_imx327_2l.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_imx327.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_imx335.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_os05a.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_ov2718.so
# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_sc200ai.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_sc2231.so
# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_sc2232h.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_sc2235.so
# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_sc2239.so
# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_sc223a.so
# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_sc2335.so
# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_sc3235.so
# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_sc3335.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_sc4236.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_sc500ai.so
$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_bt656.so
$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/lib
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_aacdec.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_aacenc.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_aacsbrdec.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_aacsbrenc.so
$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_ae.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_awb_natura.so
$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_awb.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_bcd.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_cipher.so
$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_isp.so
$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_ive.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_ivp.so
$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_md.so
$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_mpi.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_qr.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_tde.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_vqe_aec.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_vqe_agc.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_vqe_anr.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_vqe_eq.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_vqe_hpf.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_vqe_record.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_vqe_res.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_vqe_talkv2.so
##$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_vqe_wnr.so
endef
$(eval $(generic-package))

View File

@ -0,0 +1,41 @@
#
etc/sensors/4l_sc223a_i2c_1080p.ini
etc/sensors/5M_imx335.ini
etc/sensors/bt656_720p.ini
etc/sensors/gc2053_i2c_1080p.ini
etc/sensors/gc4653_i2c_4M.ini
etc/sensors/imx307_i2c_2l_1080p.ini
etc/sensors/imx335_i2c_4M.ini
etc/sensors/jxf23_i2c_1080p.ini
etc/sensors/jxf23_i2c_dc_1080p.ini
etc/sensors/sc2232h_i2c_1080p.ini
etc/sensors/sc2232h_i2c_1080p.ini
etc/sensors/sc2232h_i2c_1080p.ini
etc/sensors/sc2239_i2c_1080p.ini
etc/sensors/sc223a_i2c_1080p.ini
etc/sensors/sc2335_i2c_1080p.ini
etc/sensors/smtsec_imx307_i2c_4l_1080p.ini
#
etc/sensors/60fps
etc/sensors/WDR
etc/sensors/iq
#
usr/lib/sensors/libsns_f37.so
usr/lib/sensors/libsns_gc2053.so
usr/lib/sensors/libsns_gc4653_2l.so
usr/lib/sensors/libsns_imx307.so
usr/lib/sensors/libsns_imx307_2l.so
usr/lib/sensors/libsns_imx335.so
usr/lib/sensors/libsns_sc200ai.so
usr/lib/sensors/libsns_sc2232h.so
usr/lib/sensors/libsns_sc2239.so
usr/lib/sensors/libsns_sc223a.so
usr/lib/sensors/libsns_sc223a_4l.so
usr/lib/sensors/libsns_sc2335.so
usr/lib/sensors/libsns_sc3235.so
usr/lib/sensors/libsns_sc3335.so
#
lib/modules/4.9.37/kernel/drivers/i2c
lib/modules/4.9.37/kernel/drivers/scsi
lib/modules/4.9.37/kernel/drivers/usb
lib/modules/4.9.37/kernel/fs/f2fs

View File

@ -0,0 +1,55 @@
#!/bin/sh
DAEMON="ntpd"
PIDFILE="/var/run/$DAEMON.pid"
NTPD_ARGS="-n"
# shellcheck source=/dev/null
[ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON"
# BusyBox' ntpd does not create a pidfile, so pass "-n" in the command line
# and use "-m" to instruct start-stop-daemon to create one.
start() {
printf 'Starting %s: ' "$DAEMON"
# shellcheck disable=SC2086 # we need the word splitting
hwclock -s
start-stop-daemon -b -m -S -q -p "$PIDFILE" -x "/usr/sbin/$DAEMON" -- $NTPD_ARGS
status=$?
if [ "$status" -eq 0 ]; then
echo "OK"
else
echo "FAIL"
fi
return "$status"
}
stop() {
printf 'Stopping %s: ' "$DAEMON"
start-stop-daemon -K -q -p "$PIDFILE"
status=$?
if [ "$status" -eq 0 ]; then
rm -f "$PIDFILE"
echo "OK"
else
echo "FAIL"
fi
return "$status"
}
case "$1" in
start|stop)
"$1"
;;
reload)
stop
sleep 1
start
;;
*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
;;
esac

View File

@ -0,0 +1,69 @@
#!/bin/sh
DAEMON="majestic"
PIDFILE="/var/run/$DAEMON.pid"
DAEMON_ARGS="-s"
# shellcheck source=/dev/null
[ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON"
load_majestic() {
printf 'Starting %s: ' "$DAEMON"
[ -f /usr/bin/$DAEMON ] || echo -en "DISABLED, "
# shellcheck disable=SC2086 # we need the word splitting
[ -f /etc/coredump.conf ] && . /etc/coredump.conf
if [ "$coredump_enabled" ]; then
[ "$(cli -g .watchdog.timeout)" -lt "30" ] && cli -s .watchdog.timeout 30
ulimit -c unlimited && echo "|/usr/sbin/sendcoredump.sh" >/proc/sys/kernel/core_pattern
fi
start-stop-daemon -b -m -S -q -p "$PIDFILE" -x "/usr/bin/$DAEMON" -- $DAEMON_ARGS
status=$?
if [ "$status" -eq 0 ]; then
echo "OK"
else
echo "FAIL"
fi
return "$status"
}
# The daemon does not create a pidfile, and use "-m" to instruct start-stop-daemon to create one.
start() {
logger -s -p daemon.info -t $(ipcinfo -v) "Loading video system has started..."
export SENSOR=$(fw_printenv -n sensor)
load_majestic
sleep 3
$(yaml-cli -i /etc/majestic.yaml -g .isp.sensorConfig | tr '/.' ' ' | awk '{print $3}').sh
}
stop() {
printf 'Stopping %s: ' "$DAEMON"
[ -f /usr/bin/$DAEMON ] || echo -en "DISABLED, "
start-stop-daemon -K -q -p "$PIDFILE"
status=$?
if [ "$status" -eq 0 ]; then
rm -f "$PIDFILE"
echo "OK"
else
echo "FAIL"
fi
return "$status"
}
restart() {
stop
sleep 1
reload
}
reload() {
load_majestic
}
case "$1" in
start|stop|restart|reload)
"$1";;
*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
esac

View File

@ -0,0 +1,55 @@
system:
webAdmin: enabled
buffer: 1024
staticDir: /var/www/majestic
image:
mirror: false
flip: false
rotate: none
contrast: 50
hue: 50
saturation: 50
luminance: 50
osd:
enabled: false
template: "%a %e %B %Y %H:%M:%S %Z"
nightMode:
enabled: false
records:
enabled: false
path: /mnt/mmcblk0p1/%F/%H.mp4
maxUsage: 95
video0:
enabled: true
codec: h264
video1:
enabled: false
jpeg:
enabled: true
mjpeg:
size: 640x360
fps: 5
bitrate: 1024
audio:
enabled: false
volume: auto
srate: 8000
rtsp:
enabled: true
port: 554
hls:
enabled: false
youtube:
enabled: false
motionDetect:
enabled: false
visualize: true
debug: true
ipeye:
enabled: false
watchdog:
enabled: true
timeout: 10
isp:
lowDelay: false
sensorConfig: /etc/sensors/bt656_ahd_pal_1080p.ini

View File

@ -0,0 +1,56 @@
[sensor]
Sensor_type = stBt656_Obj
Mode = WDR_MODE_NONE
DllFile = libsns_bt656.so
[mode]
input_mode = INPUT_MODE_BT656
raw_bitness = 8
[isp_image]
Isp_FrameRate = 25
Isp_Bayer = BAYER_RGGB
[vi_dev]
Input_mod = VI_MODE_BT656
Work_mod = VI_WORK_MODE_1Multiplex
Mask_num = 2
Mask_0 = 0xff00000
Mask_1 = 0x0
Scan_mode = VI_SCAN_PROGRESSIVE
Data_seq = VI_DATA_SEQ_UYVY
Vsync = VI_VSYNC_PULSE
VsyncNeg = VI_VSYNC_NEG_LOW
Hsync = VI_HSYNC_VALID_SINGNAL
HsyncNeg = VI_HSYNC_NEG_HIGH
VsyncValid = VI_VSYNC_VALID_SINGAL
VsyncValidNeg = VI_VSYNC_VALID_NEG_HIGH
Timingblank_HsyncHfb = 0
Timingblank_HsyncAct = 1920
Timingblank_HsyncHbb = 0
Timingblank_VsyncVfb = 0
Timingblank_VsyncVact = 1080
Timingblank_VsyncVbb = 0
Timingblank_VsyncVbfb = 0
Timingblank_VsyncVbact = 0
Timingblank_VsyncVbbb = 0
;----- only for bt656 ----------
FixCode = BT656_FIXCODE_1
FieldPolar = BT656_FIELD_POLAR_STD
DataPath = VI_PATH_BYPASS
InputDataType = VI_DATA_TYPE_YUV
DataRev = FALSE
DevRect_x = 0
DevRect_y = 0
DevRect_w = 1920
DevRect_h = 1080
[vi_chn]
CapSel = VI_CAPSEL_BOTH
PixFormat = PIXEL_FORMAT_YVU_SEMIPLANAR_420
CompressMode = COMPRESS_MODE_NONE
SrcFrameRate = -1
FrameRate = -1

View File

@ -0,0 +1,56 @@
[sensor]
Sensor_type = stBt656_Obj
Mode = WDR_MODE_NONE
DllFile = libsns_bt656.so
[mode]
input_mode = INPUT_MODE_BT656
raw_bitness = 8
[isp_image]
Isp_FrameRate = 25
Isp_Bayer = BAYER_RGGB
[vi_dev]
Input_mod = VI_MODE_BT656
Work_mod = VI_WORK_MODE_1Multiplex
Mask_num = 2
Mask_0 = 0xff00000
Mask_1 = 0x0
Scan_mode = VI_SCAN_PROGRESSIVE
Data_seq = VI_DATA_SEQ_UYVY
Vsync = VI_VSYNC_PULSE
VsyncNeg = VI_VSYNC_NEG_LOW
Hsync = VI_HSYNC_VALID_SINGNAL
HsyncNeg = VI_HSYNC_NEG_HIGH
VsyncValid = VI_VSYNC_VALID_SINGAL
VsyncValidNeg = VI_VSYNC_VALID_NEG_HIGH
Timingblank_HsyncHfb = 0
Timingblank_HsyncAct = 1280
Timingblank_HsyncHbb = 0
Timingblank_VsyncVfb = 0
Timingblank_VsyncVact = 720
Timingblank_VsyncVbb = 0
Timingblank_VsyncVbfb = 0
Timingblank_VsyncVbact = 0
Timingblank_VsyncVbbb = 0
;----- only for bt656 ----------
FixCode = BT656_FIXCODE_1
FieldPolar = BT656_FIELD_POLAR_STD
DataPath = VI_PATH_BYPASS
InputDataType = VI_DATA_TYPE_YUV
DataRev = FALSE
DevRect_x = 0
DevRect_y = 0
DevRect_w = 1280
DevRect_h = 720
[vi_chn]
CapSel = VI_CAPSEL_BOTH
PixFormat = PIXEL_FORMAT_YVU_SEMIPLANAR_420
CompressMode = COMPRESS_MODE_NONE
SrcFrameRate = -1
FrameRate = -1

View File

@ -0,0 +1,56 @@
[sensor]
Sensor_type = stBt656_Obj
Mode = WDR_MODE_NONE
DllFile = libsns_bt656.so
[mode]
input_mode = INPUT_MODE_BT656
raw_bitness = 8
[isp_image]
Isp_FrameRate = 25
Isp_Bayer = BAYER_RGGB
[vi_dev]
Input_mod = VI_MODE_BT656
Work_mod = VI_WORK_MODE_1Multiplex
Mask_num = 2
Mask_0 = 0xff00000
Mask_1 = 0x0
Scan_mode = VI_SCAN_PROGRESSIVE
Data_seq = VI_DATA_SEQ_UYVY
Vsync = VI_VSYNC_PULSE
VsyncNeg = VI_VSYNC_NEG_LOW
Hsync = VI_HSYNC_VALID_SINGNAL
HsyncNeg = VI_HSYNC_NEG_HIGH
VsyncValid = VI_VSYNC_VALID_SINGAL
VsyncValidNeg = VI_VSYNC_VALID_NEG_HIGH
Timingblank_HsyncHfb = 0
Timingblank_HsyncAct = 960
Timingblank_HsyncHbb = 0
Timingblank_VsyncVfb = 0
Timingblank_VsyncVact = 576
Timingblank_VsyncVbb = 0
Timingblank_VsyncVbfb = 0
Timingblank_VsyncVbact = 0
Timingblank_VsyncVbbb = 0
;----- only for bt656 ----------
FixCode = BT656_FIXCODE_1
FieldPolar = BT656_FIELD_POLAR_STD
DataPath = VI_PATH_BYPASS
InputDataType = VI_DATA_TYPE_YUV
DataRev = FALSE
DevRect_x = 0
DevRect_y = 0
DevRect_w = 960
DevRect_h = 576
[vi_chn]
CapSel = VI_CAPSEL_BOTH
PixFormat = PIXEL_FORMAT_YVU_SEMIPLANAR_420
CompressMode = COMPRESS_MODE_NONE
SrcFrameRate = -1
FrameRate = -1

View File

@ -0,0 +1,173 @@
#!/bin/sh
ipctool2 i2cset 0x88 0x02 0xCC
ipctool2 i2cset 0x88 0x05 0x00
ipctool2 i2cset 0x88 0x06 0x32
ipctool2 i2cset 0x88 0x07 0xC0
ipctool2 i2cset 0x88 0x08 0x00
ipctool2 i2cset 0x88 0x09 0x24
ipctool2 i2cset 0x88 0x0A 0x48
ipctool2 i2cset 0x88 0x0B 0xC0
ipctool2 i2cset 0x88 0x0C 0x03
ipctool2 i2cset 0x88 0x0D 0x73
ipctool2 i2cset 0x88 0x0E 0x00
ipctool2 i2cset 0x88 0x0F 0x00
ipctool2 i2cset 0x88 0x10 0x00
ipctool2 i2cset 0x88 0x11 0x40
ipctool2 i2cset 0x88 0x12 0x60
ipctool2 i2cset 0x88 0x13 0x00
ipctool2 i2cset 0x88 0x14 0x00
ipctool2 i2cset 0x88 0x15 0x01
ipctool2 i2cset 0x88 0x16 0xF0
ipctool2 i2cset 0x88 0x17 0x80
ipctool2 i2cset 0x88 0x18 0x29
ipctool2 i2cset 0x88 0x19 0x38
ipctool2 i2cset 0x88 0x1A 0x47
ipctool2 i2cset 0x88 0x1B 0x01
ipctool2 i2cset 0x88 0x1C 0x0A
ipctool2 i2cset 0x88 0x1D 0x50
ipctool2 i2cset 0x88 0x1E 0x80
ipctool2 i2cset 0x88 0x1F 0x80
ipctool2 i2cset 0x88 0x20 0x3C
ipctool2 i2cset 0x88 0x21 0x46
ipctool2 i2cset 0x88 0x22 0x36
ipctool2 i2cset 0x88 0x23 0x3C
ipctool2 i2cset 0x88 0x24 0x04
ipctool2 i2cset 0x88 0x25 0xFE
ipctool2 i2cset 0x88 0x26 0x0D
ipctool2 i2cset 0x88 0x27 0x2D
ipctool2 i2cset 0x88 0x28 0x00
ipctool2 i2cset 0x88 0x29 0x48
ipctool2 i2cset 0x88 0x2A 0x30
ipctool2 i2cset 0x88 0x2B 0x60
ipctool2 i2cset 0x88 0x2C 0x1A
ipctool2 i2cset 0x88 0x2D 0x54
ipctool2 i2cset 0x88 0x2E 0x40
ipctool2 i2cset 0x88 0x2F 0x00
ipctool2 i2cset 0x88 0x30 0xA5
ipctool2 i2cset 0x88 0x31 0x86
ipctool2 i2cset 0x88 0x32 0xFB
ipctool2 i2cset 0x88 0x33 0x60
ipctool2 i2cset 0x88 0x34 0x00
ipctool2 i2cset 0x88 0x35 0x05
ipctool2 i2cset 0x88 0x36 0xDC
ipctool2 i2cset 0x88 0x37 0x00
ipctool2 i2cset 0x88 0x38 0x00
ipctool2 i2cset 0x88 0x39 0x1C
ipctool2 i2cset 0x88 0x3A 0x32
ipctool2 i2cset 0x88 0x3B 0x26
ipctool2 i2cset 0x88 0x3C 0x00
ipctool2 i2cset 0x88 0x3D 0x60
ipctool2 i2cset 0x88 0x3E 0x00
ipctool2 i2cset 0x88 0x3F 0x00
ipctool2 i2cset 0x88 0x40 0x00
ipctool2 i2cset 0x88 0x41 0x00
ipctool2 i2cset 0x88 0x42 0x00
ipctool2 i2cset 0x88 0x43 0x00
ipctool2 i2cset 0x88 0x44 0x00
ipctool2 i2cset 0x88 0x45 0x00
ipctool2 i2cset 0x88 0x46 0x00
ipctool2 i2cset 0x88 0x47 0x00
ipctool2 i2cset 0x88 0x48 0x00
ipctool2 i2cset 0x88 0x49 0x00
ipctool2 i2cset 0x88 0x4A 0x00
ipctool2 i2cset 0x88 0x4B 0x00
ipctool2 i2cset 0x88 0x4C 0x43
ipctool2 i2cset 0x88 0x4D 0x00
ipctool2 i2cset 0x88 0x4E 0x17
ipctool2 i2cset 0x88 0x4F 0x00
ipctool2 i2cset 0x88 0x50 0x00
ipctool2 i2cset 0x88 0x51 0x00
ipctool2 i2cset 0x88 0x52 0x00
ipctool2 i2cset 0x88 0x53 0x00
ipctool2 i2cset 0x88 0x54 0x00
ipctool2 i2cset 0x88 0xB3 0xFA
ipctool2 i2cset 0x88 0xB4 0x00
ipctool2 i2cset 0x88 0xB5 0x00
ipctool2 i2cset 0x88 0xB6 0x00
ipctool2 i2cset 0x88 0xB7 0x00
ipctool2 i2cset 0x88 0xB8 0x00
ipctool2 i2cset 0x88 0xB9 0x00
ipctool2 i2cset 0x88 0xBA 0x00
ipctool2 i2cset 0x88 0xBB 0x00
ipctool2 i2cset 0x88 0xBC 0x00
ipctool2 i2cset 0x88 0xBD 0x00
ipctool2 i2cset 0x88 0xBE 0x00
ipctool2 i2cset 0x88 0xBF 0x00
ipctool2 i2cset 0x88 0xC0 0x00
ipctool2 i2cset 0x88 0xC1 0x00
ipctool2 i2cset 0x88 0xC2 0x0B
ipctool2 i2cset 0x88 0xC3 0x0C
ipctool2 i2cset 0x88 0xC4 0x00
ipctool2 i2cset 0x88 0xC5 0x00
ipctool2 i2cset 0x88 0xC6 0x1F
ipctool2 i2cset 0x88 0xC7 0x78
ipctool2 i2cset 0x88 0xC8 0x27
ipctool2 i2cset 0x88 0xC9 0x00
ipctool2 i2cset 0x88 0xCA 0x00
ipctool2 i2cset 0x88 0xCB 0x07
ipctool2 i2cset 0x88 0xCC 0x08
ipctool2 i2cset 0x88 0xCD 0x00
ipctool2 i2cset 0x88 0xCE 0x00
ipctool2 i2cset 0x88 0xCF 0x04
ipctool2 i2cset 0x88 0xD0 0x00
ipctool2 i2cset 0x88 0xD1 0x00
ipctool2 i2cset 0x88 0xD2 0x60
ipctool2 i2cset 0x88 0xD3 0x10
ipctool2 i2cset 0x88 0xD4 0x06
ipctool2 i2cset 0x88 0xD5 0xBE
ipctool2 i2cset 0x88 0xD6 0x39
ipctool2 i2cset 0x88 0xD7 0x27
ipctool2 i2cset 0x88 0xD8 0x00
ipctool2 i2cset 0x88 0xD9 0x00
ipctool2 i2cset 0x88 0xDA 0x00
ipctool2 i2cset 0x88 0xDB 0x00
ipctool2 i2cset 0x88 0xDC 0x00
ipctool2 i2cset 0x88 0xDD 0x00
ipctool2 i2cset 0x88 0xDE 0x00
ipctool2 i2cset 0x88 0xDF 0x00
ipctool2 i2cset 0x88 0xE0 0x00
ipctool2 i2cset 0x88 0xE1 0x00
ipctool2 i2cset 0x88 0xE2 0x00
ipctool2 i2cset 0x88 0xE3 0x00
ipctool2 i2cset 0x88 0xE4 0x00
ipctool2 i2cset 0x88 0xE5 0x00
ipctool2 i2cset 0x88 0xE6 0x00
ipctool2 i2cset 0x88 0xE7 0x13
ipctool2 i2cset 0x88 0xE8 0x03
ipctool2 i2cset 0x88 0xE9 0x00
ipctool2 i2cset 0x88 0xEA 0x00
ipctool2 i2cset 0x88 0xEB 0x00
ipctool2 i2cset 0x88 0xEC 0x00
ipctool2 i2cset 0x88 0xED 0x00
ipctool2 i2cset 0x88 0xEE 0x00
ipctool2 i2cset 0x88 0xEF 0x00
ipctool2 i2cset 0x88 0xF0 0x00
ipctool2 i2cset 0x88 0xF1 0x00
ipctool2 i2cset 0x88 0xF2 0x00
ipctool2 i2cset 0x88 0xF3 0x00
ipctool2 i2cset 0x88 0xF4 0x20
ipctool2 i2cset 0x88 0xF5 0x10
ipctool2 i2cset 0x88 0xF6 0x00
ipctool2 i2cset 0x88 0xF7 0x00
ipctool2 i2cset 0x88 0xF8 0x00
ipctool2 i2cset 0x88 0xF9 0x00
ipctool2 i2cset 0x88 0xFA 0x88
ipctool2 i2cset 0x88 0xFB 0x00
ipctool2 i2cset 0x88 0xFC 0x00
ipctool2 i2cset 0x88 0x40 0x08
ipctool2 i2cset 0x88 0x00 0x00
ipctool2 i2cset 0x88 0x01 0xf8
ipctool2 i2cset 0x88 0x02 0x01
ipctool2 i2cset 0x88 0x08 0xF0
ipctool2 i2cset 0x88 0x13 0x04
ipctool2 i2cset 0x88 0x14 0x73
ipctool2 i2cset 0x88 0x15 0x08
ipctool2 i2cset 0x88 0x20 0x12
ipctool2 i2cset 0x88 0x34 0x1b
ipctool2 i2cset 0x88 0x23 0x02
ipctool2 i2cset 0x88 0x23 0x00
ipctool2 i2cset 0x88 0x40 0x00

View File

@ -0,0 +1,173 @@
#!/bin/sh
ipctool2 i2cset 0x88 0x02 0xCE
ipctool2 i2cset 0x88 0x05 0x00
ipctool2 i2cset 0x88 0x06 0x32
ipctool2 i2cset 0x88 0x07 0xC0
ipctool2 i2cset 0x88 0x08 0x00
ipctool2 i2cset 0x88 0x09 0x24
ipctool2 i2cset 0x88 0x0A 0x48
ipctool2 i2cset 0x88 0x0B 0xC0
ipctool2 i2cset 0x88 0x0C 0x03
ipctool2 i2cset 0x88 0x0D 0x71
ipctool2 i2cset 0x88 0x0E 0x00
ipctool2 i2cset 0x88 0x0F 0x00
ipctool2 i2cset 0x88 0x10 0x00
ipctool2 i2cset 0x88 0x11 0x40
ipctool2 i2cset 0x88 0x12 0x40
ipctool2 i2cset 0x88 0x13 0x00
ipctool2 i2cset 0x88 0x14 0x00
ipctool2 i2cset 0x88 0x15 0x13
ipctool2 i2cset 0x88 0x16 0x16
ipctool2 i2cset 0x88 0x17 0x00
ipctool2 i2cset 0x88 0x18 0x19
ipctool2 i2cset 0x88 0x19 0xD0
ipctool2 i2cset 0x88 0x1A 0x25
ipctool2 i2cset 0x88 0x1B 0x01
ipctool2 i2cset 0x88 0x1C 0x07
ipctool2 i2cset 0x88 0x1D 0xBC
ipctool2 i2cset 0x88 0x1E 0x80
ipctool2 i2cset 0x88 0x1F 0x80
ipctool2 i2cset 0x88 0x20 0x40
ipctool2 i2cset 0x88 0x21 0x46
ipctool2 i2cset 0x88 0x22 0x36
ipctool2 i2cset 0x88 0x23 0x3C
ipctool2 i2cset 0x88 0x24 0x04
ipctool2 i2cset 0x88 0x25 0xFE
ipctool2 i2cset 0x88 0x26 0x01
ipctool2 i2cset 0x88 0x27 0x2D
ipctool2 i2cset 0x88 0x28 0x00
ipctool2 i2cset 0x88 0x29 0x48
ipctool2 i2cset 0x88 0x2A 0x30
ipctool2 i2cset 0x88 0x2B 0x60
ipctool2 i2cset 0x88 0x2C 0x2A
ipctool2 i2cset 0x88 0x2D 0x5A
ipctool2 i2cset 0x88 0x2E 0x40
ipctool2 i2cset 0x88 0x2F 0x00
ipctool2 i2cset 0x88 0x30 0x9E
ipctool2 i2cset 0x88 0x31 0x20
ipctool2 i2cset 0x88 0x32 0x10
ipctool2 i2cset 0x88 0x33 0x90
ipctool2 i2cset 0x88 0x34 0x00
ipctool2 i2cset 0x88 0x35 0x25
ipctool2 i2cset 0x88 0x36 0xDC
ipctool2 i2cset 0x88 0x37 0x00
ipctool2 i2cset 0x88 0x38 0x00
ipctool2 i2cset 0x88 0x39 0x18
ipctool2 i2cset 0x88 0x3A 0x32
ipctool2 i2cset 0x88 0x3B 0x26
ipctool2 i2cset 0x88 0x3C 0x00
ipctool2 i2cset 0x88 0x3D 0x60
ipctool2 i2cset 0x88 0x3E 0x00
ipctool2 i2cset 0x88 0x3F 0x00
ipctool2 i2cset 0x88 0x40 0x00
ipctool2 i2cset 0x88 0x41 0x00
ipctool2 i2cset 0x88 0x42 0x00
ipctool2 i2cset 0x88 0x43 0x00
ipctool2 i2cset 0x88 0x44 0x00
ipctool2 i2cset 0x88 0x45 0x00
ipctool2 i2cset 0x88 0x46 0x00
ipctool2 i2cset 0x88 0x47 0x00
ipctool2 i2cset 0x88 0x48 0x00
ipctool2 i2cset 0x88 0x49 0x00
ipctool2 i2cset 0x88 0x4A 0x00
ipctool2 i2cset 0x88 0x4B 0x00
ipctool2 i2cset 0x88 0x4C 0x43
ipctool2 i2cset 0x88 0x4D 0x00
ipctool2 i2cset 0x88 0x4E 0x17
ipctool2 i2cset 0x88 0x4F 0x00
ipctool2 i2cset 0x88 0x50 0x00
ipctool2 i2cset 0x88 0x51 0x00
ipctool2 i2cset 0x88 0x52 0x00
ipctool2 i2cset 0x88 0x53 0x00
ipctool2 i2cset 0x88 0x54 0x00
ipctool2 i2cset 0x88 0x55 0x00
ipctool2 i2cset 0x88 0xB3 0xFA
ipctool2 i2cset 0x88 0xB4 0x00
ipctool2 i2cset 0x88 0xB5 0x00
ipctool2 i2cset 0x88 0xB6 0x00
ipctool2 i2cset 0x88 0xB7 0x00
ipctool2 i2cset 0x88 0xB8 0x00
ipctool2 i2cset 0x88 0xB9 0x00
ipctool2 i2cset 0x88 0xBA 0x00
ipctool2 i2cset 0x88 0xBB 0x00
ipctool2 i2cset 0x88 0xBC 0x00
ipctool2 i2cset 0x88 0xBD 0x00
ipctool2 i2cset 0x88 0xBE 0x00
ipctool2 i2cset 0x88 0xBF 0x00
ipctool2 i2cset 0x88 0xC0 0x00
ipctool2 i2cset 0x88 0xC1 0x00
ipctool2 i2cset 0x88 0xC2 0x0B
ipctool2 i2cset 0x88 0xC3 0x0C
ipctool2 i2cset 0x88 0xC4 0x00
ipctool2 i2cset 0x88 0xC5 0x00
ipctool2 i2cset 0x88 0xC6 0x1F
ipctool2 i2cset 0x88 0xC7 0x78
ipctool2 i2cset 0x88 0xC8 0x27
ipctool2 i2cset 0x88 0xC9 0x00
ipctool2 i2cset 0x88 0xCA 0x00
ipctool2 i2cset 0x88 0xCB 0x07
ipctool2 i2cset 0x88 0xCC 0x08
ipctool2 i2cset 0x88 0xCD 0x00
ipctool2 i2cset 0x88 0xCE 0x00
ipctool2 i2cset 0x88 0xCF 0x04
ipctool2 i2cset 0x88 0xD0 0x00
ipctool2 i2cset 0x88 0xD1 0x00
ipctool2 i2cset 0x88 0xD2 0x60
ipctool2 i2cset 0x88 0xD3 0x10
ipctool2 i2cset 0x88 0xD4 0x06
ipctool2 i2cset 0x88 0xD5 0xBE
ipctool2 i2cset 0x88 0xD6 0x39
ipctool2 i2cset 0x88 0xD7 0x27
ipctool2 i2cset 0x88 0xD8 0x00
ipctool2 i2cset 0x88 0xD9 0x00
ipctool2 i2cset 0x88 0xDA 0x00
ipctool2 i2cset 0x88 0xDB 0x00
ipctool2 i2cset 0x88 0xDC 0x00
ipctool2 i2cset 0x88 0xDD 0x00
ipctool2 i2cset 0x88 0xDE 0x00
ipctool2 i2cset 0x88 0xDF 0x00
ipctool2 i2cset 0x88 0xE0 0x00
ipctool2 i2cset 0x88 0xE1 0x00
ipctool2 i2cset 0x88 0xE2 0x00
ipctool2 i2cset 0x88 0xE3 0x00
ipctool2 i2cset 0x88 0xE4 0x00
ipctool2 i2cset 0x88 0xE5 0x00
ipctool2 i2cset 0x88 0xE6 0x00
ipctool2 i2cset 0x88 0xE7 0x13
ipctool2 i2cset 0x88 0xE8 0x03
ipctool2 i2cset 0x88 0xE9 0x00
ipctool2 i2cset 0x88 0xEA 0x00
ipctool2 i2cset 0x88 0xEB 0x00
ipctool2 i2cset 0x88 0xEC 0x00
ipctool2 i2cset 0x88 0xED 0x00
ipctool2 i2cset 0x88 0xEE 0x00
ipctool2 i2cset 0x88 0xEF 0x00
ipctool2 i2cset 0x88 0xF0 0x00
ipctool2 i2cset 0x88 0xF1 0x00
ipctool2 i2cset 0x88 0xF2 0x00
ipctool2 i2cset 0x88 0xF3 0x00
ipctool2 i2cset 0x88 0xF4 0x20
ipctool2 i2cset 0x88 0xF5 0x10
ipctool2 i2cset 0x88 0xF6 0x00
ipctool2 i2cset 0x88 0xF7 0x00
ipctool2 i2cset 0x88 0xF8 0x00
ipctool2 i2cset 0x88 0xF9 0x00
ipctool2 i2cset 0x88 0xFA 0x88
ipctool2 i2cset 0x88 0xFB 0x00
ipctool2 i2cset 0x88 0xFC 0x00
ipctool2 i2cset 0x88 0x40 0x08
ipctool2 i2cset 0x88 0x01 0xf8
ipctool2 i2cset 0x88 0x02 0x01
ipctool2 i2cset 0x88 0x08 0x0f
ipctool2 i2cset 0x88 0x13 0x24
ipctool2 i2cset 0x88 0x14 0x46
ipctool2 i2cset 0x88 0x15 0x08
ipctool2 i2cset 0x88 0x20 0x12
ipctool2 i2cset 0x88 0x34 0x1b
ipctool2 i2cset 0x88 0x23 0x02
ipctool2 i2cset 0x88 0x23 0x00
ipctool2 i2cset 0x88 0x40 0x00

View File

@ -0,0 +1,173 @@
#!/bin/sh
ipctool2 i2cset 0x88 0x02 0xCF
ipctool2 i2cset 0x88 0x05 0x00
ipctool2 i2cset 0x88 0x06 0x32
ipctool2 i2cset 0x88 0x07 0xC0
ipctool2 i2cset 0x88 0x08 0x00
ipctool2 i2cset 0x88 0x09 0x24
ipctool2 i2cset 0x88 0x0A 0x48
ipctool2 i2cset 0x88 0x0B 0xC0
ipctool2 i2cset 0x88 0x0C 0x13
ipctool2 i2cset 0x88 0x0D 0x51
ipctool2 i2cset 0x88 0x0E 0x00
ipctool2 i2cset 0x88 0x0F 0x00
ipctool2 i2cset 0x88 0x10 0xF8
ipctool2 i2cset 0x88 0x11 0x40
ipctool2 i2cset 0x88 0x12 0x60
ipctool2 i2cset 0x88 0x13 0x00
ipctool2 i2cset 0x88 0x14 0x00
ipctool2 i2cset 0x88 0x15 0x13
ipctool2 i2cset 0x88 0x16 0x70
ipctool2 i2cset 0x88 0x17 0xBC
ipctool2 i2cset 0x88 0x18 0x17
ipctool2 i2cset 0x88 0x19 0x20
ipctool2 i2cset 0x88 0x1A 0x17
ipctool2 i2cset 0x88 0x1B 0x01
ipctool2 i2cset 0x88 0x1C 0x09
ipctool2 i2cset 0x88 0x1D 0x48
ipctool2 i2cset 0x88 0x1E 0x80
ipctool2 i2cset 0x88 0x1F 0x80
ipctool2 i2cset 0x88 0x20 0x48
ipctool2 i2cset 0x88 0x21 0x84
ipctool2 i2cset 0x88 0x22 0x37
ipctool2 i2cset 0x88 0x23 0x3F
ipctool2 i2cset 0x88 0x24 0x04
ipctool2 i2cset 0x88 0x25 0xFF
ipctool2 i2cset 0x88 0x26 0x05
ipctool2 i2cset 0x88 0x27 0x2D
ipctool2 i2cset 0x88 0x28 0x00
ipctool2 i2cset 0x88 0x29 0x48
ipctool2 i2cset 0x88 0x2A 0x30
ipctool2 i2cset 0x88 0x2B 0x70
ipctool2 i2cset 0x88 0x2C 0x2A
ipctool2 i2cset 0x88 0x2D 0x64
ipctool2 i2cset 0x88 0x2E 0x56
ipctool2 i2cset 0x88 0x2F 0x00
ipctool2 i2cset 0x88 0x30 0x7A
ipctool2 i2cset 0x88 0x31 0x4A
ipctool2 i2cset 0x88 0x32 0x4D
ipctool2 i2cset 0x88 0x33 0xF0
ipctool2 i2cset 0x88 0x34 0x00
ipctool2 i2cset 0x88 0x35 0x65
ipctool2 i2cset 0x88 0x36 0xDC
ipctool2 i2cset 0x88 0x37 0x00
ipctool2 i2cset 0x88 0x38 0x00
ipctool2 i2cset 0x88 0x39 0x04
ipctool2 i2cset 0x88 0x3A 0x32
ipctool2 i2cset 0x88 0x3B 0x26
ipctool2 i2cset 0x88 0x3C 0x00
ipctool2 i2cset 0x88 0x3D 0x60
ipctool2 i2cset 0x88 0x3E 0x00
ipctool2 i2cset 0x88 0x3F 0x00
ipctool2 i2cset 0x88 0x40 0x00
ipctool2 i2cset 0x88 0x41 0x00
ipctool2 i2cset 0x88 0x42 0x00
ipctool2 i2cset 0x88 0x43 0x00
ipctool2 i2cset 0x88 0x44 0x00
ipctool2 i2cset 0x88 0x45 0x00
ipctool2 i2cset 0x88 0x46 0x00
ipctool2 i2cset 0x88 0x47 0x00
ipctool2 i2cset 0x88 0x48 0x00
ipctool2 i2cset 0x88 0x49 0x00
ipctool2 i2cset 0x88 0x4A 0x00
ipctool2 i2cset 0x88 0x4B 0x00
ipctool2 i2cset 0x88 0x4C 0x43
ipctool2 i2cset 0x88 0x4D 0x00
ipctool2 i2cset 0x88 0x4E 0x17
ipctool2 i2cset 0x88 0x4F 0x00
ipctool2 i2cset 0x88 0x50 0x00
ipctool2 i2cset 0x88 0x51 0x00
ipctool2 i2cset 0x88 0x52 0x00
ipctool2 i2cset 0x88 0x53 0x00
ipctool2 i2cset 0x88 0x54 0x00
ipctool2 i2cset 0x88 0xB3 0xFA
ipctool2 i2cset 0x88 0xB4 0x00
ipctool2 i2cset 0x88 0xB5 0x00
ipctool2 i2cset 0x88 0xB6 0x00
ipctool2 i2cset 0x88 0xB7 0x00
ipctool2 i2cset 0x88 0xB8 0x00
ipctool2 i2cset 0x88 0xB9 0x00
ipctool2 i2cset 0x88 0xBA 0x00
ipctool2 i2cset 0x88 0xBB 0x00
ipctool2 i2cset 0x88 0xBC 0x00
ipctool2 i2cset 0x88 0xBD 0x00
ipctool2 i2cset 0x88 0xBE 0x00
ipctool2 i2cset 0x88 0xBF 0x00
ipctool2 i2cset 0x88 0xC0 0x00
ipctool2 i2cset 0x88 0xC1 0x00
ipctool2 i2cset 0x88 0xC2 0x0B
ipctool2 i2cset 0x88 0xC3 0x0C
ipctool2 i2cset 0x88 0xC4 0x00
ipctool2 i2cset 0x88 0xC5 0x00
ipctool2 i2cset 0x88 0xC6 0x1F
ipctool2 i2cset 0x88 0xC7 0x78
ipctool2 i2cset 0x88 0xC8 0x27
ipctool2 i2cset 0x88 0xC9 0x00
ipctool2 i2cset 0x88 0xCA 0x00
ipctool2 i2cset 0x88 0xCB 0x07
ipctool2 i2cset 0x88 0xCC 0x08
ipctool2 i2cset 0x88 0xCD 0x00
ipctool2 i2cset 0x88 0xCE 0x00
ipctool2 i2cset 0x88 0xCF 0x04
ipctool2 i2cset 0x88 0xD0 0x00
ipctool2 i2cset 0x88 0xD1 0x00
ipctool2 i2cset 0x88 0xD2 0x60
ipctool2 i2cset 0x88 0xD3 0x10
ipctool2 i2cset 0x88 0xD4 0x06
ipctool2 i2cset 0x88 0xD5 0xBE
ipctool2 i2cset 0x88 0xD6 0x39
ipctool2 i2cset 0x88 0xD7 0x27
ipctool2 i2cset 0x88 0xD8 0x00
ipctool2 i2cset 0x88 0xD9 0x00
ipctool2 i2cset 0x88 0xDA 0x00
ipctool2 i2cset 0x88 0xDB 0x00
ipctool2 i2cset 0x88 0xDC 0x00
ipctool2 i2cset 0x88 0xDD 0x00
ipctool2 i2cset 0x88 0xDE 0x00
ipctool2 i2cset 0x88 0xDF 0x00
ipctool2 i2cset 0x88 0xE0 0x00
ipctool2 i2cset 0x88 0xE1 0x00
ipctool2 i2cset 0x88 0xE2 0x00
ipctool2 i2cset 0x88 0xE3 0x00
ipctool2 i2cset 0x88 0xE4 0x00
ipctool2 i2cset 0x88 0xE5 0x00
ipctool2 i2cset 0x88 0xE6 0x00
ipctool2 i2cset 0x88 0xE7 0x13
ipctool2 i2cset 0x88 0xE8 0x03
ipctool2 i2cset 0x88 0xE9 0x00
ipctool2 i2cset 0x88 0xEA 0x00
ipctool2 i2cset 0x88 0xEB 0x00
ipctool2 i2cset 0x88 0xEC 0x00
ipctool2 i2cset 0x88 0xED 0x00
ipctool2 i2cset 0x88 0xEE 0x00
ipctool2 i2cset 0x88 0xEF 0x00
ipctool2 i2cset 0x88 0xF0 0x00
ipctool2 i2cset 0x88 0xF1 0x00
ipctool2 i2cset 0x88 0xF2 0x00
ipctool2 i2cset 0x88 0xF3 0x00
ipctool2 i2cset 0x88 0xF4 0x20
ipctool2 i2cset 0x88 0xF5 0x10
ipctool2 i2cset 0x88 0xF6 0x00
ipctool2 i2cset 0x88 0xF7 0x00
ipctool2 i2cset 0x88 0xF8 0x00
ipctool2 i2cset 0x88 0xF9 0x00
ipctool2 i2cset 0x88 0xFA 0x0b
ipctool2 i2cset 0x88 0xFB 0x00
ipctool2 i2cset 0x88 0xFC 0x00
ipctool2 i2cset 0x88 0x40 0x08
ipctool2 i2cset 0x88 0x00 0x00
ipctool2 i2cset 0x88 0x01 0xf8
ipctool2 i2cset 0x88 0x02 0x01
ipctool2 i2cset 0x88 0x08 0xf0
ipctool2 i2cset 0x88 0x13 0x24
ipctool2 i2cset 0x88 0x14 0x73
ipctool2 i2cset 0x88 0x15 0x08
ipctool2 i2cset 0x88 0x20 0x12
ipctool2 i2cset 0x88 0x34 0x1b
ipctool2 i2cset 0x88 0x23 0x02
ipctool2 i2cset 0x88 0x23 0x00
ipctool2 i2cset 0x88 0x40 0x00

View File

@ -0,0 +1,270 @@
#!/usr/bin/haserl
<%in p/common.cgi %>
<%
page_title="Majestic settings"
mj=$(echo "$mj" | sed "s/ /_/g")
only="$GET_tab"; [ -z "$only" ] && only="system"
eval title="\$tT_mj_${only}"
if [ -n "$(eval echo "\$mj_hide_${only}_${fw_variant}" | sed -n "/\b${soc_family}\b/p")" ]; then
only="${only}_${fw_variant}"
variant="OpenIPC ${fw_variant}"
fi
# hide certain domains if not supported
if [ -n "$(eval echo "\$mj_hide_${only}" | sed -n "/\b${soc_family}\b/p")" ]; then
redirect_to "majestic-settings.cgi" "danger" "$title is not supported on ${variant:-your system}."
fi
if [ "POST" = "$REQUEST_METHOD" ]; then
mj_conf=/etc/majestic.yaml
temp_yaml=/tmp/majestic.yaml
# make a copy of the actual config into memory
cp -f $mj_conf $temp_yaml
OIFS=$IFS
IFS=$'\n' # make newlines the only separator
for yaml_param_name in $(printenv|grep POST_); do
form_field_name=$(echo $yaml_param_name | sed 's/^POST_mj_//')
key=".$(echo $form_field_name | cut -d= -f1 | sed 's/_/./g')"
# do not include helping fields into config
if [ "$key" = ".netip.password.plain" ] || [ "$key" = ".osd.corner" ]; then
continue
fi
value="$(echo $form_field_name | cut -d= -f2)"
# normalization
# (that's why we can't have nice things)
case "$key" in
.image.rotate)
[ "0" = "$value" ] && value="none"
;;
.isp.antiFlicker)
[ "50Hz" = "$value" ] && value="50"
[ "60Hz" = "$value" ] && value="60"
;;
.motionDetect.visualize)
[ "true" = "$value" ] && yaml-cli -s ".osd.enabled" "true" -i $temp_yaml
;;
.osd.enabled)
[ "false" = "$value" ] && yaml-cli -s ".motionDetect.visualize" "false" -i $temp_yaml
;;
.system.webAdmin)
[ "true" = "$value" ] && value="enabled"
[ "false" = "$value" ] && value="disabled"
;;
esac
# read existing value
oldvalue=$(yaml-cli -g "$key" -i $temp_yaml)
if [ -z "$value" ]; then
# if no new value submitted but there is an existing value, delete the yaml_param_name
[ -n "$oldvalue" ] && yaml-cli -d $key -i "$temp_yaml" -o "$temp_yaml"
else
# if new value is submitted and it differs from the existing one, update the yaml_param_name
[ "$oldvalue" != "$value" ] && yaml-cli -s $key "$value" -i "$temp_yaml" -o "$temp_yaml"
fi
done
IFS=$OIFS
# update config if differs
[ -n "$(diff -q $temp_yaml $mj_conf)" ] && cp -f $temp_yaml $mj_conf
# clean up
rm $temp_yaml
# reload majestic
killall -1 majestic
sleep 1
$(yaml-cli -i /etc/majestic.yaml -g .isp.sensorConfig | tr '/.' ' ' | awk '{print $3}').sh
redirect_to "$HTTP_REFERER"
fi
%>
<%in p/header.cgi %>
<ul class="nav nav-underline small mb-4 d-none d-lg-flex">
<%
mj=$(echo "$mj" | sed "s/ /_/g")
for _line in $mj; do
_parameter=${_line%%|*};
_param_name=${_parameter#.};
_param_domain=${_param_name%.*}
if [ "$_parameter_domain_old" != "$_param_domain" ]; then
# hide certain domains for certain familier
[ -n "$(eval echo "\$mj_hide_${_param_domain}" | sed -n "/\b${soc_family}\b/p")" ] && continue
# show certain domains only for certain vendors
[ -n "$(eval echo "\$mj_show_${_param_domain}_vendor")" ] && [ -z "$(eval echo "\$mj_show_${_param_domain}_vendor" | sed -n "/\b${soc_vendor}\b/p")" ] && continue
_parameter_domain_old="$_param_domain"
_css="class=\"nav-link\""; [ "$_param_domain" = "$only" ] && _css="class=\"nav-link active\" aria-current=\"true\""
echo "<li class=\"nav-item\"><a ${_css} href=\"majestic-settings.cgi?tab=${_param_domain}\">$(eval echo \$tT_mj_${_param_domain})</a></li>"
fi
done
unset _css; unset _param_domain; unset _line; unset _param_name; unset _parameter_domain_old; unset _parameter;
%>
</ul>
<div class="row row-cols-1 row-cols-md-2 row-cols-lg-3 g-4 mb-4">
<div class="col">
<h3><%= $title %></h3>
<form action="<%= $SCRIPT_NAME %>" method="post">
<%
config=""
_mj2="$(echo "$mj" | sed "s/ /_/g" | grep -E "^\.$only")"
for line in $_mj2; do
# line: .isp.exposure|Sensor_exposure_time|&micro;s|range|auto,1-500000|auto|From_1_to_500000.
yaml_param_name=${line%%|*} # => .isp.exposure
_param_name=${yaml_param_name#.} # => isp.exposure
_param_name=${_param_name//./_} # => isp_exposure
_param_name=${_param_name//-/_} # => isp_exposure
domain=${_param_name%%_*} # => isp
# hide certain domains if blacklisted
[ -n "$(eval echo "\$mj_hide_${domain}" | sed -n "/\b${soc_family}\b/p")" ] && continue
# hide certain parameters if blacklisted
[ -n "$(eval echo "\$mj_hide_${_param_name}_vendor" | sed -n "/\b${soc_vendor}\b/p")" ] && continue
[ -n "$(eval echo "\$mj_hide_${_param_name}" | sed -n "/\b${soc_family}\b/p")" ] && continue
# show certain domains only if whitelisted
[ -n "$(eval echo "\$mj_show_${domain}_vendor")" ] && [ -z "$(eval echo "\$mj_show_${domain}_vendor" | sed -n "/\b${soc_vendor}\b/p")" ] && continue
# show certain parameters only if whitelisted
[ -n "$(eval echo "\$mj_show_${_param_name}")" ] && [ -z "$(eval echo "\$mj_show_${_param_name}" | sed -n "/\b${soc_family}\b/p")" ] && continue
[ -n "$(eval echo "\$mj_show_${_param_name}_vendor")" ] && [ -z "$(eval echo "\$mj_show_${_param_name}_vendor" | sed -n "/\b${soc_vendor}\b/p")" ] && continue
# show certain parameters only in debug mode
[ -n "$(echo "$mj_hide_unless_debug" | sed -n "/\b${_param_name}\b/p")" ] && [ "0$debug" -lt "1" ] && continue
form_field_name=mj_${_param_name} # => mj_isp_exposure
line=${line#*|} # line: Sensor_exposure_time|&micro;s|range|auto,1-500000|auto|From_1_to_500000.
label_text=${line%%|*} # => Sensor_exposure_time
label_text=${label_text//_/ } # => Sensor exposure time
line=${line#*|} # line: &micro;s|range|auto,1-500000|auto|From_1_to_500000.
units=${line%%|*} # => &micro;s
line=${line#*|} # line: range|auto,1-500000|auto|From_1_to_500000.
form_field_type=${line%%|*} # => range
line=${line#*|} # line: auto,1-500000|auto|From_1_to_500000.
options=${line%%|*} # => auto,1-500000
line=${line#*|} # line: auto|From_1_to_500000.
placeholder=${line%%|*} # => auto
line=${line#*|} # line: From_1_to_500000.
hint=$line # => From_1_to_500000.
hint=${hint//_/ } # => From 1 to 500000.
value="$(yaml-cli -g "$yaml_param_name")"
# FIXME: this is not how it should be done. Instead, Majestic should be reporting its true values.
# [ -z "$value" ] && value="$placeholder"
# assign yaml_param_name's value to a variable with yaml_param_name's form_field_name for form fields values
eval "$form_field_name=\"\$value\""
# hide some params in config
if [ "mj_netip_password_plain" != "$form_field_name" ]; then
config="${config}\n$(eval echo ${yaml_param_name}: \"\$$form_field_name\")"
fi
case "$form_field_type" in
boolean) field_switch "$form_field_name" "$label_text" "$hint" "$options";;
hidden) field_hidden "$form_field_name" "$label_text" "$hint";;
number) field_number "$form_field_name" "$label_text" "$options" "$hint";;
password) field_password "$form_field_name" "$label_text" "$hint";;
range) field_range "$form_field_name" "$label_text" "$options" "$hint";;
select) field_select "$form_field_name" "$label_text" "$options" "$hint";;
string) field_text "$form_field_name" "$label_text" "$hint" "$placeholder";;
*) echo "<span class=\"text-danger\">UNKNOWN FIELD TYPE ${form_field_type} FOR ${_name} WITH LABEL ${label_text}</span>";;
esac
done
%>
<% button_submit %>
</form>
</div>
<div class="col">
<h3>Related settings</h3>
<pre><% echo -e "$config" %></pre>
</div>
<div class="col">
<h3>Quick Links</h3>
<p><a href="info-majestic.cgi">Majestic Config File (majestic.yaml)</a></p>
<p><a href="majestic-endpoints.cgi">Majestic Endpoints</a></p>
</div>
</div>
<script>
let MD5 = function(d){return V(Y(X(d),8*d.length))};
function X(d){for(var _=Array(d.length>>2),m=0;m<_.length;m++)_[m]=0;for(m=0;m<8*d.length;m+=8)_[m>>5]|=(255&d.charCodeAt(m/8))<<m%32;return _}
function V(d){for(var _="",m=0;m<32*d.length;m+=8)_+=String.fromCharCode(d[m>>5]>>>m%32&255);return _}
function Y(d,_){d[_>>5]|=128<<_%32,d[14+(_+64>>>9<<4)]=_;for(var m=1732584193,f=-271733879,r=-1732584194,i=271733878,n=0;n<d.length;n+=16){var h=m,t=f,g=r,e=i;f=md5_ii(f=md5_ii(f=md5_ii(f=md5_ii(f=md5_hh(f=md5_hh(f=md5_hh(f=md5_hh(f=md5_gg(f=md5_gg(f=md5_gg(f=md5_gg(f=md5_ff(f=md5_ff(f=md5_ff(f=md5_ff(f,r=md5_ff(r,i=md5_ff(i,m=md5_ff(m,f,r,i,d[n+0],7,-680876936),f,r,d[n+1],12,-389564586),m,f,d[n+2],17,606105819),i,m,d[n+3],22,-1044525330),r=md5_ff(r,i=md5_ff(i,m=md5_ff(m,f,r,i,d[n+4],7,-176418897),f,r,d[n+5],12,1200080426),m,f,d[n+6],17,-1473231341),i,m,d[n+7],22,-45705983),r=md5_ff(r,i=md5_ff(i,m=md5_ff(m,f,r,i,d[n+8],7,1770035416),f,r,d[n+9],12,-1958414417),m,f,d[n+10],17,-42063),i,m,d[n+11],22,-1990404162),r=md5_ff(r,i=md5_ff(i,m=md5_ff(m,f,r,i,d[n+12],7,1804603682),f,r,d[n+13],12,-40341101),m,f,d[n+14],17,-1502002290),i,m,d[n+15],22,1236535329),r=md5_gg(r,i=md5_gg(i,m=md5_gg(m,f,r,i,d[n+1],5,-165796510),f,r,d[n+6],9,-1069501632),m,f,d[n+11],14,643717713),i,m,d[n+0],20,-373897302),r=md5_gg(r,i=md5_gg(i,m=md5_gg(m,f,r,i,d[n+5],5,-701558691),f,r,d[n+10],9,38016083),m,f,d[n+15],14,-660478335),i,m,d[n+4],20,-405537848),r=md5_gg(r,i=md5_gg(i,m=md5_gg(m,f,r,i,d[n+9],5,568446438),f,r,d[n+14],9,-1019803690),m,f,d[n+3],14,-187363961),i,m,d[n+8],20,1163531501),r=md5_gg(r,i=md5_gg(i,m=md5_gg(m,f,r,i,d[n+13],5,-1444681467),f,r,d[n+2],9,-51403784),m,f,d[n+7],14,1735328473),i,m,d[n+12],20,-1926607734),r=md5_hh(r,i=md5_hh(i,m=md5_hh(m,f,r,i,d[n+5],4,-378558),f,r,d[n+8],11,-2022574463),m,f,d[n+11],16,1839030562),i,m,d[n+14],23,-35309556),r=md5_hh(r,i=md5_hh(i,m=md5_hh(m,f,r,i,d[n+1],4,-1530992060),f,r,d[n+4],11,1272893353),m,f,d[n+7],16,-155497632),i,m,d[n+10],23,-1094730640),r=md5_hh(r,i=md5_hh(i,m=md5_hh(m,f,r,i,d[n+13],4,681279174),f,r,d[n+0],11,-358537222),m,f,d[n+3],16,-722521979),i,m,d[n+6],23,76029189),r=md5_hh(r,i=md5_hh(i,m=md5_hh(m,f,r,i,d[n+9],4,-640364487),f,r,d[n+12],11,-421815835),m,f,d[n+15],16,530742520),i,m,d[n+2],23,-995338651),r=md5_ii(r,i=md5_ii(i,m=md5_ii(m,f,r,i,d[n+0],6,-198630844),f,r,d[n+7],10,1126891415),m,f,d[n+14],15,-1416354905),i,m,d[n+5],21,-57434055),r=md5_ii(r,i=md5_ii(i,m=md5_ii(m,f,r,i,d[n+12],6,1700485571),f,r,d[n+3],10,-1894986606),m,f,d[n+10],15,-1051523),i,m,d[n+1],21,-2054922799),r=md5_ii(r,i=md5_ii(i,m=md5_ii(m,f,r,i,d[n+8],6,1873313359),f,r,d[n+15],10,-30611744),m,f,d[n+6],15,-1560198380),i,m,d[n+13],21,1309151649),r=md5_ii(r,i=md5_ii(i,m=md5_ii(m,f,r,i,d[n+4],6,-145523070),f,r,d[n+11],10,-1120210379),m,f,d[n+2],15,718787259),i,m,d[n+9],21,-343485551),m=safe_add(m,h),f=safe_add(f,t),r=safe_add(r,g),i=safe_add(i,e)}return Array(m,f,r,i)}
function md5_cmn(d,_,m,f,r,i){return safe_add(bit_rol(safe_add(safe_add(_,d),safe_add(f,i)),r),m)}
function md5_ff(d,_,m,f,r,i,n){return md5_cmn(_&m|~_&f,d,_,r,i,n)}
function md5_gg(d,_,m,f,r,i,n){return md5_cmn(_&f|m&~f,d,_,r,i,n)}
function md5_hh(d,_,m,f,r,i,n){return md5_cmn(_^m^f,d,_,r,i,n)}
function md5_ii(d,_,m,f,r,i,n){return md5_cmn(m^(_|~f),d,_,r,i,n)}
function safe_add(d,_){var m=(65535&d)+(65535&_);return(d>>16)+(_>>16)+(m>>16)<<16|65535&m}
function bit_rol(d,_){return d<<_|d>>>32-_}
function ord(str){return str.charCodeAt(0)}
function chr(n){return String.fromCharCode(n)}
function generateSofiaHash(text) {
let h = "";
let md5 = MD5(text);
for (let i = 0; i <= 7; i++) {
let n = (ord(md5[2*i]) + ord(md5[2*i+1])) % 62;
n += (n > 9) ? (n > 35) ? 61 : 55 : 48;
h += chr(n);
}
return h;
}
<% if [ -d /etc/sensors/ ]; then %>
if ($("#mj_isp_sensorConfig")) {
const inp = $("#mj_isp_sensorConfig");
const sel = document.createElement("select");
sel.classList.add("form-select");
sel.name=inp.name;
sel.id=inp.id;
sel.options.add(new Option());
let opt;
<% for i in $(ls -1 /etc/sensors/*.ini || ls -1 /etc/sensors/*.bin); do %>
opt = new Option("<%= $i %>");
opt.selected = ("<%= $i %>" == inp.value);
sel.options.add(opt);
<% done %>
inp.replaceWith(sel);
}
<% fi %>
$("#mj_osd_corner")?.addEventListener("change", (ev) => {
const padding = 16;
switch (ev.target.value) {
case "bl":
$("#mj_osd_posX").value = padding;
$("#mj_osd_posY").value = -(padding);
break;
case "br":
$("#mj_osd_posX").value = -(padding);
$("#mj_osd_posY").value = -(padding);
break;
case "tl":
$("#mj_osd_posX").value = padding;
$("#mj_osd_posY").value = padding;
break;
case "tr":
$("#mj_osd_posX").value = -(padding);
$("#mj_osd_posY").value = padding;
break;
}
})
$("#mj_netip_enabled")?.addEventListener("change", (ev) => {
$("#mj_netip_user").required = ev.target.checked;
$("#mj_netip_password_plain").required = ev.target.checked;
})
$("#mj_netip_password_plain") && $("form").addEventListener("submit", (ev) => {
const pw = $("#mj_netip_password_plain").value.trim();
if (pw !== "") $("#mj_netip_password").value = generateSofiaHash(pw);
})
</script>
<%in p/footer.cgi %>

View File

@ -1,145 +0,0 @@
################################################################################
#
# goke-osdrv-gk7205v200
#
################################################################################
GOKE_OSDRV_GK7205V200_VERSION =
GOKE_OSDRV_GK7205V200_SITE =
GOKE_OSDRV_GK7205V200_LICENSE = MIT
GOKE_OSDRV_GK7205V200_LICENSE_FILES = LICENSE
GOKE_OSDRV_GK7205V200_INSTALL_STAGING = YES
define GOKE_OSDRV_GK7205V200_INSTALL_STAGING_CMDS
$(INSTALL) -m 755 -d $(STAGING_DIR)/usr/include/goke
#$(INSTALL) -m 644 -t $(STAGING_DIR)/usr/include/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/include/*
## $(INSTALL) -m 755 -d $(BUILD_DIR)/goke-osdrv-gk7205v200/include
## $(INSTALL) -m 644 -t $(BUILD_DIR)/goke-osdrv-gk7205v200/include $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/include/*
## $(INSTALL) -m 755 -d $(BUILD_DIR)/goke-osdrv-gk7205v200/kmod
## $(INSTALL) -m 644 -t $(BUILD_DIR)/goke-osdrv-gk7205v200/kmod $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/*.ko
## $(INSTALL) -m 755 -d $(BUILD_DIR)/goke-osdrv-gk7205v200/lib
## $(INSTALL) -m 644 -t $(BUILD_DIR)/goke-osdrv-gk7205v200/lib $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/*.so
endef
define GOKE_OSDRV_GK7205V200_INSTALL_TARGET_CMDS
$(INSTALL) -m 755 -d $(TARGET_DIR)/etc/sensors
$(INSTALL) -m 644 -t $(TARGET_DIR)/etc/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/config/bt656_720p.ini
#$(INSTALL) -m 755 -d $(TARGET_DIR)/etc/sensors/WDR
#$(INSTALL) -m 644 -t $(TARGET_DIR)/etc/sensors/WDR $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/config/WDR/*.ini
#$(INSTALL) -m 755 -d $(TARGET_DIR)/etc/sensors/60fps
#$(INSTALL) -m 644 -t $(TARGET_DIR)/etc/sensors/60fps $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/config/60fps/*.ini
$(INSTALL) -m 755 -d $(TARGET_DIR)/etc/sensors/iq
$(INSTALL) -m 644 -t $(TARGET_DIR)/etc/sensors/iq $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/iq/imx307.ini
#$(INSTALL) -m 644 -t $(TARGET_DIR)/etc/sensors/iq $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/iq/imx335.ini
#$(INSTALL) -m 644 -t $(TARGET_DIR)/etc/sensors/iq $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/iq/sc2232.ini
ln -sf imx307.ini $(TARGET_DIR)/etc/sensors/iq/default.ini
$(INSTALL) -m 755 -d $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke
## $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/cipher_drv.ko
## $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gfbg.ko
$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_acodec.ko
### $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_adc.ko
$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_adec.ko
$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_aenc.ko
$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_ai.ko
$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_aio.ko
$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_ao.ko
$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_base.ko
$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_chnl.ko
$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_h264e.ko
$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_h265e.ko
### $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_isp.ko
$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_ive.ko
$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_jpege.ko
$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_rc.ko
$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_rgn.ko
$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_sys.ko
## $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_tde.ko
$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_vedu.ko
$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_venc.ko
$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_vgs.ko
$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_vi.ko
## $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_vo.ko
$(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_vpss.ko
### $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/gk7205v200_wdt.ko
### $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/isp_piris.ko
### $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/isp_pwm.ko
### $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/isp_sample_ist.ko
### $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/isp_sensor_i2c.ko
### $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/isp_sensor_spi.ko
### $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/mipi_rx.ko
### $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/osal.ko
## $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/ssp_ota5182_ex.ko
## $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/ssp_st7789_ex.ko
## $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/ssp_st7796_ex.ko
### $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/goke $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/kmod/sysconfig.ko
$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/bin
$(INSTALL) -m 755 -t $(TARGET_DIR)/usr/bin $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/script/load*
$(INSTALL) -m 755 -t $(TARGET_DIR)/usr/bin $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/script/ircut_demo
$(INSTALL) -m 755 -t $(TARGET_DIR)/usr/bin $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/script/set_allocator
$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/lib/sensors
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/*.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_ar0237.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_f23.so
# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_f37.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_gc2053_forcar.so
# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_gc2053.so
# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_gc4653_2l.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_imx290.so
# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_imx307_2l.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_imx307.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_imx327_2l.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_imx327.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_imx335.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_os05a.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_ov2718.so
# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_sc200ai.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_sc2231.so
# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_sc2232h.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_sc2235.so
# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_sc2239.so
# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_sc223a.so
# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_sc2335.so
# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_sc3235.so
# $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_sc3335.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_sc4236.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_sc500ai.so
$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/sensor/libsns_bt656.so
$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/lib
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_aacdec.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_aacenc.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_aacsbrdec.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_aacsbrenc.so
$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_ae.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_awb_natura.so
$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_awb.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_bcd.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_cipher.so
$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_isp.so
$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_ive.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_ivp.so
$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_md.so
$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_mpi.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_qr.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_tde.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_vqe_aec.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_vqe_agc.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_vqe_anr.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_vqe_eq.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_vqe_hpf.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_vqe_record.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_vqe_res.so
## $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_vqe_talkv2.so
##$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(GOKE_OSDRV_GK7205V200_PKGDIR)/files/lib/libhi_vqe_wnr.so
endef
$(eval $(generic-package))

View File

@ -0,0 +1,41 @@
#
etc/sensors/4l_sc223a_i2c_1080p.ini
etc/sensors/5M_imx335.ini
etc/sensors/bt656_720p.ini
etc/sensors/gc2053_i2c_1080p.ini
etc/sensors/gc4653_i2c_4M.ini
etc/sensors/imx307_i2c_2l_1080p.ini
etc/sensors/imx335_i2c_4M.ini
etc/sensors/jxf23_i2c_1080p.ini
etc/sensors/jxf23_i2c_dc_1080p.ini
etc/sensors/sc2232h_i2c_1080p.ini
etc/sensors/sc2232h_i2c_1080p.ini
etc/sensors/sc2232h_i2c_1080p.ini
etc/sensors/sc2239_i2c_1080p.ini
etc/sensors/sc223a_i2c_1080p.ini
etc/sensors/sc2335_i2c_1080p.ini
etc/sensors/smtsec_imx307_i2c_4l_1080p.ini
#
etc/sensors/60fps
etc/sensors/WDR
etc/sensors/iq
#
usr/lib/sensors/libsns_f37.so
usr/lib/sensors/libsns_gc2053.so
usr/lib/sensors/libsns_gc4653_2l.so
usr/lib/sensors/libsns_imx307.so
usr/lib/sensors/libsns_imx307_2l.so
usr/lib/sensors/libsns_imx335.so
usr/lib/sensors/libsns_sc200ai.so
usr/lib/sensors/libsns_sc2232h.so
usr/lib/sensors/libsns_sc2239.so
usr/lib/sensors/libsns_sc223a.so
usr/lib/sensors/libsns_sc223a_4l.so
usr/lib/sensors/libsns_sc2335.so
usr/lib/sensors/libsns_sc3235.so
usr/lib/sensors/libsns_sc3335.so
#
lib/modules/4.9.37/kernel/drivers/i2c
lib/modules/4.9.37/kernel/drivers/scsi
lib/modules/4.9.37/kernel/drivers/usb
lib/modules/4.9.37/kernel/fs/f2fs