diff --git a/general/package/linux-patcher/linux-patcher.mk b/general/package/linux-patcher/linux-patcher.mk
index e7811c8f..8703f565 100644
--- a/general/package/linux-patcher/linux-patcher.mk
+++ b/general/package/linux-patcher/linux-patcher.mk
@@ -9,8 +9,8 @@ export UIMAGE_NAME = Linux-$(LINUX_VERSION_PROBED)-$(OPENIPC_SOC_MODEL)
 # Exclude buildroot yylloc patches
 LINUX_POST_PATCH_HOOKS = LINUX_APPLY_LOCAL_PATCHES
 
-LINUX_PATCHER_BOARD_LIST = ssc338q_fpv ssc30kq_fpv
-ifneq ($(filter $(BOARD),$(LINUX_PATCHER_BOARD_LIST)),)
+LINUX_PATCHER_BOARD_FPV = ssc338q_fpv ssc30kq_fpv
+ifneq ($(filter $(BOARD),$(LINUX_PATCHER_BOARD_FPV)),)
 define LINUX_PATCHER_CONFIG_ATHEROS
 	$(call KCONFIG_ENABLE_OPT,CONFIG_FW_LOADER)
 	$(call KCONFIG_ENABLE_OPT,CONFIG_WLAN)
@@ -22,17 +22,13 @@ endif
 
 ifeq ($(OPENIPC_VARIANT),rubyfpv)
 define LINUX_PATCHER_CONFIG_TIMERS
-	$(call KCONFIG_DISABLE_OPT,CONFIG_HZ_100)
 	$(call KCONFIG_ENABLE_OPT,CONFIG_HZ_1000)
-	$(call KCONFIG_ENABLE_OPT,CONFIG_HZ)
-	$(call KCONFIG_SET_OPT,CONFIG_HZ,1000)
-	$(call KCONFIG_SET_OPT,CONFIG_HZ_1000,y)
 endef
 endif
 
 define LINUX_PATCHER_LINUX_CONFIG_FIXUPS
-	$(LINUX_PATCHER_CONFIG_TIMERS)
 	$(LINUX_PATCHER_CONFIG_ATHEROS)
+	$(LINUX_PATCHER_CONFIG_TIMERS)
 endef
 
 $(eval $(generic-package))
diff --git a/general/package/rubyfpv/Config.in b/general/package/rubyfpv/Config.in
index 789cb07c..3d9389f9 100644
--- a/general/package/rubyfpv/Config.in
+++ b/general/package/rubyfpv/Config.in
@@ -1,9 +1,7 @@
 config BR2_PACKAGE_RUBYFPV
 	bool "rubyfpv"
-        select BR2_PACKAGE_LIBPCAP
-        select BR2_PACKAGE_IW
-	default n
+	select BR2_PACKAGE_LIBPCAP
+	select BR2_PACKAGE_IW
 	help
-	  Ruby package
-
+	  Ruby package.
 	  https://rubyfpv.com
diff --git a/general/package/rubyfpv/files/S73ruby b/general/package/rubyfpv/files/S73ruby
old mode 100644
new mode 100755
diff --git a/general/package/rubyfpv/files/ruby_stop.sh b/general/package/rubyfpv/files/ruby_stop.sh
old mode 100644
new mode 100755
index acd50279..9100cde8
--- a/general/package/rubyfpv/files/ruby_stop.sh
+++ b/general/package/rubyfpv/files/ruby_stop.sh
@@ -1,5 +1,5 @@
-pidof ruby_start | xargs kill -9 2>/dev/null
-pidof ruby_rx_commands | xargs kill -9 2>/dev/null
-pidof ruby_tx_telemetry | xargs kill -9 2>/dev/null
-pidof ruby_rt_vehicle | xargs kill -9 2>/dev/null
-pidof ruby_logger | xargs kill -9 2>/dev/null
+killall -q ruby_start
+killall -q ruby_rx_commands
+killall -q ruby_tx_telemetry
+killall -q ruby_rt_vehicle
+killall -q ruby_logger
diff --git a/general/package/rubyfpv/files/tweaksys b/general/package/rubyfpv/files/tweaksys
index 8abcbae3..57ee9fe6 100755
--- a/general/package/rubyfpv/files/tweaksys
+++ b/general/package/rubyfpv/files/tweaksys
@@ -74,11 +74,11 @@ majestic_generic() {
 }
 
 majestic_sigmastar() {
-	cli -s .isp.exposure 10
-	cli -s .isp.aGain 8
-	cli -s .isp.dGain 8
+	cli -s .isp.exposure 20
+	cli -s .isp.aGain 40
+	cli -s .isp.sensorConfig /etc/sensors/imx415_fpv.bin
 	cli -s .video0.size 1920x1080
-	cli -s .video0.fps 90
+	cli -s .video0.fps 60
 	cli -s .video0.rcMode cbr
 	cli -s .jpeg.enabled false
 }
@@ -113,7 +113,6 @@ finish() {
 case "$1" in
 	gk7205v200 | gk7205v210 | hi3516ev200)
 		echo "Preparing system tweaks for ${chip}..."
-
 		# set custom config
 		if [ ${chip} = "gk7205v200" ] && [ ${sensor} = "imx307" ]; then
 			echo "switch to custom sensor config"
@@ -136,6 +135,7 @@ case "$1" in
 		streamer
 		finish
 		;;
+
 	gk7205v300 | hi3516ev300)
 		echo "Preparing system tweaks for ${chip}..."
 
@@ -152,27 +152,29 @@ case "$1" in
 		streamer
 		finish
 		;;
+
 	t31l | t31n | t31x | t31zx)
 		echo "Preparing system tweaks for ${chip}..."
