Skip to content

Commit

Permalink
Add ssc338q_fpv_openipc-mario-aio
Browse files Browse the repository at this point in the history
  • Loading branch information
viktorxda committed Sep 7, 2024
1 parent 0f21c01 commit 3ecd6de
Show file tree
Hide file tree
Showing 5 changed files with 217 additions and 1 deletion.
3 changes: 2 additions & 1 deletion .github/workflows/master.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,9 @@ jobs:
- ssc337_lite_tp-link-tapo-c110-v1
- ssc337de_ultimate_foscam-x5
- ssc338q_fpv_openipc-urllc-aio
- ssc338q_fpv_openipc-mario-aio
- t10_lite_hb-wifi-z6
- t10_lite_jvs-ingt10-gqs60ep
- t20_ultimate_azarton-c1
- t20_lite_ec37-t11
- t31_lite_vstarcam-cs55
Expand All @@ -73,7 +75,6 @@ jobs:
- t31_ultimate_azarton-c1-t31x
- t31_ultimate_gcraftsman-gca50
- t31_lite_zte-k540
- t10_lite_jvs-ingt10-gqs60ep

steps:
- name: Checkout source
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
# Architecture
BR2_arm=y
BR2_cortex_a7=y
BR2_ARM_EABIHF=y
BR2_ARM_FPU_NEON_VFPV4=y
BR2_ARM_INSTRUCTIONS_THUMB2=y
BR2_KERNEL_HEADERS_VERSION=y
BR2_DEFAULT_KERNEL_VERSION="4.9.84"
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_9=y

# Toolchain
BR2_PER_PACKAGE_DIRECTORIES=y
BR2_GCC_VERSION_13_X=y
BR2_TOOLCHAIN_USES_GLIBC=y
BR2_TOOLCHAIN_BUILDROOT_GLIBC=y
BR2_TOOLCHAIN_BUILDROOT_LIBC="glibc"
BR2_TOOLCHAIN_BUILDROOT_CXX=y
BR2_TOOLCHAIN_BUILDROOT_LOCALE=y
BR2_TOOLCHAIN_BUILDROOT_USE_SSP=y

# Kernel
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="https://github.com/openipc/linux/archive/$(OPENIPC_KERNEL).tar.gz"
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(EXTERNAL_VENDOR)/board/$(OPENIPC_SOC_FAMILY)/kernel/infinity6e-ssc012b.config"
BR2_LINUX_KERNEL_UIMAGE=y
BR2_LINUX_KERNEL_XZ=y

# OpenIPC
BR2_OPENIPC_SOC_VENDOR="sigmastar"
BR2_OPENIPC_SOC_MODEL="ssc338q"
BR2_OPENIPC_SOC_FAMILY="infinity6e"
BR2_OPENIPC_VARIANT="fpv"
BR2_OPENIPC_FLASH_SIZE="16"

# Filesystem
# BR2_TARGET_TZ_INFO is not set
BR2_TARGET_ROOTFS_CPIO=y
BR2_TARGET_ROOTFS_SQUASHFS=y
BR2_TARGET_ROOTFS_SQUASHFS4_XZ=y
BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL)/overlay"
BR2_ROOTFS_POST_BUILD_SCRIPT="$(BR2_EXTERNAL)/scripts/rootfs_script.sh"

# OpenIPC configuration
BR2_TOOLCHAIN_BUILDROOT_VENDOR="openipc"
BR2_TARGET_GENERIC_ISSUE="Welcome to OpenIPC"
BR2_TARGET_GENERIC_HOSTNAME="openipc-ssc338q"
BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL)/package/all-patches"

# OpenIPC packages
BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL)/package/busybox/busybox.config"
BR2_PACKAGE_DROPBEAR_OPENIPC=y
# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set
# BR2_PACKAGE_FDK_AAC_OPENIPC is not set
BR2_PACKAGE_UBOOT_TOOLS=y
BR2_PACKAGE_IPCTOOL=y
BR2_PACKAGE_JSON_C=y
BR2_PACKAGE_JSONFILTER=y
BR2_PACKAGE_LIBCURL_OPENIPC=y
BR2_PACKAGE_LIBCURL_OPENIPC_CURL=y
# BR2_PACKAGE_LIBCURL_OPENIPC_VERBOSE is not set
# BR2_PACKAGE_LIBCURL_OPENIPC_PROXY_SUPPORT is not set
# BR2_PACKAGE_LIBCURL_OPENIPC_COOKIES_SUPPORT is not set
# BR2_PACKAGE_LIBCURL_OPENIPC_EXTRA_PROTOCOLS_FEATURES is not set
BR2_PACKAGE_LIBCURL_OPENIPC_MBEDTLS=y
BR2_PACKAGE_LIBEVENT_OPENIPC=y
BR2_PACKAGE_LIBEVENT_OPENIPC_REMOVE_PYSCRIPT=y
BR2_PACKAGE_LIBOGG_OPENIPC=y
BR2_PACKAGE_LIBYAML=y
BR2_PACKAGE_MAJESTIC=y
BR2_PACKAGE_MAJESTIC_FONTS=y
BR2_PACKAGE_MAJESTIC_WEBUI=y
BR2_PACKAGE_MBEDTLS_OPENIPC=y
# BR2_PACKAGE_MBEDTLS_OPENIPC_PROGRAMS is not set
# BR2_PACKAGE_MBEDTLS_OPENIPC_COMPRESSION is not set
# BR2_PACKAGE_MINI_SNMPD is not set
# BR2_PACKAGE_MOTORS is not set
BR2_PACKAGE_OPUS_OPENIPC=y
BR2_PACKAGE_OPUS_OPENIPC_FIXED_POINT=y
BR2_PACKAGE_SIGMASTAR_OSDRV_INFINITY6E=y
BR2_PACKAGE_EXFAT_OPENIPC=y
BR2_PACKAGE_EXFATPROGS=y
# BR2_PACKAGE_SSHPASS is not set
# BR2_PACKAGE_UACME_OPENIPC is not set
BR2_PACKAGE_VTUND_OPENIPC=y
BR2_PACKAGE_YAML_CLI=y
BR2_PACKAGE_ZLIB=y

