Add ssc378qe_apfpv_defconfig

This commit is contained in:
viktorxda
2025-08-04 00:03:04 +02:00
parent 3382186784
commit e05c0261be
13 changed files with 344 additions and 22 deletions

View File

@@ -91,6 +91,7 @@ jobs:
# APFPV
- ssc338q_apfpv
- ssc378qe_apfpv
# FPV
- hi3516ev200_fpv

View File

@@ -30,8 +30,9 @@ BR2_PACKAGE_EXFATPROGS=y
BR2_PACKAGE_UBOOT_TOOLS=y
BR2_PACKAGE_ZLIB=y
# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set
BR2_PACKAGE_HOSTAPD=y
BR2_PACKAGE_IW=y
BR2_PACKAGE_WPA_SUPPLICANT=y
BR2_PACKAGE_WPA_SUPPLICANT_AP_SUPPORT=y
BR2_TARGET_ROOTFS_CPIO=y
BR2_TARGET_ROOTFS_SQUASHFS=y
BR2_TARGET_ROOTFS_SQUASHFS4_XZ=y

View File

@@ -1,22 +1,13 @@
#!/bin/sh
ssid=$(fw_printenv -n wlanssid || echo OpenIPC)
pass=$(fw_printenv -n wlanpass || echo 12345678)
chan=$(fw_printenv -n wlanchan || echo 1)
[ "$chan" -le 13 ] && mode=g || mode=a
set_config() {
cat << EOF > /tmp/hostapd.conf
ctrl_interface=/var/run/hostapd
interface=wlan0
channel=$chan
hw_mode=$mode
ieee80211n=1
ieee80211ac=1
wmm_enabled=1
rsn_pairwise=CCMP
wpa=2
ssid=$ssid
wpa_passphrase=$pass
cat << EOF > /tmp/wpa_supplicant.conf
network={
mode=2
frequency=$(fw_printenv -n wlanfreq || echo 2412)
ssid="$(fw_printenv -n wlanssid || echo OpenIPC)"
psk="$(fw_printenv -n wlanpass || echo 12345678)"
}
EOF
}
@@ -25,7 +16,7 @@ case "$1" in
for card in $(lsusb | awk '{print $6}' | uniq); do
case "$card" in
"0bda:8812" | "0bda:881a" | "0b05:17d2" | "2357:0101" | "2604:0012")
driver=88XXau
driver=8812au
;;
"0bda:a81a")
@@ -45,14 +36,12 @@ case "$1" in
echo "Detected driver: $driver"
modprobe "$driver" rtw_tx_pwr_by_rate=0 rtw_tx_pwr_lmt_enable=0
[ "$chan" -le 13 ] && rate=0x8D || rate=0xB7
echo "$rate" > $(ls /proc/net/*/wlan0/rate_ctl)
;;
start)
iw wlan0 set txpower fixed $(fw_printenv -n wlanpwr || echo 1500)
set_config
hostapd /tmp/hostapd.conf -B
wpa_supplicant -B -i wlan0 -c /tmp/wpa_supplicant.conf
udhcpd -S
;;

View File

@@ -0,0 +1,72 @@
# Architecture
BR2_arm=y
BR2_cortex_a35=y
BR2_ARM_FPU_NEON_VFPV4=y
BR2_ARM_INSTRUCTIONS_THUMB2=y
# Toolchain
BR2_TOOLCHAIN_EXTERNAL=y
BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y
BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y
BR2_TOOLCHAIN_EXTERNAL_URL="https://github.com/openipc/firmware/releases/download/$(OPENIPC_TOOLCHAIN).tgz"
BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="arm-openipc-linux-musleabihf"
BR2_TOOLCHAIN_EXTERNAL_HEADERS_5_10=y
BR2_TOOLCHAIN_EXTERNAL_CUSTOM_MUSL=y
BR2_TOOLCHAIN_EXTERNAL_CXX=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)/infinity6c-ssc027d.config"
BR2_LINUX_KERNEL_UIMAGE=y
BR2_LINUX_KERNEL_XZ=y
# Filesystem
BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL)/package/busybox/busybox.config"
BR2_PACKAGE_EXFATPROGS=y
BR2_PACKAGE_UBOOT_TOOLS=y
BR2_PACKAGE_ZLIB=y
# BR2_PACKAGE_IFUPDOWN_SCRIPTS is not set
BR2_PACKAGE_IW=y
BR2_PACKAGE_WPA_SUPPLICANT=y
BR2_PACKAGE_WPA_SUPPLICANT_AP_SUPPORT=y
BR2_TARGET_ROOTFS_CPIO=y
BR2_TARGET_ROOTFS_SQUASHFS=y
BR2_TARGET_ROOTFS_SQUASHFS4_XZ=y
# OpenIPC
BR2_OPENIPC_SOC_VENDOR="sigmastar"
BR2_OPENIPC_SOC_MODEL="ssc378qe"
BR2_OPENIPC_SOC_FAMILY="infinity6c"
BR2_OPENIPC_VARIANT="apfpv"
BR2_OPENIPC_FLASH_SIZE="16"
# Packages
BR2_PACKAGE_DROPBEAR_OPENIPC=y
BR2_PACKAGE_EXFAT_OPENIPC=y
BR2_PACKAGE_IPCTOOL=y
BR2_PACKAGE_JSONFILTER=y
BR2_PACKAGE_LIBCURL_OPENIPC=y
BR2_PACKAGE_LIBCURL_OPENIPC_CURL=y
# 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_LIBEVENT_OPENIPC=y
BR2_PACKAGE_LIBOGG_OPENIPC=y
BR2_PACKAGE_LINUX_PATCHER_SIGMASTAR_DTB="infinity6c-ssc027d-s01a-demo"
BR2_PACKAGE_MAJESTIC_FONTS=y
BR2_PACKAGE_MAJESTIC_WEBUI=y
BR2_PACKAGE_MAJESTIC=y
BR2_PACKAGE_MBEDTLS_OPENIPC=y
BR2_PACKAGE_MAVFWD=y
BR2_PACKAGE_MSPOSD=y
BR2_PACKAGE_OPUS_OPENIPC=y
BR2_PACKAGE_OPUS_OPENIPC_FIXED_POINT=y
BR2_PACKAGE_RTL8812AU=y
BR2_PACKAGE_RTL88X2EU_OPENIPC=y
BR2_PACKAGE_RTL8733BU_OPENIPC=y
BR2_PACKAGE_SIGMASTAR_OSDRV_INFINITY6C=y
BR2_PACKAGE_VTUND_OPENIPC=y
BR2_PACKAGE_YAML_CLI=y

View File

@@ -0,0 +1,22 @@
#!/bin/sh
case "$1" in
start)
echo "Starting network..."
ifup lo
ifup eth0
ifup wlan0
;;
stop)
echo "Stopping network..."
ifdown lo
ifdown -f eth0
ifdown -f wlan0
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac

View File

@@ -0,0 +1,21 @@
#!/bin/sh
case "$1" in
start)
echo "Starting msposd..."
devmem 0x1F207890 16 0x8
sleep 1
size=$(curl -s localhost/api/v1/config.json | jsonfilter -qe "@.video0.size")
msposd -b 115200 -c 8 -r 20 -m /dev/ttyS2 -z "$size" > /dev/null &
;;
stop)
echo "Stopping msposd..."
killall -q msposd
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac

View File

@@ -0,0 +1,7 @@
iface wlan0 inet static
address 192.168.0.1
gateway 192.168.0.1
netmask 255.255.255.0
pre-up adapter setup
post-up adapter start
post-down adapter stop

View File

@@ -0,0 +1,7 @@
interface wlan0
start 192.168.0.10
end 192.168.0.20
opt dns 192.168.0.1
opt router 192.168.0.1
opt subnet 255.255.255.0
opt lease 10

View File

@@ -0,0 +1,56 @@
#!/bin/sh
set_config() {
cat << EOF > /tmp/wpa_supplicant.conf
network={
mode=2
frequency=$(fw_printenv -n wlanfreq || echo 2412)
ssid="$(fw_printenv -n wlanssid || echo OpenIPC)"
psk="$(fw_printenv -n wlanpass || echo 12345678)"
}
EOF
}
case "$1" in
setup)
for card in $(lsusb | awk '{print $6}' | uniq); do
case "$card" in
"0bda:8812" | "0bda:881a" | "0b05:17d2" | "2357:0101" | "2604:0012")
driver=8812au
;;
"0bda:a81a")
driver=8812eu
;;
"0bda:f72b" | "0bda:b733")
driver=8733bu
;;
esac
done
if [ -z "$driver" ]; then
echo "Wireless module not detected!"
exit 1
fi
echo "Detected driver: $driver"
modprobe "$driver" rtw_tx_pwr_by_rate=0 rtw_tx_pwr_lmt_enable=0
;;
start)
iw wlan0 set txpower fixed $(fw_printenv -n wlanpwr || echo 1500)
set_config
wpa_supplicant -B -i wlan0 -c /tmp/wpa_supplicant.conf
udhcpd -S
;;
stop)
killall -q udhcpd wpa_supplicant
;;
*)
echo "Usage: $0 {setup|start|stop}"
exit 1
;;
esac

View File

@@ -0,0 +1,21 @@
#!/bin/sh
#
# Perform basic settings on a known IP camera
#
#
# Set custom upgrade url
#
fw_setenv upgrade 'https://github.com/OpenIPC/builder/releases/download/latest/openipc.ssc378qe-nor-apfpv.tgz'
#
#
# Set custom majestic settings
#
cli -s .isp.exposure 15
cli -s .video0.fps 60
cli -s .video0.bitrate 12000
cli -s .video0.codec h265
cli -s .video0.rcMode avbr
cli -s .outgoing.enabled true
cli -s .outgoing.server udp://224.0.0.1:5600
cli -s .records.split 5
cli -s .records.notime true

View File

@@ -0,0 +1,8 @@
#!/bin/sh
mj_audio=Audio
mj_image=Image
mj_isp=ISP
mj_outgoing=Outgoing
mj_records=Record
mj_system=System
mj_video0=Video0

View File

@@ -0,0 +1,113 @@
#!/usr/bin/haserl
Content-type: text/html; charset=UTF-8
Cache-Control: no-store
Pragma: no-cache
<!DOCTYPE html>
<html lang="en" data-bs-theme="<%= ${webui_theme:=dark} %>">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title><% html_title %></title>
<link rel="stylesheet" href="/a/bootstrap.min.css">
<link rel="stylesheet" href="/a/bootstrap.override.css">
<script src="/a/bootstrap.bundle.min.js"></script>
<script src="/a/main.js"></script>
</head>
<body id="page-<%= $pagename %>" class="<%= $fw_variant %>">
<nav class="navbar navbar-expand-lg bg-body-tertiary">
<div class="container">
<a class="navbar-brand" href="status.cgi"><img alt="Image: OpenIPC logo" height="32" src="/a/logo.svg"><span class="x-small ms-1"><%= $fw_variant %></span></a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse justify-content-end" id="navbarNav">
<ul class="navbar-nav">
<li class="nav-item dropdown">
<a aria-expanded="false" class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" id="dropdownInformation" role="button">Information</a>
<ul aria-labelledby="dropdownInformation" class="dropdown-menu">
<li><a class="dropdown-item" href="status.cgi">Status</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item" href="info-majestic.cgi">Majestic</a></li>
<li><a class="dropdown-item" href="info-kernel.cgi">Kernel</a></li>
<li><a class="dropdown-item" href="info-overlay.cgi">Overlay</a></li>
</ul>
</li>
<li class="nav-item dropdown">
<a aria-expanded="false" class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" id="dropdownMajestic" role="button">Majestic</a>
<ul aria-labelledby="dropdownMajestic" class="dropdown-menu">
<li><a class="dropdown-item" href="mj-settings.cgi">Settings</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item" href="mj-configuration.cgi">Configuration</a></li>
<li><a class="dropdown-item" href="mj-endpoints.cgi">Endpoints</a></li>
</ul>
</li>
<li class="nav-item dropdown">
<a aria-expanded="false" class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" id="dropdownSettings" role="button">Firmware</a>
<ul aria-labelledby="dropdownSettings" class="dropdown-menu">
<li><a class="dropdown-item" href="fw-time.cgi">Time</a></li>
<li><a class="dropdown-item" href="fw-interface.cgi">Interface</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item" href="fw-update.cgi">Update</a></li>
<li><a class="dropdown-item" href="fw-settings.cgi">Settings</a></li>
</ul>
</li>
<li class="nav-item dropdown">
<a aria-expanded="false" class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#" id="dropdownTools" role="button">Tools</a>
<ul aria-labelledby="dropdownTools" class="dropdown-menu">
<li><a class="dropdown-item" href="tool-files.cgi">Files</a></li>
<% if [ -e /dev/mmcblk0 ]; then %>
<li><a class="dropdown-item" href="tool-sdcard.cgi">SDcard</a></li>
<% fi %>
</ul>
</li>
<li class="nav-item"><a class="nav-link" href="preview.cgi">Preview</a></li>
</ul>
</div>
</div>
</nav>
<main class="pb-4">
<div class="container" style="min-height: 85vh">
<div class="row mt-1 x-small">
<div class="col-lg-2">
<div id="pb-memory" class="progress my-1" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"><div class="progress-bar"></div></div>
<div id="pb-overlay" class="progress my-1" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"><div class="progress-bar"></div></div>
</div>
<div class="col-md-6 mb-2">
<%= $(signature) %>
</div>
<div class="col-1" id="daynight_value"></div>
<div class="col-md-4 col-lg-3 mb-2 text-end">
<div id="time-now"></div>
<div class="text-secondary" id="soc-temp"></div>
</div>
</div>
<% if [ -z "$network_gateway" ]; then %>
<div class="alert alert-warning">
<p class="mb-0">Internet connection not available, please <a href="fw-network.cgi">check your network settings</a>.</p>
</div>
<% fi %>
<% if [ ! -e $(get_config) ]; then %>
<div class="alert alert-danger">
<p class="mb-0">Majestic configuration not found, please <a href="mj-configuration.cgi">check your Majestic settings</a>.</p>
</div>
<% fi %>
<% if [ "$(cat /etc/TZ)" != "$TZ" ] || [ -e /tmp/system-reboot ]; then %>
<div class="alert alert-danger">
<h3>Warning.</h3>
<p>System settings have been updated, restart to apply pending changes.</p>
<span class="d-flex gap-3">
<a class="btn btn-danger" href="fw-restart.cgi">Restart camera</a>
</span>
</div>
<% fi %>
<h2><%= $page_title %></h2>
<% log_read %>

View File

@@ -0,0 +1,4 @@
/etc/sensors/gc4653.bin
/etc/sensors/os04a10.bin
/etc/sensors/sc401ai.bin
/etc/sensors/sc830ai.bin