-
 		basic
 		streamer
 		finish
 		;;
+
 	hi3536dv100)
 		echo "Preparing system tweaks for ${chip}..."
-
 		finish
 		;;
+
 	ssc33x)
 		echo "Preparing system tweaks for ${chip}..."
-
 		basic
 		sigmastar
 		streamer
 		finish
 		;;
+
 	*)
 		echo "Usage: $0 {gk7205v200|gk7205v210|gk7205v300|hi3516ev200|hi3516ev300|t31l|t31n|t31x|t31zx|hi3536dv100|ssc33x}"
 		exit 1
+		;;
 esac
diff --git a/general/package/rubyfpv/files/version_ruby_base.txt b/general/package/rubyfpv/files/version_ruby_base.txt
index 2e332745..cf022018 100644
--- a/general/package/rubyfpv/files/version_ruby_base.txt
+++ b/general/package/rubyfpv/files/version_ruby_base.txt
@@ -1,2 +1 @@
 8.3
-
diff --git a/general/package/rubyfpv/rubyfpv.mk b/general/package/rubyfpv/rubyfpv.mk
index d9fc8962..1fc5d5ae 100644
--- a/general/package/rubyfpv/rubyfpv.mk
+++ b/general/package/rubyfpv/rubyfpv.mk
@@ -1,37 +1,30 @@
+################################################################################
+#
+# rubyfpv
+#
+################################################################################
 
-define RUBYFPV_EXTRACT_CMDS
-	cp -avr $(RUBYFPV_PKGDIR)/src/* $(@D)/
-	cp -avr $(RUBYFPV_PKGDIR)/files/* $(@D)/
-endef
+RUBYFPV_SITE_METHOD = local
+RUBYFPV_SITE = $(RUBYFPV_PKGDIR)/src
 
 define RUBYFPV_BUILD_CMDS
-	(cd $(@D); $(TARGET_CC) -s ruby_start.c -o ruby_start)
-	(cd $(@D); $(TARGET_CC) -s ruby_start.c -o ruby_logger)
-	(cd $(@D); $(TARGET_CC) -s ruby_start.c -o ruby_rt_vehicle)
-	(cd $(@D); $(TARGET_CC) -s ruby_start.c -o ruby_tx_telemetry)
-	(cd $(@D); $(TARGET_CC) -s ruby_start.c -o ruby_rx_commands)
+	$(MAKE) CC=$(TARGET_CC) -C $(@D) all
 endef
 
 define RUBYFPV_INSTALL_TARGET_CMDS
 	$(INSTALL) -m 755 -d $(TARGET_DIR)/etc/init.d
-	$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/sbin
+	$(INSTALL) -m 755 -t $(TARGET_DIR)/etc/init.d $(RUBYFPV_PKGDIR)/files/S73ruby
+
+	$(INSTALL) -m 755 -d $(TARGET_DIR)/etc/ruby
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/etc/ruby $(RUBYFPV_PKGDIR)/files/licences/*
+
 	$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/bin
-	$(INSTALL) -m 755 -d $(TARGET_DIR)/root/ruby
- 
-	cp $(RUBYFPV_PKGDIR)/files/S73ruby $(TARGET_DIR)/etc/init.d
-	chmod 755 $(TARGET_DIR)/etc/init.d/S73ruby
+	$(INSTALL) -m 755 -t $(TARGET_DIR)/usr/bin $(RUBYFPV_PKGDIR)/files/tweaksys
 
-	install -m 0755 -D $(@D)/ruby_start $(TARGET_DIR)/usr/sbin/ruby_start
-	install -m 0755 -D $(@D)/ruby_logger $(TARGET_DIR)/usr/sbin/ruby_logger
-	install -m 0755 -D $(@D)/ruby_rt_vehicle $(TARGET_DIR)/usr/sbin/ruby_rt_vehicle
-	install -m 0755 -D $(@D)/ruby_tx_telemetry $(TARGET_DIR)/usr/sbin/ruby_tx_telemetry
-	install -m 0755 -D $(@D)/ruby_rx_commands $(TARGET_DIR)/usr/sbin/ruby_rx_commands
-
-	cp $(RUBYFPV_PKGDIR)/files/ruby_stop.sh $(TARGET_DIR)/usr/sbin
-	chmod 755 $(TARGET_DIR)/usr/sbin/ruby_stop.sh
-	cp $(RUBYFPV_PKGDIR)/files/tweaksys $(TARGET_DIR)/usr/bin
-	cp -r $(RUBYFPV_PKGDIR)/files/licences $(TARGET_DIR)/root/ruby/
-	cp $(RUBYFPV_PKGDIR)/files/version_ruby_base.txt $(TARGET_DIR)/usr/sbin
+	$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/sbin
+	$(INSTALL) -m 755 -t $(TARGET_DIR)/usr/sbin $(@D)/output/*
+	$(INSTALL) -m 755 -t $(TARGET_DIR)/usr/sbin $(RUBYFPV_PKGDIR)/files/ruby_stop.sh
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/usr/sbin $(RUBYFPV_PKGDIR)/files/version_ruby_base.txt
 endef
 
 $(eval $(generic-package))
diff --git a/general/package/rubyfpv/src/Makefile b/general/package/rubyfpv/src/Makefile
new file mode 100644
index 00000000..6ce5db66
--- /dev/null
+++ b/general/package/rubyfpv/src/Makefile
@@ -0,0 +1,7 @@
+TARGET := ruby_start ruby_logger ruby_rt_vehicle ruby_rx_commands ruby_tx_telemetry
+
+all: $(TARGET)
+
+$(TARGET):
+	@mkdir -p output
+	$(CC) ruby_start.c -o output/$@ -s