From b7f5b9ebeed03cde0ad38ea611553f39785c7ddf Mon Sep 17 00:00:00 2001
From: j1nx
Date: Sun, 3 Jan 2021 20:57:48 +0100
Subject: [PATCH] Add a virtual touchscreen driver as quick fix for Weston.
Weston segfaults if it can't find input devices despite it being configured
to load without it (require-input=false)
---
buildroot-external/Config.in | 1 +
.../configs/rpi4_64-gui_defconfig | 1 +
.../package/virtual-touch/Config.in | 9 +++++++++
.../package/virtual-touch/virtual-touch.conf | 1 +
.../package/virtual-touch/virtual-touch.hash | 2 ++
.../package/virtual-touch/virtual-touch.mk | 17 +++++++++++++++++
6 files changed, 31 insertions(+)
create mode 100644 buildroot-external/package/virtual-touch/Config.in
create mode 100644 buildroot-external/package/virtual-touch/virtual-touch.conf
create mode 100644 buildroot-external/package/virtual-touch/virtual-touch.hash
create mode 100644 buildroot-external/package/virtual-touch/virtual-touch.mk
diff --git a/buildroot-external/Config.in b/buildroot-external/Config.in
index 69bec74d..ef42a283 100644
--- a/buildroot-external/Config.in
+++ b/buildroot-external/Config.in
@@ -86,6 +86,7 @@ endmenu
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/snapcast/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/spotifyd/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/userland-tools/Config.in"
+ source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/virtual-touch/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/wifi-connect/Config.in"
endmenu
menu "Additional external python modules"
diff --git a/buildroot-external/configs/rpi4_64-gui_defconfig b/buildroot-external/configs/rpi4_64-gui_defconfig
index 41e26b06..07844e60 100644
--- a/buildroot-external/configs/rpi4_64-gui_defconfig
+++ b/buildroot-external/configs/rpi4_64-gui_defconfig
@@ -515,6 +515,7 @@ BR2_PACKAGE_SNAPCAST=y
BR2_PACKAGE_SNAPCAST_SERVER=y
BR2_PACKAGE_SPOTIFYD=y
BR2_PACKAGE_USERLAND_TOOLS=y
+BR2_PACKAGE_VIRTUAL_TOUCH=y
BR2_PACKAGE_WIFI_CONNECT=y
BR2_PACKAGE_PYTHON_ADAPT_PARSER=y
BR2_PACKAGE_PYTHON_COVERALLS=y
diff --git a/buildroot-external/package/virtual-touch/Config.in b/buildroot-external/package/virtual-touch/Config.in
new file mode 100644
index 00000000..dfe846fb
--- /dev/null
+++ b/buildroot-external/package/virtual-touch/Config.in
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_VIRTUAL_TOUCH
+ bool "virtual-touch"
+ help
+ Simple virtual input device for
+ testing things in Linux. Creates
+ a character device and an input
+ device.
+
+ https://github.com/vi/virtual_touchscreen
diff --git a/buildroot-external/package/virtual-touch/virtual-touch.conf b/buildroot-external/package/virtual-touch/virtual-touch.conf
new file mode 100644
index 00000000..86cd18db
--- /dev/null
+++ b/buildroot-external/package/virtual-touch/virtual-touch.conf
@@ -0,0 +1 @@
+virtual_touchscreen
diff --git a/buildroot-external/package/virtual-touch/virtual-touch.hash b/buildroot-external/package/virtual-touch/virtual-touch.hash
new file mode 100644
index 00000000..c47594fa
--- /dev/null
+++ b/buildroot-external/package/virtual-touch/virtual-touch.hash
@@ -0,0 +1,2 @@
+# Locally computed
+sha256 9b068d82aa40ab101ceb6f0d5fe06c60db96debdf344211200edad777eb714c0 virtual-touch-913a36c83fc1ebf4396fec19a94b2092ebee6d4c.tar.gz
diff --git a/buildroot-external/package/virtual-touch/virtual-touch.mk b/buildroot-external/package/virtual-touch/virtual-touch.mk
new file mode 100644
index 00000000..0ac8765f
--- /dev/null
+++ b/buildroot-external/package/virtual-touch/virtual-touch.mk
@@ -0,0 +1,17 @@
+################################################################################
+#
+# virtual-touch
+#
+################################################################################
+
+VIRTUAL_TOUCH_VERSION = 913a36c83fc1ebf4396fec19a94b2092ebee6d4c
+VIRTUAL_TOUCH_SITE = $(call github,vi,virtual_touchscreen,$(VIRTUAL_TOUCH_VERSION))
+
+$(eval $(kernel-module))
+
+define VIRTUAL_TOUCH_INSTALL_TARGET_CMDS
+ $(INSTALL) -D -m 0644 $(BR2_EXTERNAL_OPENVOICEOS_PATH)/package/virtual-touch/virtual-touch.conf \
+ $(TARGET_DIR)/etc/modules-load.d/virtual-touch.conf
+endef
+
+$(eval $(generic-package))