Add ssc338q_apfpv_greg-generic-bu-eu profile

This commit is contained in:
Signor Pellegrino (from Citadel PC)
2026-04-06 00:04:55 +03:00
parent 4d6c54cab3
commit ee2074fc14
8 changed files with 465 additions and 0 deletions
@@ -0,0 +1,70 @@
# Architecture
BR2_arm=y
BR2_cortex_a7=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-gnueabihf"
BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_9=y
BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y
# BR2_TOOLCHAIN_EXTERNAL_INET_RPC is not set
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)/infinity6e-ssc012b.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_HOSTAPD=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="ssc338q"
BR2_OPENIPC_SOC_FAMILY="infinity6e"
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_MAJESTIC_FONTS=y
BR2_PACKAGE_MAJESTIC_WEBUI=y
BR2_PACKAGE_MAJESTIC=y
BR2_PACKAGE_MBEDTLS_OPENIPC=y
BR2_PACKAGE_MAVFWD=y
BR2_PACKAGE_APFPV_GREG=y
BR2_PACKAGE_OPUS_OPENIPC=y
BR2_PACKAGE_OPUS_OPENIPC_FIXED_POINT=y
BR2_PACKAGE_RTL8733BU_OPENIPC=y
BR2_PACKAGE_RTL88X2EU_OPENIPC=y
BR2_PACKAGE_SIGMASTAR_OSDRV_INFINITY6E=y
BR2_PACKAGE_VTUND_OPENIPC=y
BR2_PACKAGE_YAML_CLI=y
@@ -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
@@ -0,0 +1,62 @@
#!/bin/sh
. /etc/init.d/libmedia.sh
DAEMON="/usr/bin/majestic"
NAME="majestic"
PIDFILE="/var/run/majestic.pid"
start() {
echo "Starting $NAME..."
if ensure_pidfile "$NAME" "$PIDFILE"; then
echo "$NAME is already running"
return 0
fi
rm -f "$PIDFILE"
start-stop-daemon -b -m -S -q -p "$PIDFILE" -x "$DAEMON" -- -s
if [ $? -ne 0 ]; then
echo "Failed to launch $NAME"
return 1
fi
echo "$NAME launch requested"
}
stop() {
echo "Stopping $NAME..."
stop_service "$NAME" "$PIDFILE" 15 || return 1
# Majestic keeps internal single-instance state briefly after exit.
sleep 2
}
status() {
if ensure_pidfile "$NAME" "$PIDFILE"; then
echo "$NAME running pid=$(cat "$PIDFILE")"
return 0
fi
echo "$NAME stopped"
return 1
}
reload() {
ensure_pidfile "$NAME" "$PIDFILE" || {
echo "$NAME not running"
return 1
}
kill -HUP "$(cat "$PIDFILE")"
}
restart() {
stop
start
}
case "$1" in
start|stop|restart|reload|status)
"$1"
;;
*)
echo "Usage: $0 {start|stop|restart|reload|status}"
exit 1
;;
esac
@@ -0,0 +1,41 @@
#!/bin/sh
MAJESTIC_API="http://localhost/api/v1/config.json"
wait_for_majestic_ready() {
timeout="${1:-30}"
i=0
while [ "$i" -lt "$timeout" ]; do
curl -sf --connect-timeout 1 --max-time 2 "$MAJESTIC_API" >/dev/null 2>&1 && return 0
sleep 1
i=$((i + 1))
done
return 1
}
start() {
echo "S99rc.local: waiting for majestic API..."
if ! wait_for_majestic_ready 10; then
echo "S99rc.local: majestic API not ready after 10s; continuing with /etc/rc.local anyway"
else
echo "S99rc.local: majestic API ready"
fi
echo "S99rc.local: running /etc/rc.local"
/etc/rc.local
}
stop() {
[ -x /etc/rc.local.stop ] && /etc/rc.local.stop
}
case "$1" in
start|stop)
"$1"
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac
exit $?
@@ -0,0 +1,6 @@
iface wlan0 inet static
address 192.168.0.1
netmask 255.255.255.0
pre-up adapter setup
post-up adapter start
post-down adapter stop
@@ -0,0 +1,127 @@
#!/bin/sh
# udhcpc script edited by Tim Riker <Tim@Rikers.org>
# Changes by OpenIPC 2021
#
# - move resolv.conf path to /tmp
# - remove interface notes from resolv.conf
[ -z "$1" ] && echo "Error: should be called from udhcpc" && exit 1
RESOLV_CONF="/tmp/resolv.conf"
[ -e $RESOLV_CONF ] || touch $RESOLV_CONF
[ -n "$broadcast" ] && BROADCAST="broadcast $broadcast"
[ -n "$subnet" ] && NETMASK="netmask $subnet"
# Handle stateful DHCPv6 like DHCPv4
[ -n "$ipv6" ] && ip="$ipv6/128"
[ -z "${IF_WAIT_DELAY}" ] && IF_WAIT_DELAY=10
wait_for_ipv6_default_route() {
printf "Waiting for IPv6 default route to appear"
while [ $IF_WAIT_DELAY -gt 0 ]; do
if ip -6 route list | grep -q default; then
printf "\n"
return
fi
sleep 1
printf "."
: $((IF_WAIT_DELAY -= 1))
done
printf " timeout!\n"
}
case "$1" in
deconfig)
/sbin/ifconfig $interface up
/sbin/ifconfig $interface 0.0.0.0
# drop info from this interface
# resolv.conf may be a symlink to /tmp/, so take care
TMPFILE=$(mktemp)
grep -vE "# $interface\$" $RESOLV_CONF > $TMPFILE
cat $TMPFILE > $RESOLV_CONF
rm -f $TMPFILE
if [ -x /usr/sbin/avahi-autoipd ]; then
/usr/sbin/avahi-autoipd -c $interface && /usr/sbin/avahi-autoipd -k $interface
fi
if [ "$interface" = "eth0" ] && [ -x /usr/bin/adapter ]; then
/usr/bin/adapter route
fi
;;
leasefail|nak)
if [ -x /usr/sbin/avahi-autoipd ]; then
/usr/sbin/avahi-autoipd -c $interface || /usr/sbin/avahi-autoipd -wD $interface --no-chroot
fi
/sbin/ifconfig $interface $(fw_printenv -n ipaddr || echo -n 192.168.1.10) netmask $(fw_printenv -n netmask || echo -n 255.255.255.0) up
if [ "$interface" = "eth0" ] && [ -x /usr/bin/adapter ]; then
/usr/bin/adapter route
fi
;;
renew|bound)
if [ -x /usr/sbin/avahi-autoipd ]; then
/usr/sbin/avahi-autoipd -c $interface && /usr/sbin/avahi-autoipd -k $interface
fi
/sbin/ifconfig $interface $ip $BROADCAST $NETMASK
if [ -n "$ipv6" ] ; then
wait_for_ipv6_default_route
fi
if [ -n "$router" ] ; then
echo "deleting routers"
while route del default gw 0.0.0.0 dev $interface 2> /dev/null; do
:
done
for i in $router ; do
route add default gw $i dev $interface
done
fi
# drop info from this interface
# resolv.conf may be a symlink to /tmp/, so take care
#TMPFILE=$(mktemp)
#grep -vE "# $interface\$" $RESOLV_CONF > $TMPFILE
#cat $TMPFILE > $RESOLV_CONF
#rm -f $TMPFILE
# Clearing the file because it is in RAM
> $RESOLV_CONF
# prefer rfc3397 domain search list (option 119) if available
if [ -n "$search" ]; then
search_list=$search
elif [ -n "$domain" ]; then
search_list=$domain
fi
[ -n "$search_list" ] &&
echo "search $search_list" >> $RESOLV_CONF
for i in $dns ; do
echo adding dns $i
echo "nameserver $i" >> $RESOLV_CONF
done
ntpd -q -N -n
if [ "$interface" = "eth0" ] && [ -x /usr/bin/adapter ]; then
/usr/bin/adapter route
fi
;;
esac
HOOK_DIR="$0.d"
for hook in "${HOOK_DIR}/"*; do
[ -f "${hook}" -a -x "${hook}" ] || continue
"${hook}" "${@}"
done
exit 0
@@ -0,0 +1,117 @@
#!/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>
<!-- New aalinkFPV link to the right of Information -->
<li class="nav-item">
<a class="nav-link" href="/cgi-bin/aalinkFPV.cgi">aalinkFPV</a>
</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 %>
@@ -0,0 +1,20 @@
/etc/sensors/imx307.bin
/etc/sensors/gc2053.bin
/etc/sensors/gc4653.bin
/etc/sensors/sc501ai.bin
#
/lib/modules/4.9.84/kernel/fs/lockd/lockd.ko
/lib/modules/4.9.84/kernel/fs/nfs/nfs.ko
/lib/modules/4.9.84/kernel/fs/nfs/nfsv3.ko
/lib/modules/4.9.84/kernel/fs/nfs_common/grace.ko
/lib/modules/4.9.84/kernel/net/sunrpc/sunrpc.ko
#
/lib/modules/4.9.84/sigmastar/sensor_gc2053_mipi.ko
/lib/modules/4.9.84/sigmastar/sensor_gc2093_mipi.ko
/lib/modules/4.9.84/sigmastar/sensor_gc4653_mipi.ko
/lib/modules/4.9.84/sigmastar/sensor_imx307_mipi.ko
/lib/modules/4.9.84/sigmastar/sensor_imx347_mipi.ko
/lib/modules/4.9.84/sigmastar/sensor_os04a10_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