# Wireless
BR2_PACKAGE_WIRELESS_TOOLS=y
BR2_PACKAGE_WPA_SUPPLICANT=y
BR2_PACKAGE_WPA_SUPPLICANT_CLI=y
BR2_PACKAGE_WPA_SUPPLICANT_AP_SUPPORT=y
BR2_PACKAGE_WPA_SUPPLICANT_NL80211=y
BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE=y
# BR2_PACKAGE_RTL8733BU_OPENIPC is not set
BR2_PACKAGE_RTL8812AU_OPENIPC=y
BR2_PACKAGE_RTL88X2EU_OPENIPC=y

# FPV
BR2_PACKAGE_DATALINK=y
BR2_PACKAGE_WIFIBROADCAST=y
# BR2_PACKAGE_MAVLINK_ROUTER is not set
BR2_PACKAGE_MAVFWD=y

# Debug
# BR2_PACKAGE_HOST_GDB is not set
# BR2_PACKAGE_GDB is not set

# CCACHE
BR2_CCACHE=y
BR2_CCACHE_DIR="$(HOME)/.ccache"
BR2_OPTIMIZE_S=y

# External
BR2_TOOLCHAIN_EXTERNAL=y
BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y
BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y
BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="arm-openipc-linux-gnueabihf"
BR2_TOOLCHAIN_EXTERNAL_CXX=y
BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y
BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_9=y
# BR2_TOOLCHAIN_EXTERNAL_INET_RPC is not set
BR2_TOOLCHAIN_EXTERNAL_URL="https://github.com/openipc/firmware/releases/download/$(OPENIPC_TOOLCHAIN).tgz"
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#!/bin/sh

# Set custom upgrade url
fw_setenv upgrade 'https://github.com/OpenIPC/builder/releases/download/latest/ssc338q_fpv_openipc-mario-aio-nor.tgz'

exit 0
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
#!/bin/sh
#
# OpenIPC.org | 2024
#

MODULE=/lib/modules/4.9.84/sigmastar

detect_sensor() {
insmod $MODULE/sensor_config.ko
if [ -e /dev/srcfg ]; then
echo srcfg 0 1 0 0 0 0 > /dev/srcfg
rmmod sensor_config
fi
SENSOR=$(ipcinfo -s)
}

set_sensor() {
case $SENSOR in
imx307|imx335|imx347|imx415)
insmod $MODULE/sensor_${SENSOR}_mipi.ko chmap=1
;;
*)
echo -e "\n\e[1;31mUNSUPPORTED sensor - $SENSOR\e[0m\n" | logger -s -t OpenIPC
;;
esac
}

insert_ko() {
insmod $MODULE/mhal.ko
insmod $MODULE/mi_common.ko
insmod $MODULE/mi_sys.ko cmdQBufSize=768 logBufSize=256
insmod $MODULE/mi_rgn.ko
insmod $MODULE/mi_ldc.ko
insmod $MODULE/mi_ai.ko
insmod $MODULE/mi_ao.ko
insmod $MODULE/mi_mipitx.ko
insmod $MODULE/mi_sensor.ko
insmod $MODULE/mi_shadow.ko
insmod $MODULE/mi_divp.ko
insmod $MODULE/mi_vif.ko
insmod $MODULE/mi_vpe.ko
insmod $MODULE/mi_venc.ko fw_path=/etc/firmware/chagall.bin

MAJOR=$(awk '$2=="mi_poll" {print $1}' /proc/devices)
mknod /dev/mi_poll c "$MAJOR" 0
echo isproot /etc/firmware > /dev/ispmid
}

if [ ! -e /sys/module/mi_common ]; then
insert_ko
fi

echo -e "\n\e[1;33mAutodetect sensor\e[0m\n" | logger -s -t OpenIPC
detect_sensor

if [ -z "$SENSOR" ]; then
echo -e "\n\e[1;31mSensor parameter MISSING\e[0m\n" | logger -s -t OpenIPC
exit 1
fi

DRIVER=$(ls /sys/module | grep $SENSOR)
if [ -n "$DRIVER" ]; then
rmmod $DRIVER
fi

echo -e "\n\e[1;32mSensor assigned - $SENSOR\e[0m\n" | logger -s -t OpenIPC
set_sensor

# Custom settings
gpio clear 29

exit 0
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
/etc/sensors/gc2053.bin
/etc/sensors/gc4653.bin
/etc/sensors/sc501ai.bin
/lib/modules/4.9.84/kernel/fs/lockd/*.ko
/lib/modules/4.9.84/kernel/fs/nfs/*.ko
/lib/modules/4.9.84/kernel/fs/nfs_common/*.ko
/lib/modules/4.9.84/kernel/net/sunrpc/*.ko
/lib/modules/4.9.84/sigmastar/sensor_gc2053_mipi.ko
/lib/modules/4.9.84/sigmastar/sensor_gc4653_mipi.ko
/lib/modules/4.9.84/sigmastar/sensor_os04c10_mipi.ko
/lib/modules/4.9.84/sigmastar/sensor_sc501ai_mipi.ko
/lib/modules/4.9.84/sigmastar/sensor_sc8235_mipi.ko

0 comments on commit 3ecd6de

Please sign in to comment.