Signed-off-by: Xin Shi <shixin21@huawei.com> (cherry picked from commit decc956d9cea842432cea9e6d6f03e520b9b9414)
171 lines
5.5 KiB
Diff
171 lines
5.5 KiB
Diff
From 0b43b9daeb0b194cd064830728b36a8cccbbea9b Mon Sep 17 00:00:00 2001
|
|
From: Xin Shi <shixin21@huawei.com>
|
|
Date: Thu, 24 Aug 2023 10:02:32 +0800
|
|
Subject: [PATCH 5/5] embedded: use yocto configs
|
|
|
|
Signed-off-by: Xin Shi <shixin21@huawei.com>
|
|
---
|
|
embedded/00-create-volatile.conf | 12 ++++
|
|
embedded/init | 104 +++++++++++++++++++++++++++++++
|
|
embedded/touchscreen.rules | 18 ++++++
|
|
3 files changed, 134 insertions(+)
|
|
create mode 100644 embedded/00-create-volatile.conf
|
|
create mode 100644 embedded/init
|
|
create mode 100644 embedded/touchscreen.rules
|
|
|
|
diff --git a/embedded/00-create-volatile.conf b/embedded/00-create-volatile.conf
|
|
new file mode 100644
|
|
index 0000000..55333b6
|
|
--- /dev/null
|
|
+++ b/embedded/00-create-volatile.conf
|
|
@@ -0,0 +1,12 @@
|
|
+#This goes hand-in-hand with the base-files of OE-Core. The file must
|
|
+# be sorted before 'systemd.conf' because this attempts to create a file
|
|
+# inside /var/log.
|
|
+
|
|
+
|
|
+d /var/volatile/log - - - -
|
|
+d /var/volatile/tmp 1777 - -
|
|
+d /var/log 0750 root root -
|
|
+f /var/log/wtmp 0640 root root -
|
|
+f /var/log/btmp 0600 root root -
|
|
+f /var/log/lastlog 0600 root root -
|
|
+f /var/log/faillog 0600 root root -
|
|
diff --git a/embedded/init b/embedded/init
|
|
new file mode 100644
|
|
index 0000000..4931b77
|
|
--- /dev/null
|
|
+++ b/embedded/init
|
|
@@ -0,0 +1,104 @@
|
|
+#!/bin/sh
|
|
+
|
|
+### BEGIN INIT INFO
|
|
+# Provides: udev
|
|
+# Required-Start: mountvirtfs
|
|
+# Required-Stop:
|
|
+# Default-Start: S
|
|
+# Default-Stop:
|
|
+# Short-Description: Start udevd, populate /dev and load drivers.
|
|
+### END INIT INFO
|
|
+
|
|
+. /etc/init.d/functions
|
|
+
|
|
+export TZ=/etc/localtime
|
|
+
|
|
+[ -d /sys/class ] || exit 1
|
|
+[ -r /proc/mounts ] || exit 1
|
|
+[ -x @UDEVD@ ] || exit 1
|
|
+[ -f /etc/default/udev-cache ] && . /etc/default/udev-cache
|
|
+[ -f /etc/udev/udev.conf ] && . /etc/udev/udev.conf
|
|
+
|
|
+readfile () {
|
|
+ filename=$1
|
|
+ READDATA=""
|
|
+ if [ -r $filename ]; then
|
|
+ while read line; do
|
|
+ READDATA="$READDATA$line"
|
|
+ done < $filename
|
|
+ fi
|
|
+}
|
|
+
|
|
+case "$1" in
|
|
+ start)
|
|
+ export ACTION=add
|
|
+ # propagate /dev from /sys
|
|
+ echo "Starting udev"
|
|
+
|
|
+ # mount the devtmpfs on /dev, if not already done
|
|
+ LANG=C awk '$2 == "/dev" && ($3 == "devtmpfs") { exit 1 }' /proc/mounts && {
|
|
+ mount -n -o mode=0755 -t devtmpfs none "/dev"
|
|
+ }
|
|
+ [ -e /dev/pts ] || mkdir -m 0755 /dev/pts
|
|
+ [ -e /dev/shm ] || mkdir -m 1777 /dev/shm
|
|
+ mount -a -t tmpfs 2>/dev/null
|
|
+
|
|
+ # cache handling
|
|
+ if [ "$DEVCACHE" != "" ]; then
|
|
+ readfile /proc/version
|
|
+ VERSION="$READDATA"
|
|
+ readfile /proc/cmdline
|
|
+ CMDLINE="$READDATA"
|
|
+ readfile /proc/devices
|
|
+ DEVICES="$READDATA"
|
|
+ readfile /proc/atags
|
|
+ ATAGS="$READDATA"
|
|
+
|
|
+ if [ -e $DEVCACHE ]; then
|
|
+ readfile /etc/udev/cache.data
|
|
+ if [ "$READDATA" = "$VERSION$CMDLINE$DEVICES$ATAGS" ]; then
|
|
+ (cd /; tar xf $DEVCACHE > /dev/null 2>&1)
|
|
+ not_first_boot=1
|
|
+ [ "$VERBOSE" != "no" ] && echo "udev: using cache file $DEVCACHE"
|
|
+ [ -e /dev/shm/udev.cache ] && rm -f /dev/shm/udev.cache
|
|
+ else
|
|
+ echo "$VERSION$CMDLINE$DEVICES$ATAGS" > /dev/shm/udev.cache
|
|
+ fi
|
|
+ else
|
|
+ echo "$VERSION$CMDLINE$DEVICES$ATAGS" > /dev/shm/udev.cache
|
|
+ fi
|
|
+ fi
|
|
+
|
|
+ # make_extra_nodes
|
|
+ killproc systemd-udevd > "/dev/null" 2>&1
|
|
+
|
|
+ # trigger the sorted events
|
|
+ echo -e '\000\000\000\000' > /proc/sys/kernel/hotplug
|
|
+ @UDEVD@ -d
|
|
+
|
|
+ udevadm control --env=STARTUP=1
|
|
+ if [ "$not_first_boot" != "" ]; then
|
|
+ udevadm trigger --action=add --subsystem-nomatch=tty --subsystem-nomatch=mem --subsystem-nomatch=vc --subsystem-nomatch=vtconsole --subsystem-nomatch=misc --subsystem-nomatch=dcon --subsystem-nomatch=pci_bus --subsystem-nomatch=graphics --subsystem-nomatch=backlight --subsystem-nomatch=video4linux --subsystem-nomatch=platform
|
|
+ (udevadm settle --timeout=3; udevadm control --env=STARTUP=)&
|
|
+ else
|
|
+ udevadm trigger --action=add
|
|
+ udevadm settle
|
|
+ fi
|
|
+ ;;
|
|
+ stop)
|
|
+ echo "Stopping udevd"
|
|
+ start-stop-daemon --stop --name systemd-udevd --quiet
|
|
+ ;;
|
|
+ restart)
|
|
+ $0 stop
|
|
+ sleep 1
|
|
+ $0 start
|
|
+ ;;
|
|
+ status)
|
|
+ status systemd-udevd
|
|
+ ;;
|
|
+ *)
|
|
+ echo "Usage: $0 {start|stop|status|restart}"
|
|
+ exit 1
|
|
+esac
|
|
+exit 0
|
|
diff --git a/embedded/touchscreen.rules b/embedded/touchscreen.rules
|
|
new file mode 100644
|
|
index 0000000..d83fd16
|
|
--- /dev/null
|
|
+++ b/embedded/touchscreen.rules
|
|
@@ -0,0 +1,18 @@
|
|
+# There are a number of modifiers that are allowed to be used in some
|
|
+# of the different fields. They provide the following subsitutions:
|
|
+#
|
|
+# %n the "kernel number" of the device.
|
|
+# For example, 'sda3' has a "kernel number" of '3'
|
|
+# %e the smallest number for that name which does not matches an existing node
|
|
+# %k the kernel name for the device
|
|
+# %M the kernel major number for the device
|
|
+# %m the kernel minor number for the device
|
|
+# %b the bus id for the device
|
|
+# %c the string returned by the PROGRAM
|
|
+# %s{filename} the content of a sysfs attribute
|
|
+# %% the '%' char itself
|
|
+#
|
|
+
|
|
+# Create a symlink to any touchscreen input device
|
|
+SUBSYSTEM=="input", KERNEL=="event[0-9]*", ATTRS{modalias}=="input:*-e0*,3,*a0,1,*18,*", SYMLINK+="input/touchscreen0"
|
|
+SUBSYSTEM=="input", KERNEL=="event[0-9]*", ATTRS{modalias}=="ads7846", SYMLINK+="input/touchscreen0"
|
|
--
|
|
2.27.0
|
|
|