Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
--- sample_comm.h
+++ sample_comm.h
@@ -185 +184,0 @@ typedef enum _SAMPLE_SNS_TYPE_E {
- GCORE_GC030A_MIPI_480P_30FPS_10BIT,
@@ -317,3 +315,0 @@ typedef enum _SAMPLE_SNS_TYPE_E {
- GCORE_GC4653_MIPI_720P_60FPS_10BIT,
- GCORE_OV2685_MIPI_1600x1200_30FPS_10BIT,
- OV_OS04A10_MIPI_4M_720P90_12BIT,
78 changes: 63 additions & 15 deletions support/sg2002/build
Original file line number Diff line number Diff line change
@@ -1,12 +1,21 @@
#!/bin/bash

if [ -z "${BASH_VERSION:-}" ]; then
echo "[build] This script must be run with bash." >&2
exit 1
fi

export MAIXCDK_PATH=~/MaixCDK
export NanoKVM_PATH=~/NanoKVM

Project_Name="None"
Project_PATH="None"
Project_Action="None"
KVMAPP_PATH="$NanoKVM_PATH/kvmapp"
SOPHGO_SAMPLE_COMMON_PATH="$MAIXCDK_PATH/components/3rd_party/sophgo-middleware/sophgo-middleware/v2/sample/common"
SAMPLE_COMM_PATCH="$NanoKVM_PATH/support/sg2002/additional/sophgo-middleware/v2/sample/common/sample_comm.h.patch"
SENSOR_ABI_REMOVED_PATTERN="GCORE_GC030A_MIPI_480P_30FPS_10BIT|GCORE_GC4653_MIPI_720P_60FPS_10BIT|GCORE_OV2685_MIPI_1600x1200_30FPS_10BIT|OV_OS04A10_MIPI_4M_720P90_12BIT"
SENSOR_ABI_ANCHOR_PATTERN="GCORE_GC0312_MIPI_480P_20FPS_8BIT|LONTIUM_LT6911_2M_60FPS_8BIT|SAMPLE_SNS_TYPE_LINEAR_BUTT"

maixcdk_build() {
local input_value="$1"
Expand Down Expand Up @@ -39,16 +48,58 @@ maixcdk_clean(){
maixcdk clean
}

sync_sensor_abi(){
local sample_comm="$SOPHGO_SAMPLE_COMMON_PATH/sample_comm.h"
local sample_comm_mode

if [ ! -f "$sample_comm" ]; then
echo -e "\e[36m[build] \e[31mMissing sensor header: $sample_comm\e[0m" >&2
return 1
fi

if [ ! -f "$SAMPLE_COMM_PATCH" ]; then
echo -e "\e[36m[build] \e[31mMissing sensor header patch: $SAMPLE_COMM_PATCH\e[0m" >&2
return 1
fi

sample_comm_mode="$(stat -c %a "$sample_comm" 2>/dev/null || stat -f %Lp "$sample_comm")" || return 1

# sample_common_sensor.c and sample_comm.h are versioned separately by MaixCDK.
# Keep the enum layout aligned with the NanoKVM sensor implementation copied below.
if patch --forward --dry-run --silent "$sample_comm" "$SAMPLE_COMM_PATCH" >/dev/null 2>&1; then
patch --forward --silent "$sample_comm" "$SAMPLE_COMM_PATCH" || {
echo -e "\e[36m[build] \e[31mFailed to patch sensor header: $sample_comm\e[0m" >&2
return 1
}
chmod "$sample_comm_mode" "$sample_comm" || return 1
return 0
fi

if ! grep -Eq "^[[:space:]]*(${SENSOR_ABI_REMOVED_PATTERN})[[:space:]]*," "$sample_comm" \
&& grep -Eq "^[[:space:]]*(${SENSOR_ABI_ANCHOR_PATTERN})[[:space:]]*[,=]?" "$sample_comm"; then
chmod "$sample_comm_mode" "$sample_comm" || return 1
return 0
fi

echo -e "\e[36m[build] \e[31mSensor header patch does not match: $sample_comm\e[0m" >&2
return 1
}

install_nanokvm_libs(){
cp -rf "$NanoKVM_PATH/support/sg2002/additional/kvm" "$MAIXCDK_PATH/components"
cp -rf "$NanoKVM_PATH/support/sg2002/additional/kvm_mmf" "$MAIXCDK_PATH/components"
cp -rf "$NanoKVM_PATH/support/sg2002/additional/vision" "$MAIXCDK_PATH/components"
cp -f "$NanoKVM_PATH/support/sg2002/additional/peripheral/port/maixcam/maix_i2c.cpp" "$MAIXCDK_PATH/components/peripheral/port/maixcam/maix_i2c.cpp"
cp -f "$NanoKVM_PATH/support/sg2002/additional/sophgo-middleware/v2/sample/common/sample_common_sensor.c" "$SOPHGO_SAMPLE_COMMON_PATH/"
sync_sensor_abi
}

case "$1" in
update_lib)
cp -rf $NanoKVM_PATH/support/sg2002/additional/kvm $MAIXCDK_PATH/components
cp -rf $NanoKVM_PATH/support/sg2002/additional/kvm_mmf $MAIXCDK_PATH/components
cp -rf $NanoKVM_PATH/support/sg2002/additional/vision $MAIXCDK_PATH/components
cp -f $NanoKVM_PATH/support/sg2002/additional/peripheral/port/maixcam/maix_i2c.cpp $MAIXCDK_PATH/components/peripheral/port/maixcam/maix_i2c.cpp
cp -f $NanoKVM_PATH/support/sg2002/additional/sophgo-middleware/v2/sample/common/sample_common_sensor.c $MAIXCDK_PATH/components/3rd_party/sophgo-middleware/sophgo-middleware/v2/sample/common/
install_nanokvm_libs || exit 1

echo -e "\e[36m[build] \e[32mupdate_lib ok!\e[0m"
exit 1
exit 0
;;
kvm_system)
Project_Name="kvm_system"
Expand Down Expand Up @@ -103,17 +154,14 @@ then
then
echo -e "\e[36m[build] \e[32mDetected that the library has not been modified; first, move the library\e[0m"

mkdir $NanoKVM_PATH/support/sg2002/additional/original
mv -f $MAIXCDK_PATH/components/vision $NanoKVM_PATH/support/sg2002/additional/original
mkdir -p "$NanoKVM_PATH/support/sg2002/additional/original"
mv -f "$MAIXCDK_PATH/components/vision" "$NanoKVM_PATH/support/sg2002/additional/original"
# mv $MAIXCDK_PATH/components/maixcam_lib $NanoKVM_PATH/support/sg2002/additional/original
mv -f $MAIXCDK_PATH/components/peripheral/port/maixcam/maix_i2c.cpp $NanoKVM_PATH/support/sg2002/additional/original
mv -f $MAIXCDK_PATH/components/3rd_party/sophgo-middleware/sophgo-middleware/v2/sample/common/sample_common_sensor.c $NanoKVM_PATH/support/sg2002/additional/original
mv -f "$MAIXCDK_PATH/components/peripheral/port/maixcam/maix_i2c.cpp" "$NanoKVM_PATH/support/sg2002/additional/original"
mv -f "$SOPHGO_SAMPLE_COMMON_PATH/sample_common_sensor.c" "$NanoKVM_PATH/support/sg2002/additional/original"
cp -f "$SOPHGO_SAMPLE_COMMON_PATH/sample_comm.h" "$NanoKVM_PATH/support/sg2002/additional/original"

cp -rf $NanoKVM_PATH/support/sg2002/additional/kvm $MAIXCDK_PATH/components
cp -rf $NanoKVM_PATH/support/sg2002/additional/kvm_mmf $MAIXCDK_PATH/components
cp -rf $NanoKVM_PATH/support/sg2002/additional/vision $MAIXCDK_PATH/components
cp -f $NanoKVM_PATH/support/sg2002/additional/peripheral/port/maixcam/maix_i2c.cpp $MAIXCDK_PATH/components/peripheral/port/maixcam/maix_i2c.cpp
cp -f $NanoKVM_PATH/support/sg2002/additional/sophgo-middleware/v2/sample/common/sample_common_sensor.c $MAIXCDK_PATH/components/3rd_party/sophgo-middleware/sophgo-middleware/v2/sample/common/
install_nanokvm_libs || exit 1

echo -e "\e[36m[build] \e[32mMove the library completed!\e[0m"
fi
Expand Down