From 2251873bff82588f198d48002b692e1f993dd06e Mon Sep 17 00:00:00 2001 From: cronyx Date: Wed, 11 Jan 2023 20:59:30 +0300 Subject: [PATCH] move sensors to osdrv --- br-ext-chip-allwinner/Config.in | 2 +- ...rm_sunxi-vin_modules_sensor_Makefile.patch | 18 ++-- .../configs/v83x_lite_defconfig | 2 +- .../configs/v83x_ultimate_defconfig | 2 +- .../package/allwinner-osdrv-v83x | 1 + .../package/allwinner-osdrv-v83x/Config.in | 6 ++ .../allwinner-osdrv-v83x.mk | 34 ++++++++ .../files/kmod/gc2053_mipi.ko | Bin 0 -> 13168 bytes .../files/kmod/imx258_mipi.ko | Bin 0 -> 17844 bytes .../files/kmod/imx278_mipi.ko | Bin 0 -> 15676 bytes .../files/kmod/imx317_mipi.ko | Bin 0 -> 13832 bytes .../files/kmod/imx335_mipi.ko | Bin 0 -> 13124 bytes .../files/kmod/imx386_mipi.ko | Bin 0 -> 18160 bytes .../files/kmod/ov9732_mipi.ko | Bin 0 -> 12368 bytes .../files/kmod/sc2232_mipi.ko | Bin 0 -> 14708 bytes .../allwinner-osdrv-v83x/files/kmod/tp9950.ko | Bin 0 -> 15756 bytes .../allwinner-osdrv-v83x/files/lib/.gitkeep | 0 .../files/script/S95allwinner | 80 ++++++++++++++++++ .../files/script/load_allwinner | 0 .../files/sensor/.gitkeep | 0 .../files/sensor/config/.gitkeep | 0 21 files changed, 133 insertions(+), 12 deletions(-) create mode 120000 br-ext-chip-allwinner/package/allwinner-osdrv-v83x create mode 100644 general/package/allwinner-osdrv-v83x/Config.in create mode 100644 general/package/allwinner-osdrv-v83x/allwinner-osdrv-v83x.mk create mode 100644 general/package/allwinner-osdrv-v83x/files/kmod/gc2053_mipi.ko create mode 100644 general/package/allwinner-osdrv-v83x/files/kmod/imx258_mipi.ko create mode 100644 general/package/allwinner-osdrv-v83x/files/kmod/imx278_mipi.ko create mode 100644 general/package/allwinner-osdrv-v83x/files/kmod/imx317_mipi.ko create mode 100644 general/package/allwinner-osdrv-v83x/files/kmod/imx335_mipi.ko create mode 100644 general/package/allwinner-osdrv-v83x/files/kmod/imx386_mipi.ko create mode 100644 general/package/allwinner-osdrv-v83x/files/kmod/ov9732_mipi.ko create mode 100644 general/package/allwinner-osdrv-v83x/files/kmod/sc2232_mipi.ko create mode 100644 general/package/allwinner-osdrv-v83x/files/kmod/tp9950.ko create mode 100644 general/package/allwinner-osdrv-v83x/files/lib/.gitkeep create mode 100755 general/package/allwinner-osdrv-v83x/files/script/S95allwinner create mode 100755 general/package/allwinner-osdrv-v83x/files/script/load_allwinner create mode 100644 general/package/allwinner-osdrv-v83x/files/sensor/.gitkeep create mode 100644 general/package/allwinner-osdrv-v83x/files/sensor/config/.gitkeep diff --git a/br-ext-chip-allwinner/Config.in b/br-ext-chip-allwinner/Config.in index 774e5703..d50c5077 100644 --- a/br-ext-chip-allwinner/Config.in +++ b/br-ext-chip-allwinner/Config.in @@ -1,5 +1,5 @@ source "$BR2_EXTERNAL_ALLWINNER_PATH/linux/Config.ext.in" -#source "$BR2_EXTERNAL_ALLWINNER_PATH/package/allwinner-osdrv-v83x/Config.in" +source "$BR2_EXTERNAL_ALLWINNER_PATH/package/allwinner-osdrv-v83x/Config.in" source "$BR2_EXTERNAL_ALLWINNER_PATH/package/allwinner_patcher/Config.in" source "$BR2_EXTERNAL_ALLWINNER_PATH/package/atbm603x/Config.in" source "$BR2_EXTERNAL_ALLWINNER_PATH/package/aura-httpd/Config.in" diff --git a/br-ext-chip-allwinner/board/v83x/kernel/patches/00000-drivers_media_platform_sunxi-vin_modules_sensor_Makefile.patch b/br-ext-chip-allwinner/board/v83x/kernel/patches/00000-drivers_media_platform_sunxi-vin_modules_sensor_Makefile.patch index d97a686e..c44fde6f 100644 --- a/br-ext-chip-allwinner/board/v83x/kernel/patches/00000-drivers_media_platform_sunxi-vin_modules_sensor_Makefile.patch +++ b/br-ext-chip-allwinner/board/v83x/kernel/patches/00000-drivers_media_platform_sunxi-vin_modules_sensor_Makefile.patch @@ -12,21 +12,21 @@ diff -drupN a/drivers/media/platform/sunxi-vin/modules/sensor/Makefile b/drivers +#obj-m += imx274_slvds.o +#obj-m += imx291_dvp.o +#obj-m += imx291_mipi.o -+obj-m += imx317_mipi.o -+obj-m += imx335_mipi.o ++#obj-m += imx317_mipi.o ++#obj-m += imx335_mipi.o +#obj-m += imx326_mipi.o +#obj-m += imx477_mipi.o +#obj-m += ov2710_mipi.o +#obj-m += ov2718_mipi.o +#obj-m += ar0238.o -+obj-m += imx278_mipi.o -+obj-m += imx258_mipi.o -+obj-m += imx386_mipi.o -+obj-m += ov9732_mipi.o ++#obj-m += imx278_mipi.o ++#obj-m += imx258_mipi.o ++#obj-m += imx386_mipi.o ++#obj-m += ov9732_mipi.o +#obj-m += s5k3h5xa.o +#obj-m += ar0238_hispi.o +#obj-m += nvp6134/ +#obj-m += nvp6324/ -+obj-m += tp9950.o -+obj-m += sc2232_mipi.o -+obj-m += gc2053_mipi.o ++#obj-m += tp9950.o ++#obj-m += sc2232_mipi.o ++#obj-m += gc2053_mipi.o diff --git a/br-ext-chip-allwinner/configs/v83x_lite_defconfig b/br-ext-chip-allwinner/configs/v83x_lite_defconfig index b9fd6e10..51de2996 100644 --- a/br-ext-chip-allwinner/configs/v83x_lite_defconfig +++ b/br-ext-chip-allwinner/configs/v83x_lite_defconfig @@ -52,7 +52,7 @@ BR2_PACKAGE_BUSYBOX_CONFIG="$(TOPDIR)/../general/package/busybox/busybox.config" BR2_PACKAGE_DROPBEAR_OPENIPC=y # BR2_PACKAGE_FDK_AAC_OPENIPC is not set BR2_PACKAGE_FWPRINTENV_OPENIPC=y -# BR2_PACKAGE_ALLWINNER_OSDRV_V83X=y +BR2_PACKAGE_ALLWINNER_OSDRV_V83X=y BR2_PACKAGE_HASERL=y # BR2_PACKAGE_HISI_GPIO is not set BR2_PACKAGE_IPCTOOL=y diff --git a/br-ext-chip-allwinner/configs/v83x_ultimate_defconfig b/br-ext-chip-allwinner/configs/v83x_ultimate_defconfig index 734f4067..df03e939 100644 --- a/br-ext-chip-allwinner/configs/v83x_ultimate_defconfig +++ b/br-ext-chip-allwinner/configs/v83x_ultimate_defconfig @@ -52,7 +52,7 @@ BR2_PACKAGE_BUSYBOX_CONFIG="$(TOPDIR)/../general/package/busybox/busybox.config" BR2_PACKAGE_DROPBEAR_OPENIPC=y # BR2_PACKAGE_FDK_AAC_OPENIPC is not set BR2_PACKAGE_FWPRINTENV_OPENIPC=y -# BR2_PACKAGE_ALLWINNER_OSDRV_V83X=y +BR2_PACKAGE_ALLWINNER_OSDRV_V83X=y BR2_PACKAGE_HASERL=y # BR2_PACKAGE_HISI_GPIO is not set BR2_PACKAGE_IPCTOOL=y diff --git a/br-ext-chip-allwinner/package/allwinner-osdrv-v83x b/br-ext-chip-allwinner/package/allwinner-osdrv-v83x new file mode 120000 index 00000000..7f4a1085 --- /dev/null +++ b/br-ext-chip-allwinner/package/allwinner-osdrv-v83x @@ -0,0 +1 @@ +../../general/package/allwinner-osdrv-v83x \ No newline at end of file diff --git a/general/package/allwinner-osdrv-v83x/Config.in b/general/package/allwinner-osdrv-v83x/Config.in new file mode 100644 index 00000000..699e5323 --- /dev/null +++ b/general/package/allwinner-osdrv-v83x/Config.in @@ -0,0 +1,6 @@ +config BR2_PACKAGE_ALLWINNER_OSDRV_V83X + bool "allwinner-osdrv-v83x" + help + allwinner-osdrv-v83x - Allwinner kernel modules and libs + + https://openipc.org diff --git a/general/package/allwinner-osdrv-v83x/allwinner-osdrv-v83x.mk b/general/package/allwinner-osdrv-v83x/allwinner-osdrv-v83x.mk new file mode 100644 index 00000000..81b06dbf --- /dev/null +++ b/general/package/allwinner-osdrv-v83x/allwinner-osdrv-v83x.mk @@ -0,0 +1,34 @@ +################################################################################ +# +# allwinner-osdrv-v83x +# +################################################################################ + +ALLWINNER_OSDRV_V83X_VERSION = +ALLWINNER_OSDRV_V83X_SITE = +ALLWINNER_OSDRV_V83X_LICENSE = MIT +ALLWINNER_OSDRV_V83X_LICENSE_FILES = LICENSE + +define ALLWINNER_OSDRV_V83X_INSTALL_TARGET_CMDS + $(INSTALL) -m 755 -d $(TARGET_DIR)/etc/init.d + # $(INSTALL) -m 755 -t $(TARGET_DIR)/etc/init.d $(BR2_EXTERNAL_ALLWINNER_PATH)/package/allwinner-osdrv-v83x/files/script/S95rockchip + + $(INSTALL) -m 755 -d $(TARGET_DIR)/etc/sensors + # $(INSTALL) -m 644 -t $(TARGET_DIR)/etc/sensors $(BR2_EXTERNAL_ALLWINNER_PATH)/package/allwinner-osdrv-v83x/files/sensor/config/* + + $(INSTALL) -m 755 -d $(TARGET_DIR)/lib/modules/4.9.118/allwinner + # $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.118/allwinner $(BR2_EXTERNAL_ALLWINNER_PATH)/package/allwinner-osdrv-v83x/files/kmod/*.ko + $(INSTALL) -m 644 -t $(TARGET_DIR)/lib/modules/4.9.118/allwinner $(BR2_EXTERNAL_ALLWINNER_PATH)/package/allwinner-osdrv-v83x/files/kmod/gc2053_mipi.ko + + $(INSTALL) -m 755 -d $(TARGET_DIR)/usr/bin + # $(INSTALL) -m 755 -t $(TARGET_DIR)/usr/bin $(BR2_EXTERNAL_ALLWINNER_PATH)/package/allwinner-osdrv-v83x/files/script/load* + # $(INSTALL) -m 755 -t $(TARGET_DIR)/usr/bin $(BR2_EXTERNAL_ALLWINNER_PATH)/package/allwinner-osdrv-v83x/files/sample/* + + $(INSTALL) -m 755 -d $(TARGET_DIR)/usr/lib/sensors + # $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/sensors $(BR2_EXTERNAL_ALLWINNER_PATH)/package/allwinner-osdrv-v83x/files/sensor/*.so + + $(INSTALL) -m 755 -d $(TARGET_DIR)/usr/lib + # $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/lib/ $(BR2_EXTERNAL_ALLWINNER_PATH)/package/allwinner-osdrv-v83x/files/lib/*.so +endef + +$(eval $(generic-package)) diff --git a/general/package/allwinner-osdrv-v83x/files/kmod/gc2053_mipi.ko b/general/package/allwinner-osdrv-v83x/files/kmod/gc2053_mipi.ko new file mode 100644 index 0000000000000000000000000000000000000000..5c2d69ed6e3586a77b7361b538000dd5f4c2b521 GIT binary patch literal 13168 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 literal 0 HcmV?d00001 diff --git a/general/package/allwinner-osdrv-v83x/files/kmod/imx278_mipi.ko b/general/package/allwinner-osdrv-v83x/files/kmod/imx278_mipi.ko new file mode 100644 index 0000000000000000000000000000000000000000..33c3943ff4993f26ee7c5c43fffb01289b115859 GIT binary patch literal 15676 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 literal 0 HcmV?d00001 diff --git a/general/package/allwinner-osdrv-v83x/files/kmod/imx317_mipi.ko b/general/package/allwinner-osdrv-v83x/files/kmod/imx317_mipi.ko new file mode 100644 index 0000000000000000000000000000000000000000..e0afe708017f3b560c25ae0f2edb29263c6987fb GIT binary patch literal 13832 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 c;snm54{~Et$=1iYcFL`UU#_z&QDp!C;$Ke literal 0 HcmV?d00001 diff --git a/general/package/allwinner-osdrv-v83x/files/lib/.gitkeep b/general/package/allwinner-osdrv-v83x/files/lib/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/general/package/allwinner-osdrv-v83x/files/script/S95allwinner b/general/package/allwinner-osdrv-v83x/files/script/S95allwinner new file mode 100755 index 00000000..66581256 --- /dev/null +++ b/general/package/allwinner-osdrv-v83x/files/script/S95allwinner @@ -0,0 +1,80 @@ +#!/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 + [ "$(yaml-cli -i /etc/majestic.yaml -g .watchdog.timeout)" -lt "30" ] && yaml-cli -i /etc/majestic.yaml -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 allwinner "Check MAC for allwinner devices" + if [ "$(fw_printenv -n ethaddr)" = "00:00:23:34:45:66" ]; then + logger -s -p daemon.info -t allwinner "The eth0 interface has a lousy MAC, let's try to change it.." + XMMAC="$(ipcinfo --xm-mac)" && [ -n "${XMMAC}" ] && fw_setenv ethaddr ${XMMAC} && reboot -f || logger -s -p daemon.info -t allwinner "It is not possible to install a new MAC on the eth0 interface.." + else + logger -s -p daemon.info -t allwinner "The eth0 interface has a correct MAC - $(fw_printenv -n ethaddr)" + fi + # + logger -s -p daemon.info -t allwinner "Loading of kernel modules and initialization of the video system has started" + export TZ=$(cat /etc/TZ) + #load_allwinner + # + export SENSOR=$(fw_printenv -n sensor) + #load_majestic +} + +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 + diff --git a/general/package/allwinner-osdrv-v83x/files/script/load_allwinner b/general/package/allwinner-osdrv-v83x/files/script/load_allwinner new file mode 100755 index 00000000..e69de29b diff --git a/general/package/allwinner-osdrv-v83x/files/sensor/.gitkeep b/general/package/allwinner-osdrv-v83x/files/sensor/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/general/package/allwinner-osdrv-v83x/files/sensor/config/.gitkeep b/general/package/allwinner-osdrv-v83x/files/sensor/config/.gitkeep new file mode 100644 index 00000000..e69de29b