core: reorder systemd arguments on reexe

coredump: use %d in kernel core pattern - CVE-2025-4598

Debrand for AlmaLinux
This commit is contained in:
Andrew Lukoshko 2025-09-15 12:52:22 +00:00 committed by root
commit a16881b0de
103 changed files with 233324 additions and 2 deletions

View File

@ -0,0 +1,48 @@
From 5219fc583393eec83ae2f7a1043bc45c16a8f15f Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Wed, 8 Nov 2023 10:56:07 +0100
Subject: [PATCH] man: be even clearer that tmpfiles user/group/mode are
applied on existing inodes
I think it was clear already, but let's be even clearer.
Fixes: #29774
(cherry picked from commit 3cb938bd12b3603984b982e9b73e4cabd4a608e3)
Resolves: RHEL-15051
---
man/tmpfiles.d.xml | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/man/tmpfiles.d.xml b/man/tmpfiles.d.xml
index 379ac9c34f..595b9f6934 100644
--- a/man/tmpfiles.d.xml
+++ b/man/tmpfiles.d.xml
@@ -546,9 +546,10 @@ w- /proc/sys/vm/swappiness - - - - 10</programlisting></para>
removed unless applied to a directory. This functionality is particularly useful in conjunction with
<varname>Z</varname>.</para>
- <para>Optionally, if prefixed with <literal>:</literal>, the configured access mode is only used when
- creating new inodes. If the inode the line refers to already exists, its access mode is left in place
- unmodified.</para>
+ <para>By default the access mode of listed inodes is set to the specified mode regardless if it is
+ created anew, or already existed. Optionally, if prefixed with <literal>:</literal>, the configured
+ access mode is only applied when creating new inodes, and if the inode the line refers to
+ already exists, its access mode is left in place unmodified.</para>
</refsect2>
<refsect2>
@@ -569,9 +570,10 @@ w- /proc/sys/vm/swappiness - - - - 10</programlisting></para>
Resolvability of User and Group Names</ulink> for more information on requirements on system user/group
definitions.</para>
- <para>Optionally, if prefixed with <literal>:</literal>, the configured user/group information is only
- used when creating new inodes. If the inode the line refers to already exists, its user/group is left
- in place unmodified.</para>
+ <para>By default the ownership of listed inodes is set to the specified user/group regardless if it is
+ created anew, or already existed. Optionally, if prefixed with <literal>:</literal>, the configured
+ user/group information is only applied when creating new inodes, and if the inode the line refers to
+ already exists, its user/group is left in place unmodified.</para>
</refsect2>
<refsect2>

View File

@ -0,0 +1,30 @@
From 99333a18d1f385ec04f48db63494158adf7a1df8 Mon Sep 17 00:00:00 2001
From: msizanoen1 <msizanoen@qtmlabs.xyz>
Date: Tue, 7 Feb 2023 20:17:21 +0700
Subject: [PATCH] unit: always return 1 in log_kill
This ensures that cg_kill_items returns the correct value to let the
manager know that a process was killed.
(cherry picked from commit 500cd2e83b8246fbf20d99db898039cfba746223)
Resolves: RHEL-78170
---
src/core/unit.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/core/unit.c b/src/core/unit.c
index 03eb3aaecf..d98ecf4367 100644
--- a/src/core/unit.c
+++ b/src/core/unit.c
@@ -4542,7 +4542,9 @@ static int log_kill(pid_t pid, int sig, void *userdata) {
/* Don't log about processes marked with brackets, under the assumption that these are temporary processes
only, like for example systemd's own PAM stub process. */
if (comm && comm[0] == '(')
- return 0;
+ /* Although we didn't log anything, as this callback is used in unit_kill_context we must return 1
+ * here to let the manager know that a process was killed. */
+ return 1;
log_unit_notice(userdata,
"Killing process " PID_FMT " (%s) with signal SIG%s.",

View File

@ -0,0 +1,32 @@
From 42bbdbf52f4aab3a9d34b3a3ce9fa5b12f43d993 Mon Sep 17 00:00:00 2001
From: msizanoen1 <msizanoen@qtmlabs.xyz>
Date: Tue, 7 Feb 2023 20:17:21 +0700
Subject: [PATCH] ci: enable mkosi workflow for z-stream branches
rhel-only: ci
Related: RHEL-79977
---
.github/workflows/mkosi.yml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/.github/workflows/mkosi.yml b/.github/workflows/mkosi.yml
index f9b6d9ba58..aac559401d 100644
--- a/.github/workflows/mkosi.yml
+++ b/.github/workflows/mkosi.yml
@@ -9,6 +9,7 @@ on:
branches:
- main
- v[0-9]+-stable
+ - rhel-9.*.0
paths:
- '**'
- '!README*'
@@ -27,6 +28,7 @@ on:
branches:
- main
- v[0-9]+-stable
+ - rhel-9.*.0
paths:
- '**'
- '!README*'

View File

@ -0,0 +1,29 @@
From e43eea1289a3a9a2ff38f6555d367d8d857b89c2 Mon Sep 17 00:00:00 2001
From: msizanoen1 <msizanoen@qtmlabs.xyz>
Date: Tue, 7 Feb 2023 20:17:21 +0700
Subject: [PATCH] ci(mkosi): bump fedora version from 39 to 41
warning: /var/cache/dnf/fedora-ffabc111530caf27/packages/filesystem-3.18-6.fc39.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 18b8e74c: NOKEY
Error: GPG check FAILED
```
rhel-only: ci
Related: RHEL-79977
---
.github/workflows/mkosi.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.github/workflows/mkosi.yml b/.github/workflows/mkosi.yml
index aac559401d..808ae0148e 100644
--- a/.github/workflows/mkosi.yml
+++ b/.github/workflows/mkosi.yml
@@ -83,6 +83,7 @@ jobs:
[Host]
ToolsTree=default
ToolsTreeDistribution=fedora
+ ToolsTreeRelease=41
# Sometimes we run on a host with /dev/kvm, but it is broken, so explicitly disable it
QemuKvm=no
EOF

View File

@ -0,0 +1,31 @@
From 8a3390f1210561d360c45ee8d4b153d738c7ffb2 Mon Sep 17 00:00:00 2001
From: Lukas Nykryn <lnykryn@redhat.com>
Date: Mon, 14 Apr 2025 13:49:51 +0200
Subject: [PATCH] man: mention that rhel-9.0 net naming scheme is the same as
v251
Due to the rebase in 9.2 it is a bit confusing that we are documenting
the newer upstream scheme and it might look 9.0 is based in v255.
So let's explicitly mention that the scheme is the same as in v251.
Resolves: RHEL-86891
rhel-only: doc
---
man/systemd.net-naming-scheme.xml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/man/systemd.net-naming-scheme.xml b/man/systemd.net-naming-scheme.xml
index f2077ed02d..b5f4a0bc51 100644
--- a/man/systemd.net-naming-scheme.xml
+++ b/man/systemd.net-naming-scheme.xml
@@ -462,7 +462,8 @@
<varlistentry>
<term><constant>rhel-9.0</constant></term>
- <listitem><para>Since version <constant>v247</constant> we no longer set
+ <listitem><para>Same as naming scheme <constant>v251</constant>.</para>
+ <para>Since version <constant>v247</constant> we no longer set
<varname>ID_NET_NAME_SLOT</varname> if we detect that a PCI device associated with a slot is a PCI
bridge as that would create naming conflict when there are more child devices on that bridge. Now,
this is relaxed and we will use slot information to generate the name based on it but only if

View File

@ -0,0 +1,92 @@
From 2cec1ae89fbb51915426818e87d4aef2cb728abe Mon Sep 17 00:00:00 2001
From: Mario Limonciello <mario.limonciello@amd.com>
Date: Fri, 28 Mar 2025 09:19:23 -0500
Subject: [PATCH] backlight: Drop support for actual_brightness
Some AMD systems have support for features like custom brightness
curve or adaptive backlight management. These features allow the
display driver to adjust the brightness based upon other factors
than just the user brightness request.
The user's brightness request is indicated in the 'brightness' file
but the effective result of the logic in the display driver is stored
in the 'actual_brightness' file.
This leads to problems when shutting the system down because the value
of 'actual_brightness' may be lower than 'brightness' and the wrong value
gets stored for the next boot.
For example if the brightness a user requested was 150, the actual_brightness
might be 130. So the next boot the brightness will be "set" to 130, but the
actual brightness might be 115. If the user reboots again it will be set to 115
for the next boot but the actual brightness might be 100. That is this gets worse
and worse each reboot cycle until the system eventually boots up at minimum
brightness.
Furthermore the kernel documentation indicates that the brightness and
actual_brightness files are not guaranteed to be the same values.
Due to this; drop the use of 'actual_brightness' when saving/restoring brightness
and instead rely only upon 'brightness'.
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
(cherry picked from commit 9a224c307b36610e3675390eb2620e74d0f4efb0)
Resolves: RHEL-86714
---
src/backlight/backlight.c | 35 +----------------------------------
1 file changed, 1 insertion(+), 34 deletions(-)
diff --git a/src/backlight/backlight.c b/src/backlight/backlight.c
index b6474d31a7..de5fecd849 100644
--- a/src/backlight/backlight.c
+++ b/src/backlight/backlight.c
@@ -386,46 +386,13 @@ static bool shall_clamp(sd_device *d) {
}
static int read_brightness(sd_device *device, unsigned max_brightness, unsigned *ret_brightness) {
- const char *subsystem, *value;
+ const char *value;
unsigned brightness;
int r;
assert(device);
assert(ret_brightness);
- r = sd_device_get_subsystem(device, &subsystem);
- if (r < 0)
- return log_device_debug_errno(device, r, "Failed to get subsystem: %m");
-
- if (streq(subsystem, "backlight")) {
- r = sd_device_get_sysattr_value(device, "actual_brightness", &value);
- if (r == -ENOENT) {
- log_device_debug_errno(device, r, "Failed to read 'actual_brightness' attribute, "
- "fall back to use 'brightness' attribute: %m");
- goto use_brightness;
- }
- if (r < 0)
- return log_device_debug_errno(device, r, "Failed to read 'actual_brightness' attribute: %m");
-
- r = safe_atou(value, &brightness);
- if (r < 0) {
- log_device_debug_errno(device, r, "Failed to parse 'actual_brightness' attribute, "
- "fall back to use 'brightness' attribute: %s", value);
- goto use_brightness;
- }
-
- if (brightness > max_brightness) {
- log_device_debug(device, "actual_brightness=%u is larger than max_brightness=%u, "
- "fall back to use 'brightness' attribute", brightness, max_brightness);
- goto use_brightness;
- }
-
- log_device_debug(device, "Current actual_brightness is %u", brightness);
- *ret_brightness = brightness;
- return 0;
- }
-
-use_brightness:
r = sd_device_get_sysattr_value(device, "brightness", &value);
if (r < 0)
return log_device_debug_errno(device, r, "Failed to read 'brightness' attribute: %m");

View File

@ -0,0 +1,34 @@
From 03b9b0ad5e5b678ba108e8e7b72e773be51a19a7 Mon Sep 17 00:00:00 2001
From: Yu Watanabe <watanabe.yu+github@gmail.com>
Date: Fri, 19 May 2023 04:47:34 +0900
Subject: [PATCH] unit: add conditions and deps to make oomd.socket and
.service consistent
Fixes #27690.
(cherry picked from commit d0e3ae838f5417c7cda1cc32d944a32f55af2e96)
Resolves: RHEL-90417
---
units/systemd-oomd.socket | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/units/systemd-oomd.socket b/units/systemd-oomd.socket
index 47cd0e7555..70eb6b7bc3 100644
--- a/units/systemd-oomd.socket
+++ b/units/systemd-oomd.socket
@@ -11,7 +11,13 @@
Description=Userspace Out-Of-Memory (OOM) Killer Socket
Documentation=man:systemd-oomd.service(8)
DefaultDependencies=no
-Before=sockets.target
+Before=sockets.target shutdown.target
+Conflicts=shutdown.target
+ConditionControlGroupController=v2
+ConditionControlGroupController=memory
+ConditionPathExists=/proc/pressure/cpu
+ConditionPathExists=/proc/pressure/io
+ConditionPathExists=/proc/pressure/memory
[Socket]
ListenStream=/run/systemd/oom/io.system.ManagedOOM

View File

@ -0,0 +1,55 @@
From c51c192f303b3a17e8699c25610a79f1b40a350f Mon Sep 17 00:00:00 2001
From: Jan Macku <jamacku@redhat.com>
Date: Thu, 12 Jun 2025 12:54:26 +0200
Subject: [PATCH] udev/net_id: introduce naming scheme for RHEL-9.7
rhel-only: policy
Resolves: RHEL-25516
---
man/systemd.net-naming-scheme.xml | 6 ++++++
src/shared/netif-naming-scheme.c | 1 +
src/shared/netif-naming-scheme.h | 1 +
3 files changed, 8 insertions(+)
diff --git a/man/systemd.net-naming-scheme.xml b/man/systemd.net-naming-scheme.xml
index b5f4a0bc51..34e8e46459 100644
--- a/man/systemd.net-naming-scheme.xml
+++ b/man/systemd.net-naming-scheme.xml
@@ -520,6 +520,12 @@
<listitem><para>Same as naming scheme <constant>rhel-9.5</constant>.</para></listitem>
</varlistentry>
+ <varlistentry>
+ <term><constant>rhel-9.7</constant></term>
+
+ <listitem><para>Same as naming scheme <constant>rhel-9.5</constant>.</para></listitem>
+ </varlistentry>
+
</variablelist>
<para>By default <constant>rhel-9.0</constant> is used.</para>
diff --git a/src/shared/netif-naming-scheme.c b/src/shared/netif-naming-scheme.c
index 360a603581..a38c3f1e2f 100644
--- a/src/shared/netif-naming-scheme.c
+++ b/src/shared/netif-naming-scheme.c
@@ -46,6 +46,7 @@ static const NamingScheme naming_schemes[] = {
{ "rhel-9.4", NAMING_RHEL_9_4 },
{ "rhel-9.5", NAMING_RHEL_9_5 },
{ "rhel-9.6", NAMING_RHEL_9_6 },
+ { "rhel-9.7", NAMING_RHEL_9_7 },
/* … add more schemes here, as the logic to name devices is updated … */
EXTRA_NET_NAMING_MAP
diff --git a/src/shared/netif-naming-scheme.h b/src/shared/netif-naming-scheme.h
index c533d0f37f..3cba656707 100644
--- a/src/shared/netif-naming-scheme.h
+++ b/src/shared/netif-naming-scheme.h
@@ -75,6 +75,7 @@ typedef enum NamingSchemeFlags {
NAMING_RHEL_9_4 = NAMING_RHEL_9_3,
NAMING_RHEL_9_5 = NAMING_RHEL_9_4 & ~NAMING_BRIDGE_MULTIFUNCTION_SLOT,
NAMING_RHEL_9_6 = NAMING_RHEL_9_5,
+ NAMING_RHEL_9_7 = NAMING_RHEL_9_5,
EXTRA_NET_NAMING_SCHEMES

View File

@ -0,0 +1,63 @@
From abcac0e79a783e841ae6681899a46e1d9c3d3ab2 Mon Sep 17 00:00:00 2001
From: Unique-Usman <usmanakinyemi202@gmail.com>
Date: Sat, 16 Mar 2024 04:04:11 +0530
Subject: [PATCH] Add a set of assertion macros to tests.h (ASSERT_OK(),
ASSERT_EQ(), ASSERT_GE(), ASSERT_LE()) that log the failed condition before
crashing and convert test-gpt.c test file to use them
[dtardon: Only the macro definitions have been backported.]
(cherry picked from commit e19186359a25ec56d1dd0a68def06aff1bbb19bb)
Related: RHEL-103753
---
src/shared/tests.h | 39 +++++++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)
diff --git a/src/shared/tests.h b/src/shared/tests.h
index 3cf34d9bcc..97c83ce434 100644
--- a/src/shared/tests.h
+++ b/src/shared/tests.h
@@ -143,3 +143,42 @@ static inline int run_test_table(void) {
DEFINE_TEST_MAIN_FULL(log_level, intro, NULL)
#define DEFINE_TEST_MAIN(log_level) \
DEFINE_TEST_MAIN_FULL(log_level, NULL, NULL)
+
+#define ASSERT_OK(expr) \
+ ({ \
+ int _result = (expr); \
+ if (_result < 0) { \
+ log_error_errno("Assertion failed: %s (result: %d, error: %m)", #expr, _result); \
+ abort(); \
+ } \
+ })
+
+#define ASSERT_EQ(expr1, expr2) \
+ ({ \
+ int _expr1 = (expr1); \
+ int _expr2 = (expr2); \
+ if (_expr1 != _expr2) { \
+ log_error("Assertion failed: expected %s == %s, but %d != %d", #expr1, #expr2, _expr1, _expr2); \
+ abort(); \
+ } \
+ })
+
+#define ASSERT_GE(expr1, expr2) \
+ ({ \
+ int _expr1 = (expr1); \
+ int _expr2 = (expr2); \
+ if (_expr1 < _expr2) { \
+ log_error("Assertion failed: expected %s >= %s, but %d < %d", #expr1, #expr2, _expr1, _expr2); \
+ abort(); \
+ } \
+ })
+
+#define ASSERT_LE(expr1, expr2) \
+ ({ \
+ int _expr1 = (expr1); \
+ int _expr2 = (expr2); \
+ if (_expr1 > _expr2) { \
+ log_error("Assertion failed: expected %s <= %s, but %d > %d", #expr1, #expr2, _expr1, _expr2); \
+ abort(); \
+ } \
+ })

View File

@ -0,0 +1,133 @@
From f112f2e2fd1131188e3215d36bdc4c53cf7329dd Mon Sep 17 00:00:00 2001
From: Unique-Usman <usmanakinyemi202@gmail.com>
Date: Tue, 19 Mar 2024 18:20:29 +0530
Subject: [PATCH] Follow up with the PR #31819
(cherry picked from commit c0cd99eee69fd9c0a66e7167784d01a49f93b13f)
Related: RHEL-103753
---
src/basic/macro.h | 13 +++++++
src/shared/tests.h | 85 ++++++++++++++++++++++++++++------------------
2 files changed, 65 insertions(+), 33 deletions(-)
diff --git a/src/basic/macro.h b/src/basic/macro.h
index c2934f9951..8ed4270a14 100644
--- a/src/basic/macro.h
+++ b/src/basic/macro.h
@@ -466,4 +466,17 @@ assert_cc(sizeof(dummy_t) == 0);
((long)(_current_ - _entries_) < (long)ELEMENTSOF(_entries_)) && ({ entry = *_current_; true; }); \
_current_++)
+#define DECIMAL_STR_FMT(x) _Generic((x), \
+ char: "%c", \
+ bool: "%d", \
+ unsigned char: "%d", \
+ short: "%hd", \
+ unsigned short: "%hu", \
+ int: "%d", \
+ unsigned: "%u", \
+ long: "%ld", \
+ unsigned long: "%lu", \
+ long long: "%lld", \
+ unsigned long long: "%llu")
+
#include "log.h"
diff --git a/src/shared/tests.h b/src/shared/tests.h
index 97c83ce434..89248d171a 100644
--- a/src/shared/tests.h
+++ b/src/shared/tests.h
@@ -144,41 +144,60 @@ static inline int run_test_table(void) {
#define DEFINE_TEST_MAIN(log_level) \
DEFINE_TEST_MAIN_FULL(log_level, NULL, NULL)
-#define ASSERT_OK(expr) \
- ({ \
- int _result = (expr); \
- if (_result < 0) { \
- log_error_errno("Assertion failed: %s (result: %d, error: %m)", #expr, _result); \
- abort(); \
- } \
+#define ASSERT_OK(expr) \
+ ({ \
+ typeof(expr) _result = (expr); \
+ if (_result < 0) { \
+ log_error_errno(_result, "%s:%i: Assertion failed: %s: %m", \
+ PROJECT_FILE, __LINE__, #expr); \
+ abort(); \
+ } \
+ })
+
+/* DECIMAL_STR_FMT() uses _Generic which cannot be used in string concatenation so we have to format the
+ * input into strings first and then format those into the final assertion message. */
+
+#define ASSERT_EQ(expr1, expr2) \
+ ({ \
+ typeof(expr1) _expr1 = (expr1); \
+ typeof(expr2) _expr2 = (expr2); \
+ if (_expr1 != _expr2) { \
+ char _sexpr1[DECIMAL_STR_MAX(typeof(expr1))]; \
+ char _sexpr2[DECIMAL_STR_MAX(typeof(expr2))]; \
+ xsprintf(_sexpr1, DECIMAL_STR_FMT(_expr1), _expr1); \
+ xsprintf(_sexpr2, DECIMAL_STR_FMT(_expr2), _expr2); \
+ log_error("%s:%i: Assertion failed: expected \"%s == %s\", but \"%s != %s\"", \
+ PROJECT_FILE, __LINE__, #expr1, #expr2, _sexpr1, _sexpr2); \
+ abort(); \
+ } \
})
-#define ASSERT_EQ(expr1, expr2) \
- ({ \
- int _expr1 = (expr1); \
- int _expr2 = (expr2); \
- if (_expr1 != _expr2) { \
- log_error("Assertion failed: expected %s == %s, but %d != %d", #expr1, #expr2, _expr1, _expr2); \
- abort(); \
- } \
+#define ASSERT_GE(expr1, expr2) \
+ ({ \
+ typeof(expr1) _expr1 = (expr1); \
+ typeof(expr2) _expr2 = (expr2); \
+ if (_expr1 < _expr2) { \
+ char _sexpr1[DECIMAL_STR_MAX(typeof(expr1))]; \
+ char _sexpr2[DECIMAL_STR_MAX(typeof(expr2))]; \
+ xsprintf(_sexpr1, DECIMAL_STR_FMT(_expr1), _expr1); \
+ xsprintf(_sexpr2, DECIMAL_STR_FMT(_expr2), _expr2); \
+ log_error("%s:%i: Assertion failed: expected \"%s >= %s\", but \"%s < %s\"", \
+ PROJECT_FILE, __LINE__, #expr1, #expr2, _sexpr1, _sexpr2); \
+ abort(); \
+ } \
})
-#define ASSERT_GE(expr1, expr2) \
- ({ \
- int _expr1 = (expr1); \
- int _expr2 = (expr2); \
- if (_expr1 < _expr2) { \
- log_error("Assertion failed: expected %s >= %s, but %d < %d", #expr1, #expr2, _expr1, _expr2); \
- abort(); \
- } \
- })
-
-#define ASSERT_LE(expr1, expr2) \
- ({ \
- int _expr1 = (expr1); \
- int _expr2 = (expr2); \
- if (_expr1 > _expr2) { \
- log_error("Assertion failed: expected %s <= %s, but %d > %d", #expr1, #expr2, _expr1, _expr2); \
- abort(); \
- } \
+#define ASSERT_LE(expr1, expr2) \
+ ({ \
+ typeof(expr1) _expr1 = (expr1); \
+ typeof(expr2) _expr2 = (expr2); \
+ if (_expr1 > _expr2) { \
+ char _sexpr1[DECIMAL_STR_MAX(typeof(expr1))]; \
+ char _sexpr2[DECIMAL_STR_MAX(typeof(expr2))]; \
+ xsprintf(_sexpr1, DECIMAL_STR_FMT(_expr1), _expr1); \
+ xsprintf(_sexpr2, DECIMAL_STR_FMT(_expr2), _expr2); \
+ log_error("%s:%i: Assertion failed: expected \"%s <= %s\", but \"%s > %s\"", \
+ PROJECT_FILE, __LINE__, #expr1, #expr2, _sexpr1, _sexpr2); \
+ abort(); \
+ } \
})

View File

@ -0,0 +1,201 @@
From a3e559fefefc61c27094fbe8718d29df81a9af6d Mon Sep 17 00:00:00 2001
From: Unique-Usman <usmanakinyemi202@gmail.com>
Date: Wed, 20 Mar 2024 23:05:55 +0530
Subject: [PATCH] Added more ASSERT macro and also make some test file to use
them
[dtardon: Only the macro definitions have been backported.]
(cherry picked from commit 5f0e4d2fb4188b58dd24c749a732faf6fef1f75b)
Related: RHEL-103753
---
src/shared/tests.h | 170 ++++++++++++++++++++++++++++++++++-----------
1 file changed, 131 insertions(+), 39 deletions(-)
diff --git a/src/shared/tests.h b/src/shared/tests.h
index 89248d171a..8a3b928dfd 100644
--- a/src/shared/tests.h
+++ b/src/shared/tests.h
@@ -154,50 +154,142 @@ static inline int run_test_table(void) {
} \
})
+#define ASSERT_TRUE(expr) \
+ ({ \
+ if (!(expr)) { \
+ log_error("%s:%i: Assertion failed: expected \"%s\" to be true", \
+ PROJECT_FILE, __LINE__, #expr); \
+ abort(); \
+ } \
+ })
+
+#define ASSERT_FALSE(expr) \
+ ({ \
+ if ((expr)) { \
+ log_error("%s:%i: Assertion failed: expected \"%s\" to be false", \
+ PROJECT_FILE, __LINE__, #expr); \
+ abort(); \
+ } \
+ })
+
+#define ASSERT_NULL(expr) \
+ ({ \
+ if ((expr) != NULL) { \
+ log_error("%s:%i: Assertion failed: expected \"%s\" to be NULL", \
+ PROJECT_FILE, __LINE__, #expr); \
+ abort(); \
+ } \
+ })
+
+#define ASSERT_NOT_NULL(expr) \
+ ({ \
+ if ((expr) == NULL) { \
+ log_error("%s:%i: Assertion failed: expected \"%s\" to be not NULL", \
+ PROJECT_FILE, __LINE__, #expr); \
+ abort(); \
+ } \
+ })
+
+#define ASSERT_STREQ(expr1, expr2) \
+ ({ \
+ const char* _expr1 = (expr1); \
+ const char* _expr2 = (expr2); \
+ if (strcmp(_expr1, _expr2) != 0) { \
+ log_error("%s:%i: Assertion failed: expected \"%s == %s\", but \"%s != %s\"", \
+ PROJECT_FILE, __LINE__, #expr1, #expr2, _expr1, _expr2); \
+ abort(); \
+ } \
+ })
+
/* DECIMAL_STR_FMT() uses _Generic which cannot be used in string concatenation so we have to format the
* input into strings first and then format those into the final assertion message. */
-#define ASSERT_EQ(expr1, expr2) \
- ({ \
- typeof(expr1) _expr1 = (expr1); \
- typeof(expr2) _expr2 = (expr2); \
- if (_expr1 != _expr2) { \
- char _sexpr1[DECIMAL_STR_MAX(typeof(expr1))]; \
- char _sexpr2[DECIMAL_STR_MAX(typeof(expr2))]; \
- xsprintf(_sexpr1, DECIMAL_STR_FMT(_expr1), _expr1); \
- xsprintf(_sexpr2, DECIMAL_STR_FMT(_expr2), _expr2); \
- log_error("%s:%i: Assertion failed: expected \"%s == %s\", but \"%s != %s\"", \
- PROJECT_FILE, __LINE__, #expr1, #expr2, _sexpr1, _sexpr2); \
- abort(); \
- } \
+#define ASSERT_EQ(expr1, expr2) \
+ ({ \
+ typeof(expr1) _expr1 = (expr1); \
+ typeof(expr2) _expr2 = (expr2); \
+ if (_expr1 != _expr2) { \
+ char _sexpr1[DECIMAL_STR_MAX(typeof(expr1))]; \
+ char _sexpr2[DECIMAL_STR_MAX(typeof(expr2))]; \
+ xsprintf(_sexpr1, DECIMAL_STR_FMT(_expr1), _expr1); \
+ xsprintf(_sexpr2, DECIMAL_STR_FMT(_expr2), _expr2); \
+ log_error("%s:%i: Assertion failed: expected \"%s == %s\", but \"%s != %s\"", \
+ PROJECT_FILE, __LINE__, #expr1, #expr2, _sexpr1, _sexpr2); \
+ abort(); \
+ } \
+ })
+
+#define ASSERT_GE(expr1, expr2) \
+ ({ \
+ typeof(expr1) _expr1 = (expr1); \
+ typeof(expr2) _expr2 = (expr2); \
+ if (_expr1 < _expr2) { \
+ char _sexpr1[DECIMAL_STR_MAX(typeof(expr1))]; \
+ char _sexpr2[DECIMAL_STR_MAX(typeof(expr2))]; \
+ xsprintf(_sexpr1, DECIMAL_STR_FMT(_expr1), _expr1); \
+ xsprintf(_sexpr2, DECIMAL_STR_FMT(_expr2), _expr2); \
+ log_error("%s:%i: Assertion failed: expected \"%s >= %s\", but \"%s < %s\"", \
+ PROJECT_FILE, __LINE__, #expr1, #expr2, _sexpr1, _sexpr2); \
+ abort(); \
+ } \
+ })
+
+#define ASSERT_LE(expr1, expr2) \
+ ({ \
+ typeof(expr1) _expr1 = (expr1); \
+ typeof(expr2) _expr2 = (expr2); \
+ if (_expr1 > _expr2) { \
+ char _sexpr1[DECIMAL_STR_MAX(typeof(expr1))]; \
+ char _sexpr2[DECIMAL_STR_MAX(typeof(expr2))]; \
+ xsprintf(_sexpr1, DECIMAL_STR_FMT(_expr1), _expr1); \
+ xsprintf(_sexpr2, DECIMAL_STR_FMT(_expr2), _expr2); \
+ log_error("%s:%i: Assertion failed: expected \"%s <= %s\", but \"%s > %s\"", \
+ PROJECT_FILE, __LINE__, #expr1, #expr2, _sexpr1, _sexpr2); \
+ abort(); \
+ } \
+ })
+
+#define ASSERT_NE(expr1, expr2) \
+ ({ \
+ typeof(expr1) _expr1 = (expr1); \
+ typeof(expr2) _expr2 = (expr2); \
+ if (_expr1 == _expr2) { \
+ char _sexpr1[DECIMAL_STR_MAX(typeof(expr1))]; \
+ char _sexpr2[DECIMAL_STR_MAX(typeof(expr2))]; \
+ xsprintf(_sexpr1, DECIMAL_STR_FMT(_expr1), _expr1); \
+ xsprintf(_sexpr2, DECIMAL_STR_FMT(_expr2), _expr2); \
+ log_error("%s:%i: Assertion failed: expected \"%s != %s\", but \"%s == %s\"", \
+ PROJECT_FILE, __LINE__, #expr1, #expr2, _sexpr1, _sexpr2); \
+ abort(); \
+ } \
})
-#define ASSERT_GE(expr1, expr2) \
- ({ \
- typeof(expr1) _expr1 = (expr1); \
- typeof(expr2) _expr2 = (expr2); \
- if (_expr1 < _expr2) { \
- char _sexpr1[DECIMAL_STR_MAX(typeof(expr1))]; \
- char _sexpr2[DECIMAL_STR_MAX(typeof(expr2))]; \
- xsprintf(_sexpr1, DECIMAL_STR_FMT(_expr1), _expr1); \
- xsprintf(_sexpr2, DECIMAL_STR_FMT(_expr2), _expr2); \
- log_error("%s:%i: Assertion failed: expected \"%s >= %s\", but \"%s < %s\"", \
- PROJECT_FILE, __LINE__, #expr1, #expr2, _sexpr1, _sexpr2); \
- abort(); \
- } \
+#define ASSERT_GT(expr1, expr2) \
+ ({ \
+ typeof(expr1) _expr1 = (expr1); \
+ typeof(expr2) _expr2 = (expr2); \
+ if (!(_expr1 > _expr2)) { \
+ char _sexpr1[DECIMAL_STR_MAX(typeof(expr1))]; \
+ char _sexpr2[DECIMAL_STR_MAX(typeof(expr2))]; \
+ xsprintf(_sexpr1, DECIMAL_STR_FMT(_expr1), _expr1); \
+ xsprintf(_sexpr2, DECIMAL_STR_FMT(_expr2), _expr2); \
+ log_error("%s:%i: Assertion failed: expected \"%s > %s\", but \"%s <= %s\"", \
+ PROJECT_FILE, __LINE__, #expr1, #expr2, _sexpr1, _sexpr2); \
+ abort(); \
+ } \
})
-#define ASSERT_LE(expr1, expr2) \
- ({ \
- typeof(expr1) _expr1 = (expr1); \
- typeof(expr2) _expr2 = (expr2); \
- if (_expr1 > _expr2) { \
- char _sexpr1[DECIMAL_STR_MAX(typeof(expr1))]; \
- char _sexpr2[DECIMAL_STR_MAX(typeof(expr2))]; \
- xsprintf(_sexpr1, DECIMAL_STR_FMT(_expr1), _expr1); \
- xsprintf(_sexpr2, DECIMAL_STR_FMT(_expr2), _expr2); \
- log_error("%s:%i: Assertion failed: expected \"%s <= %s\", but \"%s > %s\"", \
- PROJECT_FILE, __LINE__, #expr1, #expr2, _sexpr1, _sexpr2); \
- abort(); \
- } \
+#define ASSERT_LT(expr1, expr2) \
+ ({ \
+ typeof(expr1) _expr1 = (expr1); \
+ typeof(expr2) _expr2 = (expr2); \
+ if (!(_expr1 < _expr2)) { \
+ char _sexpr1[DECIMAL_STR_MAX(typeof(expr1))]; \
+ char _sexpr2[DECIMAL_STR_MAX(typeof(expr2))]; \
+ xsprintf(_sexpr1, DECIMAL_STR_FMT(_expr1), _expr1); \
+ xsprintf(_sexpr2, DECIMAL_STR_FMT(_expr2), _expr2); \
+ log_error("%s:%i: Assertion failed: expected \"%s < %s\", but \"%s >= %s\"", \
+ PROJECT_FILE, __LINE__, #expr1, #expr2, _sexpr1, _sexpr2); \
+ abort(); \
+ } \
})

View File

@ -0,0 +1,37 @@
From 4ffef1fb9a00978b8f518ad5afd90cf293fe203e Mon Sep 17 00:00:00 2001
From: Yu Watanabe <watanabe.yu+github@gmail.com>
Date: Sun, 20 Jul 2025 02:12:00 +0900
Subject: [PATCH] sd-event: drop inotify event from buffer when no event source
is triggered
Even when we receive an inotify event, there is no relevant event source
exists. In that case, we need to drop the event from the buffer,
otherwise we cannot escape from the loop.
Fixes #38265.
(cherry picked from commit 064b9b2bb3544707171662f548677259c3d6aa7f)
Resolves: RHEL-103753
---
src/libsystemd/sd-event/sd-event.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/libsystemd/sd-event/sd-event.c b/src/libsystemd/sd-event/sd-event.c
index f15115c57f..79b2fa6789 100644
--- a/src/libsystemd/sd-event/sd-event.c
+++ b/src/libsystemd/sd-event/sd-event.c
@@ -3579,9 +3579,12 @@ static int event_inotify_data_process(sd_event *e, struct inotify_data *d) {
}
}
- /* Something pending now? If so, let's finish, otherwise let's read more. */
+ /* Something pending now? If so, let's finish. */
if (d->n_pending > 0)
return 1;
+
+ /* otherwise, drop the event and let's read more */
+ event_inotify_data_drop(e, d, sz);
}
return 0;

View File

@ -0,0 +1,63 @@
From c6bf0ea0855a35977ba4d36c200bfa3756c2d743 Mon Sep 17 00:00:00 2001
From: Yu Watanabe <watanabe.yu+github@gmail.com>
Date: Sun, 20 Jul 2025 01:27:10 +0900
Subject: [PATCH] test: add test case for issue #38265
(cherry picked from commit b92258eb229f84680b91e744e98d72429710770e)
Related: RHEL-103753
---
src/libsystemd/sd-event/test-event.c | 35 ++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
diff --git a/src/libsystemd/sd-event/test-event.c b/src/libsystemd/sd-event/test-event.c
index 246658d024..daf2ed3ec1 100644
--- a/src/libsystemd/sd-event/test-event.c
+++ b/src/libsystemd/sd-event/test-event.c
@@ -7,6 +7,7 @@
#include "alloc-util.h"
#include "exec-util.h"
#include "fd-util.h"
+#include "fileio.h"
#include "fs-util.h"
#include "log.h"
#include "macro.h"
@@ -809,4 +810,38 @@ TEST(inotify_process_buffered_data) {
assert_se(sd_event_wait(e, 0) == 0);
}
+static int inotify_handler_issue_38265(sd_event_source *s, const struct inotify_event *event, void *userdata) {
+ log_debug("Inotify event: mask=0x%x name=%s", event->mask, event->name);
+ return 0;
+}
+
+TEST(inotify_issue_38265) {
+ _cleanup_(rm_rf_physical_and_freep) char *t = NULL;
+ _cleanup_(sd_event_source_unrefp) sd_event_source *a = NULL, *b = NULL;
+ _cleanup_(sd_event_unrefp) sd_event *e = NULL;
+ _cleanup_free_ char *p = NULL;
+
+ /* For issue #38265. */
+
+ ASSERT_OK(mkdtemp_malloc("/tmp/test-inotify-XXXXXX", &t));
+
+ ASSERT_OK(sd_event_default(&e));
+
+ /* Create inode data that watches IN_MODIFY */
+ ASSERT_OK(sd_event_add_inotify(e, &a, t, IN_CREATE | IN_MODIFY, inotify_handler_issue_38265, NULL));
+ ASSERT_OK(sd_event_add_inotify(e, &b, t, IN_CREATE, inotify_handler_issue_38265, NULL));
+
+ /* Then drop the event source that is interested in IN_MODIFY */
+ ASSERT_NULL(a = sd_event_source_unref(a));
+
+ /* Trigger IN_MODIFY (of course with IN_CREATE) */
+ ASSERT_NOT_NULL(p = path_join(t, "hoge"));
+ ASSERT_OK(write_string_file(p, "aaa", WRITE_STRING_FILE_CREATE));
+
+ for (unsigned i = 1; i < 5; i++) {
+ log_debug("Running event loop cycle %u to process inotify events...", i);
+ ASSERT_OK(sd_event_run(e, USEC_PER_MSEC));
+ }
+}
+
DEFINE_TEST_MAIN(LOG_DEBUG);

View File

@ -0,0 +1,69 @@
From 5ce6e9778a1f9708b4e52d143a0ed044a2a9e815 Mon Sep 17 00:00:00 2001
From: Luca Boccassi <luca.boccassi@gmail.com>
Date: Sun, 22 Dec 2024 13:31:36 +0000
Subject: [PATCH] test: answer 2nd mdadm --create question for compat with new
version
New version of mdadm now asks a second question, so send 'y' twice
to it in the test scripts
[ 5.253483] TEST-64-UDEV-STORAGE.sh[684]: + echo y
[ 5.254412] TEST-64-UDEV-STORAGE.sh[685]: + mdadm --create /dev/md/mdmirror --name mdmirror --uuid aaaaaaaa:bbbbbbbb:cccccccc:00000001 /dev/disk/by-id/scsi-0systemd_foobar_deadbeefmdadm0 /dev/disk/by-id/scsi-0systemd_foobar_deadbeefmdadm1 -v -f --level=1 --raid-devices=2
[ 5.254759] TEST-64-UDEV-STORAGE.sh[685]: To optimalize recovery speed, it is recommended to enable write-indent bitmap, do you want to enable it now? [y/N]? mdadm: Note: this array has metadata at the start and
[ 5.255085] TEST-64-UDEV-STORAGE.sh[685]: may not be suitable as a boot device. If you plan to
[ 5.255418] TEST-64-UDEV-STORAGE.sh[685]: store '/boot' on this device please ensure that
[ 5.255745] TEST-64-UDEV-STORAGE.sh[685]: your boot-loader understands md/v1.x metadata, or use
[ 5.256285] TEST-64-UDEV-STORAGE.sh[685]: --metadata=0.90
[ 5.256672] TEST-64-UDEV-STORAGE.sh[685]: mdadm: size set to 64512K
[ 5.257063] TEST-64-UDEV-STORAGE.sh[685]: Continue creating array [y/N]? mdadm: create aborted.
This is backward compatible with the older version that asks just one
question
(cherry picked from commit 16406420ea449b75e70a7dced05d7b98bc0f5376)
Related: RHEL-79977
---
test/units/testsuite-64.sh | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/test/units/testsuite-64.sh b/test/units/testsuite-64.sh
index f7298ed0d6..c335ee64df 100755
--- a/test/units/testsuite-64.sh
+++ b/test/units/testsuite-64.sh
@@ -888,7 +888,7 @@ testcase_mdadm_basic() {
"/dev/disk/by-label/$part_name" # ext4 partition
)
# Create a simple RAID 1 with an ext4 filesystem
- echo y | mdadm --create "$raid_dev" --name "$raid_name" --uuid "$uuid" /dev/disk/by-id/ata-foobar_deadbeefmdadm{0..1} -v -f --level=1 --raid-devices=2
+ printf 'y\ny\n' | mdadm --create "$raid_dev" --name "$raid_name" --uuid "$uuid" /dev/disk/by-id/ata-foobar_deadbeefmdadm{0..1} -v -f --level=1 --raid-devices=2
udevadm wait --settle --timeout=30 "$raid_dev"
mkfs.ext4 -L "$part_name" "$raid_dev"
udevadm wait --settle --timeout=30 "${expected_symlinks[@]}"
@@ -917,7 +917,7 @@ testcase_mdadm_basic() {
"/dev/disk/by-label/$part_name" # ext4 partition
)
# Create a simple RAID 5 with an ext4 filesystem
- echo y | mdadm --create "$raid_dev" --name "$raid_name" --uuid "$uuid" /dev/disk/by-id/ata-foobar_deadbeefmdadm{0..2} -v -f --level=5 --raid-devices=3
+ printf 'y\ny\n' | mdadm --create "$raid_dev" --name "$raid_name" --uuid "$uuid" /dev/disk/by-id/ata-foobar_deadbeefmdadm{0..2} -v -f --level=5 --raid-devices=3
udevadm wait --settle --timeout=30 "$raid_dev"
mkfs.ext4 -L "$part_name" "$raid_dev"
udevadm wait --settle --timeout=30 "${expected_symlinks[@]}"
@@ -957,7 +957,7 @@ testcase_mdadm_basic() {
"/dev/disk/by-id/md-uuid-$uuid-part3"
)
# Create a simple RAID 10 with an ext4 filesystem
- echo y | mdadm --create "$raid_dev" --name "$raid_name" --uuid "$uuid" /dev/disk/by-id/ata-foobar_deadbeefmdadm{0..3} -v -f --level=10 --raid-devices=4
+ printf 'y\ny\n' | mdadm --create "$raid_dev" --name "$raid_name" --uuid "$uuid" /dev/disk/by-id/ata-foobar_deadbeefmdadm{0..3} -v -f --level=10 --raid-devices=4
udevadm wait --settle --timeout=30 "$raid_dev"
# Partition the raid device
# Here, 'udevadm lock' is meaningless, as udevd does not lock MD devices.
@@ -1010,7 +1010,7 @@ testcase_mdadm_lvm() {
"/dev/disk/by-label/$part_name" # ext4 partition
)
# Create a RAID 10 with LVM + ext4
- echo y | mdadm --create "$raid_dev" --name "$raid_name" --uuid "$uuid" /dev/disk/by-id/ata-foobar_deadbeefmdadmlvm{0..3} -v -f --level=10 --raid-devices=4
+ printf 'y\ny\n' | mdadm --create "$raid_dev" --name "$raid_name" --uuid "$uuid" /dev/disk/by-id/ata-foobar_deadbeefmdadmlvm{0..3} -v -f --level=10 --raid-devices=4
udevadm wait --settle --timeout=30 "$raid_dev"
# Create an LVM on the MD
lvm pvcreate -y "$raid_dev"

View File

@ -0,0 +1,98 @@
From 51a75e6643bc9fabd895e859a8abcf36dd371b38 Mon Sep 17 00:00:00 2001
From: Luca BRUNO <luca.bruno@coreos.com>
Date: Thu, 3 Nov 2022 15:11:00 +0000
Subject: [PATCH] sysusers: cross-check user and group names too
This adds an additional name check when cross-matching new group
entries against existing users, which allows coalescing entries
matching both ID and name.
It provides a small idempotence enhancement when creating groups
in cases where matching user entries are in place. By fine-tuning
the conflict detection logic, this avoids picking up new random
IDs and correctly prefers configuration values instead.
(cherry picked from commit 4ae3e8c9dbd8aa25c404eb47e4e1962fe9b03c78)
Resolves: RHEL-72572
---
src/sysusers/sysusers.c | 28 +++++++++++++++++++---------
1 file changed, 19 insertions(+), 9 deletions(-)
diff --git a/src/sysusers/sysusers.c b/src/sysusers/sysusers.c
index 08b005e6be..e2533e0128 100644
--- a/src/sysusers/sysusers.c
+++ b/src/sysusers/sysusers.c
@@ -1175,22 +1175,32 @@ static int add_user(Item *i) {
return 0;
}
-static int gid_is_ok(gid_t gid, bool check_with_uid) {
+static int gid_is_ok(gid_t gid, const char *groupname, bool check_with_uid) {
struct group *g;
struct passwd *p;
+ Item *user;
+ char *username;
+
+ assert(groupname);
if (ordered_hashmap_get(todo_gids, GID_TO_PTR(gid)))
return 0;
/* Avoid reusing gids that are already used by a different user */
- if (check_with_uid && ordered_hashmap_get(todo_uids, UID_TO_PTR(gid)))
- return 0;
+ if (check_with_uid) {
+ user = ordered_hashmap_get(todo_uids, UID_TO_PTR(gid));
+ if (user && !streq(user->name, groupname))
+ return 0;
+ }
if (hashmap_contains(database_by_gid, GID_TO_PTR(gid)))
return 0;
- if (check_with_uid && hashmap_contains(database_by_uid, UID_TO_PTR(gid)))
- return 0;
+ if (check_with_uid) {
+ username = hashmap_get(database_by_uid, UID_TO_PTR(gid));
+ if (username && !streq(username, groupname))
+ return 0;
+ }
if (!arg_root) {
errno = 0;
@@ -1258,7 +1268,7 @@ static int add_group(Item *i) {
/* Try to use the suggested numeric GID */
if (i->gid_set) {
- r = gid_is_ok(i->gid, false);
+ r = gid_is_ok(i->gid, i->name, false);
if (r < 0)
return log_error_errno(r, "Failed to verify GID " GID_FMT ": %m", i->gid);
if (i->id_set_strict) {
@@ -1281,7 +1291,7 @@ static int add_group(Item *i) {
/* Try to reuse the numeric uid, if there's one */
if (!i->gid_set && i->uid_set) {
- r = gid_is_ok((gid_t) i->uid, true);
+ r = gid_is_ok((gid_t) i->uid, i->name, true);
if (r < 0)
return log_error_errno(r, "Failed to verify GID " GID_FMT ": %m", i->gid);
if (r > 0) {
@@ -1299,7 +1309,7 @@ static int add_group(Item *i) {
if (c <= 0 || !uid_range_contains(uid_range, c))
log_debug("Group ID " GID_FMT " of file not suitable for %s.", c, i->name);
else {
- r = gid_is_ok(c, true);
+ r = gid_is_ok(c, i->name, true);
if (r < 0)
return log_error_errno(r, "Failed to verify GID " GID_FMT ": %m", i->gid);
else if (r > 0) {
@@ -1321,7 +1331,7 @@ static int add_group(Item *i) {
if (r < 0)
return log_error_errno(r, "No free group ID available for %s.", i->name);
- r = gid_is_ok(search_uid, true);
+ r = gid_is_ok(search_uid, i->name, true);
if (r < 0)
return log_error_errno(r, "Failed to verify GID " GID_FMT ": %m", i->gid);
else if (r > 0)

View File

@ -0,0 +1,51 @@
From 02a1fae5ccbb5d9c76db336733aa15d706e4c2df Mon Sep 17 00:00:00 2001
From: Luca BRUNO <luca.bruno@coreos.com>
Date: Thu, 3 Nov 2022 15:11:01 +0000
Subject: [PATCH] test-sysusers: check group creation with matching user entry
(cherry picked from commit 76ad8ef68d155d8ef4fc5bb59499dc95e39b9dfb)
Related: RHEL-72572
---
test/test-sysusers/test-15.expected-group | 1 +
test/test-sysusers/test-15.expected-passwd | 1 +
test/test-sysusers/test-15.initial-passwd | 1 +
test/test-sysusers/test-15.input | 5 +++++
4 files changed, 8 insertions(+)
create mode 100644 test/test-sysusers/test-15.expected-group
create mode 100644 test/test-sysusers/test-15.expected-passwd
create mode 100644 test/test-sysusers/test-15.initial-passwd
create mode 100644 test/test-sysusers/test-15.input
diff --git a/test/test-sysusers/test-15.expected-group b/test/test-sysusers/test-15.expected-group
new file mode 100644
index 0000000000..1dbf9013ee
--- /dev/null
+++ b/test/test-sysusers/test-15.expected-group
@@ -0,0 +1 @@
+root:x:0:
diff --git a/test/test-sysusers/test-15.expected-passwd b/test/test-sysusers/test-15.expected-passwd
new file mode 100644
index 0000000000..a880bd497f
--- /dev/null
+++ b/test/test-sysusers/test-15.expected-passwd
@@ -0,0 +1 @@
+root::0:0::/root:/bin/sh
diff --git a/test/test-sysusers/test-15.initial-passwd b/test/test-sysusers/test-15.initial-passwd
new file mode 100644
index 0000000000..a880bd497f
--- /dev/null
+++ b/test/test-sysusers/test-15.initial-passwd
@@ -0,0 +1 @@
+root::0:0::/root:/bin/sh
diff --git a/test/test-sysusers/test-15.input b/test/test-sysusers/test-15.input
new file mode 100644
index 0000000000..cc46672e7f
--- /dev/null
+++ b/test/test-sysusers/test-15.input
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: LGPL-2.1-or-later
+# Create proper group when matching user entry is in place.
+#
+#Type Name ID GECOS HOMEDIR
+u root 0 "Super User" /root

View File

@ -0,0 +1,82 @@
From 01e0a19a9c38f1b935d627c9b02b2950e835b8c5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Date: Sat, 25 Mar 2023 11:34:47 +0100
Subject: [PATCH] user-sessions: do not remove /etc/nologin
pam_nologin looks for /etc/nologin and /run/nologin.
user-sessions creates (and removes) /run/nologin, but also removes
/etc/nologin. (This behaviour is unchanged since the introduction
of the binary in e92787416c691c3f34f47349e5eae3fa68eae856.)
By not removing pam_nologin we fully drop compatibility with PAM < 1.1.
This has the advantage that now /etc/nologin can be used by administrator to
disable user logins, e.g. for extended maintanance. We already specified
PAM >= 1.1.2 as dependency, so this was already covered.
The makes the code match the man page.
Fixes #26965.
(cherry picked from commit a78413baae0e999384b535d327203ebf417b1e24)
Resolves: RHEL-85467
---
src/shared/fileio-label.c | 12 +++++++++---
src/user-sessions/user-sessions.c | 13 +++++--------
2 files changed, 14 insertions(+), 11 deletions(-)
diff --git a/src/shared/fileio-label.c b/src/shared/fileio-label.c
index d03b0548ec..572b8f62ad 100644
--- a/src/shared/fileio-label.c
+++ b/src/shared/fileio-label.c
@@ -23,9 +23,15 @@ int write_string_file_atomic_label_ts(const char *fn, const char *line, struct t
int create_shutdown_run_nologin_or_warn(void) {
int r;
- /* This is used twice: once in systemd-user-sessions.service, in order to block logins when we actually go
- * down, and once in systemd-logind.service when shutdowns are scheduled, and logins are to be turned off a bit
- * in advance. We use the same wording of the message in both cases. */
+ /* This is used twice: once in systemd-user-sessions.service, in order to block logins when we
+ * actually go down, and once in systemd-logind.service when shutdowns are scheduled, and logins are
+ * to be turned off a bit in advance. We use the same wording of the message in both cases.
+ *
+ * Traditionally, there was only /etc/nologin, and we managed that. Then, in PAM 1.1
+ * support for /run/nologin was added as alternative
+ * (https://github.com/linux-pam/linux-pam/commit/e9e593f6ddeaf975b7fe8446d184e6bc387d450b).
+ * 13 years later we stopped managing /etc/nologin, leaving it for the administrator to manage.
+ */
r = write_string_file_atomic_label("/run/nologin",
"System is going down. Unprivileged users are not permitted to log in anymore. "
diff --git a/src/user-sessions/user-sessions.c b/src/user-sessions/user-sessions.c
index 6b7493fd88..37867ee3ed 100644
--- a/src/user-sessions/user-sessions.c
+++ b/src/user-sessions/user-sessions.c
@@ -15,7 +15,7 @@
#include "string-util.h"
static int run(int argc, char *argv[]) {
- int r, k;
+ int r;
if (argc != 2)
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
@@ -29,14 +29,11 @@ static int run(int argc, char *argv[]) {
if (r < 0)
return r;
- if (streq(argv[1], "start")) {
- r = unlink_or_warn("/run/nologin");
- k = unlink_or_warn("/etc/nologin");
- if (r < 0)
- return r;
- return k;
+ /* We only touch /run/nologin. See create_shutdown_run_nologin_or_warn() for details. */
- } else if (streq(argv[1], "stop"))
+ if (streq(argv[1], "start"))
+ return unlink_or_warn("/run/nologin");
+ if (streq(argv[1], "stop"))
return create_shutdown_run_nologin_or_warn();
return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Unknown verb '%s'.", argv[1]);

View File

@ -0,0 +1,244 @@
From 73601626004ca070c7b8c05153838a31f5c5ad6d Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Mon, 9 Sep 2024 15:56:09 +0200
Subject: [PATCH] =?UTF-8?q?hwdb:=20f20=20=E2=86=92=20micmute?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
See: #34323
(cherry picked from commit d94efc09060bf627253119573df72799ed65e878)
Resolves: RHEL-72697
---
hwdb.d/60-keyboard.hwdb | 52 ++++++++++++++++++++---------------------
1 file changed, 26 insertions(+), 26 deletions(-)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index 069cd891d7..d616747e97 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -186,7 +186,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnPredator*PH*315-52:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMateB311-31*:pvr*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMateB311R-31*:pvr*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMateB311RN-31*:pvr*
- KEYBOARD_KEY_8a=f20 # Microphone mute
+ KEYBOARD_KEY_8a=micmute # Microphone mute
# Travelmate C300
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*C3[01]0*:*
@@ -200,7 +200,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*C3[01]0*:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*P648-G2-MG*:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*P648-G3-M*:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*P645-S*:*
- KEYBOARD_KEY_8a=f20 # Microphone mute button; should be micmute
+ KEYBOARD_KEY_8a=micmute # Microphone mute button
# on some models this isn't brightnessup
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pn*5210*:*
@@ -223,7 +223,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnPackard*Bell*:pn*:*
# Swift SF314-511
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnSwiftSF314-511:pvr*
- KEYBOARD_KEY_8a=f20 # Fn+F12, microphone mute
+ KEYBOARD_KEY_8a=micmute # Fn+F12, microphone mute
# Predator PHN16-71
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnPredatorPHN16-71:*
@@ -242,7 +242,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnNitro*AN*515-47:pvr*
# Nitro AN515-58
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnNitro*AN*515-58:pvr*
- KEYBOARD_KEY_8a=f20 # Microphone mute button
+ KEYBOARD_KEY_8a=micmute # Microphone mute button
KEYBOARD_KEY_55=power
###########################################################
@@ -283,11 +283,11 @@ evdev:name:Asus WMI hotkeys:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:*
evdev:name:Eee PC WMI hotkeys:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:*
evdev:name:Asus Laptop extra buttons:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:*
KEYBOARD_KEY_6b=f21 # Touchpad Toggle
- KEYBOARD_KEY_7c=f20 # Remap micmute to f20
+ KEYBOARD_KEY_7c=micmute
# USB keyboard in Asus FX503VD
evdev:input:b0003v0B05p1869*
- KEYBOARD_KEY_ff31007c=f20 # Remap micmute to f20
+ KEYBOARD_KEY_ff31007c=micmute
# Asus TF103C misses the home button in its PNP0C40 GPIO resources
# causing the volume-button mappings to be off by one, correct this
@@ -353,7 +353,7 @@ evdev:atkbd:dmi:bvn*:bvr*:svnNotebook:pnNV4xPZ:*
evdev:atkbd:dmi:bvn*:bvr*:svnNotebook:pnV54x_6x_TU:*
KEYBOARD_KEY_f7=f21 # Touchpad Toggle
KEYBOARD_KEY_f8=f21 # Touchpad Toggle
- KEYBOARD_KEY_81=f20 # Fn+4; Mic Mute
+ KEYBOARD_KEY_81=micmute # Fn+4; Mic Mute
###########################################################
# Compal
@@ -498,17 +498,17 @@ evdev:name:Dell WMI hotkeys:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude*:*
evdev:name:Dell WMI hotkeys:dmi:bvn*:bvr*:bd*:svnDell*:pnPrecision*:*
# Dell XPS microphone mute
evdev:name:Dell WMI hotkeys:dmi:bvn*:bvr*:bd*:svnDell*:pnXPS*:*
- KEYBOARD_KEY_100150=f20 # Mic mute toggle, should be micmute
+ KEYBOARD_KEY_100150=micmute # Mic mute toggle
# Dell Latitude privacy microphone mute
evdev:name:Dell Privacy Driver:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude*:*
# Dell Precision privacy microphone mute
evdev:name:Dell Privacy Driver:dmi:bvn*:bvr*:bd*:svnDell*:pnPrecision*:*
- KEYBOARD_KEY_120001=f20 # Mic mute toggle, should be micmute
+ KEYBOARD_KEY_120001=micmute # Mic mute toggle
# Dell Professional Sound Bar AE515
evdev:input:b0003v413CpA506*
- KEYBOARD_KEY_b002f=f20 # Mic mute toggle, should be micmute
+ KEYBOARD_KEY_b002f=micmute # Mic mute toggle
###########################################################
# Everex
@@ -694,7 +694,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pn*[sS][pP][eE][cC][tT][rR][eE]*x360Convert
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPSpectrex360Convertible13*:*
# ENVY x360 13
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPENVYx360Convertible13*:*
- KEYBOARD_KEY_82=f20 # Microphone mute button, should be micmute
+ KEYBOARD_KEY_82=micmute # Microphone mute button
# Spectre x360 16 2022
evdev:name:Intel HID events:dmi:bvn*:bvr*:bd*:svnHP*:pn*HP[sS][pP][eE][cC][tT][rR][eE]*x3602-in-1*:*
@@ -707,7 +707,7 @@ evdev:name:Intel HID events:dmi:bvn*:bvr*:bd*:svnHP*:pnHPENVYx3602-in-1*:*
evdev:atkbd:dmi:bvn*:bvr*:svnHP*:pnHPElitex21013G3:*
KEYBOARD_KEY_f8=unknown # rfkill is also reported by HP Wireless hotkeys
KEYBOARD_KEY_64=calendar
- KEYBOARD_KEY_81=f20 # Microphone mute button
+ KEYBOARD_KEY_81=micmute # Microphone mute button
KEYBOARD_KEY_ee=switchvideomode # Switch display outputs
KEYBOARD_KEY_92=brightnessdown
KEYBOARD_KEY_97=brightnessup
@@ -813,7 +813,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHP*ProBook*:*
# HP ZBook
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHPZBook*:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPZBook*:*
- KEYBOARD_KEY_81=f20 # Fn+F8; Microphone mute button, should be micmute
+ KEYBOARD_KEY_81=micmute # Fn+F8; Microphone mute button
# HP ZBook Studio G5
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPZBookStudioG5*:*
@@ -826,7 +826,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHPZBook15G2:*
# HP ProBook 11 G1
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHPProBook11G1:*
- KEYBOARD_KEY_81=f20 # Fn+F8; Microphone mute button, should be micmute
+ KEYBOARD_KEY_81=micmute # Fn+F8; Microphone mute button
KEYBOARD_KEY_d8=f21 # touchpad toggle
KEYBOARD_KEY_d9=f21 # touchpad toggle
@@ -842,7 +842,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHPEliteBookFolio1040G2:*
# HP EliteBook Folio G1
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP:pnHPEliteBookFolioG1:*
KEYBOARD_KEY_64=calendar
- KEYBOARD_KEY_81=f20
+ KEYBOARD_KEY_81=micmute
# HP EliteBook 845 G7
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPEliteBook845G7*:pvr*
@@ -882,7 +882,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPProBook11G2*:pvr*
evdev:atkbd:dmi:bvn*:bvr*:svnHP*:pnHP*mt44*Mobile*Thin*Client*:*
KEYBOARD_KEY_64=calendar # Calendar icon (Fn + F12)
KEYBOARD_KEY_6d=displaytoggle # Display icon
- KEYBOARD_KEY_81=f20 # Fn+F8; Microphone mute button, should be micmute
+ KEYBOARD_KEY_81=micmute # Fn+F8; Microphone mute button
KEYBOARD_KEY_85=unknown # lid close; also reported via special evdev
KEYBOARD_KEY_f8=wlan # Wireless HW switch button
@@ -900,7 +900,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP:pnOMEN*:pvr*
# HP Dev One
evdev:atkbd:dmi:*:rvnHP:rn8A78:*
- KEYBOARD_KEY_81=f20 # Fn+F8; Microphone mute button
+ KEYBOARD_KEY_81=micmute # Fn+F8; Microphone mute button
KEYBOARD_KEY_f9=prog1 # Fn+F12; Programmable hotkey
# HP Victus
@@ -937,7 +937,7 @@ evdev:input:b0005v03F0p854Ae044C*
# Huawei WMI hotkeys driver
evdev:name:Huawei WMI hotkeys:dmi:bvn*:bvr*:bd*:svnHUAWEI:*
- KEYBOARD_KEY_287=f20 # Microphone mute button, should be micmute
+ KEYBOARD_KEY_287=micmute # Microphone mute button
# Huawei MACH-WX9 and EUL-WX9
evdev:atkbd:dmi:bvn*:bvr*:svnHUAWEI*:pnMACH-WX9:*
@@ -1030,7 +1030,7 @@ evdev:name:ThinkPad Extra Buttons:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:*
KEYBOARD_KEY_15=volumedown
KEYBOARD_KEY_16=mute
KEYBOARD_KEY_17=prog1
- KEYBOARD_KEY_1a=f20 # Microphone mute button; should be micmute
+ KEYBOARD_KEY_1a=micmute # Microphone mute button
KEYBOARD_KEY_45=bookmarks
KEYBOARD_KEY_46=selective_screenshot # Fn + PrtSc, on Windows: Snipping tool
KEYBOARD_KEY_4a=prog3 # Fn + Right shift, on Windows: No idea
@@ -1051,7 +1051,7 @@ evdev:input:b0003v17EFp6009*
KEYBOARD_KEY_09001d=zoom # Fn+Space
KEYBOARD_KEY_090011=prog1 # ThinkVantage button
KEYBOARD_KEY_090015=camera # Fn+F6 headset/camera VoIP key ??
- KEYBOARD_KEY_090010=f20 # Microphone mute button; should be micmute
+ KEYBOARD_KEY_090010=micmute # Microphone mute button
# Lenovo 3000
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*3000*:pvr*
@@ -1110,7 +1110,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnIBM*:pn18666TU:*
# IdeaPad
evdev:name:Ideapad extra buttons:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:*
KEYBOARD_KEY_0d=rfkill # airplane mode switch (toggle all wireless devices)
- KEYBOARD_KEY_08=f20 # micmute
+ KEYBOARD_KEY_08=micmute
KEYBOARD_KEY_42=f23
KEYBOARD_KEY_43=f22
@@ -1120,7 +1120,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*IdeaPad*Y550*:pvr*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*IdeaPad*U300s*:pvr*
KEYBOARD_KEY_f1=f21
- KEYBOARD_KEY_ce=f20 # micmute
+ KEYBOARD_KEY_ce=micmute
evdev:atkbd:dmi:bvn*:bvr*:svnLENOVO*:pn*IdeaPad*Z370*:pvr*
# Lenovo IdeaPad Flex 5
@@ -1150,7 +1150,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*Lenovo*V480*:pvr*
# Lenovo ThinkCentre M800z/M820z/M920z AIO machines
# key_scancode 00 is KEY_MICMUTE
evdev:name:Microphone Mute Button:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:*
- KEYBOARD_KEY_00=f20
+ KEYBOARD_KEY_00=micmute
# enhanced USB keyboard
evdev:input:b0003v04B3p301B*
@@ -1549,7 +1549,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn*:*
KEYBOARD_KEY_e4=f21 # Fn+F3 Touchpad disable
KEYBOARD_KEY_ec=email # envelope button
KEYBOARD_KEY_ee=camera # Fn+F6 camera disable
- KEYBOARD_KEY_f1=f20 # Microphone mute
+ KEYBOARD_KEY_f1=micmute # Microphone mute
KEYBOARD_KEY_f2=rotate_display # Rotate screen
KEYBOARD_KEY_f6=wlan # satellite dish1
KEYBOARD_KEY_f7=brightnessdown # Fn+F4
@@ -1664,7 +1664,7 @@ evdev:name:AT Translated Set 2 keyboard:phys:sp/serio*/input*:ev:120013:*
KEYBOARD_KEY_f3=f17
KEYBOARD_KEY_f2=f18
KEYBOARD_KEY_f1=f19
- KEYBOARD_KEY_f0=f20 # micmute
+ KEYBOARD_KEY_f0=micmute
KEYBOARD_KEY_ef=f21
KEYBOARD_KEY_ee=chat
KEYBOARD_KEY_e4=chat
@@ -1783,7 +1783,7 @@ evdev:input:b0003v258Ap001E*
# Plantronics .Audio 626 DSP
evdev:input:b0003v047FpC006*
- KEYBOARD_KEY_b002f=f20 # Microphone mute button; should be micmute
+ KEYBOARD_KEY_b002f=micmute # Microphone mute button
###########################################################
# Purism

View File

@ -0,0 +1,432 @@
From ba07b8f34792b0ac0249ab02452f2b419e8e03e3 Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Mon, 9 Sep 2024 16:10:09 +0200
Subject: [PATCH] =?UTF-8?q?hwdb:=20f21=20=E2=86=92=20touchpad=5Ftoggle?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Similar to the previous commit.
(cherry picked from commit 27f33c743f57c0e544d8cccffb719f1b6cc38d23)
Resolves: RHEL-72697
---
hwdb.d/60-keyboard.hwdb | 106 ++++++++++++++++++++--------------------
1 file changed, 53 insertions(+), 53 deletions(-)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index d616747e97..df578276b2 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -127,7 +127,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svneMachines:pneMachines*E725:*
# Acer kernel driver
evdev:name:Acer WMI hotkeys:dmi:bvn*:bvr*:bd*:svn*:pnAcer*:*
- KEYBOARD_KEY_82=f21 # Touchpad toggle
+ KEYBOARD_KEY_82=touchpad_toggle # Touchpad toggle
# Aspire models
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspire*:*
@@ -251,7 +251,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnNitro*AN*515-58:pvr*
# Alienware/Dell reserves these keys; safe to apply on all their devices
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAlienware*:pn*:*
- KEYBOARD_KEY_81=f21 # Touchpad toggle
+ KEYBOARD_KEY_81=touchpad_toggle # Touchpad toggle
KEYBOARD_KEY_8a=ejectcd
KEYBOARD_KEY_bf=!prog1 # graphics amplifier, cable plug-in event
KEYBOARD_KEY_c1=!prog2 # graphics amplifier, undock-button event
@@ -268,7 +268,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAlienware*:pnM17xR3:*
# Aquarius Cmp NS483
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAquarius*:pnCmp*NS483*:*
KEYBOARD_KEY_56=backslash
- KEYBOARD_KEY_76=f21 # Touchpad Toggle
+ KEYBOARD_KEY_76=touchpad_toggle # Touchpad Toggle
###########################################################
# Asus
@@ -282,7 +282,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnASUS:pn*:*
evdev:name:Asus WMI hotkeys:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:*
evdev:name:Eee PC WMI hotkeys:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:*
evdev:name:Asus Laptop extra buttons:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:*
- KEYBOARD_KEY_6b=f21 # Touchpad Toggle
+ KEYBOARD_KEY_6b=touchpad_toggle # Touchpad Toggle
KEYBOARD_KEY_7c=micmute
# USB keyboard in Asus FX503VD
@@ -345,14 +345,14 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnNotebook:pnW65_67SZ:*
evdev:atkbd:dmi:bvn*:bvr*:svnNotebook:pnNS50_70MU:*
evdev:atkbd:dmi:bvn*:bvr*:svnNotebook:pnNV4XMB,ME,MZ:*
evdev:atkbd:dmi:bvn*:bvr*:svnNotebook:pnNS5x_NS7xPU:*
- KEYBOARD_KEY_f7=f21 # Touchpad Toggle
- KEYBOARD_KEY_f8=f21 # Touchpad Toggle
+ KEYBOARD_KEY_f7=touchpad_toggle # Touchpad Toggle
+ KEYBOARD_KEY_f8=touchpad_toggle # Touchpad Toggle
evdev:atkbd:dmi:bvn*:bvr*:svnNotebook:pnV5xTNC_TND_TNE:*
evdev:atkbd:dmi:bvn*:bvr*:svnNotebook:pnNV4xPZ:*
evdev:atkbd:dmi:bvn*:bvr*:svnNotebook:pnV54x_6x_TU:*
- KEYBOARD_KEY_f7=f21 # Touchpad Toggle
- KEYBOARD_KEY_f8=f21 # Touchpad Toggle
+ KEYBOARD_KEY_f7=touchpad_toggle # Touchpad Toggle
+ KEYBOARD_KEY_f8=touchpad_toggle # Touchpad Toggle
KEYBOARD_KEY_81=micmute # Fn+4; Mic Mute
###########################################################
@@ -374,7 +374,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnCompaq*:pn*Evo*N*:*
KEYBOARD_KEY_9f=homepage
evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:bvr*:svnCompaq:pn*:pvr*:rvn*:rnN14KP6*
- KEYBOARD_KEY_76=f21 # Fn+f2 toggle touchpad
+ KEYBOARD_KEY_76=touchpad_toggle # Fn+f2 toggle touchpad
evdev:input:b0003v049Fp0051*
evdev:input:b0003v049Fp008D*
@@ -420,12 +420,12 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pn*:*
KEYBOARD_KEY_99=nextsong # Front panel next song
KEYBOARD_KEY_9a=setup # Tablet tools button
KEYBOARD_KEY_9b=switchvideomode # Display toggle button
- KEYBOARD_KEY_9e=f21 # Touchpad toggle
+ KEYBOARD_KEY_9e=touchpad_toggle # Touchpad toggle
KEYBOARD_KEY_a2=playpause # Front panel play/pause
KEYBOARD_KEY_a4=stopcd # Front panel stop
KEYBOARD_KEY_ed=media # MediaDirect button
KEYBOARD_KEY_d8=screenlock # FIXME: Tablet lock button
- KEYBOARD_KEY_d9=f21 # Touchpad toggle
+ KEYBOARD_KEY_d9=touchpad_toggle # Touchpad toggle
#
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnInspiron*910:*
@@ -467,7 +467,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnStudio*155[78]:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude*:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnPrecision*:*
KEYBOARD_KEY_88=! # wireless switch
- KEYBOARD_KEY_9e=!f21
+ KEYBOARD_KEY_9e=!touchpad_toggle
# Dell Latitude E[67]*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude*E6*:*
@@ -516,7 +516,7 @@ evdev:input:b0003v413CpA506*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnEverex:pnXT5000*:*
KEYBOARD_KEY_5c=media
- KEYBOARD_KEY_65=f21 # Fn+F5 Touchpad toggle
+ KEYBOARD_KEY_65=touchpad_toggle # Fn+F5 Touchpad toggle
KEYBOARD_KEY_67=prog3 # Fan speed control button
KEYBOARD_KEY_6f=brightnessup
KEYBOARD_KEY_7f=brightnessdown
@@ -555,7 +555,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnFUJITSU*:pn*AMILO*Pro*Edition*V3505*:*
# Amilo Pro v3205
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnFUJITSU*:pn*AMILO*Pro*V3205*:*
- KEYBOARD_KEY_f4=f21 # FIXME: silent-mode decrease CPU/GPU clock
+ KEYBOARD_KEY_f4=touchpad_toggle # FIXME: silent-mode decrease CPU/GPU clock
KEYBOARD_KEY_f7=switchvideomode # Fn+F3
# Amilo Si 1520
@@ -725,8 +725,8 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*2230s*:*
# Presario
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*Presario*CQ*:*
- KEYBOARD_KEY_d8=f21
- KEYBOARD_KEY_d9=f21
+ KEYBOARD_KEY_d8=touchpad_toggle
+ KEYBOARD_KEY_d9=touchpad_toggle
# 2510p 2530p
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*2510p*:*
@@ -827,8 +827,8 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHPZBook15G2:*
# HP ProBook 11 G1
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHPProBook11G1:*
KEYBOARD_KEY_81=micmute # Fn+F8; Microphone mute button
- KEYBOARD_KEY_d8=f21 # touchpad toggle
- KEYBOARD_KEY_d9=f21 # touchpad toggle
+ KEYBOARD_KEY_d8=touchpad_toggle # touchpad toggle
+ KEYBOARD_KEY_d9=touchpad_toggle # touchpad toggle
# HP ZBook Studio G4
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP:pnHPZBookStudioG4:*
@@ -998,7 +998,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnINVENTEC:pnSYMPHONY*6.0/7.0:*
# LEAP W502
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnJP-IK:pnLEAPW502:pvr*
- KEYBOARD_KEY_76=f21 # touchpad toggle
+ KEYBOARD_KEY_76=touchpad_toggle # touchpad toggle
###########################################################
# Kvadra
@@ -1006,7 +1006,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnJP-IK:pnLEAPW502:pvr*
# LE14U/LE15U
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnKVADRA*:pn*LE1*U*:*
- KEYBOARD_KEY_76=f21 # Fn+F1 Toggle touchpad, sends meta+ctrl+toggle
+ KEYBOARD_KEY_76=touchpad_toggle # Fn+F1 Toggle touchpad, sends meta+ctrl+toggle
###########################################################
# Lenovo
@@ -1019,7 +1019,7 @@ evdev:name:ThinkPad Extra Buttons:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:*
KEYBOARD_KEY_03=sleep
KEYBOARD_KEY_04=wlan
KEYBOARD_KEY_06=switchvideomode
- KEYBOARD_KEY_07=f21
+ KEYBOARD_KEY_07=touchpad_toggle
KEYBOARD_KEY_08=f24
KEYBOARD_KEY_0b=suspend
KEYBOARD_KEY_0f=brightnessup
@@ -1044,7 +1044,7 @@ evdev:input:b0003v17EFp6009*
KEYBOARD_KEY_090013=battery # Fn+F3
KEYBOARD_KEY_090014=wlan # Fn+F5
KEYBOARD_KEY_090016=switchvideomode # Fn+F7
- KEYBOARD_KEY_090017=f21 # Fn+F8 touchpad toggle
+ KEYBOARD_KEY_090017=touchpad_toggle # Fn+F8 touchpad toggle
KEYBOARD_KEY_090019=suspend # Fn+F12
KEYBOARD_KEY_09001a=brightnessup # Fn+Home
KEYBOARD_KEY_09001b=brightnessdown # Fn+End
@@ -1073,8 +1073,8 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pnS10-*:*
KEYBOARD_KEY_b9=brightnessup # does nothing in BIOS
KEYBOARD_KEY_ba=brightnessdown # does nothing in BIOS
KEYBOARD_KEY_f1=camera # BIOS toggles camera power
- KEYBOARD_KEY_f2=f21 # touchpad toggle (key alternately emits F2 and F3)
- KEYBOARD_KEY_f3=f21
+ KEYBOARD_KEY_f2=touchpad_toggle # touchpad toggle (key alternately emits F2 and F3)
+ KEYBOARD_KEY_f3=touchpad_toggle
# Lenovo IdeaPad 5
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:pvrIdeaPad5*:*
@@ -1119,7 +1119,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*IdeaPad*Y550*:pvr*
KEYBOARD_KEY_a3=play
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*IdeaPad*U300s*:pvr*
- KEYBOARD_KEY_f1=f21
+ KEYBOARD_KEY_f1=touchpad_toggle
KEYBOARD_KEY_ce=micmute
evdev:atkbd:dmi:bvn*:bvr*:svnLENOVO*:pn*IdeaPad*Z370*:pvr*
@@ -1141,11 +1141,11 @@ evdev:atkbd:dmi:*:svnLENOVO:*:pvrLenovoYoga300-11IBR:*
evdev:atkbd:dmi:bvn*:bvr*:svnLENOVO*:pn*20378*:pvr*
# Lenovo IdeaPad Z500
evdev:atkbd:dmi:bvn*:bvr*:svnLENOVO*:pn*5931*:pvr*
- KEYBOARD_KEY_f3=f21 # Fn+F6 (toggle touchpad)
+ KEYBOARD_KEY_f3=touchpad_toggle # Fn+F6 (toggle touchpad)
# V480
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*Lenovo*V480*:pvr*
- KEYBOARD_KEY_f1=f21
+ KEYBOARD_KEY_f1=touchpad_toggle
# Lenovo ThinkCentre M800z/M820z/M920z AIO machines
# key_scancode 00 is KEY_MICMUTE
@@ -1165,7 +1165,7 @@ evdev:input:b0003v04B3p301B*
# Lenovo Ideapad D330-10IGM
evdev:name:SIPODEV Lenovo HID Device:dmi:*:svnLENOVO:*:pvrLenovoideapadD330-10IGM:*
- KEYBOARD_KEY_70073=f21 # Fn+Supr (Touchpad toggle)
+ KEYBOARD_KEY_70073=touchpad_toggle # Fn+Supr (Touchpad toggle)
evdev:name:SIPODEV Lenovo HID Device Consumer Control:dmi:*:svnLENOVO:*:pvrLenovoideapadD330-10IGM:*
KEYBOARD_KEY_c00ff=fn_esc # Fn+Tab (FnLk toggle)
@@ -1546,7 +1546,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn*:*
KEYBOARD_KEY_c2=ejectcd
KEYBOARD_KEY_df=sleep # Fn+F12
KEYBOARD_KEY_e2=bluetooth # satellite dish2
- KEYBOARD_KEY_e4=f21 # Fn+F3 Touchpad disable
+ KEYBOARD_KEY_e4=touchpad_toggle # Fn+F3 Touchpad disable
KEYBOARD_KEY_ec=email # envelope button
KEYBOARD_KEY_ee=camera # Fn+F6 camera disable
KEYBOARD_KEY_f1=micmute # Microphone mute
@@ -1558,7 +1558,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn*:*
# MSI GF63 toggles touchpad using Fn+F3 where the keyboard key is 29
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pnGF63*:*
- KEYBOARD_KEY_85=f21 # Toggle touchpad, sends meta+ctrl+toggle
+ KEYBOARD_KEY_85=touchpad_toggle # Toggle touchpad, sends meta+ctrl+toggle
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pnGE60*:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pnGE70*:*
@@ -1586,7 +1586,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pnU90/U100:*
# Keymaps MSI Prestige And MSI Modern FnKeys and Special keys
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn*Prestige*:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn*Modern*:*
- KEYBOARD_KEY_76=f21 # Toggle touchpad, sends meta+ctrl+toggle
+ KEYBOARD_KEY_76=touchpad_toggle # Toggle touchpad, sends meta+ctrl+toggle
KEYBOARD_KEY_91=prog1 # Fn+F7 Creation Center, sometime F7
KEYBOARD_KEY_f2=rotate_display # Fn+F12 Screen rotation
KEYBOARD_KEY_8d=prog3 # Fn+A Change True Color selections
@@ -1610,7 +1610,7 @@ evdev:name:AT Translated Set 2 keyboard:dmi:*:svnMicro-StarInternationalCo.,Ltd.
# VersaPro VG-S
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnNEC:pnPC-VK22TGSGS:pvr*
- KEYBOARD_KEY_a8=f21 # Fn+Space touchpad toggle
+ KEYBOARD_KEY_a8=touchpad_toggle # Fn+Space touchpad toggle
KEYBOARD_KEY_67=brightnessdown # Fn+F7 brightness down
KEYBOARD_KEY_65=brightnessup # Fn+F8 brightness up
KEYBOARD_KEY_71=battery # Fn+F4 ECO
@@ -1623,7 +1623,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnNEC:pnPC-VK22TGSGS:pvr*
evdev:input:b0003v15BAp003C*
KEYBOARD_KEY_70066=sleep # Fn+F1
KEYBOARD_KEY_700f6=wlan # Fn+F2
- KEYBOARD_KEY_700c7=f21 # Fn+F3 touchpad toggle
+ KEYBOARD_KEY_700c7=touchpad_toggle # Fn+F3 touchpad toggle
KEYBOARD_KEY_7006f=brightnessdown # Fn+F7
KEYBOARD_KEY_70070=brightnessup # Fn+F8
KEYBOARD_KEY_7006e=switchvideomode # Fn+F9
@@ -1665,7 +1665,7 @@ evdev:name:AT Translated Set 2 keyboard:phys:sp/serio*/input*:ev:120013:*
KEYBOARD_KEY_f2=f18
KEYBOARD_KEY_f1=f19
KEYBOARD_KEY_f0=micmute
- KEYBOARD_KEY_ef=f21
+ KEYBOARD_KEY_ef=touchpad_toggle
KEYBOARD_KEY_ee=chat
KEYBOARD_KEY_e4=chat
KEYBOARD_KEY_dd=menu # Frame
@@ -1707,7 +1707,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnONKYO*CORPORATION:pnONKYOPC:*
KEYBOARD_KEY_f0=media # Fn+R
KEYBOARD_KEY_f5=switchvideomode # Fn+E
KEYBOARD_KEY_f6=camera # Fn+T
- KEYBOARD_KEY_f7=f21 # Fn+Y (touchpad toggle)
+ KEYBOARD_KEY_f7=touchpad_toggle # Fn+Y (touchpad toggle)
KEYBOARD_KEY_f8=brightnessup # Fn+S
KEYBOARD_KEY_f9=brightnessdown # Fn+A
KEYBOARD_KEY_fb=wlan # Fn+J
@@ -1948,7 +1948,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*700T*:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:sku*SCAI*:*
KEYBOARD_KEY_81=!esc
KEYBOARD_KEY_ce=!prog1 # Fn+F1 launch settings
- KEYBOARD_KEY_76=f21 # Fn+F5 Touchpad toggle
+ KEYBOARD_KEY_76=touchpad_toggle # Fn+F5 Touchpad toggle
KEYBOARD_KEY_ae=!volumedown # Fn+F7 volume down
KEYBOARD_KEY_b0=!volumeup # Fn+F8 volume up
KEYBOARD_KEY_ac=unknown # Fn+F9 multi-level keyboard backlight toggle - handled by samsung-galaxybook
@@ -2001,7 +2001,7 @@ evdev:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pnVGN-FW250*:*
KEYBOARD_KEY_10=suspend # Fn+F12
evdev:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pnVPC*:*
- KEYBOARD_KEY_05=f21 # Fn+F1 -> KEY_F21 (The actual touchpad toggle)
+ KEYBOARD_KEY_05=touchpad_toggle # Fn+F1
KEYBOARD_KEY_0d=down # Fn+F9 zoomout
KEYBOARD_KEY_0e=up # Fn+F10 zoomin
@@ -2010,19 +2010,19 @@ evdev:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pnVPC*:*
###########################################################
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnSystem76*:pn*:*
- KEYBOARD_KEY_f7=f21 # Touchpad toggle
- KEYBOARD_KEY_f8=f21 # Touchpad toggle
+ KEYBOARD_KEY_f7=touchpad_toggle # Touchpad toggle
+ KEYBOARD_KEY_f8=touchpad_toggle # Touchpad toggle
# Pangolin 12
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnSystem76*:pnPangolin*:pvrpang12*
- KEYBOARD_KEY_76=f21 # Touchpad toggle
+ KEYBOARD_KEY_76=touchpad_toggle # Touchpad toggle
###########################################################
# T-bao
###########################################################
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnT-bao:pnTbookair:*
- KEYBOARD_KEY_76=f21 # Touchpad toggle
+ KEYBOARD_KEY_76=touchpad_toggle # Touchpad toggle
###########################################################
# Toshiba
@@ -2067,14 +2067,14 @@ evdev:name:Toshiba*input*device:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnSATELLITEU940:*
KEYBOARD_KEY_13c=brightnessdown
KEYBOARD_KEY_13d=brightnessup
KEYBOARD_KEY_13e=switchvideomode
- KEYBOARD_KEY_13f=f21 # Touchpad toggle
+ KEYBOARD_KEY_13f=touchpad_toggle # Touchpad toggle
# Satellite P75-A7200
evdev:name:Toshiba*input*device:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnSatellite*P75-A:*
KEYBOARD_KEY_13c=brightnessdown
KEYBOARD_KEY_13d=brightnessup
KEYBOARD_KEY_13e=switchvideomode
- KEYBOARD_KEY_13f=f21 # Touchpad toggle
+ KEYBOARD_KEY_13f=touchpad_toggle # Touchpad toggle
KEYBOARD_KEY_9e=wlan
# Portege Z830 ACPI quickstart buttons
@@ -2085,7 +2085,7 @@ evdev:name:Quickstart Button 2:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnPORTEGEZ830:*
KEYBOARD_KEY_1=prog2 # TOSHIBA Presentation button
evdev:name:Quickstart Button 3:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnPORTEGEZ830:*
- KEYBOARD_KEY_1=f21 # Touchpad toggle
+ KEYBOARD_KEY_1=touchpad_toggle # Touchpad toggle
###########################################################
# VIA
@@ -2099,7 +2099,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnVIA:pnK8N800:*
###########################################################
evdev:name:SIPODEV USB Composite Device:dmi:bvn*:bvr*:bd*:svnVIOS:pnLTH17:*
- KEYBOARD_KEY_70073=f21 # Touchpad toggle
+ KEYBOARD_KEY_70073=touchpad_toggle # Touchpad toggle
###########################################################
# WeiHeng
@@ -2107,7 +2107,7 @@ evdev:name:SIPODEV USB Composite Device:dmi:bvn*:bvr*:bd*:svnVIOS:pnLTH17:*
# P325J
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnINET:pnP325J:*
- KEYBOARD_KEY_76=f21 # Touchpad toggle
+ KEYBOARD_KEY_76=touchpad_toggle # Touchpad toggle
###########################################################
# Xiaomi
@@ -2234,7 +2234,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnViewSonic:pnVPAD10:*
evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:bvr*:bd*:svnPositivoBahia-VAIO:pnVJPW1[12]F11X*:pvr*:*
# Vaio FE14 (VJFE41F11X, VJE42F11X, VJFE44F11X, VJFE54F11X)
evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:bvr*:bd*:svnPositivoBahia-VAIO:pnVJFE*:pvr*:*
- KEYBOARD_KEY_76=f21 # Fn+F1 toggle touchpad
+ KEYBOARD_KEY_76=touchpad_toggle # Fn+F1 toggle touchpad
# VAIO VJFH52
evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:bvr*:bd*:svnPositivoBahia-VAIO:pnVJFH52F11X*:pvr*:*
@@ -2250,23 +2250,23 @@ evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:svnPositivoTecnologiaSA:pn*:pvr
evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:svnPositivoTecnologiaSA:pn*:pvr*:rvnPositivoTecnologiaSA:rnCF40CM-V2*
# Positivo DUO (k116)
evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:svnPositivoTecnologiaSA:pn*:pvr*:rvnPositivoTecnologiaSA:rnK116*
- KEYBOARD_KEY_76=f21 # Fn+F1 toggle touchpad
+ KEYBOARD_KEY_76=touchpad_toggle # Fn+F1 toggle touchpad
# Positivo (N14NPE-N, N15NPE-N)
evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:svnPositivo*:pn*:pvr*:rvnPositivo*:rnN1[45]NPE-N*
- KEYBOARD_KEY_76=f21 # Fn+F1 toggle touchpad
+ KEYBOARD_KEY_76=touchpad_toggle # Fn+F1 toggle touchpad
KEYBOARD_KEY_dd=search
# Positivo (N15EPE, N14EPE)
evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:svnPositivo*:pn*:pvr*:rvnPositivo*:rnN1[45]EPE*
- KEYBOARD_KEY_76=f21 # Fn+F1 toggle touchpad
+ KEYBOARD_KEY_76=touchpad_toggle # Fn+F1 toggle touchpad
KEYBOARD_KEY_6e=search
# Positivo (CG15D)
evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:bvr*:svnPositivoTecnologiaSA:pn*:pvr*:rvn*:rnCG15D*
# Positivo Motion (N14AP7, N14DP6, N14DP7, N14DP7-V2, N14DP9, N14JP6, N14KP6)
evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:bvr*:svnPositivoTecnologiaSA:pn*:pvr*:rvn*:rnN14[ADJK]P*
- KEYBOARD_KEY_76=f21 # Fn+f2 toggle touchpad
+ KEYBOARD_KEY_76=touchpad_toggle # Fn+f2 toggle touchpad
KEYBOARD_KEY_67=prog1 # Programmable button
KEYBOARD_KEY_68=prog2 # Programmable button
KEYBOARD_KEY_69=prog3 # Programmable button
@@ -2282,7 +2282,7 @@ evdev:name:SINO WEALTH USB KEYBOARD:dmi:bvn*:bvr*:svnPositivoInformaticaSA:pn*:p
evdev:name:SIPODEV USB Composite Device:dmi:bvn*:bvr*:br*:svnPositivoTecnologiaSA:pn*:pvr*:rvn*:rnN14EP6*
# Positivo Motion (CW14Q01P) (CW14Q01P-V2)
evdev:name:SIPODEV USB Composite Device:dmi:bvn*:bvr*:svnPositivoTecnologiaSA:pn*:pvr*:rvn*:rnCW14Q01P*
- KEYBOARD_KEY_70073=f21 # Fn+f2 toggle touchpad
+ KEYBOARD_KEY_70073=touchpad_toggle # Fn+f2 toggle touchpad
KEYBOARD_KEY_7006b=prog1 # Programmable button
KEYBOARD_KEY_7006c=prog2 # Programmable button
KEYBOARD_KEY_7006d=prog3 # Programmable button
@@ -2293,7 +2293,7 @@ evdev:name:SIPODEV USB Composite Device:dmi:bvn*:bvr*:svnPositivoTecnologiaSA:pn
###########################################################
# Multilaser Ultra (UL154)
evdev:name:AT Translated Set 2 keyboard:dmi:bvn*bvr*:svnMultilaserIndustrial:pn*:pvr*:rvn*:rnUL154*
- KEYBOARD_KEY_76=f21 # Fn+f2 toggle touchpad
+ KEYBOARD_KEY_76=touchpad_toggle # Fn+f2 toggle touchpad
###########################################################
# Other

View File

@ -0,0 +1,171 @@
From 2d3ad001325d120ad5435f450f9ebb4f843eb74d Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Mon, 9 Sep 2024 16:12:44 +0200
Subject: [PATCH] =?UTF-8?q?hwdb:=20f22=20=E2=86=92=20touchpad=5Fon?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
(cherry picked from commit 7b649a12baa6e3bb7187fd211948d92b0949e4bf)
Resolves: RHEL-72697
---
hwdb.d/60-keyboard.hwdb | 34 +++++++++++++++++-----------------
1 file changed, 17 insertions(+), 17 deletions(-)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index df578276b2..c3b4a6bddc 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -116,7 +116,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svneMachines:pneMachines*E725:*
KEYBOARD_KEY_d9=brightnessup # Fn+Right
KEYBOARD_KEY_ee=brightnessup # Fn+Right
KEYBOARD_KEY_ef=brightnessdown # Fn+Left
- KEYBOARD_KEY_f1=f22 # Fn+F7 Touchpad toggle (off-to-on)
+ KEYBOARD_KEY_f1=touchpad_on # Fn+F7 Touchpad toggle (off-to-on)
KEYBOARD_KEY_f2=f23 # Fn+F7 Touchpad toggle (on-to-off)
KEYBOARD_KEY_f3=prog2 # "P2" programmable button
KEYBOARD_KEY_f4=prog1 # "P1" programmable button
@@ -666,7 +666,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*[pP][aA][vV][iI][lL][iI][oO
KEYBOARD_KEY_88=media # FIXME: quick play
KEYBOARD_KEY_b7=print
KEYBOARD_KEY_d8=!f23 # touchpad off
- KEYBOARD_KEY_d9=!f22 # touchpad on
+ KEYBOARD_KEY_d9=!touchpad_on # touchpad on
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHP*Pavilion*dv7*Notebook*PC:*
KEYBOARD_KEY_b7=print
@@ -733,7 +733,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*2510p*:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*2530p*:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHP*G60*Notebook*PC:*
KEYBOARD_KEY_d8=!f23 # touchpad off
- KEYBOARD_KEY_d9=!f22 # touchpad on
+ KEYBOARD_KEY_d9=!touchpad_on # touchpad on
# 2570p
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*2570p*:*
@@ -761,14 +761,14 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*2760p*:*
KEYBOARD_KEY_92=brightnessdown
KEYBOARD_KEY_97=brightnessup
KEYBOARD_KEY_d8=!f23 # touchpad off
- KEYBOARD_KEY_d9=!f22 # touchpad on
+ KEYBOARD_KEY_d9=!touchpad_on # touchpad on
KEYBOARD_KEY_b3=brightness_auto # Auto brightness
# TX2
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*[tT][xX]2*:*
KEYBOARD_KEY_c2=media
KEYBOARD_KEY_d8=!f23 # Toggle touchpad button on tx2 (OFF)
- KEYBOARD_KEY_d9=!f22 # Toggle touchpad button on tx2 (ON)
+ KEYBOARD_KEY_d9=!touchpad_on # Toggle touchpad button on tx2 (ON)
# Presario 2100
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnPresario*2100*:*
@@ -794,7 +794,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHP*EliteBook*8460p:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHDX9494NR:*
KEYBOARD_KEY_b2=www # Fn+F3
KEYBOARD_KEY_d8=!f23 # touchpad off
- KEYBOARD_KEY_d9=!f22 # touchpad on
+ KEYBOARD_KEY_d9=!touchpad_on # touchpad on
# HP EliteBook 725 G2
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHPLicrice:*
@@ -837,7 +837,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP:pnHPZBookStudioG4:*
# HP EliteBook Folio 1040 G2
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHPEliteBookFolio1040G2:*
KEYBOARD_KEY_d8=!f23 # touchpad off
- KEYBOARD_KEY_d9=!f22 # touchpad on
+ KEYBOARD_KEY_d9=!touchpad_on # touchpad on
# HP EliteBook Folio G1
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP:pnHPEliteBookFolioG1:*
@@ -876,7 +876,7 @@ evdev:atkbd:dmi:bvn*:bvr*:svnHP*:pnHP*ProBook*455*G5*:*
# HP ProBook 11G2
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPProBook11G2*:pvr*
KEYBOARD_KEY_d8=!f23 # Fn+F2: touchpad off
- KEYBOARD_KEY_d9=!f22 # Fn+F2: touchpad on
+ KEYBOARD_KEY_d9=!touchpad_on # Fn+F2: touchpad on
# HP mt44 Mobile Thin Client
evdev:atkbd:dmi:bvn*:bvr*:svnHP*:pnHP*mt44*Mobile*Thin*Client*:*
@@ -1112,7 +1112,7 @@ evdev:name:Ideapad extra buttons:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:*
KEYBOARD_KEY_0d=rfkill # airplane mode switch (toggle all wireless devices)
KEYBOARD_KEY_08=micmute
KEYBOARD_KEY_42=f23
- KEYBOARD_KEY_43=f22
+ KEYBOARD_KEY_43=touchpad_on
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*IdeaPad*Y550*:pvr*
KEYBOARD_KEY_95=media
@@ -1596,7 +1596,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn*Modern*:*
KEYBOARD_KEY_98=unknown # Lid open
evdev:name:MSI Laptop hotkeys:dmi:bvn*:bvr*:bd*:svn*:pnM[iI][cC][rR][oO]-S[tT][aA][rR]*:*
- KEYBOARD_KEY_0213=f22
+ KEYBOARD_KEY_0213=touchpad_on
KEYBOARD_KEY_0214=f23
# MSI Claw
@@ -1848,7 +1848,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*:*
KEYBOARD_KEY_b4=!wlan # Fn+F9 (X60P)
KEYBOARD_KEY_c5=!prog3 # Fn+F8 switch power mode (battery/dynamic/performance)
KEYBOARD_KEY_d5=!wlan # Fn+F12 wlan/airplane switch
- KEYBOARD_KEY_f7=!f22 # Fn+F10 Touchpad on
+ KEYBOARD_KEY_f7=!touchpad_on # Fn+F10 Touchpad on
KEYBOARD_KEY_f9=!f23 # Fn+F10 Touchpad off
# Series 3
@@ -1862,7 +1862,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*355V[45]*:pvr*
KEYBOARD_KEY_89=!brightnessdown # Fn+F2 brightness down
KEYBOARD_KEY_88=!brightnessup # Fn+F3 brightness up
KEYBOARD_KEY_82=!switchvideomode # Fn+F4 display toggle
- KEYBOARD_KEY_f7=!f22 # Fn+F5 touchpad on
+ KEYBOARD_KEY_f7=!touchpad_on # Fn+F5 touchpad on
KEYBOARD_KEY_f9=!f23 # Fn+F5 touchpad off
KEYBOARD_KEY_a0=!mute # Fn+F6 mute
KEYBOARD_KEY_ae=!volumedown # Fn+F7 volume down
@@ -1938,7 +1938,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pnSQ1US:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*SX20S*:*
KEYBOARD_KEY_74=mute
KEYBOARD_KEY_75=mute
- KEYBOARD_KEY_77=f22 # Touchpad on
+ KEYBOARD_KEY_77=touchpad_on # Touchpad on
KEYBOARD_KEY_79=f23 # Touchpad off
evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*700T*:*
@@ -2038,7 +2038,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnSatellite*A110:*
KEYBOARD_KEY_92=stop
KEYBOARD_KEY_93=www
KEYBOARD_KEY_94=media
- KEYBOARD_KEY_9e=f22 # Touchpad on
+ KEYBOARD_KEY_9e=touchpad_on # Touchpad on
KEYBOARD_KEY_9f=f23 # Touchpad off
KEYBOARD_KEY_b9=nextsong
KEYBOARD_KEY_d9=brightnessup
@@ -2052,7 +2052,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnSatellite*M30X:*
KEYBOARD_KEY_d9=brightnessup
KEYBOARD_KEY_ee=screenlock
KEYBOARD_KEY_93=media
- KEYBOARD_KEY_9e=f22 # touchpad enable
+ KEYBOARD_KEY_9e=touchpad_on # touchpad enable
KEYBOARD_KEY_9f=f23 # touchpad disable
# Satellite P75-A
@@ -2134,7 +2134,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnZepto:pnZnote:*
KEYBOARD_KEY_95=brightnessdown # Fn+F4 Brightness Down
KEYBOARD_KEY_91=brightnessup # Fn+F5 Brightness Up
KEYBOARD_KEY_a5=f23 # Fn+F6 Disable Touchpad
- KEYBOARD_KEY_a6=f22 # Fn+F6 Enable Touchpad
+ KEYBOARD_KEY_a6=touchpad_on # Fn+F6 Enable Touchpad
KEYBOARD_KEY_a7=bluetooth # Fn+F10 Enable Bluetooth
KEYBOARD_KEY_a9=bluetooth # Fn+F10 Disable Bluetooth
KEYBOARD_KEY_f1=wlan # RF Switch Off
@@ -2239,7 +2239,7 @@ evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:bvr*:bd*:svnPositivoBahia-VAIO:
# VAIO VJFH52
evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:bvr*:bd*:svnPositivoBahia-VAIO:pnVJFH52F11X*:pvr*:*
KEYBOARD_KEY_f7=f23 # Fn+F1 toggle touchpad off
- KEYBOARD_KEY_f8=f22 # Fn+F1 toggle touchpad on
+ KEYBOARD_KEY_f8=touchpad_on # Fn+F1 toggle touchpad on
###########################################################
# Positivo

View File

@ -0,0 +1,180 @@
From 9348832fc2aa4359cab88bd90f1d1b358fcf0821 Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Mon, 9 Sep 2024 16:14:11 +0200
Subject: [PATCH] =?UTF-8?q?hwdb:=20f23=20=E2=86=92=20touchpad=5Foff?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
(cherry picked from commit 74cbefe1cd162cb70aea7828e1e8cee7bf27218c)
Resolves: RHEL-72697
---
hwdb.d/60-keyboard.hwdb | 36 ++++++++++++++++++------------------
1 file changed, 18 insertions(+), 18 deletions(-)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index c3b4a6bddc..43a3232171 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -117,7 +117,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svneMachines:pneMachines*E725:*
KEYBOARD_KEY_ee=brightnessup # Fn+Right
KEYBOARD_KEY_ef=brightnessdown # Fn+Left
KEYBOARD_KEY_f1=touchpad_on # Fn+F7 Touchpad toggle (off-to-on)
- KEYBOARD_KEY_f2=f23 # Fn+F7 Touchpad toggle (on-to-off)
+ KEYBOARD_KEY_f2=touchpad_off # Fn+F7 Touchpad toggle (on-to-off)
KEYBOARD_KEY_f3=prog2 # "P2" programmable button
KEYBOARD_KEY_f4=prog1 # "P1" programmable button
KEYBOARD_KEY_f5=presentation
@@ -665,7 +665,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*[tT][aA][bB][lL][eE][tT]*:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*[pP][aA][vV][iI][lL][iI][oO][nN]*:*
KEYBOARD_KEY_88=media # FIXME: quick play
KEYBOARD_KEY_b7=print
- KEYBOARD_KEY_d8=!f23 # touchpad off
+ KEYBOARD_KEY_d8=!touchpad_off # touchpad off
KEYBOARD_KEY_d9=!touchpad_on # touchpad on
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHP*Pavilion*dv7*Notebook*PC:*
@@ -676,7 +676,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHP*Pavilion*dv7*Notebook*PC:
# Pavilion 13 x360 (Tablet mode and SYSRQ key)
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*[pP][aA][vV][iI][lL][iI][oO][nN]*13*x360*:*
- KEYBOARD_KEY_d7=!f23 # touchpad off
+ KEYBOARD_KEY_d7=!touchpad_off # touchpad off
KEYBOARD_KEY_d9=unknown
KEYBOARD_KEY_d2=sysrq # Fn+Print = SYSRQ
@@ -732,7 +732,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*Presario*CQ*:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*2510p*:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*2530p*:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHP*G60*Notebook*PC:*
- KEYBOARD_KEY_d8=!f23 # touchpad off
+ KEYBOARD_KEY_d8=!touchpad_off # touchpad off
KEYBOARD_KEY_d9=!touchpad_on # touchpad on
# 2570p
@@ -760,14 +760,14 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*2760p*:*
KEYBOARD_KEY_87=volumedown
KEYBOARD_KEY_92=brightnessdown
KEYBOARD_KEY_97=brightnessup
- KEYBOARD_KEY_d8=!f23 # touchpad off
+ KEYBOARD_KEY_d8=!touchpad_off # touchpad off
KEYBOARD_KEY_d9=!touchpad_on # touchpad on
KEYBOARD_KEY_b3=brightness_auto # Auto brightness
# TX2
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*[tT][xX]2*:*
KEYBOARD_KEY_c2=media
- KEYBOARD_KEY_d8=!f23 # Toggle touchpad button on tx2 (OFF)
+ KEYBOARD_KEY_d8=!touchpad_off # Toggle touchpad button on tx2 (OFF)
KEYBOARD_KEY_d9=!touchpad_on # Toggle touchpad button on tx2 (ON)
# Presario 2100
@@ -793,7 +793,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHP*EliteBook*8460p:*
# HDX9494nr
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHDX9494NR:*
KEYBOARD_KEY_b2=www # Fn+F3
- KEYBOARD_KEY_d8=!f23 # touchpad off
+ KEYBOARD_KEY_d8=!touchpad_off # touchpad off
KEYBOARD_KEY_d9=!touchpad_on # touchpad on
# HP EliteBook 725 G2
@@ -836,7 +836,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP:pnHPZBookStudioG4:*
# HP EliteBook Folio 1040 G2
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHPEliteBookFolio1040G2:*
- KEYBOARD_KEY_d8=!f23 # touchpad off
+ KEYBOARD_KEY_d8=!touchpad_off # touchpad off
KEYBOARD_KEY_d9=!touchpad_on # touchpad on
# HP EliteBook Folio G1
@@ -875,7 +875,7 @@ evdev:atkbd:dmi:bvn*:bvr*:svnHP*:pnHP*ProBook*455*G5*:*
# HP ProBook 11G2
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPProBook11G2*:pvr*
- KEYBOARD_KEY_d8=!f23 # Fn+F2: touchpad off
+ KEYBOARD_KEY_d8=!touchpad_off # Fn+F2: touchpad off
KEYBOARD_KEY_d9=!touchpad_on # Fn+F2: touchpad on
# HP mt44 Mobile Thin Client
@@ -1111,7 +1111,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnIBM*:pn18666TU:*
evdev:name:Ideapad extra buttons:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:*
KEYBOARD_KEY_0d=rfkill # airplane mode switch (toggle all wireless devices)
KEYBOARD_KEY_08=micmute
- KEYBOARD_KEY_42=f23
+ KEYBOARD_KEY_42=touchpad_off
KEYBOARD_KEY_43=touchpad_on
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*IdeaPad*Y550*:pvr*
@@ -1597,7 +1597,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn*Modern*:*
evdev:name:MSI Laptop hotkeys:dmi:bvn*:bvr*:bd*:svn*:pnM[iI][cC][rR][oO]-S[tT][aA][rR]*:*
KEYBOARD_KEY_0213=touchpad_on
- KEYBOARD_KEY_0214=f23
+ KEYBOARD_KEY_0214=touchpad_off
# MSI Claw
evdev:name:AT Translated Set 2 keyboard:dmi:*:svnMicro-StarInternationalCo.,Ltd.:pnClawA1M:*
@@ -1849,7 +1849,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*:*
KEYBOARD_KEY_c5=!prog3 # Fn+F8 switch power mode (battery/dynamic/performance)
KEYBOARD_KEY_d5=!wlan # Fn+F12 wlan/airplane switch
KEYBOARD_KEY_f7=!touchpad_on # Fn+F10 Touchpad on
- KEYBOARD_KEY_f9=!f23 # Fn+F10 Touchpad off
+ KEYBOARD_KEY_f9=!touchpad_off # Fn+F10 Touchpad off
# Series 3
evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*300E[457]*:*
@@ -1863,7 +1863,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*355V[45]*:pvr*
KEYBOARD_KEY_88=!brightnessup # Fn+F3 brightness up
KEYBOARD_KEY_82=!switchvideomode # Fn+F4 display toggle
KEYBOARD_KEY_f7=!touchpad_on # Fn+F5 touchpad on
- KEYBOARD_KEY_f9=!f23 # Fn+F5 touchpad off
+ KEYBOARD_KEY_f9=!touchpad_off # Fn+F5 touchpad off
KEYBOARD_KEY_a0=!mute # Fn+F6 mute
KEYBOARD_KEY_ae=!volumedown # Fn+F7 volume down
KEYBOARD_KEY_b0=!volumeup # Fn+F8 volume up
@@ -1939,7 +1939,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*SX20S*:*
KEYBOARD_KEY_74=mute
KEYBOARD_KEY_75=mute
KEYBOARD_KEY_77=touchpad_on # Touchpad on
- KEYBOARD_KEY_79=f23 # Touchpad off
+ KEYBOARD_KEY_79=touchpad_off # Touchpad off
evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*700T*:*
KEYBOARD_KEY_ad=leftmeta
@@ -2039,7 +2039,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnSatellite*A110:*
KEYBOARD_KEY_93=www
KEYBOARD_KEY_94=media
KEYBOARD_KEY_9e=touchpad_on # Touchpad on
- KEYBOARD_KEY_9f=f23 # Touchpad off
+ KEYBOARD_KEY_9f=touchpad_off # Touchpad off
KEYBOARD_KEY_b9=nextsong
KEYBOARD_KEY_d9=brightnessup
KEYBOARD_KEY_ee=screenlock
@@ -2053,7 +2053,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnSatellite*M30X:*
KEYBOARD_KEY_ee=screenlock
KEYBOARD_KEY_93=media
KEYBOARD_KEY_9e=touchpad_on # touchpad enable
- KEYBOARD_KEY_9f=f23 # touchpad disable
+ KEYBOARD_KEY_9f=touchpad_off # touchpad disable
# Satellite P75-A
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnSatellite*P75-A:*
@@ -2133,7 +2133,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnZepto:pnZnote:*
KEYBOARD_KEY_93=switchvideomode # Fn+F3 Toggle Video Output
KEYBOARD_KEY_95=brightnessdown # Fn+F4 Brightness Down
KEYBOARD_KEY_91=brightnessup # Fn+F5 Brightness Up
- KEYBOARD_KEY_a5=f23 # Fn+F6 Disable Touchpad
+ KEYBOARD_KEY_a5=touchpad_off # Fn+F6 Disable Touchpad
KEYBOARD_KEY_a6=touchpad_on # Fn+F6 Enable Touchpad
KEYBOARD_KEY_a7=bluetooth # Fn+F10 Enable Bluetooth
KEYBOARD_KEY_a9=bluetooth # Fn+F10 Disable Bluetooth
@@ -2238,7 +2238,7 @@ evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:bvr*:bd*:svnPositivoBahia-VAIO:
# VAIO VJFH52
evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:bvr*:bd*:svnPositivoBahia-VAIO:pnVJFH52F11X*:pvr*:*
- KEYBOARD_KEY_f7=f23 # Fn+F1 toggle touchpad off
+ KEYBOARD_KEY_f7=touchpad_off # Fn+F1 toggle touchpad off
KEYBOARD_KEY_f8=touchpad_on # Fn+F1 toggle touchpad on
###########################################################

View File

@ -0,0 +1,109 @@
From b355747f522174cd67995f7d2cd7668482c72193 Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Wed, 11 Dec 2024 15:23:04 +0100
Subject: [PATCH] hwdb: drop some now redundant mappings
According to @jwrdegoede these are now redundant, since the kernel
drivers map these correctly already now that the f20/f21/f23 tweaks are
gone.
Hence, let's just drop this.
All credit to Hans.
As per: https://github.com/systemd/systemd/pull/34325#pullrequestreview-2495482652
(cherry picked from commit f5ddba50f5b6282e27d530ff4b479ff1928edf0a)
Resolves: RHEL-72697
---
hwdb.d/60-keyboard.hwdb | 34 ----------------------------------
1 file changed, 34 deletions(-)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index 43a3232171..1566fd006e 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -125,10 +125,6 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svneMachines:pneMachines*E725:*
KEYBOARD_KEY_f8=fn
KEYBOARD_KEY_f9=prog1 # Launch NTI shadow
-# Acer kernel driver
-evdev:name:Acer WMI hotkeys:dmi:bvn*:bvr*:bd*:svn*:pnAcer*:*
- KEYBOARD_KEY_82=touchpad_toggle # Touchpad toggle
-
# Aspire models
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspire*:*
KEYBOARD_KEY_84=bluetooth # sent when bluetooth module missing, and key pressed
@@ -279,16 +275,6 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnASUS:pn*:*
KEYBOARD_KEY_ee=volumedown
KEYBOARD_KEY_ef=mute
-evdev:name:Asus WMI hotkeys:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:*
-evdev:name:Eee PC WMI hotkeys:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:*
-evdev:name:Asus Laptop extra buttons:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:*
- KEYBOARD_KEY_6b=touchpad_toggle # Touchpad Toggle
- KEYBOARD_KEY_7c=micmute
-
-# USB keyboard in Asus FX503VD
-evdev:input:b0003v0B05p1869*
- KEYBOARD_KEY_ff31007c=micmute
-
# Asus TF103C misses the home button in its PNP0C40 GPIO resources
# causing the volume-button mappings to be off by one, correct this
evdev:name:gpio-keys:phys:gpio-keys/input0:ev:3:dmi:*:svnASUSTeKCOMPUTERINC.:pnTF103C*:*
@@ -935,10 +921,6 @@ evdev:input:b0005v03F0p854Ae044C*
# Huawei
##########################################################
-# Huawei WMI hotkeys driver
-evdev:name:Huawei WMI hotkeys:dmi:bvn*:bvr*:bd*:svnHUAWEI:*
- KEYBOARD_KEY_287=micmute # Microphone mute button
-
# Huawei MACH-WX9 and EUL-WX9
evdev:atkbd:dmi:bvn*:bvr*:svnHUAWEI*:pnMACH-WX9:*
evdev:atkbd:dmi:bvn*:bvr*:svnHUAWEI*:pnEUL-WX9:*
@@ -1030,7 +1012,6 @@ evdev:name:ThinkPad Extra Buttons:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:*
KEYBOARD_KEY_15=volumedown
KEYBOARD_KEY_16=mute
KEYBOARD_KEY_17=prog1
- KEYBOARD_KEY_1a=micmute # Microphone mute button
KEYBOARD_KEY_45=bookmarks
KEYBOARD_KEY_46=selective_screenshot # Fn + PrtSc, on Windows: Snipping tool
KEYBOARD_KEY_4a=prog3 # Fn + Right shift, on Windows: No idea
@@ -1110,9 +1091,6 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnIBM*:pn18666TU:*
# IdeaPad
evdev:name:Ideapad extra buttons:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:*
KEYBOARD_KEY_0d=rfkill # airplane mode switch (toggle all wireless devices)
- KEYBOARD_KEY_08=micmute
- KEYBOARD_KEY_42=touchpad_off
- KEYBOARD_KEY_43=touchpad_on
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*IdeaPad*Y550*:pvr*
KEYBOARD_KEY_95=media
@@ -1595,10 +1573,6 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn*Modern*:*
KEYBOARD_KEY_97=unknown # Lid close
KEYBOARD_KEY_98=unknown # Lid open
-evdev:name:MSI Laptop hotkeys:dmi:bvn*:bvr*:bd*:svn*:pnM[iI][cC][rR][oO]-S[tT][aA][rR]*:*
- KEYBOARD_KEY_0213=touchpad_on
- KEYBOARD_KEY_0214=touchpad_off
-
# MSI Claw
evdev:name:AT Translated Set 2 keyboard:dmi:*:svnMicro-StarInternationalCo.,Ltd.:pnClawA1M:*
KEYBOARD_KEY_b9=f15 # Right Face Button
@@ -1777,14 +1751,6 @@ evdev:input:b0003v258Ap001E*
KEYBOARD_KEY_700a6=brightnessup
KEYBOARD_KEY_70066=sleep
-###########################################################
-# Plantronics
-###########################################################
-
-# Plantronics .Audio 626 DSP
-evdev:input:b0003v047FpC006*
- KEYBOARD_KEY_b002f=micmute # Microphone mute button
-
###########################################################
# Purism
###########################################################

View File

@ -0,0 +1,25 @@
From bcd0ba3a3856250b2c2c0a6900cfec960dccb1c9 Mon Sep 17 00:00:00 2001
From: Tim Crawford <tcrawford@system76.com>
Date: Fri, 3 Jan 2025 11:32:15 -0700
Subject: [PATCH] hwdb: Add micmute for System76
Signed-off-by: Tim Crawford <tcrawford@system76.com>
(cherry picked from commit 83154c89952e1e5cb0c2460fa0e1479cf94336a0)
Resolves: RHEL-72697
---
hwdb.d/60-keyboard.hwdb | 1 +
1 file changed, 1 insertion(+)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index 1566fd006e..4a738d2e15 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -1976,6 +1976,7 @@ evdev:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pnVPC*:*
###########################################################
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnSystem76*:pn*:*
+ KEYBOARD_KEY_81=micmute # Mic mute
KEYBOARD_KEY_f7=touchpad_toggle # Touchpad toggle
KEYBOARD_KEY_f8=touchpad_toggle # Touchpad toggle

View File

@ -0,0 +1,30 @@
From 052508f86198baf4fd3cdaa598fa10d31c59bd1a Mon Sep 17 00:00:00 2001
From: Tim Crawford <tcrawford@system76.com>
Date: Fri, 3 Jan 2025 11:43:30 -0700
Subject: [PATCH] hwdb: Add newer System76 Pangolins
Signed-off-by: Tim Crawford <tcrawford@system76.com>
(cherry picked from commit bd07786b905ce9e390e7f9ca8826dbe7357e84b1)
Resolves: RHEL-72697
---
hwdb.d/60-keyboard.hwdb | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index 4a738d2e15..f31122ec22 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -1980,8 +1980,11 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnSystem76*:pn*:*
KEYBOARD_KEY_f7=touchpad_toggle # Touchpad toggle
KEYBOARD_KEY_f8=touchpad_toggle # Touchpad toggle
-# Pangolin 12
+# Pangolin
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnSystem76*:pnPangolin*:pvrpang12*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnSystem76*:pnPangolin*:pvrpang13*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnSystem76*:pnPangolin*:pvrpang14*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnSystem76*:pnPangolin*:pvrpang15*
KEYBOARD_KEY_76=touchpad_toggle # Touchpad toggle
###########################################################

View File

@ -0,0 +1,29 @@
From ac89647888650c447c7d24a70dcf79aae7eb4294 Mon Sep 17 00:00:00 2001
From: Arnaudv6 <2178699-Arnaudv6@users.noreply.gitlab.com>
Date: Mon, 6 Jan 2025 19:02:32 +0100
Subject: [PATCH] hwdb: WALTOP International Corp. Slim Tablet Stylus
(cherry picked from commit a7cdd7fe08704dad04486c1c51a5d38dd4fcddad)
Resolves: RHEL-72697
---
hwdb.d/60-evdev.hwdb | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/hwdb.d/60-evdev.hwdb b/hwdb.d/60-evdev.hwdb
index 65170ae1ce..db9aa7c307 100644
--- a/hwdb.d/60-evdev.hwdb
+++ b/hwdb.d/60-evdev.hwdb
@@ -942,6 +942,12 @@ evdev:input:b0003v172Fp0031*
EVDEV_ABS_00=0:10000:400
EVDEV_ABS_01=0:6250:400
+# WALTOP International Corp. Slim Tablet Stylus
+evdev:input:b0003v172Fp0034*
+ EVDEV_ABS_00=0:20000:80
+ EVDEV_ABS_01=0:12500:80
+ EVDEV_ABS_24=0:1023:500
+
# WALTOP International Corp. Graphics Tablet
evdev:input:b0003v172Fp0047*
EVDEV_ABS_00=0:20000:80

View File

@ -0,0 +1,30 @@
From 77341a93d6cf1b49c1924fd489868e1befe85387 Mon Sep 17 00:00:00 2001
From: honjow <honjow311@gmail.com>
Date: Mon, 27 Jan 2025 03:22:19 +0800
Subject: [PATCH] hwdb: add MSI Claw 8 AT Keyboard Scancodes (#36180)
This change maps the right face button to F15 and the left one to F16.
Similar to #33669.
(cherry picked from commit 385ba2a3a34d38167a6493d523b38114629f23a4)
Resolves: RHEL-72697
---
hwdb.d/60-keyboard.hwdb | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index f31122ec22..f9cdb26be5 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -1573,8 +1573,9 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn*Modern*:*
KEYBOARD_KEY_97=unknown # Lid close
KEYBOARD_KEY_98=unknown # Lid open
-# MSI Claw
+# MSI Claw, MSI Claw 8
evdev:name:AT Translated Set 2 keyboard:dmi:*:svnMicro-StarInternationalCo.,Ltd.:pnClawA1M:*
+evdev:name:AT Translated Set 2 keyboard:dmi:*:svnMicro-StarInternationalCo.,Ltd.:pnClaw8AI+A2VM:*
KEYBOARD_KEY_b9=f15 # Right Face Button
KEYBOARD_KEY_ba=f16 # Left Face Button

View File

@ -0,0 +1,80 @@
From 6bcf12036819f2d7456ebd95eeb7642579cf089a Mon Sep 17 00:00:00 2001
From: 16mc1r <16mc1r@users.noreply.github.com>
Date: Mon, 27 Jan 2025 14:01:05 +0100
Subject: [PATCH] Adds asus T103HAF rotation matrix to 60-sensor.hwdb (#36177)
Rotation Matrix to enable correct auto-rotation with
[iio-sensor-proxy](https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/)
on an Asus Transformer Mini T103HAF with iio-sensor `HID-SENSOR-200073`.
- Tested on KDE Plasma Mobile (Fedora 41), details see inxi report.
Device Details:
- low powered 2in1 convertible with 10.1" screen size, 4core atom cpu
and 4gb ram. Usefull as x86 based tablet with stylus for annotation and
reading.
- [official asus website for the
device](https://www.asus.com/us/laptops/for-home/everyday-use/asus-transformer-mini-t103/)
```sh
System:
Host: ------ Kernel: 6.12.10-200.fc41.x86_64 arch: x86_64 bits: 64
Console: pty pts/3 Distro: Fedora Linux 41 (KDE Plasma Mobile)
Machine:
Type: Detachable System: ASUSTeK product: T103HAF v: 1.0 serial: J1N0CX212087050
Mobo: ASUSTeK model: T103HAF v: 1.0 serial: ---------- UEFI: American Megatrends
v: T103HAF.306 date: 12/05/2017
CPU:
Info: quad core model: Intel Atom x5-Z8350 bits: 64
Info:
Memory: total: 4 GiB
```
```sh
P: /devices/pci0000:00/0000:00:0a.0/{33AECD58-B679-4E54-9BD9-A04D34F0C226}/001F:8086:0001.0004/HID-SENSOR-200073.3.auto/iio:device0
M: iio:device0
R: 0
U: iio
T: iio_device
D: c 234:0
N: iio:device0
L: 0
E: DEVPATH=/devices/pci0000:00/0000:00:0a.0/{33AECD58-B679-4E54-9BD9-A04D34F0C226}/001F:8086:0001.0004/HID-SENSOR-200073.3.auto/iio:device0
E: DEVNAME=/dev/iio:device0
E: DEVTYPE=iio_device
E: MAJOR=234
E: MINOR=0
E: SUBSYSTEM=iio
E: USEC_INITIALIZED=18119681
E: ACCEL_MOUNT_MATRIX=0, -1, 0; 1, 0, 0; 0, 0, -1
E: IIO_SENSOR_PROXY_TYPE=iio-poll-accel iio-buffer-accel
E: SYSTEMD_WANTS=iio-sensor-proxy.service
E: TAGS=:systemd:
E: CURRENT_TAGS=:systemd:
```
- as requested in
[60-sensor.hwdb](https://github.com/systemd/systemd/blob/ba0266b376d7cc5205d8a4a3d999aec13c24fe5d/hwdb.d/60-sensor.hwdb#L35)
-
[udevadm-info_103HAF.txt](https://github.com/user-attachments/files/18550448/udevadm-info_103HAF.txt)
(cherry picked from commit 61c176744e7ec78b0efc40f8eee7f462539f7464)
Resolves: RHEL-72697
---
hwdb.d/60-sensor.hwdb | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/hwdb.d/60-sensor.hwdb b/hwdb.d/60-sensor.hwdb
index 8d6a670900..26c292a4d7 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -156,6 +156,10 @@ sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:*pnT100TAS:*
sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:pnT200TA:*
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
+# Asus Transformer Mini T103HAF
+sensor:modalias:platform:HID-SENSOR-200073*:dmi:*svn*ASUSTeK*:pnT103HAF:*
+ ACCEL_MOUNT_MATRIX=0, -1, 0; 1, 0, 0; 0, 0, -1
+
sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:*pnTP201SA:*
sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:pn*E205SA:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1

View File

@ -0,0 +1,31 @@
From fd5fec13df0476a8a0b1640a700020bd4d194db0 Mon Sep 17 00:00:00 2001
From: Trollimpo <85258600+Trollimpo@users.noreply.github.com>
Date: Wed, 5 Feb 2025 21:44:14 -0300
Subject: [PATCH] hwdb: fix screen rotation for EXO Wings 2in1 w1125 (#36283)
(cherry picked from commit 5e12894f053e7a3407a929d8d37f05cbd2b71a18)
Resolves: RHEL-72697
---
hwdb.d/60-sensor.hwdb | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/hwdb.d/60-sensor.hwdb b/hwdb.d/60-sensor.hwdb
index 26c292a4d7..869f9221a4 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -512,6 +512,14 @@ sensor:modalias:acpi:SMO8500*:dmi:*:svnEstar:pneSTARBEAUTYHDIntelQuadcore:*
sensor:modalias:acpi:KIOX000A*:dmi:*:svnEVE*:pnEveV:*
ACCEL_MOUNT_MATRIX=0, 1, 0; -1, 0, 0; 0, 0, 1
+#########################################
+# Exo
+#########################################
+
+# EXO Wings 2in1 w1125
+sensor:modalias:acpi:SMO8500*:dmi:*:svnEXO*:pnWings:*
+ ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
+
#########################################
# Geo Computers
#########################################

View File

@ -0,0 +1,34 @@
From bc6f9ac8329ac385cd3c08209876e9295a8b7bbf Mon Sep 17 00:00:00 2001
From: Daniil <10421134+Forbear@users.noreply.github.com>
Date: Fri, 7 Feb 2025 10:46:44 +0100
Subject: [PATCH] hwdb: XBox Series Elite controller modalias entry has been
added. (#36305)
Change was requested in response on #36297.
The reason for that change is that XBox Series Elite controller has
exact 4 buttons identified as keyboard key sets.
While it detects using USB connection without any issues, wireless
connection ends with assumption that it's a keyboard.
(cherry picked from commit d7c86fea6b7d7ae3313356e84304392c463fd7e6)
Resolves: RHEL-72697
---
hwdb.d/60-input-id.hwdb | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/hwdb.d/60-input-id.hwdb b/hwdb.d/60-input-id.hwdb
index dfb035de2a..6a53cc3b4c 100644
--- a/hwdb.d/60-input-id.hwdb
+++ b/hwdb.d/60-input-id.hwdb
@@ -55,6 +55,10 @@
id-input:modalias:input:b0003v28bdp0078*
ID_INPUT_TABLET=1
+# XBox Series Elite controller
+id-input:modalias:input:b0005v045Ep0B22e0517*
+ ID_INPUT_JOYSTICK=1
+
# Lite-On Tech IBM USB Travel Keyboard with Ultra Nav Mouse
id-input:modalias:input:b0003v04B3p301Ee0100-e0,1,2,4*
ID_INPUT_POINTINGSTICK=1

View File

@ -0,0 +1,27 @@
From c12a8dcf23bf70724fdb67c33764a784795a8529 Mon Sep 17 00:00:00 2001
From: Matthew Schwartz <matthew.schwartz@linux.dev>
Date: Sat, 8 Feb 2025 12:14:53 -0800
Subject: [PATCH] hwdb: add front button support for MSI Claw 7 AI+ A2VM
(cherry picked from commit 88a0a543144c6e8002a0d582570e171159a5a675)
Resolves: RHEL-72697
---
hwdb.d/60-keyboard.hwdb | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index f9cdb26be5..dc50f1cf8c 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -1573,8 +1573,9 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn*Modern*:*
KEYBOARD_KEY_97=unknown # Lid close
KEYBOARD_KEY_98=unknown # Lid open
-# MSI Claw, MSI Claw 8
+# MSI Claw A1M, MSI Claw 7 AI+ A2VM, MSI Claw 8 AI+ A2VM
evdev:name:AT Translated Set 2 keyboard:dmi:*:svnMicro-StarInternationalCo.,Ltd.:pnClawA1M:*
+evdev:name:AT Translated Set 2 keyboard:dmi:*:svnMicro-StarInternationalCo.,Ltd.:pnClaw7AI+A2VM:*
evdev:name:AT Translated Set 2 keyboard:dmi:*:svnMicro-StarInternationalCo.,Ltd.:pnClaw8AI+A2VM:*
KEYBOARD_KEY_b9=f15 # Right Face Button
KEYBOARD_KEY_ba=f16 # Left Face Button

View File

@ -0,0 +1,90 @@
From 90f9c768313ebf279b82f036b2cd5939fde88f15 Mon Sep 17 00:00:00 2001
From: Enrico Tagliavini <enrico.tagliavini@gmail.com>
Date: Sun, 9 Feb 2025 14:44:46 +0100
Subject: [PATCH] hwdb: add accel orientation and location for the BMAX Y14
The BMAX MaxBook Y14 has 2 acceleromenter sensors, one seems to be in
the display, the other in the base. With the default ACCEL_MOUNT_MATRIX
monitor-sensor would report the display to be rotate of 180 degrees
compared to its real position, i.e. upside down when normal and vice
versa. Left up and right up are also swapped.
Correcting the ACCEL_MOUNT_MATRIX for the display sensor solves the
issue and monitor-sensor reports the correct values.
For the Y13 model the Z axis value was also inverted. For the Y14 to
work correctly, this is not necessary, but I'm not sure how to double
check this.
Sensors info:
P: /devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/i2c-KIOX010A:00/iio:device0
M: iio:device0
R: 0
U: iio
T: iio_device
D: c 237:0
N: iio:device0
L: 0
E: DEVPATH=/devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/i2c-KIOX010A:00/iio:device0
E: SUBSYSTEM=iio
E: DEVNAME=/dev/iio:device0
E: DEVTYPE=iio_device
E: MAJOR=237
E: MINOR=0
E: USEC_INITIALIZED=25931869
E: IIO_SENSOR_PROXY_TYPE=iio-poll-accel iio-buffer-accel
E: SYSTEMD_WANTS=iio-sensor-proxy.service
E: TAGS=:systemd:
E: CURRENT_TAGS=:systemd:
P: /devices/pci0000:00/0000:00:15.3/i2c_designware.3/i2c-3/i2c-KIOX020A:00/iio:device1
M: iio:device1
R: 1
U: iio
T: iio_device
D: c 237:1
N: iio:device1
L: 0
E: DEVPATH=/devices/pci0000:00/0000:00:15.3/i2c_designware.3/i2c-3/i2c-KIOX020A:00/iio:device1
E: SUBSYSTEM=iio
E: DEVNAME=/dev/iio:device1
E: DEVTYPE=iio_device
E: MAJOR=237
E: MINOR=1
E: USEC_INITIALIZED=26000295
E: IIO_SENSOR_PROXY_TYPE=iio-poll-accel iio-buffer-accel
E: SYSTEMD_WANTS=iio-sensor-proxy.service
E: TAGS=:systemd:
E: CURRENT_TAGS=:systemd:
accel-display
acpi:KIOX010A:KIOX010A:
dmi:bvnAmericanMegatrendsInternational,LLC.:bvr5.00_002:bd05/13/2024:br5.27:efr1.1:svnAMI:pnIntel:pvrDefaultstring:rvnAMI:rnIntel:rvrDefaultstring:cvnDefaultstring:ct31:cvrDefaultstring:skuH8Y6:
accel-base
acpi:KIOX020A:KIOX020A:
(cherry picked from commit 1740bbc98b44a5debce667571235418311136a04)
Resolves: RHEL-72697
---
hwdb.d/60-sensor.hwdb | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/hwdb.d/60-sensor.hwdb b/hwdb.d/60-sensor.hwdb
index 869f9221a4..b1e029dc14 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -242,6 +242,11 @@ sensor:modalias:acpi:KIOX010A:*:dmi:*:svnAMI:*:skuH2M6:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, -1, 0; 0, 0, -1
ACCEL_LOCATION=display
+# BMAX MaxBook Y14
+sensor:modalias:acpi:KIOX010A:*:dmi:*:svnAMI:*:skuH8Y6:*
+ ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, -1, 0; 0, 0, 1
+ ACCEL_LOCATION=display
+
#########################################
# BUSH
#########################################

View File

@ -0,0 +1,24 @@
From d8ab7c5a0d3d8b3a82604d7c1abf135050f4957f Mon Sep 17 00:00:00 2001
From: fishears <f1she4rs@gmail.com>
Date: Fri, 14 Feb 2025 13:45:36 +0000
Subject: [PATCH] hwdb.d: add support for Akoya P15645
(cherry picked from commit 8ac7e25aabaaa8f316d6b4d382c49b13fc3a6622)
Resolves: RHEL-72697
---
hwdb.d/60-keyboard.hwdb | 1 +
1 file changed, 1 insertion(+)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index dc50f1cf8c..34e302910a 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -1471,6 +1471,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMAXDATA:pnPro*7000*:*
evdev:atkbd:dmi:bvn*:bvr*:svnMEDION*:pnS3409*:*
evdev:atkbd:dmi:bvn*:bvr*:svnMedion*:pnAkoya*:*
evdev:atkbd:dmi:bvn*:bvr*:svnMedion*:pnP6669*:*
+evdev:atkbd:dmi:bvn*:bvr*:svnMEDION*:pnP15645MD61587*:*
KEYBOARD_KEY_a0=!mute
KEYBOARD_KEY_ae=!volumedown
KEYBOARD_KEY_b0=!volumeup

View File

@ -0,0 +1,73 @@
From 7fba37c3dc73710022ad152899099604e20b331f Mon Sep 17 00:00:00 2001
From: Volodymyr Shkriabets <vshcryabets@gmail.com>
Date: Sat, 15 Feb 2025 00:39:50 +0000
Subject: [PATCH] hwdb.d: add ANP09 Intel n100 tablet sensor configuration
(#36390)
I propose fix for ACCEL_MOUNT_MATRIX for popular on China markets Intel
n100 7" tablet. I can't find any information about manufacturer.
P:
/devices/pci0000:00/0000:00:15.3/i2c_designware.3/i2c-14/i2c-BOSC0200:00
M: i2c-BOSC0200:00
R: 00
J: +i2c:i2c-BOSC0200:00
U: i2c
V: bmc150_accel_i2c
E:
DEVPATH=/devices/pci0000:00/0000:00:15.3/i2c_designware.3/i2c-14/i2c-BOSC0200:00
E: SUBSYSTEM=i2c
E: DRIVER=bmc150_accel_i2c
E: MODALIAS=acpi:BOSC0200:BOSC0200:
E: USEC_INITIALIZED=3546649
E: ID_VENDOR_FROM_DATABASE=BOS
P:
/devices/pci0000:00/0000:00:15.3/i2c_designware.3/i2c-14/i2c-BOSC0200:00/iio:device0
M: iio:device0
R: 0
J: c238:0
U: iio
T: iio_device
D: c 238:0
N: iio:device0
L: 0
E:
DEVPATH=/devices/pci0000:00/0000:00:15.3/i2c_designware.3/i2c-14/i2c-BOSC0200:00/iio:device0
E: SUBSYSTEM=iio
E: DEVNAME=/dev/iio:device0
E: DEVTYPE=iio_device
E: MAJOR=238
E: MINOR=0
E: USEC_INITIALIZED=3556556
E: ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, -1
E: IIO_SENSOR_PROXY_TYPE=iio-poll-accel iio-buffer-accel
E: SYSTEMD_WANTS=iio-sensor-proxy.service
E: TAGS=:systemd:
E: CURRENT_TAGS=:systemd:
DMI tablet string
dmi:bvnAmericanMegatrendsInternational,LLC.:bvrANP09_INTEL001:bd08/16/2024:br5.27:efr0.0:svn:pn:pvrDefaultstring:rvn:rn:rvrDefaultstring:cvnDefaultstring:ct10:cvrDefaultstring:sku:
(cherry picked from commit f6209ca4d79cbdb801a7231cd8e62a4a0925f77a)
Resolves: RHEL-72697
---
hwdb.d/60-sensor.hwdb | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/hwdb.d/60-sensor.hwdb b/hwdb.d/60-sensor.hwdb
index b1e029dc14..7e0e9ed47c 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -1231,3 +1231,10 @@ sensor:modalias:acpi:KIOX000A*:dmi:*:svnWortmann_AG:pnTERRA_PAD_1061:*
#########################################
sensor:modalias:acpi:BMA250E*:dmi:*:svnYOURS:pnY8W81:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
+
+#########################################
+# Unknown manufacturer
+#########################################
+# ANP09 Intel N100 based 7-inch tablet
+sensor:modalias:acpi:BOSC0200*:dmi:bvnAmericanMegatrendsInternational,LLC.:bvrANP09_INTEL001:*
+ ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, -1

View File

@ -0,0 +1,31 @@
From f45096f25ba40b700b14090b6cddaffec3b712ca Mon Sep 17 00:00:00 2001
From: KidGrimes <159489264+KidGrimes@users.noreply.github.com>
Date: Fri, 21 Feb 2025 18:27:53 -0300
Subject: [PATCH] hwdb: add axis range corrections for the Lenovo Yoga Slim 7
14ARE05
(cherry picked from commit 81cb404a92b17a87111eb555792c947934a52b3e)
Resolves: RHEL-72697
---
hwdb.d/60-evdev.hwdb | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/hwdb.d/60-evdev.hwdb b/hwdb.d/60-evdev.hwdb
index db9aa7c307..2e18f71e5b 100644
--- a/hwdb.d/60-evdev.hwdb
+++ b/hwdb.d/60-evdev.hwdb
@@ -772,6 +772,13 @@ evdev:name:ETPS/2 Elantech Touchpad:dmi:*svnLENOVO:*pvrLenovoG580**
EVDEV_ABS_35=-170:2950:24
EVDEV_ABS_36=-591:700:25
+# Lenovo Yoga Slim 7 14ARE05
+evdev:name:ELAN0634:00 04F3:3124 Touchpad:dmi:*svnLENOVO:*pvrYogaSlim714ARE05**
+ EVDEV_ABS_00=::31
+ EVDEV_ABS_01=::30
+ EVDEV_ABS_35=::31
+ EVDEV_ABS_36=::30
+
#########################################
# Microsoft
#########################################

View File

@ -0,0 +1,30 @@
From 5ea19e780cd0556e8224306ee33fa5f07f8dac35 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jaroslav=20=C5=A0karvada?= <jskarvad@redhat.com>
Date: Wed, 26 Feb 2025 23:46:42 +0100
Subject: [PATCH] hwdb: add GOLD WARRIOR SIM PhoenixRC 10411R
Fixes #36522
(cherry picked from commit 9d7b2daef05d782f301dc34b0650dab208c5b98c)
Resolves: RHEL-72697
---
hwdb.d/60-input-id.hwdb | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/hwdb.d/60-input-id.hwdb b/hwdb.d/60-input-id.hwdb
index 6a53cc3b4c..c4c5be112d 100644
--- a/hwdb.d/60-input-id.hwdb
+++ b/hwdb.d/60-input-id.hwdb
@@ -51,6 +51,11 @@
# Sort by brand, model
+# GOLD WARRIOR SIM PhoenixRC 10411R
+id-input:modalias:input:b0003v1781p0898*
+ ID_INPUT_ACCELEROMETER=
+ ID_INPUT_JOYSTICK=1
+
# XP-PEN STAR 06
id-input:modalias:input:b0003v28bdp0078*
ID_INPUT_TABLET=1

View File

@ -0,0 +1,32 @@
From deb601b7d78914c1d821799f33111285d370006d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jaroslav=20=C5=A0karvada?= <jskarvad@redhat.com>
Date: Sat, 1 Mar 2025 13:16:24 +0100
Subject: [PATCH] hwdb: add Code Mercenaries Hard- und Software GmbH Virtual RC
USB
It's official VRC USB dongle. Make it work in SDL apps, wine,
Steam, ... and fix the erratic mouse events when the dongle is in use.
(cherry picked from commit d8af5c262cac79e5866b7d5c45cf7a78c755b2cd)
Resolves: RHEL-72697
---
hwdb.d/60-input-id.hwdb | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/hwdb.d/60-input-id.hwdb b/hwdb.d/60-input-id.hwdb
index c4c5be112d..823d856c31 100644
--- a/hwdb.d/60-input-id.hwdb
+++ b/hwdb.d/60-input-id.hwdb
@@ -51,6 +51,11 @@
# Sort by brand, model
+# Code Mercenaries Hard- und Software GmbH Virtual RC USB
+id-input:modalias:input:b0003v07C0p1125*
+ ID_INPUT_MOUSE=
+ ID_INPUT_JOYSTICK=1
+
# GOLD WARRIOR SIM PhoenixRC 10411R
id-input:modalias:input:b0003v1781p0898*
ID_INPUT_ACCELEROMETER=

View File

@ -0,0 +1,27 @@
From 28c5462685b11b13c94af75b4b0c1369b8e4af9f Mon Sep 17 00:00:00 2001
From: Chris Grant <grantgj@gmail.com>
Date: Sun, 2 Mar 2025 01:14:22 +1300
Subject: [PATCH] hwdb: Add accel orientation quirk for the GPD Pocket 4
(cherry picked from commit 5bc576225a3d34bc5f4571e96112b19daacb37cb)
Resolves: RHEL-72697
---
hwdb.d/60-sensor.hwdb | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/hwdb.d/60-sensor.hwdb b/hwdb.d/60-sensor.hwdb
index 7e0e9ed47c..385c4300ef 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -590,6 +590,10 @@ sensor:modalias:acpi:KIOX000A*:dmi:bvnAmericanMegatrendsInc.:bvr5.11:bd05/25/201
sensor:modalias:acpi:MXC6655*:dmi:*:svnGPD:pnG1621-02:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
+# GPD Pocket 4
+sensor:modalias:acpi:MXC6655*:dmi:*:svnGPD:pnG1628-04:*
+ ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
+
# GPD WinMax2
sensor:modalias:acpi:BMI0160*:dmi:*:svnGPD:pnG1619*:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1

View File

@ -0,0 +1,28 @@
From d8ce41be07bb49fe8de466a2aac678ca5fd6d782 Mon Sep 17 00:00:00 2001
From: Harrison Vanderbyl <33416119+harrisonvanderbyl@users.noreply.github.com>
Date: Tue, 4 Mar 2025 15:15:23 +1100
Subject: [PATCH] hwdb: add rotation profile matrix for Rog Ally X (2024)
(#36591)
(cherry picked from commit 7fff71328e36b734be6b7e17eb7998dcb754bb13)
Resolves: RHEL-72697
---
hwdb.d/60-sensor.hwdb | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/hwdb.d/60-sensor.hwdb b/hwdb.d/60-sensor.hwdb
index 385c4300ef..9561fefa89 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -189,6 +189,10 @@ sensor:modalias:acpi:SMO8500*:dmi:*svn*ASUSTeK*:*pn*TP300LAB:*
sensor:modalias:acpi:BOSC0200*:dmi:*svn*ASUSTeK*:*pn*TP412UA:*
ACCEL_MOUNT_MATRIX=0, -1, 0; 1, 0, 0; 0, 0, 1
+# ASUS ROG Ally X (2024)
+sensor:modalias:acpi:BOSC0200*:dmi:*svn*ASUSTeK*:*pn*RC72LA:*
+ ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, -1
+
sensor:modalias:acpi:BOSC0200*:dmi:*svn*ASUSTeK*:pn*BR1100FKA:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, -1

View File

@ -0,0 +1,43 @@
From 5e1b1df1b15141dfe5355ad960cac7fa78451cbd Mon Sep 17 00:00:00 2001
From: Sonia Zorba <zonia3000@gmail.com>
Date: Tue, 18 Mar 2025 02:25:51 +0200
Subject: [PATCH] hwdb: fix backspace not working on HP Pavilion laptop
(#36777)
PR #34685 moved the handling of keys 66/65 from specific models to
generic HP laptops.
Key 66 has been linked to the `pickup_phone` function; however, this
action key is not available on all HP laptop models, particularly older
versions. On my HP Pavilion laptop, key 66 is mapped to the `backspace`
function, which caused the backspace key to stop working after the
change.
The following PR fixes the issue on my **HP Pavilion Laptop 15-eg0xxx**.
I have placed the modifications under the Pavilion section, but I cannot
guarantee that this solution will apply to all Pavilion models.
Additionally, I have included a line that checks for "HP" instead of
solely searching for "Hewlett-Packard," as my model is simply labeled as
HP.
(cherry picked from commit 147511c643886543a79aa8d036380ea86c38cfa4)
Resolves: RHEL-72697
---
hwdb.d/60-keyboard.hwdb | 2 ++
1 file changed, 2 insertions(+)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index 34e302910a..f758d202d1 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -649,6 +649,8 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*[tT][aA][bB][lL][eE][tT]*:*
# Pavilion
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*[pP][aA][vV][iI][lL][iI][oO][nN]*:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pn*[pP][aA][vV][iI][lL][iI][oO][nN]*:*
+ KEYBOARD_KEY_66=backspace
KEYBOARD_KEY_88=media # FIXME: quick play
KEYBOARD_KEY_b7=print
KEYBOARD_KEY_d8=!touchpad_off # touchpad off

View File

@ -0,0 +1,35 @@
From e3c0622fa3adb29d3dfb7b4793e36ebd9e3ab81e Mon Sep 17 00:00:00 2001
From: Werner Sembach <wse@tuxedocomputers.com>
Date: Wed, 2 Apr 2025 18:47:12 +0200
Subject: [PATCH] hwdb/keyboard: Map FN key on TUXEDO NB02 devices
Map the FN key of TUXEDO NB02 devices that produces a scancode unrecognized by
the Linux kernel.
Signed-off-by: Werner Sembach <wse@tuxedocomputers.com>
(cherry picked from commit c47f16ea9633cd69f60e555abcbdb3e9000e1aef)
Resolves: RHEL-72697
---
hwdb.d/60-keyboard.hwdb | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index f758d202d1..31664216fa 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -2062,6 +2062,14 @@ evdev:name:Quickstart Button 2:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnPORTEGEZ830:*
evdev:name:Quickstart Button 3:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnPORTEGEZ830:*
KEYBOARD_KEY_1=touchpad_toggle # Touchpad toggle
+###########################################################
+# TUXEDO Computers
+###########################################################
+
+# TUXEDO Computers notebooks with board_vendor NB02
+evdev:atkbd:dmi:*:svnTUXEDO:*:rvnNB02:*
+ KEYBOARD_KEY_f8=fn
+
###########################################################
# VIA
###########################################################

View File

@ -0,0 +1,28 @@
From e89fe5cd3549a08113191efcd35c462191220b45 Mon Sep 17 00:00:00 2001
From: Marcos Alano <mhalano@users.noreply.github.com>
Date: Fri, 18 Apr 2025 05:43:26 -0300
Subject: [PATCH] hwdb: add G-Mode key support (#37175)
Add G-Mode key, usually Fn+F9.
Closes #30824
(cherry picked from commit ae042183832bae0eecdb32877c568d5c9d67e646)
Resolves: RHEL-72697
---
hwdb.d/60-keyboard.hwdb | 1 +
1 file changed, 1 insertion(+)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index 31664216fa..aed5edc1f8 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -383,6 +383,7 @@ evdev:name:gpio-keys:phys:gpio-keys/input0:ev:3:dmi:bvn*:bvr*:bd*:svncube:pni1-T
###########################################################
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pn*:*
+ KEYBOARD_KEY_68=prog2 # G-Mode (Dell-specific)
KEYBOARD_KEY_81=playpause # Play/Pause
KEYBOARD_KEY_82=stopcd # Stop
KEYBOARD_KEY_83=previoussong # Previous song

View File

@ -0,0 +1,31 @@
From 79400d753dea52ba136b8c4ab35c9e886d39d9c5 Mon Sep 17 00:00:00 2001
From: Werner Sembach <wse@tuxedocomputers.com>
Date: Thu, 24 Apr 2025 23:29:53 +0200
Subject: [PATCH] hwdb/keyboard: Map FN key on TUXEDO InfinityFlex 14 Gen1
Map the FN key of TUXEDO InfinityFlex 14 Gen1 that wrongly produces the F23
scancode by default.
Signed-off-by: Werner Sembach <wse@tuxedocomputers.com>
(cherry picked from commit d2502f55a2d9dc13f82cc1551a0639843fefb69e)
Resolves: RHEL-72697
---
hwdb.d/60-keyboard.hwdb | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index aed5edc1f8..9e00d7cd83 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -2071,6 +2071,10 @@ evdev:name:Quickstart Button 3:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnPORTEGEZ830:*
evdev:atkbd:dmi:*:svnTUXEDO:*:rvnNB02:*
KEYBOARD_KEY_f8=fn
+# TUXEDO InfinityFlex 14 Gen1
+evdev:atkbd:dmi:*:svnTUXEDO:*:rnDN50Z-140HC-YD:*
+ KEYBOARD_KEY_6e=fn
+
###########################################################
# VIA
###########################################################

View File

@ -0,0 +1,27 @@
From 4a5c10586ec811b6e2034003aa70f5417908b350 Mon Sep 17 00:00:00 2001
From: madroach <christopher@gmerlin.de>
Date: Mon, 5 May 2025 14:34:33 +0200
Subject: [PATCH] hwdb: add HP 150 Wired Mouse (#37341)
(cherry picked from commit a2bd93c2e8a2fb00d50be0da17876bcb2271cdfb)
Resolves: RHEL-72697
---
hwdb.d/70-mouse.hwdb | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/hwdb.d/70-mouse.hwdb b/hwdb.d/70-mouse.hwdb
index 6e2a588a5d..d054aeffe6 100644
--- a/hwdb.d/70-mouse.hwdb
+++ b/hwdb.d/70-mouse.hwdb
@@ -329,6 +329,10 @@ mouse:usb:v093ap2510:name:PIXART USB OPTICAL MOUSE:*
mouse:usb:v03f0p0641:name:PixArt HP X1200 USB Optical Mouse:*
MOUSE_DPI=1100@125
+# HP 150 Wired Mouse
+mouse:usb:v03f0p6a41:name:PixArt HP USB Optical Mouse:
+ MOUSE_DPI=1700@132
+
##########################################
# IBM
##########################################

View File

@ -0,0 +1,25 @@
From baf17f5a854fcb02c1f42cbf3ccbd5ef72d3fd1e Mon Sep 17 00:00:00 2001
From: Marcos Alano <marcoshalano@gmail.com>
Date: Thu, 8 May 2025 07:28:16 -0300
Subject: [PATCH] Add emulated release to G-Mode key
(cherry picked from commit fb8149234aa70b9f7132cee0ffe4b58f410f947e)
Resolves: RHEL-72697
---
hwdb.d/60-keyboard.hwdb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index 9e00d7cd83..781856b0df 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -383,7 +383,7 @@ evdev:name:gpio-keys:phys:gpio-keys/input0:ev:3:dmi:bvn*:bvr*:bd*:svncube:pni1-T
###########################################################
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pn*:*
- KEYBOARD_KEY_68=prog2 # G-Mode (Dell-specific)
+ KEYBOARD_KEY_68=!prog2 # G-Mode (Dell-specific)
KEYBOARD_KEY_81=playpause # Play/Pause
KEYBOARD_KEY_82=stopcd # Stop
KEYBOARD_KEY_83=previoussong # Previous song

View File

@ -0,0 +1,34 @@
From 564d33c3d83c7873ad93f83408fc5b11a19bd73a Mon Sep 17 00:00:00 2001
From: Kurt Borja <kuurtb@gmail.com>
Date: Thu, 8 May 2025 04:37:55 -0300
Subject: [PATCH] hwdb: keyboard: Add Alienware special keys
Add Alienware *Performance mode* toggle key and *Macro* keys.
Signed-off-by: Kurt Borja <kuurtb@gmail.com>
(cherry picked from commit 15450ba214ea1f3277a2d2e24bcce5956ee651af)
Resolves: RHEL-72697
---
hwdb.d/60-keyboard.hwdb | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index 781856b0df..210af0f5fc 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -247,8 +247,14 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnNitro*AN*515-58:pvr*
# Alienware/Dell reserves these keys; safe to apply on all their devices
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAlienware*:pn*:*
+ KEYBOARD_KEY_68=!prog3 # Fn+f1 Performance mode toggle
KEYBOARD_KEY_81=touchpad_toggle # Touchpad toggle
KEYBOARD_KEY_8a=ejectcd
+ KEYBOARD_KEY_92=macro1 # Fn+f2
+ KEYBOARD_KEY_93=macro2 # Fn+f3
+ KEYBOARD_KEY_94=macro3 # Fn+f4
+ KEYBOARD_KEY_95=macro4 # Fn+f5
+ KEYBOARD_KEY_96=macro5 # Fn+f6
KEYBOARD_KEY_bf=!prog1 # graphics amplifier, cable plug-in event
KEYBOARD_KEY_c1=!prog2 # graphics amplifier, undock-button event
KEYBOARD_KEY_c2=!power # graphics amplifier, surprise undock event

View File

@ -0,0 +1,61 @@
From 51290af49590da383dad12377aa55335c1b492c0 Mon Sep 17 00:00:00 2001
From: Ryan Thompson <ryan.thompson@nuand.com>
Date: Mon, 12 May 2025 18:05:20 -0500
Subject: [PATCH] hwdb: add bladeRF SDR devices
Add hwdb entries for bladeRF 1.x, legacy 1.x, and 2.0 micro devices to
enable non-root access through preexisting ID_SOFTWARE_RADIO tag.
References #20561
(cherry picked from commit 951e8cb06037d5b67c0ac86f56bcbd73f4fb2d7b)
Resolves: RHEL-72697
---
hwdb.d/70-software-radio.hwdb | 24 ++++++++++++++++++++++++
hwdb.d/meson.build | 1 +
2 files changed, 25 insertions(+)
create mode 100644 hwdb.d/70-software-radio.hwdb
diff --git a/hwdb.d/70-software-radio.hwdb b/hwdb.d/70-software-radio.hwdb
new file mode 100644
index 0000000000..c6afcffdc3
--- /dev/null
+++ b/hwdb.d/70-software-radio.hwdb
@@ -0,0 +1,24 @@
+# This file is part of systemd.
+#
+# Database for software-defined radio devices that should be accessible to the seat owner.
+#
+# To add local entries, copy this file to
+# /etc/udev/hwdb.d/
+# and add your rules there. To load the new rules execute (as root):
+# systemd-hwdb update
+# udevadm trigger
+
+################
+# Nuand
+################
+# bladeRF 1.x
+usb:v2CF0p5246*
+ ID_SOFTWARE_RADIO=1
+
+# bladeRF 1.x (legacy)
+usb:v1D50p6066*
+ ID_SOFTWARE_RADIO=1
+
+# bladeRF 2.0 micro
+usb:v2CF0p5250*
+ ID_SOFTWARE_RADIO=1
diff --git a/hwdb.d/meson.build b/hwdb.d/meson.build
index bae76296b7..5ed49e877a 100644
--- a/hwdb.d/meson.build
+++ b/hwdb.d/meson.build
@@ -34,6 +34,7 @@ hwdb_files_test = files(
'70-mouse.hwdb',
'70-pda.hwdb',
'70-pointingstick.hwdb',
+ '70-software-radio.hwdb',
'70-sound-card.hwdb',
'70-touchpad.hwdb',
'80-ieee1394-unit-function.hwdb')

View File

@ -0,0 +1,24 @@
From 25e6cac1d38eee0a37ded79e5821878135dd4a79 Mon Sep 17 00:00:00 2001
From: Ryan Thompson <ryan.thompson@nuand.com>
Date: Mon, 12 May 2025 19:37:16 -0500
Subject: [PATCH] hwdb: append ID_SOFTWARE_RADIO to hwdb parser
(cherry picked from commit eea9ba8409efd5f8540d9e83a5096ac0a34d6a9f)
Resolves: RHEL-72697
---
hwdb.d/parse_hwdb.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/hwdb.d/parse_hwdb.py b/hwdb.d/parse_hwdb.py
index bac5dcc4c8..7dd996e1ee 100755
--- a/hwdb.d/parse_hwdb.py
+++ b/hwdb.d/parse_hwdb.py
@@ -177,6 +177,7 @@ def property_grammar():
('ID_INPUT_TRACKBALL', id_input_setting),
('ID_SIGNAL_ANALYZER', Or((Literal('0'), Literal('1')))),
('ID_HARDWARE_WALLET', Or((Literal('0'), Literal('1')))),
+ ('ID_SOFTWARE_RADIO', Or((Literal('0'), Literal('1')))),
('POINTINGSTICK_SENSITIVITY', INTEGER),
('ID_INPUT_JOYSTICK_INTEGRATION', Or(('internal', 'external'))),
('ID_INPUT_TOUCHPAD_INTEGRATION', Or(('internal', 'external'))),

View File

@ -0,0 +1,148 @@
From 9150ab86eb104c4ffa39aa8af992236997fc792b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Date: Wed, 14 May 2025 17:31:57 +0200
Subject: [PATCH] hwdb.d: reword and simplify boilerplate texts
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Let's keep things simple and uniform. We put a dot at the
end of some commands… This is obviously correct, but might confuse
some poor user.
(cherry picked from commit 16acf66cf6985a87a5650cb1fa7b56be42505c62)
Resolves: RHEL-72697
---
hwdb.d/60-autosuspend.hwdb | 5 ++---
hwdb.d/60-evdev.hwdb | 5 ++---
hwdb.d/60-input-id.hwdb | 5 ++---
hwdb.d/60-keyboard.hwdb | 5 ++---
hwdb.d/60-sensor.hwdb | 3 +--
hwdb.d/70-joystick.hwdb | 5 ++---
hwdb.d/70-touchpad.hwdb | 2 +-
7 files changed, 12 insertions(+), 18 deletions(-)
diff --git a/hwdb.d/60-autosuspend.hwdb b/hwdb.d/60-autosuspend.hwdb
index 1bdc041bb9..af7d8ba567 100644
--- a/hwdb.d/60-autosuspend.hwdb
+++ b/hwdb.d/60-autosuspend.hwdb
@@ -14,13 +14,12 @@
# systemd-hwdb update
# udevadm trigger /dev/…
#
-# If your changes are generally applicable, preferably send them as a pull
-# request to
+# If your changes are generally applicable, send them as a pull request to
# https://github.com/systemd/systemd
# or create a bug report on https://github.com/systemd/systemd/issues and
# include your new rules, a description of the device, and the output of
# udevadm info
-# the device.
+# for the device.
#
# Allowed properties are:
# ID_AUTOSUSPEND=1
diff --git a/hwdb.d/60-evdev.hwdb b/hwdb.d/60-evdev.hwdb
index 2e18f71e5b..47f1c2d2d2 100644
--- a/hwdb.d/60-evdev.hwdb
+++ b/hwdb.d/60-evdev.hwdb
@@ -38,12 +38,11 @@
# where /dev/input/eventXX is the device in question. If in doubt, simply use
# /dev/input/event* to reload all input rules.
#
-# If your changes are generally applicable, preferably send them as a pull
-# request to
+# If your changes are generally applicable, send them as a pull request to
# https://github.com/systemd/systemd
# or create a bug report on https://github.com/systemd/systemd/issues and
# include your new rules, a description of the device, and the output of
-# udevadm info /dev/input/eventXX.
+# udevadm info /dev/input/eventXX
#
# Allowed properties are:
# EVDEV_ABS_<axis>=<min>:<max>:<res>:<fuzz>:<flat>
diff --git a/hwdb.d/60-input-id.hwdb b/hwdb.d/60-input-id.hwdb
index 823d856c31..88fec6e043 100644
--- a/hwdb.d/60-input-id.hwdb
+++ b/hwdb.d/60-input-id.hwdb
@@ -14,12 +14,11 @@
# where /dev/input/eventXX is the device in question. If in
# doubt, simply use /dev/input/event* to reload all input rules.
#
-# If your changes are generally applicable, preferably send them as a pull
-# request to
+# If your changes are generally applicable, send them as a pull request to
# https://github.com/systemd/systemd
# or create a bug report on https://github.com/systemd/systemd/issues and
# include your new rules, a description of the device, and the output of
-# udevadm info /dev/input/eventXX.
+# udevadm info /dev/input/eventXX
#
# This file must only be used where the input_id builtin assigns the wrong
# properties or lacks the assignment of some properties. This is almost always
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index 210af0f5fc..0ed4478399 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -51,12 +51,11 @@
# where /dev/input/eventXX is the keyboard in question. If in doubt, simply use
# /dev/input/event* to reload all input rules.
#
-# If your changes are generally applicable, preferably send them as a pull
-# request to
+# If your changes are generally applicable, send them as a pull request to
# https://github.com/systemd/systemd
# or create a bug report on https://github.com/systemd/systemd/issues and
# include your new rules, a description of the device, and the output of
-# udevadm info /dev/input/eventXX.
+# udevadm info /dev/input/eventXX
# ######################### KEY MAPPING ######################################
#
diff --git a/hwdb.d/60-sensor.hwdb b/hwdb.d/60-sensor.hwdb
index 9561fefa89..b25dda8959 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -27,8 +27,7 @@
# udevadm trigger -v -p DEVNAME=/dev/iio:deviceXXX
# where /dev/iio:deviceXXX is the device in question.
#
-# If your changes are generally applicable, preferably send them as a pull
-# request to
+# If your changes are generally applicable, send them as a pull request to
# https://github.com/systemd/systemd
# or create a bug report on https://github.com/systemd/systemd/issues and
# include your new rules, a description of the device, and the output of
diff --git a/hwdb.d/70-joystick.hwdb b/hwdb.d/70-joystick.hwdb
index 8e942c8c1b..e2008676e9 100644
--- a/hwdb.d/70-joystick.hwdb
+++ b/hwdb.d/70-joystick.hwdb
@@ -18,12 +18,11 @@
# where /dev/input/eventXX is the joystick in question. If in
# doubt, simply use /dev/input/event* to reload all input rules.
#
-# If your changes are generally applicable, preferably send them as a pull
-# request to
+# If your changes are generally applicable, send them as a pull request to
# https://github.com/systemd/systemd
# or create a bug report on https://github.com/systemd/systemd/issues and
# include your new rules, a description of the device, and the output of
-# udevadm info /dev/input/eventXX.
+# udevadm info /dev/input/eventXX
#
# Permitted keys:
# Specify if a joystick is a built-in one or external:
diff --git a/hwdb.d/70-touchpad.hwdb b/hwdb.d/70-touchpad.hwdb
index 262bca3a19..83089bba28 100644
--- a/hwdb.d/70-touchpad.hwdb
+++ b/hwdb.d/70-touchpad.hwdb
@@ -26,7 +26,7 @@
# udevadm info /dev/input/eventXX.
#
# Permitted keys:
-# Specify if a touchpad is a built-in one or external:
+# Specify whether a touchpad is a built-in one or external:
# ID_INPUT_TOUCHPAD_INTEGRATION=internal|external
touchpad:i8042:*

View File

@ -0,0 +1,195 @@
From 943457fdb22abc318e259de12939f37793b4b646 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Date: Wed, 14 May 2025 17:44:25 +0200
Subject: [PATCH] hwdb.d: update/expand boilerplate on various hwdb files
We don't want to encourage people to copy the whole files. The
boilerplate text that recommends an override file rather than a
full copy appeared first in 0213a26f656d72ac83eb201f2104726fcfe60eaa,
but was added in other places in 57bb707d48131f4daad2b1b746eab586eb66b4f3.
Directly inspired by 951e8cb06037d5b67c0ac86f56bcbd73f4fb2d7b, but
the wrong boilerplate was added in other places too.
(cherry picked from commit 97f7b74f97d20daf13021eb748399ecafd15f520)
Resolves: RHEL-72697
---
hwdb.d/70-av-production.hwdb | 20 ++++++++++++++++----
hwdb.d/70-hardware-wallets.hwdb | 20 ++++++++++++++++----
hwdb.d/70-lights.hwdb | 24 ++++++++++++++++++------
hwdb.d/70-software-radio.hwdb | 21 +++++++++++++++++----
hwdb.d/70-sound-card.hwdb | 20 ++++++++++++++++----
5 files changed, 83 insertions(+), 22 deletions(-)
diff --git a/hwdb.d/70-av-production.hwdb b/hwdb.d/70-av-production.hwdb
index f7cc349822..dc3fddf0e0 100644
--- a/hwdb.d/70-av-production.hwdb
+++ b/hwdb.d/70-av-production.hwdb
@@ -3,13 +3,25 @@
# Database for AV production controllers that should be accessible to the seat owner.
#
# This covers DJ tables, music-oriented key pads, and streaming-oriented key pads
-# such as Elgato Stream Deck
+# such as Elgato Stream Deck.
#
-# To add local entries, copy this file to
-# /etc/udev/hwdb.d/
+# The lookup keys are $MODALIAS strings, see udev's hwdb builtin.
+#
+# To add local entries, create a new file
+# /etc/udev/hwdb.d/71-av-production-local.hwdb
# and add your rules there. To load the new rules execute (as root):
# systemd-hwdb update
-# udevadm trigger
+# udevadm trigger /dev/…
+#
+# If your changes are generally applicable, send them as a pull request to
+# https://github.com/systemd/systemd
+# or create a bug report on https://github.com/systemd/systemd/issues and
+# include your new rules, a description of the device, and the output of
+# udevadm info
+# for the device.
+#
+# Allowed properties are:
+# ID_AV_PRODUCTION_CONTROLLER=1
################
# Ableton
diff --git a/hwdb.d/70-hardware-wallets.hwdb b/hwdb.d/70-hardware-wallets.hwdb
index 77d8bfa92d..24983f3f92 100644
--- a/hwdb.d/70-hardware-wallets.hwdb
+++ b/hwdb.d/70-hardware-wallets.hwdb
@@ -1,12 +1,24 @@
# This file is part of systemd.
#
# Database for Hardware Wallets that should be accessible to the seat owner.
-##
-# To add local entries, copy this file to
-# /etc/udev/hwdb.d/
+#
+# The lookup keys are $MODALIAS strings, see udev's hwdb builtin.
+#
+# To add local entries, create a new file
+# /etc/udev/hwdb.d/71-hardware-wallets-local.hwdb
# and add your rules there. To load the new rules execute (as root):
# systemd-hwdb update
-# udevadm trigger
+# udevadm trigger /dev/…
+#
+# If your changes are generally applicable, send them as a pull request to
+# https://github.com/systemd/systemd
+# or create a bug report on https://github.com/systemd/systemd/issues and
+# include your new rules, a description of the device, and the output of
+# udevadm info
+# for the device.
+#
+# Allowed properties are:
+# ID_HARDWARE_WALLET=1
################
# Trezor Hardware Wallets
diff --git a/hwdb.d/70-lights.hwdb b/hwdb.d/70-lights.hwdb
index 7811be61f5..70c152c8b8 100644
--- a/hwdb.d/70-lights.hwdb
+++ b/hwdb.d/70-lights.hwdb
@@ -1,14 +1,26 @@
# This file is part of systemd.
#
-# Database for remote controllable lights that should be accessible to the seat owner,
-# such as Bluetooth or USB lights that are used in conjuction with the computer like
-# streaming lights.
+# Database for remote controllable lights that should be accessible to the seat
+# owner, such as Bluetooth or USB lights that are used in conjuction with the
+# computer like streaming lights.
#
-# To add local entries, copy this file to
-# /etc/udev/hwdb.d/
+# The lookup keys are $MODALIAS strings, see udev's hwdb builtin.
+#
+# To add local entries, create a new file
+# /etc/udev/hwdb.d/71-lights-local.hwdb
# and add your rules there. To load the new rules execute (as root):
# systemd-hwdb update
-# udevadm trigger
+# udevadm trigger /dev/…
+#
+# If your changes are generally applicable, send them as a pull request to
+# https://github.com/systemd/systemd
+# or create a bug report on https://github.com/systemd/systemd/issues and
+# include your new rules, a description of the device, and the output of
+# udevadm info
+# for the device.
+#
+# Allowed properties are:
+# ID_AV_LIGHTS=1
################
# Logitech
diff --git a/hwdb.d/70-software-radio.hwdb b/hwdb.d/70-software-radio.hwdb
index c6afcffdc3..3b578d464f 100644
--- a/hwdb.d/70-software-radio.hwdb
+++ b/hwdb.d/70-software-radio.hwdb
@@ -1,12 +1,25 @@
# This file is part of systemd.
#
-# Database for software-defined radio devices that should be accessible to the seat owner.
+# Database for software-defined radio devices that should be accessible to the
+# seat owner.
#
-# To add local entries, copy this file to
-# /etc/udev/hwdb.d/
+# The lookup keys are $MODALIAS strings, see udev's hwdb builtin.
+#
+# To add local entries, create a new file
+# /etc/udev/hwdb.d/71-software-radio-local.hwdb
# and add your rules there. To load the new rules execute (as root):
# systemd-hwdb update
-# udevadm trigger
+# udevadm trigger /dev/…
+#
+# If your changes are generally applicable, send them as a pull request to
+# https://github.com/systemd/systemd
+# or create a bug report on https://github.com/systemd/systemd/issues and
+# include your new rules, a description of the device, and the output of
+# udevadm info
+# for the device.
+#
+# Allowed properties are:
+# ID_SOFTWARE_RADIO=1
################
# Nuand
diff --git a/hwdb.d/70-sound-card.hwdb b/hwdb.d/70-sound-card.hwdb
index a7ea8c64ee..762993dbf0 100644
--- a/hwdb.d/70-sound-card.hwdb
+++ b/hwdb.d/70-sound-card.hwdb
@@ -1,12 +1,24 @@
# This file is part of systemd.
#
-# Database of sound hardware that gets misdetected
+# Database of sound hardware that gets misdetected.
#
-# To add local entries, copy this file to
-# /etc/udev/hwdb.d/
+# The lookup keys are $MODALIAS strings, see udev's hwdb builtin.
+#
+# To add local entries, create a new file
+# /etc/udev/hwdb.d/71-sound-card-local.hwdb
# and add your rules there. To load the new rules execute (as root):
# systemd-hwdb update
-# udevadm trigger
+# udevadm trigger /dev/…
+#
+# If your changes are generally applicable, send them as a pull request to
+# https://github.com/systemd/systemd
+# or create a bug report on https://github.com/systemd/systemd/issues and
+# include your new rules, a description of the device, and the output of
+# udevadm info
+# for the device.
+#
+# Allowed properties are:
+# SOUND_FORM_FACTOR
###########################################################
# Corsair

View File

@ -0,0 +1,108 @@
From 596eef645ec638ac2ac07e706c71baba934fbc26 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Date: Wed, 14 May 2025 17:59:34 +0200
Subject: [PATCH] hwdb: say that settings can be also set to 0
We recommend that users create overriddes. This creates the problem that there
is no syntax to unset a property. Thus, the user needs to just set the property
to "something else" in the override file. But then the blurb saying that
"VAR=1" (or "VAR=0" in some cases) is the only allowed value can be confusing.
Say that both 0 and 1 can be set, since this documentation is also intended
for end users.
In our files, we generally don't want the override values anywhere. But we
have a test which checks the rvalue, which should be enough.
(cherry picked from commit 9282a85ed73e294bb67c4935ce65d588ed9315c7)
Resolves: RHEL-72697
---
hwdb.d/60-autosuspend.hwdb | 4 ++--
hwdb.d/60-seat.hwdb | 2 +-
hwdb.d/70-av-production.hwdb | 2 +-
hwdb.d/70-hardware-wallets.hwdb | 2 +-
hwdb.d/70-lights.hwdb | 2 +-
hwdb.d/70-software-radio.hwdb | 2 +-
6 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/hwdb.d/60-autosuspend.hwdb b/hwdb.d/60-autosuspend.hwdb
index af7d8ba567..f564c6aed9 100644
--- a/hwdb.d/60-autosuspend.hwdb
+++ b/hwdb.d/60-autosuspend.hwdb
@@ -22,9 +22,9 @@
# for the device.
#
# Allowed properties are:
-# ID_AUTOSUSPEND=1
+# ID_AUTOSUSPEND=0|1
# ID_AUTOSUSPEND_DELAY_MS=####
-# ID_PERSIST=0
+# ID_PERSIST=0|1
#
# ID_AUTOSUSPEND_DELAY_MS adjusts the delay for autosuspend to something
# different than the kernel default of 2000ms.
diff --git a/hwdb.d/60-seat.hwdb b/hwdb.d/60-seat.hwdb
index 927ea025a2..4b1fc2c1bb 100644
--- a/hwdb.d/60-seat.hwdb
+++ b/hwdb.d/60-seat.hwdb
@@ -8,7 +8,7 @@
# device, and not the (parent) PCI device, is tagged with 'master-of-seat'.
#
# Allowed properties are:
-# ID_TAG_MASTER_OF_SEAT=1
+# ID_TAG_MASTER_OF_SEAT=0|1
#########################################
# eXtreme Graphic Innovation (XGI)
diff --git a/hwdb.d/70-av-production.hwdb b/hwdb.d/70-av-production.hwdb
index dc3fddf0e0..fee74729c4 100644
--- a/hwdb.d/70-av-production.hwdb
+++ b/hwdb.d/70-av-production.hwdb
@@ -21,7 +21,7 @@
# for the device.
#
# Allowed properties are:
-# ID_AV_PRODUCTION_CONTROLLER=1
+# ID_AV_PRODUCTION_CONTROLLER=0|1
################
# Ableton
diff --git a/hwdb.d/70-hardware-wallets.hwdb b/hwdb.d/70-hardware-wallets.hwdb
index 24983f3f92..94fe332872 100644
--- a/hwdb.d/70-hardware-wallets.hwdb
+++ b/hwdb.d/70-hardware-wallets.hwdb
@@ -18,7 +18,7 @@
# for the device.
#
# Allowed properties are:
-# ID_HARDWARE_WALLET=1
+# ID_HARDWARE_WALLET=0|1
################
# Trezor Hardware Wallets
diff --git a/hwdb.d/70-lights.hwdb b/hwdb.d/70-lights.hwdb
index 70c152c8b8..a7753710ed 100644
--- a/hwdb.d/70-lights.hwdb
+++ b/hwdb.d/70-lights.hwdb
@@ -20,7 +20,7 @@
# for the device.
#
# Allowed properties are:
-# ID_AV_LIGHTS=1
+# ID_AV_LIGHTS=0|1
################
# Logitech
diff --git a/hwdb.d/70-software-radio.hwdb b/hwdb.d/70-software-radio.hwdb
index 3b578d464f..cbe1539861 100644
--- a/hwdb.d/70-software-radio.hwdb
+++ b/hwdb.d/70-software-radio.hwdb
@@ -19,7 +19,7 @@
# for the device.
#
# Allowed properties are:
-# ID_SOFTWARE_RADIO=1
+# ID_SOFTWARE_RADIO=0|1
################
# Nuand

View File

@ -0,0 +1,35 @@
From 256d8c333f0ec514411cd175ccf80e9b9d7e24ff Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Nuno=20S=C3=A1?= <nuno.sa@analog.com>
Date: Thu, 15 May 2025 09:46:16 +0100
Subject: [PATCH] hwdb: add Analog Devices PLUTO SDR
Add hwdb entries for ADI PLUTO. Note that when in DFU (Device Firmware
mode) mode, the pid is different. Thus, the two entries.
We also want to make sure that no AT commands are sent to us and so we
set 'ID_MM_DEVICE_IGNORE=1'.
(cherry picked from commit ab8e0c6c7c2884ab7a112d76ae8f4c2d8bdd63c0)
Resolves: RHEL-72697
---
hwdb.d/70-software-radio.hwdb | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/hwdb.d/70-software-radio.hwdb b/hwdb.d/70-software-radio.hwdb
index cbe1539861..1e5aa1dc87 100644
--- a/hwdb.d/70-software-radio.hwdb
+++ b/hwdb.d/70-software-radio.hwdb
@@ -35,3 +35,12 @@ usb:v1D50p6066*
# bladeRF 2.0 micro
usb:v2CF0p5250*
ID_SOFTWARE_RADIO=1
+
+# ADI pluto SDR
+usb:v0456pB673*
+ ID_SOFTWARE_RADIO=1
+ ID_MM_DEVICE_IGNORE=1
+
+# ADI pluto DFU
+usb:v0456pB674*
+ ID_SOFTWARE_RADIO=1

View File

@ -0,0 +1,24 @@
From 867310be9614a345fdf0b451e966ada21fe1dff7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Nuno=20S=C3=A1?= <nuno.sa@analog.com>
Date: Thu, 15 May 2025 09:48:30 +0100
Subject: [PATCH] hwdb: append ID_MM_DEVICE_IGNORE to hwdb parser
(cherry picked from commit 42957adf5ce9adee0a5850de7498646f15ccd3b9)
Resolves: RHEL-72697
---
hwdb.d/parse_hwdb.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/hwdb.d/parse_hwdb.py b/hwdb.d/parse_hwdb.py
index 7dd996e1ee..60022e3095 100755
--- a/hwdb.d/parse_hwdb.py
+++ b/hwdb.d/parse_hwdb.py
@@ -178,6 +178,7 @@ def property_grammar():
('ID_SIGNAL_ANALYZER', Or((Literal('0'), Literal('1')))),
('ID_HARDWARE_WALLET', Or((Literal('0'), Literal('1')))),
('ID_SOFTWARE_RADIO', Or((Literal('0'), Literal('1')))),
+ ('ID_MM_DEVICE_IGNORE', Or((Literal('0'), Literal('1')))),
('POINTINGSTICK_SENSITIVITY', INTEGER),
('ID_INPUT_JOYSTICK_INTEGRATION', Or(('internal', 'external'))),
('ID_INPUT_TOUCHPAD_INTEGRATION', Or(('internal', 'external'))),

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,177 @@
From 846f1805871f3923cc52749ec559e7654b83ec26 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Date: Thu, 15 May 2025 10:47:40 +0200
Subject: [PATCH] hwdb: run "update-hwdb-autosuspend"
As usual, mostly additions and a few removals.
(cherry picked from commit 7bd6626a43a69493523600b1862e5909ed8ae319)
Resolves: RHEL-72697
---
hwdb.d/60-autosuspend-fingerprint-reader.hwdb | 51 ++++++++++++++++---
1 file changed, 44 insertions(+), 7 deletions(-)
diff --git a/hwdb.d/60-autosuspend-fingerprint-reader.hwdb b/hwdb.d/60-autosuspend-fingerprint-reader.hwdb
index 813343d08d..d5b7b01fbe 100644
--- a/hwdb.d/60-autosuspend-fingerprint-reader.hwdb
+++ b/hwdb.d/60-autosuspend-fingerprint-reader.hwdb
@@ -162,8 +162,11 @@ usb:v04F3p0C82*
usb:v04F3p0C88*
usb:v04F3p0C8C*
usb:v04F3p0C8D*
+usb:v04F3p0C98*
usb:v04F3p0C99*
+usb:v04F3p0C9D*
usb:v04F3p0C9F*
+usb:v04F3p0CA3*
ID_AUTOSUSPEND=1
ID_PERSIST=0
@@ -176,6 +179,9 @@ usb:v1C7Ap0603*
usb:v2808p9E48*
usb:v2808pD979*
usb:v2808pA959*
+usb:v2808pA99A*
+usb:v2808pA57A*
+usb:v2808pA78A*
ID_AUTOSUSPEND=1
ID_PERSIST=0
@@ -187,6 +193,7 @@ usb:v10A5pD805*
usb:v10A5pD205*
usb:v10A5p9524*
usb:v10A5p9544*
+usb:v10A5pC844*
ID_AUTOSUSPEND=1
ID_PERSIST=0
@@ -200,6 +207,7 @@ usb:v27C6p609C*
usb:v27C6p60A2*
usb:v27C6p60A4*
usb:v27C6p60BC*
+usb:v27C6p60C2*
usb:v27C6p6304*
usb:v27C6p631C*
usb:v27C6p633C*
@@ -238,25 +246,29 @@ usb:v0BDAp5816*
# Supported by libfprint driver synaptics
usb:v06CBp00BD*
+usb:v06CBp00C2*
+usb:v06CBp00C4*
+usb:v06CBp00C6*
usb:v06CBp00DF*
+usb:v06CBp00F0*
usb:v06CBp00F9*
usb:v06CBp00FC*
-usb:v06CBp00C2*
-usb:v06CBp00C4*
usb:v06CBp0100*
-usb:v06CBp00F0*
usb:v06CBp0103*
+usb:v06CBp0104*
+usb:v06CBp0106*
+usb:v06CBp0107*
+usb:v06CBp0108*
usb:v06CBp0123*
usb:v06CBp0124*
usb:v06CBp0126*
usb:v06CBp0129*
-usb:v06CBp0168*
usb:v06CBp015F*
-usb:v06CBp0104*
+usb:v06CBp0168*
+usb:v06CBp016C*
usb:v06CBp0173*
-usb:v06CBp0106*
+usb:v06CBp0174*
usb:v06CBp019D*
-usb:v06CBp00C6*
ID_AUTOSUSPEND=1
ID_PERSIST=0
@@ -325,7 +337,10 @@ usb:v138Ap0091*
ID_PERSIST=0
# Known unsupported devices
+usb:v0A5Cp5802*
usb:v047Dp00F2*
+usb:v047Dp8054*
+usb:v047Dp8055*
usb:v04E8p730B*
usb:v04F3p036B*
usb:v04F3p0C00*
@@ -333,16 +348,25 @@ usb:v04F3p0C4C*
usb:v04F3p0C57*
usb:v04F3p0C5E*
usb:v04F3p0C5A*
+usb:v04F3p0C60*
usb:v04F3p0C6C*
usb:v04F3p0C70*
usb:v04F3p0C72*
usb:v04F3p0C77*
+usb:v04F3p0C7C*
+usb:v04F3p0C7F*
+usb:v04F3p0C80*
+usb:v04F3p0C85*
+usb:v04F3p0C90*
usb:v04F3p2706*
usb:v04F3p3032*
usb:v04F3p3057*
usb:v04F3p3104*
usb:v04F3p310D*
usb:v04F3p3128*
+usb:v04F3p0C8A*
+usb:v05BAp000E*
+usb:v06CBp0051*
usb:v06CBp0081*
usb:v06CBp0088*
usb:v06CBp008A*
@@ -362,6 +386,7 @@ usb:v06CBp00E4*
usb:v06CBp00E7*
usb:v06CBp00E9*
usb:v06CBp00FD*
+usb:v06CBp00FF*
usb:v0A5Cp5801*
usb:v0A5Cp5805*
usb:v0A5Cp5834*
@@ -381,6 +406,8 @@ usb:v0BDAp5812*
usb:v10A5p0007*
usb:v10A5p9200*
usb:v10A5p9800*
+usb:v10A5pA120*
+usb:v10A5pA900*
usb:v10A5pE340*
usb:v1188p9545*
usb:v138Ap0007*
@@ -401,7 +428,11 @@ usb:v16D1p1027*
usb:v1C7Ap0300*
usb:v1C7Ap0575*
usb:v1C7Ap0576*
+usb:v1C7Ap0584*
usb:v1C7Ap0577*
+usb:v1C7Ap057E*
+usb:v2541p0236*
+usb:v2541p9711*
usb:v27C6p5042*
usb:v27C6p5110*
usb:v27C6p5117*
@@ -430,11 +461,17 @@ usb:v27C6p5740*
usb:v27C6p5E0A*
usb:v27C6p581A*
usb:v27C6p589A*
+usb:v27C6p5F10*
usb:v27C6p6382*
usb:v2808p9338*
+usb:v2808p9348*
usb:v2808p93A9*
+usb:v2808pA658*
+usb:v2808pC652*
usb:v298Dp2020*
usb:v298Dp2033*
+usb:v2DF0p0003*
+usb:v3274p8012*
usb:v3538p0930*
ID_AUTOSUSPEND=1
ID_PERSIST=0

View File

@ -0,0 +1,26 @@
From 7869113a7cafeee620dc9409c6920bc1d4de8fd1 Mon Sep 17 00:00:00 2001
From: AsciiWolf <drusek@redhat.com>
Date: Fri, 16 May 2025 12:14:36 +0200
Subject: [PATCH] hwdb: add missing PLUTO SDR vendor name
(cherry picked from commit b2ef1818e68c455e08fb74421e37f325cea5a419)
Resolves: RHEL-72697
---
hwdb.d/70-software-radio.hwdb | 3 +++
1 file changed, 3 insertions(+)
diff --git a/hwdb.d/70-software-radio.hwdb b/hwdb.d/70-software-radio.hwdb
index 1e5aa1dc87..1347f284e6 100644
--- a/hwdb.d/70-software-radio.hwdb
+++ b/hwdb.d/70-software-radio.hwdb
@@ -36,6 +36,9 @@ usb:v1D50p6066*
usb:v2CF0p5250*
ID_SOFTWARE_RADIO=1
+#################
+# Analog Devices
+#################
# ADI pluto SDR
usb:v0456pB673*
ID_SOFTWARE_RADIO=1

View File

@ -0,0 +1,47 @@
From 222a298a261a22fb09808d6761c8fdc9567961ce Mon Sep 17 00:00:00 2001
From: AsciiWolf <drusek@redhat.com>
Date: Thu, 22 May 2025 13:04:07 +0200
Subject: [PATCH] hwdb: add Ettus Research SDR devices
(cherry picked from commit 9dad00ef94e6207642f04496c56a4123a396530c)
Resolves: RHEL-72697
---
hwdb.d/70-software-radio.hwdb | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/hwdb.d/70-software-radio.hwdb b/hwdb.d/70-software-radio.hwdb
index 1347f284e6..4bf7301251 100644
--- a/hwdb.d/70-software-radio.hwdb
+++ b/hwdb.d/70-software-radio.hwdb
@@ -47,3 +47,30 @@ usb:v0456pB673*
# ADI pluto DFU
usb:v0456pB674*
ID_SOFTWARE_RADIO=1
+
+#################
+# Ettus Research
+#################
+# USRP1
+usb:vFFFEp0002*
+ ID_SOFTWARE_RADIO=1
+
+# B100
+usb:v2500p0002*
+ ID_SOFTWARE_RADIO=1
+
+# B200
+usb:v2500p0020*
+ ID_SOFTWARE_RADIO=1
+
+usb:v2500p0021*
+ ID_SOFTWARE_RADIO=1
+
+usb:v2500p0022*
+ ID_SOFTWARE_RADIO=1
+
+usb:v3923p7813*
+ ID_SOFTWARE_RADIO=1
+
+usb:v3923p7814*
+ ID_SOFTWARE_RADIO=1

View File

@ -0,0 +1,227 @@
From 2a0901252c43514b613f77b80f3db45ca4314b34 Mon Sep 17 00:00:00 2001
From: AsciiWolf <mail@asciiwolf.com>
Date: Fri, 23 May 2025 14:28:16 +0200
Subject: [PATCH] hwdb: add RTL-SDR devices
(cherry picked from commit f6f8c6e9fd79dd90600035d11884584be0a404b0)
Resolves: RHEL-72697
---
hwdb.d/70-software-radio.hwdb | 183 ++++++++++++++++++++++++++++++++--
1 file changed, 177 insertions(+), 6 deletions(-)
diff --git a/hwdb.d/70-software-radio.hwdb b/hwdb.d/70-software-radio.hwdb
index 4bf7301251..74510bc4ee 100644
--- a/hwdb.d/70-software-radio.hwdb
+++ b/hwdb.d/70-software-radio.hwdb
@@ -21,9 +21,9 @@
# Allowed properties are:
# ID_SOFTWARE_RADIO=0|1
-################
+##########################################
# Nuand
-################
+##########################################
# bladeRF 1.x
usb:v2CF0p5246*
ID_SOFTWARE_RADIO=1
@@ -36,9 +36,9 @@ usb:v1D50p6066*
usb:v2CF0p5250*
ID_SOFTWARE_RADIO=1
-#################
+##########################################
# Analog Devices
-#################
+##########################################
# ADI pluto SDR
usb:v0456pB673*
ID_SOFTWARE_RADIO=1
@@ -48,9 +48,9 @@ usb:v0456pB673*
usb:v0456pB674*
ID_SOFTWARE_RADIO=1
-#################
+##########################################
# Ettus Research
-#################
+##########################################
# USRP1
usb:vFFFEp0002*
ID_SOFTWARE_RADIO=1
@@ -74,3 +74,174 @@ usb:v3923p7813*
usb:v3923p7814*
ID_SOFTWARE_RADIO=1
+
+##########################################
+# RTL-SDR
+##########################################
+# original RTL2832U vid/pid (hama nano, for example)
+usb:v0BDAp2832*
+ ID_SOFTWARE_RADIO=1
+
+# RTL2832U OEM vid/pid, e.g. ezcap EzTV668 (E4000), Newsky TV28T (E4000/R820T) etc.
+usb:v0BDAp2838*
+ ID_SOFTWARE_RADIO=1
+
+# DigitalNow Quad DVB-T PCI-E card (4x FC0012?)
+usb:v0413p6680*
+ ID_SOFTWARE_RADIO=1
+
+# Leadtek WinFast DTV Dongle mini D (FC0012)
+usb:v0413p6F0F*
+ ID_SOFTWARE_RADIO=1
+
+# Genius TVGo DVB-T03 USB dongle (Ver. B)
+usb:v0458p707F*
+ ID_SOFTWARE_RADIO=1
+
+# Terratec Cinergy T Stick Black (rev 1) (FC0012)
+usb:v0CCDp00A9*
+ ID_SOFTWARE_RADIO=1
+
+# Terratec NOXON rev 1 (FC0013)
+usb:v0CCDp00B3*
+ ID_SOFTWARE_RADIO=1
+
+# Terratec Deutschlandradio DAB Stick (FC0013)
+usb:v0CCDp00B4*
+ ID_SOFTWARE_RADIO=1
+
+# Terratec NOXON DAB Stick - Radio Energy (FC0013)
+usb:v0CCDp00B5*
+ ID_SOFTWARE_RADIO=1
+
+# Terratec Media Broadcast DAB Stick (FC0013)
+usb:v0CCDp00B7*
+ ID_SOFTWARE_RADIO=1
+
+# Terratec BR DAB Stick (FC0013)
+usb:v0CCDp00B8*
+ ID_SOFTWARE_RADIO=1
+
+# Terratec WDR DAB Stick (FC0013)
+usb:v0CCDp00B9*
+ ID_SOFTWARE_RADIO=1
+
+# Terratec MuellerVerlag DAB Stick (FC0013)
+usb:v0CCDp00C0*
+ ID_SOFTWARE_RADIO=1
+
+# Terratec Fraunhofer DAB Stick (FC0013)
+usb:v0CCDp00C6*
+ ID_SOFTWARE_RADIO=1
+
+# Terratec Cinergy T Stick RC (Rev.3) (E4000)
+usb:v0CCDp00D3*
+ ID_SOFTWARE_RADIO=1
+
+# Terratec T Stick PLUS (E4000)
+usb:v0CCDp00D7*
+ ID_SOFTWARE_RADIO=1
+
+# Terratec NOXON rev 2 (E4000)
+usb:v0CCDp00E0*
+ ID_SOFTWARE_RADIO=1
+
+# PixelView PV-DT235U(RN) (FC0012)
+usb:v1554p5020*
+ ID_SOFTWARE_RADIO=1
+
+# Astrometa DVB-T/DVB-T2 (R828D)
+usb:v15F4p0131*
+ ID_SOFTWARE_RADIO=1
+
+# HanfTek DAB+FM+DVB-T
+usb:v15F4p0133*
+ ID_SOFTWARE_RADIO=1
+
+# Compro Videomate U620F (E4000)
+usb:v185Bp0620*
+ ID_SOFTWARE_RADIO=1
+
+# Compro Videomate U650F (E4000)
+usb:v185Bp0650*
+ ID_SOFTWARE_RADIO=1
+
+# Compro Videomate U680F (E4000)
+usb:v185Bp0680*
+ ID_SOFTWARE_RADIO=1
+
+# GIGABYTE GT-U7300 (FC0012)
+usb:v1B80pD393*
+ ID_SOFTWARE_RADIO=1
+
+# DIKOM USB-DVBT HD
+usb:v1B80pD394*
+ ID_SOFTWARE_RADIO=1
+
+# Peak 102569AGPK (FC0012)
+usb:v1B80pD395*
+ ID_SOFTWARE_RADIO=1
+
+# KWorld KW-UB450-T USB DVB-T Pico TV (TUA9001)
+usb:v1B80pD397*
+ ID_SOFTWARE_RADIO=1
+
+# Zaapa ZT-MINDVBZP (FC0012)
+usb:v1B80pD398*
+ ID_SOFTWARE_RADIO=1
+
+# SVEON STV20 DVB-T USB & FM (FC0012)
+usb:v1B80pD39D*
+ ID_SOFTWARE_RADIO=1
+
+# Twintech UT-40 (FC0013)
+usb:v1B80pD3A4*
+ ID_SOFTWARE_RADIO=1
+
+# ASUS U3100MINI_PLUS_V2 (FC0013)
+usb:v1B80pD3A8*
+ ID_SOFTWARE_RADIO=1
+
+# SVEON STV27 DVB-T USB & FM (FC0013)
+usb:v1B80pD3AF*
+ ID_SOFTWARE_RADIO=1
+
+# SVEON STV21 DVB-T USB & FM
+usb:v1B80pD3B0*
+ ID_SOFTWARE_RADIO=1
+
+# Dexatek DK DVB-T Dongle (Logilink VG0002A) (FC2580)
+usb:v1D19p1101*
+ ID_SOFTWARE_RADIO=1
+
+# Dexatek DK DVB-T Dongle (MSI DigiVox mini II V3.0)
+usb:v1D19p1102*
+ ID_SOFTWARE_RADIO=1
+
+# Dexatek DK 5217 DVB-T Dongle (FC2580)
+usb:v1D19p1103*
+ ID_SOFTWARE_RADIO=1
+
+# MSI DigiVox Micro HD (FC2580)
+usb:v1D19p1104*
+ ID_SOFTWARE_RADIO=1
+
+# Sweex DVB-T USB (FC0012)
+usb:v1F4DpA803*
+ ID_SOFTWARE_RADIO=1
+
+# GTek T803 (FC0012)
+usb:v1F4DpB803*
+ ID_SOFTWARE_RADIO=1
+
+# Lifeview LV5TDeluxe (FC0012)
+usb:v1F4DpC803*
+ ID_SOFTWARE_RADIO=1
+
+# MyGica TD312 (FC0012)
+usb:v1F4DpD286*
+ ID_SOFTWARE_RADIO=1
+
+# PROlectrix DV107669 (FC0012)
+usb:v1F4DpD803*
+ ID_SOFTWARE_RADIO=1

View File

@ -0,0 +1,36 @@
From f72100d5ae2aab418b2a80ee6e34187451d25c64 Mon Sep 17 00:00:00 2001
From: Yu Watanabe <watanabe.yu+github@gmail.com>
Date: Sat, 24 May 2025 00:13:02 +0900
Subject: [PATCH] hwdb: merge entries for Ettus Research B200
Follow-up for 9dad00ef94e6207642f04496c56a4123a396530c.
(cherry picked from commit c2fcfda20f2336bcb9bd2cc01938f9211f3c9a29)
Resolves: RHEL-72697
---
hwdb.d/70-software-radio.hwdb | 8 --------
1 file changed, 8 deletions(-)
diff --git a/hwdb.d/70-software-radio.hwdb b/hwdb.d/70-software-radio.hwdb
index 74510bc4ee..b005309101 100644
--- a/hwdb.d/70-software-radio.hwdb
+++ b/hwdb.d/70-software-radio.hwdb
@@ -61,17 +61,9 @@ usb:v2500p0002*
# B200
usb:v2500p0020*
- ID_SOFTWARE_RADIO=1
-
usb:v2500p0021*
- ID_SOFTWARE_RADIO=1
-
usb:v2500p0022*
- ID_SOFTWARE_RADIO=1
-
usb:v3923p7813*
- ID_SOFTWARE_RADIO=1
-
usb:v3923p7814*
ID_SOFTWARE_RADIO=1

View File

@ -0,0 +1,86 @@
From 565fc0f8f5d4daf769ccf928a1d8353c27f29e21 Mon Sep 17 00:00:00 2001
From: tuxmainy <magic-github@damage.devloop.de>
Date: Mon, 26 May 2025 20:50:04 +0000
Subject: [PATCH] hwdb: make Saitek PLC Pro Flight Rudder Pedals a joystick
(#37601)
Fuzzy logic on joystick vs. advanced keyboard detection thinks the
rudders are a keyboard. Adding this forces udev to use this device as
joystick.
```
P: /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/0003:06A3:0763.000D/input/input22/event3
M: event3
R: 3
U: input
D: c 13:67
N: input/event3
L: 0
S: input/by-id/usb-Saitek_Saitek_Pro_Flight_Rudder_Pedals-event-joystick
S: input/by-path/pci-0000:00:14.0-usbv2-0:3:1.0-event-joystick
S: input/by-path/pci-0000:00:14.0-usb-0:3:1.0-event-joystick
E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.0/0003:06A3:0763.000D/input/input22/event3
E: DEVNAME=/dev/input/event3
E: MAJOR=13
E: MINOR=67
E: SUBSYSTEM=input
E: USEC_INITIALIZED=10981053700
E: ID_INPUT=1
E: ID_INPUT_JOYSTICK=1
E: ID_BUS=usb
E: ID_MODEL=Saitek_Pro_Flight_Rudder_Pedals
E: ID_MODEL_ENC=Saitek\x20Pro\x20Flight\x20Rudder\x20Pedals
E: ID_MODEL_ID=0763
E: ID_SERIAL=Saitek_Saitek_Pro_Flight_Rudder_Pedals
E: ID_VENDOR=Saitek
E: ID_VENDOR_ENC=Saitek
E: ID_VENDOR_ID=06a3
E: ID_REVISION=0101
E: ID_TYPE=hid
E: ID_USB_MODEL=Saitek_Pro_Flight_Rudder_Pedals
E: ID_USB_MODEL_ENC=Saitek\x20Pro\x20Flight\x20Rudder\x20Pedals
E: ID_USB_MODEL_ID=0763
E: ID_USB_SERIAL=Saitek_Saitek_Pro_Flight_Rudder_Pedals
E: ID_USB_VENDOR=Saitek
E: ID_USB_VENDOR_ENC=Saitek
E: ID_USB_VENDOR_ID=06a3
E: ID_USB_REVISION=0101
E: ID_USB_TYPE=hid
E: ID_USB_INTERFACES=:030000:
E: ID_USB_INTERFACE_NUM=00
E: ID_USB_DRIVER=usbhid
E: ID_PATH_WITH_USB_REVISION=pci-0000:00:14.0-usbv2-0:3:1.0
E: ID_PATH=pci-0000:00:14.0-usb-0:3:1.0
E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_3_1_0
E: ID_FOR_SEAT=input-pci-0000_00_14_0-usb-0_3_1_0
E: LIBINPUT_DEVICE_GROUP=3/6a3/763:usb-0000:00:14.0-3
E: DEVLINKS=/dev/input/by-id/usb-Saitek_Saitek_Pro_Flight_Rudder_Pedals-event-joystick /dev/input/by-path/pci-0000:00:14.0-usbv2-0:3:1.0-event-joystick /dev/input/by-path/pci-0000:00:14.>
E: TAGS=:seat:uaccess:
E: CURRENT_TAGS=:seat:uaccess:
```
```
Bus 001 Device 013: ID 06a3:0763 Saitek PLC Pro Flight Rudder Pedals
```
Closes #34642.
(cherry picked from commit 554d5882b7eb9b6e3a9a918513c6c2c59617f5cd)
Resolves: RHEL-72697
---
hwdb.d/60-input-id.hwdb | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/hwdb.d/60-input-id.hwdb b/hwdb.d/60-input-id.hwdb
index 88fec6e043..6730ac9efa 100644
--- a/hwdb.d/60-input-id.hwdb
+++ b/hwdb.d/60-input-id.hwdb
@@ -102,3 +102,7 @@ id-input:modalias:input:b0003v26CEp01A2*
ID_INPUT_JOYSTICK=
ID_INPUT_KEY=
ID_INPUT=
+
+# Saitek PLC Pro Flight Rudder Pedals
+id-input:modalias:input:b0003v06A3p0763*
+ ID_INPUT_JOYSTICK=1

View File

@ -0,0 +1,33 @@
From daa6aeacda465fa701f109ea2a5180663ad24f7b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20Moczulski?= <Michalmoczulski1a@gmail.com>
Date: Mon, 2 Jun 2025 22:12:07 +0200
Subject: [PATCH] hwdb: fix touchpad for ASUS X1504ZA (#37696)
Added udev rule generated by `libinput measure fuzz --fuzz=8`, which
fixes my touchpad.
(cherry picked from commit f1851809516dc40497d22e658074992cfd28fccc)
Resolves: RHEL-72697
---
hwdb.d/60-evdev.hwdb | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/hwdb.d/60-evdev.hwdb b/hwdb.d/60-evdev.hwdb
index 47f1c2d2d2..145b10e63a 100644
--- a/hwdb.d/60-evdev.hwdb
+++ b/hwdb.d/60-evdev.hwdb
@@ -219,6 +219,13 @@ evdev:name:ELAN1401:00 04F3:30DC Touchpad:dmi:*:svnASUSTeKCOMPUTERINC.:pnZenBook
EVDEV_ABS_35=:::8
EVDEV_ABS_36=:::8
+# ASUS X1504ZA
+evdev:name:ASUP1301:00 093A:2009 Touchpad:dmi:*:svnASUSTeKCOMPUTERINC.*:pvr1.0*:
+ EVDEV_ABS_00=:::8
+ EVDEV_ABS_01=:::8
+ EVDEV_ABS_35=:::8
+ EVDEV_ABS_36=:::8
+
#########################################
# Avita
#########################################

View File

@ -0,0 +1,65 @@
From 0a1fdcb0980fb8797032f84473ef273ed9832715 Mon Sep 17 00:00:00 2001
From: tytan652 <tytan652@tytanium.xyz>
Date: Thu, 5 Jun 2025 11:26:58 +0200
Subject: [PATCH] hwdb: add support for Loupedeck devices
Razer has partnered with Loupedeck to develop some devices.
Add support for the following devices:
- Loupedeck CT
- Loupedeck Live
- Loupedeck Live S
- Razer Stream Controller
- Razer Stream Controller X
(cherry picked from commit 1c814f35000c239c6078c072eef02f2e1c82e5cc)
Resolves: RHEL-72697
---
hwdb.d/70-av-production.hwdb | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/hwdb.d/70-av-production.hwdb b/hwdb.d/70-av-production.hwdb
index fee74729c4..e423bd600e 100644
--- a/hwdb.d/70-av-production.hwdb
+++ b/hwdb.d/70-av-production.hwdb
@@ -121,6 +121,21 @@ usb:v06F8pB107*
usb:v0C26p001E*
ID_AV_PRODUCTION_CONTROLLER=1
+####################
+# Loupedeck
+####################
+# CT
+usb:v2EC2p0003*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
+# Live
+usb:v2EC2p0004*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
+# Live S
+usb:v2EC2p0006*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
#####################
# Native Instruments
#####################
@@ -200,6 +215,17 @@ usb:v17CCp1130*
usb:v2B73p0005*
ID_AV_PRODUCTION_CONTROLLER=1
+####################
+# Razer
+####################
+# Stream Controller
+usb:v1532p0D06*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
+# Stream Controller X
+usb:v1532p0D09*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
####################
# SunSDR
####################

View File

@ -0,0 +1,27 @@
From 51cbe4238d9e83fcccea721ea4bb81db88529630 Mon Sep 17 00:00:00 2001
From: SoloSaravanan <SoloSaravanan@proton.me>
Date: Thu, 5 Jun 2025 18:36:23 +0530
Subject: [PATCH] hwdb: Acer Nitro ANV15-51 Mic Toggle
(cherry picked from commit 4344ef73a03415a9e4e1866e05039804971b1358)
Resolves: RHEL-72697
---
hwdb.d/60-keyboard.hwdb | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index 0ed4478399..22772e7bfa 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -240,6 +240,10 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnNitro*AN*515-58:pvr*
KEYBOARD_KEY_8a=micmute # Microphone mute button
KEYBOARD_KEY_55=power
+# Nitro ANV15-51
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnNitro*ANV*15-51:pvr*
+ KEYBOARD_KEY_66=micmute # Microphone mute button
+
###########################################################
# Alienware
###########################################################

View File

@ -0,0 +1,67 @@
From e70f9608a2e182836818fb3c11ec2a5b860d39cc Mon Sep 17 00:00:00 2001
From: Craig McLure <craig@mclure.net>
Date: Tue, 10 Jun 2025 05:52:18 +0100
Subject: [PATCH] hwdb: Added Beacn and TC-Helicon Audio controllers (#37798)
This adds the TC-Helicon and Beacn audio devices as AV production hardware,
so that user-space can communicate with them and monitor their inputs.
(cherry picked from commit 89c8d8bdd1aacf8a65571749c1410d1a9218d1db)
Resolves: RHEL-72697
---
hwdb.d/70-av-production.hwdb | 34 ++++++++++++++++++++++++++++++++++
1 file changed, 34 insertions(+)
diff --git a/hwdb.d/70-av-production.hwdb b/hwdb.d/70-av-production.hwdb
index e423bd600e..aa23af6add 100644
--- a/hwdb.d/70-av-production.hwdb
+++ b/hwdb.d/70-av-production.hwdb
@@ -30,6 +30,29 @@
usb:v2982p1967*
ID_AV_PRODUCTION_CONTROLLER=1
+####################
+# Beacn
+####################
+# Beacn Mic
+usb:v33AEp0001*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
+# Beacn Studio
+usb:v33AEp0003*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
+# Beacn Studio (PC2 Port)
+usb:v33AEp4003*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
+# Beacn Mix
+usb:v33AEp0004*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
+# Beacn Mix Create
+usb:v33AEp0007*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
################
# Contour
################
@@ -233,6 +256,17 @@ usb:v1532p0D09*
usb:v1FC9p0003*
ID_AV_PRODUCTION_CONTROLLER=1
+####################
+# TC-Helicon
+####################
+# GoXLR
+usb:v1220p8FE4*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
+# GoXLR Mini
+usb:v1220p8FE0*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
####################
# Xencelabs
####################

View File

@ -0,0 +1,26 @@
From d2ee46bc021b174de5f5d55425791c5068415d73 Mon Sep 17 00:00:00 2001
From: Oliver Schramm <oliver.schramm97@gmail.com>
Date: Sun, 22 Jun 2025 13:51:51 +0200
Subject: [PATCH] hwdb: Add support for Lenovo IdeaPad Slim 5 series
Signed-off-by: Oliver Schramm <oliver.schramm97@gmail.com>
(cherry picked from commit 16fe095178230ff276ac44958d7295d73eb35652)
Resolves: RHEL-72697
---
hwdb.d/60-keyboard.hwdb | 2 ++
1 file changed, 2 insertions(+)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index 22772e7bfa..5882ffd9e3 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -1115,6 +1115,8 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*IdeaPad*U300s*:pvr*
evdev:atkbd:dmi:bvn*:bvr*:svnLENOVO*:pn*IdeaPad*Z370*:pvr*
# Lenovo IdeaPad Flex 5
evdev:atkbd:dmi:bvn*:bvr*:svnLENOVO:*:pvrIdeaPadFlex5*
+# Lenovo IdeaPad Slim 5
+evdev:atkbd:dmi:bvn*:bvr*:svnLENOVO:*:pvrIdeaPadSlim5*
# Lenovo Yoga S940 (9th gen)
evdev:atkbd:dmi:bvn*:bvr*:svnLENOVO:pn81Q7*:pvrLenovoYogaS940:*
# Lenovo ThinkBook 16G6IRL

View File

@ -0,0 +1,113 @@
From 29cba709aec7f84d72cfb420b643fe0df44c5ded Mon Sep 17 00:00:00 2001
From: Bastien Nocera <hadess@hadess.net>
Date: Sat, 21 Jun 2025 20:01:18 +0200
Subject: [PATCH] hwdb: Add hwbd definitions for maker tools
As originally added back in 2016 in 68ea57b21d4d ("Added support
for 3D printers to uaccess (ID_MAKER_TOOL)").
The first devices added would be 3D printers compatible with Flashprint
from Flashforge, as listed in this connector plugin:
https://github.com/Mrnt/OctoPrint-FlashForge/blob/master/octoprint_flashforge/__init__.py#L28
See https://github.com/flathub/com.flashforge.FlashPrint/issues/59
(cherry picked from commit 3dcb56f5e0fe4d937a003bf89496a27b52c5c69e)
Resolves: RHEL-72697
---
hwdb.d/70-maker-tools.hwdb | 72 ++++++++++++++++++++++++++++++++++++++
hwdb.d/parse_hwdb.py | 1 +
2 files changed, 73 insertions(+)
create mode 100644 hwdb.d/70-maker-tools.hwdb
diff --git a/hwdb.d/70-maker-tools.hwdb b/hwdb.d/70-maker-tools.hwdb
new file mode 100644
index 0000000000..acbd61de02
--- /dev/null
+++ b/hwdb.d/70-maker-tools.hwdb
@@ -0,0 +1,72 @@
+# This file is part of systemd.
+#
+# Database for maker tools, like CNCs, laser cutters, 3D printers,
+# or any other so called "maker tools" and and that should be
+# accessible to the seat owner.
+#
+# Permitted keys:
+# Specify if a device is a maker tool
+# ID_MAKER_TOOL=1|0
+
+###########################################################
+# Dremel
+###########################################################
+# Dremel IdeaBuilder 3D20
+usb:v2A89p8889*
+ ID_MAKER_TOOL=1
+
+# Dremel IdeaBuilder 3D45
+usb:v2A89p888D*
+ ID_MAKER_TOOL=1
+
+###########################################################
+# Flashforge
+###########################################################
+# Flashforge Dreamer
+usb:v2B71p0001*
+ ID_MAKER_TOOL=1
+
+# Flashforge Finder v1
+usb:v2B71p0002*
+ ID_MAKER_TOOL=1
+
+# Flashforge Guider II
+usb:v2B71p0004*
+ ID_MAKER_TOOL=1
+
+# Flashforge Inventor
+usb:v2B71p0005*
+ ID_MAKER_TOOL=1
+
+# Flashforge Finder v2
+usb:v2B71p0007*
+ ID_MAKER_TOOL=1
+
+# Flashforge Guider IIs
+usb:v2B71p0009*
+ ID_MAKER_TOOL=1
+
+# Flashforge Dreamer NX
+usb:v2B71p000A*
+ ID_MAKER_TOOL=1
+
+# Flashforge Creator Max
+usb:v2B71p00E7*
+ ID_MAKER_TOOL=1
+
+# Flashforge Finder v2.12
+usb:v2B71p00EE*
+ ID_MAKER_TOOL=1
+
+# FlashForge Creator Pro 2
+usb:v2B71p000E*
+ ID_MAKER_TOOL=1
+
+###########################################################
+# PowerSpec
+###########################################################
+# PowerSpec Ultra 3DPrinter
+usb:v0315p0001*
+usb:v2B71p00F6*
+usb:v2B71p00FF
+ ID_MAKER_TOOL=1
diff --git a/hwdb.d/parse_hwdb.py b/hwdb.d/parse_hwdb.py
index 60022e3095..9a599e735c 100755
--- a/hwdb.d/parse_hwdb.py
+++ b/hwdb.d/parse_hwdb.py
@@ -176,6 +176,7 @@ def property_grammar():
('ID_INPUT_TOUCHSCREEN', id_input_setting),
('ID_INPUT_TRACKBALL', id_input_setting),
('ID_SIGNAL_ANALYZER', Or((Literal('0'), Literal('1')))),
+ ('ID_MAKER_TOOL', Or((Literal('0'), Literal('1')))),
('ID_HARDWARE_WALLET', Or((Literal('0'), Literal('1')))),
('ID_SOFTWARE_RADIO', Or((Literal('0'), Literal('1')))),
('ID_MM_DEVICE_IGNORE', Or((Literal('0'), Literal('1')))),

View File

@ -0,0 +1,32 @@
From 88ecb9f92eeb25d47d5975507b84d75bce45458b Mon Sep 17 00:00:00 2001
From: Andy Shevchenko <andy.shevchenko@gmail.com>
Date: Fri, 27 Jun 2025 01:08:45 +0300
Subject: [PATCH] hwdb: Add accel orientation quirk for the Microtech e-tab Pro
Signed-off-by: Andy Shevchenko <andy.shevchenko@gmail.com>
(cherry picked from commit 318c4f7b810e8271b9a418fba9a526ff28a942ca)
Resolves: RHEL-72697
---
hwdb.d/60-sensor.hwdb | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/hwdb.d/60-sensor.hwdb b/hwdb.d/60-sensor.hwdb
index b25dda8959..8f6afb88bc 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -866,6 +866,14 @@ sensor:modalias:acpi:KIOX000A*:dmi:*:rvnMETAPHYUNI:rnMetawillBook01:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, -1, 0; 0, 0, -1
ACCEL_LOCATION=display
+#########################################
+# Microtech
+#########################################
+
+# Microtech e-tab Pro
+sensor:modalias:acpi:KIOX000A*:dmi:*:svnMicrotech:pne-tabPro:*
+ ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
+
#########################################
# MPMAN
#########################################

View File

@ -0,0 +1,26 @@
From b18673b603c04b8b02da067f7f68ba04d2f99afe Mon Sep 17 00:00:00 2001
From: AsciiWolf <mail@asciiwolf.com>
Date: Sat, 5 Jul 2025 23:32:09 +0200
Subject: [PATCH] hwdb: add 70-maker-tools.hwdb to meson.build
The hwdb file was not added there in 3dcb56f5e0fe4d937a003bf89496a27b52c5c69e for some reason
(cherry picked from commit cdbc500faa7cc95eee4c7ac5344127c5e1709e71)
Resolves: RHEL-72697
---
hwdb.d/meson.build | 1 +
1 file changed, 1 insertion(+)
diff --git a/hwdb.d/meson.build b/hwdb.d/meson.build
index 5ed49e877a..e95ccda8c7 100644
--- a/hwdb.d/meson.build
+++ b/hwdb.d/meson.build
@@ -31,6 +31,7 @@ hwdb_files_test = files(
'70-cameras.hwdb',
'70-hardware-wallets.hwdb',
'70-joystick.hwdb',
+ '70-maker-tools.hwdb',
'70-mouse.hwdb',
'70-pda.hwdb',
'70-pointingstick.hwdb',

View File

@ -0,0 +1,23 @@
From eab61c92672cdee71a09aaa0df81bc6648d5bcf3 Mon Sep 17 00:00:00 2001
From: AsciiWolf <mail@asciiwolf.com>
Date: Sat, 5 Jul 2025 23:44:08 +0200
Subject: [PATCH] hwdb: fix typo in 70-maker-tools.hwdb
(cherry picked from commit 225de2729da2b51531083fa0f88351b192db7b23)
Resolves: RHEL-72697
---
hwdb.d/70-maker-tools.hwdb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hwdb.d/70-maker-tools.hwdb b/hwdb.d/70-maker-tools.hwdb
index acbd61de02..86b738bfaa 100644
--- a/hwdb.d/70-maker-tools.hwdb
+++ b/hwdb.d/70-maker-tools.hwdb
@@ -68,5 +68,5 @@ usb:v2B71p000E*
# PowerSpec Ultra 3DPrinter
usb:v0315p0001*
usb:v2B71p00F6*
-usb:v2B71p00FF
+usb:v2B71p00FF*
ID_MAKER_TOOL=1

21435
SOURCES/1179-hwdb-update.patch Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,28 @@
From 0f88bbb9eca500c74512c9e024b1f379d1ec9859 Mon Sep 17 00:00:00 2001
From: luc-salles <lucasadrianosalles4@hotmail.com>
Date: Wed, 23 Jul 2025 11:30:26 -0400
Subject: [PATCH] Fix Positivo K116J search key and www shortcut
(cherry picked from commit 53b1d3fd48586e0a6129a08729da2e7b81986f06)
Resolves: RHEL-72697
---
hwdb.d/60-keyboard.hwdb | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index 5882ffd9e3..6955e56381 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -2287,6 +2287,11 @@ evdev:name:SIPODEV USB Composite Device:dmi:bvn*:bvr*:svnPositivoTecnologiaSA:pn
KEYBOARD_KEY_7006d=prog3 # Programmable button
KEYBOARD_KEY_7006e=prog4 # Programmable button
+# Positivo (K116J)
+evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:svnPositivo*:pn*:pvr*:rvnPositivo*:rnK116J*
+ KEYBOARD_KEY_69=www
+ KEYBOARD_KEY_6e=search
+
###########################################################
# Multilaser
###########################################################

View File

@ -0,0 +1,29 @@
From 0a8d4cca6bf0269145995afd03604bae1a2c6c23 Mon Sep 17 00:00:00 2001
From: SoloSaravanan <SoloSaravanan@proton.me>
Date: Wed, 30 Jul 2025 10:37:56 +0530
Subject: [PATCH] hwdb: Acer Nitro ANV15-51 Nitro Sense Toggle
This fixes Acer Nitro ANV15-51 Nitro sense toggle
Event: time 1753852156.475850, -------------- SYN_REPORT ------------
Event: time 1753852156.565054, type 4 (EV_MSC), code 4 (MSC_SCAN), value f5
Event: time 1753852156.565054, type 1 (EV_KEY), code 148 (KEY_PROG1), value 0
(cherry picked from commit 2c1881f42cbe4bed7b02749dfff7f9f58f507f00)
Resolves: RHEL-72697
---
hwdb.d/60-keyboard.hwdb | 1 +
1 file changed, 1 insertion(+)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index 6955e56381..b48b001917 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -243,6 +243,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnNitro*AN*515-58:pvr*
# Nitro ANV15-51
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnNitro*ANV*15-51:pvr*
KEYBOARD_KEY_66=micmute # Microphone mute button
+ KEYBOARD_KEY_f5=prog1 # NitroSense button
###########################################################
# Alienware

View File

@ -0,0 +1,267 @@
From e33a8c64912494e5a0be51d97bab7c9a9ecd6515 Mon Sep 17 00:00:00 2001
From: Yu Watanabe <watanabe.yu+github@gmail.com>
Date: Fri, 1 Aug 2025 05:08:06 +0900
Subject: [PATCH] hwdb: several cleanups
- drop trailing spaces,
- replace tabs with spaces,
- align comments.
(cherry picked from commit c574e32fb9498179b4d164a3152cc3ba36812df2)
Resolves: RHEL-72697
---
hwdb.d/60-keyboard.hwdb | 100 ++++++++++++++++++++--------------------
hwdb.d/60-sensor.hwdb | 8 ++--
2 files changed, 54 insertions(+), 54 deletions(-)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index b48b001917..0ac71d64f7 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -155,8 +155,8 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspireA317-33:*
# Acer Aspire One AO532h
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnAO532h:*
KEYBOARD_KEY_84=bluetooth
- KEYBOARD_KEY_ce=unknown # Brightness Up, also emitted by acpi-video, ignore
- KEYBOARD_KEY_ef=unknown # Brightness Down, also emitted by acpi-video, ignore
+ KEYBOARD_KEY_ce=unknown # Brightness Up, also emitted by acpi-video, ignore
+ KEYBOARD_KEY_ef=unknown # Brightness Down, also emitted by acpi-video, ignore
# Acer Aspire One AOD270 (Atom N2600) and its Packard Bell Dot SC rebrand
evdev:name:Acer WMI hotkeys:dmi:bvn*:bvr*:bd*:svnAcer*:pnAOD270*:*
@@ -165,8 +165,8 @@ evdev:name:Acer WMI hotkeys:dmi:*:svnPackardBell:pndots:*:rvnPackardBell:rnSJE01
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnAOD270*:*
evdev:atkbd:dmi:*:svnPackardBell:pndots:*:rvnPackardBell:rnSJE01_CT:*
- KEYBOARD_KEY_ce=unknown # Brightness Up, also emitted by acpi-video, ignore
- KEYBOARD_KEY_ef=unknown # Brightness Down, also emitted by acpi-video, ignore
+ KEYBOARD_KEY_ce=unknown # Brightness Up, also emitted by acpi-video, ignore
+ KEYBOARD_KEY_ef=unknown # Brightness Down, also emitted by acpi-video, ignore
# Predator PT314-52s
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnPredator*PT314-52s:pvr*
@@ -243,7 +243,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnNitro*AN*515-58:pvr*
# Nitro ANV15-51
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnNitro*ANV*15-51:pvr*
KEYBOARD_KEY_66=micmute # Microphone mute button
- KEYBOARD_KEY_f5=prog1 # NitroSense button
+ KEYBOARD_KEY_f5=prog1 # NitroSense button
###########################################################
# Alienware
@@ -304,10 +304,10 @@ evdev:name:gpio-keys:phys:gpio-keys/input0:ev:100003:dmi:*:svnASUSTeKCOMPUTERINC
# All four of these buttons generate a multi-scancode sequence
# consisting of Left_Meta, Right_Ctrl and another scancode.
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAYANEO:pnKUN:pvr*
- KEYBOARD_KEY_18=f15 # LC (next to the left shoulder button)
- KEYBOARD_KEY_20=f16 # RC (next to the right shoulder button)
- KEYBOARD_KEY_28=f17 # Ayaneo (lower-right corner of screen)
- KEYBOARD_KEY_30=f18 # Touchpad Mode (top-right corner of screen)
+ KEYBOARD_KEY_18=f15 # LC (next to the left shoulder button)
+ KEYBOARD_KEY_20=f16 # RC (next to the right shoulder button)
+ KEYBOARD_KEY_28=f17 # Ayaneo (lower-right corner of screen)
+ KEYBOARD_KEY_30=f18 # Touchpad Mode (top-right corner of screen)
# Most AYANEO devices expose an AT Translated Set 2 Keyboard
# for either three or four additional buttons not available
@@ -316,10 +316,10 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAYANEO:pnKUN:pvr*
# depend on the model, but the final scancode is always the
# same.
evdev:name:AT Translated Set 2 keyboard:dmi:*:svnAYANEO:*
- KEYBOARD_KEY_66=f15 # LC (All models)
- KEYBOARD_KEY_67=f16 # RC (All models)
- KEYBOARD_KEY_68=f17 # Ayaneo (All models)
- KEYBOARD_KEY_69=f18 # Touchpad Mode (Kun only)
+ KEYBOARD_KEY_66=f15 # LC (All models)
+ KEYBOARD_KEY_67=f16 # RC (All models)
+ KEYBOARD_KEY_68=f17 # Ayaneo (All models)
+ KEYBOARD_KEY_69=f18 # Touchpad Mode (Kun only)
###########################################################
# BenQ
@@ -433,10 +433,10 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnInspiron*1210:*
# Dell Inspiron 11 3168
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnInspiron11-3168:pvr*
- KEYBOARD_KEY_c7=!home # Fn-LeftArrow
- KEYBOARD_KEY_cf=!end # Fn-RightArrow
- KEYBOARD_KEY_c9=!pageup # Fn-UpArrow
- KEYBOARD_KEY_d1=!pagedown # Fn-DownArrow
+ KEYBOARD_KEY_c7=!home # Fn-LeftArrow
+ KEYBOARD_KEY_cf=!end # Fn-RightArrow
+ KEYBOARD_KEY_c9=!pageup # Fn-UpArrow
+ KEYBOARD_KEY_d1=!pagedown # Fn-DownArrow
# Dell Inspiron 1520 and Latitude 2110
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnInspiron*1520:*
@@ -505,7 +505,7 @@ evdev:name:Dell Privacy Driver:dmi:bvn*:bvr*:bd*:svnDell*:pnPrecision*:*
# Dell Professional Sound Bar AE515
evdev:input:b0003v413CpA506*
- KEYBOARD_KEY_b002f=micmute # Mic mute toggle
+ KEYBOARD_KEY_b002f=micmute # Mic mute toggle
###########################################################
# Everex
@@ -704,10 +704,10 @@ evdev:name:Intel HID events:dmi:bvn*:bvr*:bd*:svnHP*:pnHPENVYx3602-in-1*:*
# HP Elite x2 1013 G3
evdev:atkbd:dmi:bvn*:bvr*:svnHP*:pnHPElitex21013G3:*
- KEYBOARD_KEY_f8=unknown # rfkill is also reported by HP Wireless hotkeys
+ KEYBOARD_KEY_f8=unknown # rfkill is also reported by HP Wireless hotkeys
KEYBOARD_KEY_64=calendar
- KEYBOARD_KEY_81=micmute # Microphone mute button
- KEYBOARD_KEY_ee=switchvideomode # Switch display outputs
+ KEYBOARD_KEY_81=micmute # Microphone mute button
+ KEYBOARD_KEY_ee=switchvideomode # Switch display outputs
KEYBOARD_KEY_92=brightnessdown
KEYBOARD_KEY_97=brightnessup
@@ -742,14 +742,14 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*2570p*:*
evdev:atkbd:dmi:bvncoreboot:bvr*:bd*:svnHewlett-Packard*:pn*EliteBook2170p:*
evdev:atkbd:dmi:bvncoreboot:bvr*:bd*:svnHP*:pn*EliteBook2170p:*
KEYBOARD_KEY_66=backspace
- KEYBOARD_KEY_be=battery # Fn+F2
- KEYBOARD_KEY_d7=switchvideomode # Fn+F4
- KEYBOARD_KEY_a3=mute # Fn+F5
- KEYBOARD_KEY_a1=volumedown # Fn+F6
- KEYBOARD_KEY_a2=volumeup # Fn+F7
- KEYBOARD_KEY_a4=brightnessdown # Fn+F9
- KEYBOARD_KEY_c3=brightnessup # Fn+F10
- KEYBOARD_KEY_e3=wlan # Fn+F12
+ KEYBOARD_KEY_be=battery # Fn+F2
+ KEYBOARD_KEY_d7=switchvideomode # Fn+F4
+ KEYBOARD_KEY_a3=mute # Fn+F5
+ KEYBOARD_KEY_a1=volumedown # Fn+F6
+ KEYBOARD_KEY_a2=volumeup # Fn+F7
+ KEYBOARD_KEY_a4=brightnessdown # Fn+F9
+ KEYBOARD_KEY_c3=brightnessup # Fn+F10
+ KEYBOARD_KEY_e3=wlan # Fn+F12
# Elitebook 2760p
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*2760p*:*
@@ -1127,8 +1127,8 @@ evdev:atkbd:dmi:bvn*:bvr*:svnLENOVO:pn21KH*:pvrThinkBook16G6IRL:*
KEYBOARD_KEY_b0=!volumeup
evdev:atkbd:dmi:*:svnLENOVO:*:pvrLenovoYoga300-11IBR:*
- KEYBOARD_KEY_62=unknown # Touchpad on, also emitted by "Ideapad extra buttons", ignore
- KEYBOARD_KEY_63=unknown # Touchpad off, also emitted by "Ideapad extra buttons", ignore
+ KEYBOARD_KEY_62=unknown # Touchpad on, also emitted by "Ideapad extra buttons", ignore
+ KEYBOARD_KEY_63=unknown # Touchpad off, also emitted by "Ideapad extra buttons", ignore
# Lenovo Y50-70
evdev:atkbd:dmi:bvn*:bvr*:svnLENOVO*:pn*20378*:pvr*
@@ -1274,10 +1274,10 @@ evdev:input:b0003v046Dp0056*
evdev:input:b0003v046Dp0057*
KEYBOARD_KEY_c1041=battery # Battery icon (Fn + F1)
-#KEYBOARD_KEY_c101d=scrolldown # Button below scrollwheel (see note above)
-#KEYBOARD_KEY_c101e=scrollup # Button above scrollwheel (see note above)
-#KEYBOARD_KEY_c1022=scrollleft # Left click on scroll-wheel (see note above)
-#KEYBOARD_KEY_c1024=scrollright # Right click on scroll-wheel (see note above)
+#KEYBOARD_KEY_c101d=scrolldown # Button below scrollwheel (see note above)
+#KEYBOARD_KEY_c101e=scrollup # Button above scrollwheel (see note above)
+#KEYBOARD_KEY_c1022=scrollleft # Left click on scroll-wheel (see note above)
+#KEYBOARD_KEY_c1024=scrollright # Right click on scroll-wheel (see note above)
# MX3200 keyboard (27 MHz, modelnumber Y-RAV80)
evdev:input:b0003v046Dp005C*
@@ -1802,7 +1802,7 @@ evdev:input:b0003v258Ap001E*
###########################################################
evdev:atkbd:dmi:bvn*:bvr*:bd*:svn*:pn*:pvr*:rvnQuanta:rn30B7:rvr65.2B:*
- KEYBOARD_KEY_88=media # "quick play
+ KEYBOARD_KEY_88=media # quick play
###########################################################
# Redmi
@@ -1842,17 +1842,17 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*200E[45]*:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*356V[45]*:pvr*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*355V[45]*:pvr*
- KEYBOARD_KEY_ce=!prog1 # Fn+F1 launch control setting
- KEYBOARD_KEY_89=!brightnessdown # Fn+F2 brightness down
- KEYBOARD_KEY_88=!brightnessup # Fn+F3 brightness up
- KEYBOARD_KEY_82=!switchvideomode # Fn+F4 display toggle
- KEYBOARD_KEY_f7=!touchpad_on # Fn+F5 touchpad on
- KEYBOARD_KEY_f9=!touchpad_off # Fn+F5 touchpad off
- KEYBOARD_KEY_a0=!mute # Fn+F6 mute
- KEYBOARD_KEY_ae=!volumedown # Fn+F7 volume down
- KEYBOARD_KEY_b0=!volumeup # Fn+F8 volume up
- KEYBOARD_KEY_b3=!prog2 # Fn+F11 toggle fan/cool mode
- KEYBOARD_KEY_d5=!wlan # Fn+F12 toggle wifi
+ KEYBOARD_KEY_ce=!prog1 # Fn+F1 launch control setting
+ KEYBOARD_KEY_89=!brightnessdown # Fn+F2 brightness down
+ KEYBOARD_KEY_88=!brightnessup # Fn+F3 brightness up
+ KEYBOARD_KEY_82=!switchvideomode # Fn+F4 display toggle
+ KEYBOARD_KEY_f7=!touchpad_on # Fn+F5 touchpad on
+ KEYBOARD_KEY_f9=!touchpad_off # Fn+F5 touchpad off
+ KEYBOARD_KEY_a0=!mute # Fn+F6 mute
+ KEYBOARD_KEY_ae=!volumedown # Fn+F7 volume down
+ KEYBOARD_KEY_b0=!volumeup # Fn+F8 volume up
+ KEYBOARD_KEY_b3=!prog2 # Fn+F11 toggle fan/cool mode
+ KEYBOARD_KEY_d5=!wlan # Fn+F12 toggle wifi
# Series 5
evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*530U*:*
@@ -2290,8 +2290,8 @@ evdev:name:SIPODEV USB Composite Device:dmi:bvn*:bvr*:svnPositivoTecnologiaSA:pn
# Positivo (K116J)
evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:svnPositivo*:pn*:pvr*:rvnPositivo*:rnK116J*
- KEYBOARD_KEY_69=www
- KEYBOARD_KEY_6e=search
+ KEYBOARD_KEY_69=www
+ KEYBOARD_KEY_6e=search
###########################################################
# Multilaser
@@ -2332,7 +2332,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDIXONSP:pnDIXON*:*
# The layout must be an xkb compatible layout (defined with XKB_FIXED_LAYOUT),
# with an accompanying variant (defined with XKB_FIXED_VARIANT) if necessary.
-# Yubico Yubico Yubikey II"
+# Yubico Yubico Yubikey II
evdev:input:b0003v1050p0010*
# Yubico Yubikey NEO OTP+CCID
evdev:input:b0003v1050p0111*
diff --git a/hwdb.d/60-sensor.hwdb b/hwdb.d/60-sensor.hwdb
index 8f6afb88bc..d242025bd2 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -157,7 +157,7 @@ sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:pnT200TA:*
# Asus Transformer Mini T103HAF
sensor:modalias:platform:HID-SENSOR-200073*:dmi:*svn*ASUSTeK*:pnT103HAF:*
- ACCEL_MOUNT_MATRIX=0, -1, 0; 1, 0, 0; 0, 0, -1
+ ACCEL_MOUNT_MATRIX=0, -1, 0; 1, 0, 0; 0, 0, -1
sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:*pnTP201SA:*
sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:pn*E205SA:*
@@ -524,7 +524,7 @@ sensor:modalias:acpi:KIOX000A*:dmi:*:svnEVE*:pnEveV:*
# Exo
#########################################
-# EXO Wings 2in1 w1125
+# EXO Wings 2in1 w1125
sensor:modalias:acpi:SMO8500*:dmi:*:svnEXO*:pnWings:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
@@ -654,7 +654,7 @@ sensor:modalias:acpi:SMO8840*:dmi:*:svnHUAWEI:pnBOHK-WAX9X:*
sensor:modalias:acpi:KIOX000A*:dmi:bvnAmericanMegatrendsInc.:*:svnTobefilledbyO.E.M.:pnTW891:pvrTobefilledbyO.E.M.:rvnTobefilledbyO.E.M.:rnTW891:rvr1.0:cvnToBeFilledByO.E.M.:ct3:cvrToBeFilledByO.E.M.:*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
-# I.T.Works TW701 7" windows tablet, same hw as Trekstor ST70416-6
+# I.T.Works TW701 7 inch windows tablet, same hw as Trekstor ST70416-6
sensor:modalias:acpi:BMA250*:dmi:*:bvritWORKS.G.WI71C.JGBMRB*:*:svnInsyde:pni71c:*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
@@ -908,7 +908,7 @@ sensor:modalias:acpi:KIOX010A*:dmi:*:svnCompletElectroServSA:pnMY8312:*
# Nuvision (TMax)
#########################################
-# Nuvision/TMAX 8" Windows signature edition. TM800W560L
+# Nuvision/TMAX 8 inch Windows signature edition. TM800W560L
sensor:modalias:acpi:KIOX000A*:dmi:*:svnTMAX:pnTM800W560L:*
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1

View File

@ -0,0 +1,46 @@
From 07da5b008f5908a418c799946a2cb968a14f269b Mon Sep 17 00:00:00 2001
From: RocketDev <ma2014119@outlook.com>
Date: Fri, 1 Aug 2025 01:31:11 +0800
Subject: [PATCH] hwdb: disable Asus ROG keyboards sending poweroff
Asus ROG keyboards seems to send power off key code when keyboard wake
up. Reserve the key codes could suppress this problem.
Devices added: ROG Falchion & ROG Scope
Based on the work by Jon Nettleton:
https://gist.github.com/jnettlet/afb20a048b8720f3b4eb8506d8b05643
(cherry picked from commit 6428c0f48028e09bf5b750fb3fd1f4a3dac7e24e)
Resolves: RHEL-72697
---
hwdb.d/60-keyboard.hwdb | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index 0ac71d64f7..86535bc41b 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -285,6 +285,21 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnASUS:pn*:*
KEYBOARD_KEY_ee=volumedown
KEYBOARD_KEY_ef=mute
+# Asus ROG series
+# Prevents the keyboard from sending POWER and SLEEP key presses
+# when the keyboard goes to sleep.
+evdev:input:b*v0B05p*e0111*
+ KEYBOARD_KEY_10081=reserved
+ KEYBOARD_KEY_10082=reserved
+ KEYBOARD_KEY_70070=reserved
+ KEYBOARD_KEY_70071=reserved
+ KEYBOARD_KEY_70072=reserved
+ KEYBOARD_KEY_70073=reserved
+ KEYBOARD_KEY_70074=reserved
+ KEYBOARD_KEY_70075=reserved
+ KEYBOARD_KEY_70076=reserved
+ KEYBOARD_KEY_70077=reserved
+
# Asus TF103C misses the home button in its PNP0C40 GPIO resources
# causing the volume-button mappings to be off by one, correct this
evdev:name:gpio-keys:phys:gpio-keys/input0:ev:3:dmi:*:svnASUSTeKCOMPUTERINC.:pnTF103C*:*

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,35 @@
From b5ea631d1dd70a29933a9114fc4155e0a409015d Mon Sep 17 00:00:00 2001
From: Luca Boccassi <luca.boccassi@gmail.com>
Date: Mon, 4 Aug 2025 12:25:07 +0100
Subject: [PATCH] hwdb: update autosuspend rules
ninja -C build update-hwdb-autosuspend
(cherry picked from commit ff08fca8df34aa39c9c6641098110b00472af318)
Resolves: RHEL-72697
---
hwdb.d/60-autosuspend-fingerprint-reader.hwdb | 3 +++
1 file changed, 3 insertions(+)
diff --git a/hwdb.d/60-autosuspend-fingerprint-reader.hwdb b/hwdb.d/60-autosuspend-fingerprint-reader.hwdb
index d5b7b01fbe..eb25c6bd1e 100644
--- a/hwdb.d/60-autosuspend-fingerprint-reader.hwdb
+++ b/hwdb.d/60-autosuspend-fingerprint-reader.hwdb
@@ -259,6 +259,8 @@ usb:v06CBp0104*
usb:v06CBp0106*
usb:v06CBp0107*
usb:v06CBp0108*
+usb:v06CBp0109*
+usb:v06CBp010A*
usb:v06CBp0123*
usb:v06CBp0124*
usb:v06CBp0126*
@@ -269,6 +271,7 @@ usb:v06CBp016C*
usb:v06CBp0173*
usb:v06CBp0174*
usb:v06CBp019D*
+usb:v06CBp019F*
ID_AUTOSUSPEND=1
ID_PERSIST=0

View File

@ -0,0 +1,24 @@
From b80e1fcbc643bd40749187104b843a1fd4ecb2a7 Mon Sep 17 00:00:00 2001
From: novenary <novenary@kwak.zip>
Date: Wed, 6 Aug 2025 10:42:49 +0300
Subject: [PATCH] hwdb: set touchpad resolution for ThinkPad T14 Gen2a
(cherry picked from commit 98f5d7f33a10cf057bf9bb954975128cc20c5bbc)
Resolves: RHEL-72697
---
hwdb.d/60-evdev.hwdb | 1 +
1 file changed, 1 insertion(+)
diff --git a/hwdb.d/60-evdev.hwdb b/hwdb.d/60-evdev.hwdb
index 145b10e63a..23caebe4b9 100644
--- a/hwdb.d/60-evdev.hwdb
+++ b/hwdb.d/60-evdev.hwdb
@@ -749,6 +749,7 @@ evdev:name:AlpsPS/2 ALPS GlidePoint:dmi:*svnLENOVO:*pvrLenovoU41-70:*
# Lenovo Thinkpad T490 and T14/P14s Gen1/2
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*:svnLENOVO:*pvrThinkPadT490:*
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*:svnLENOVO:*pvrThinkPadT14Gen1:*
+evdev:name:SynPS/2 Synaptics TouchPad:dmi:*:svnLENOVO:*pvrThinkPadT14Gen2a:*
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*:svnLENOVO:*pvrThinkPadP14sGen1:*
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*:svnLENOVO:*pvrThinkPadP14sGen2a:*
EVDEV_ABS_00=::44

View File

@ -0,0 +1,45 @@
From bbb497db692f2d0671a11d9e5d4210e09597923e Mon Sep 17 00:00:00 2001
From: Yu Watanabe <watanabe.yu+github@gmail.com>
Date: Thu, 7 Aug 2025 00:01:12 +0900
Subject: [PATCH] Revert "hwdb: disable Asus ROG keyboards sending poweroff"
This reverts commit 6428c0f48028e09bf5b750fb3fd1f4a3dac7e24e.
The rule seems to match not only keyboard itself but other devices.
Let's revert the change, and consider better way later.
Fixes #38502.
(cherry picked from commit 33275ce383745f0538a01adb2d13e080f0da5e8b)
Resolves: RHEL-72697
---
hwdb.d/60-keyboard.hwdb | 15 ---------------
1 file changed, 15 deletions(-)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index 86535bc41b..0ac71d64f7 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -285,21 +285,6 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnASUS:pn*:*
KEYBOARD_KEY_ee=volumedown
KEYBOARD_KEY_ef=mute
-# Asus ROG series
-# Prevents the keyboard from sending POWER and SLEEP key presses
-# when the keyboard goes to sleep.
-evdev:input:b*v0B05p*e0111*
- KEYBOARD_KEY_10081=reserved
- KEYBOARD_KEY_10082=reserved
- KEYBOARD_KEY_70070=reserved
- KEYBOARD_KEY_70071=reserved
- KEYBOARD_KEY_70072=reserved
- KEYBOARD_KEY_70073=reserved
- KEYBOARD_KEY_70074=reserved
- KEYBOARD_KEY_70075=reserved
- KEYBOARD_KEY_70076=reserved
- KEYBOARD_KEY_70077=reserved
-
# Asus TF103C misses the home button in its PNP0C40 GPIO resources
# causing the volume-button mappings to be off by one, correct this
evdev:name:gpio-keys:phys:gpio-keys/input0:ev:3:dmi:*:svnASUSTeKCOMPUTERINC.:pnTF103C*:*

View File

@ -0,0 +1,35 @@
From 8a0b521e28aba1b3f3c106cf278235b9bcf2d4ee Mon Sep 17 00:00:00 2001
From: Vasiliy Kovalev <kovalev@altlinux.org>
Date: Sun, 10 Aug 2025 10:24:19 +0300
Subject: [PATCH] hwdb: Add launch emoji keyboard mapping for Asus M1607KA
By default, pressing Fn+F8 maps the scancode to KEY_BLUETOOTH (in evtest,
MSC_SCAN 7e -> KEY_BLUETOOTH). Windows/the manufacturer may intercept the
same scancode to execute "Launch Emoji keyboard."
On Linux, we get the "raw" KEY_BLUETOOTH code, which is unacceptable.
prog1 is already reserved by default for launching MyAsus (a Windows
application) with the Fn+F12 combination, so we will use prog2.
Signed-off-by: Vasiliy Kovalev <kovalev@altlinux.org>
(cherry picked from commit 8557ea5daa1205489e77467f6acdad47b9338c28)
Resolves: RHEL-72697
---
hwdb.d/60-keyboard.hwdb | 3 +++
1 file changed, 3 insertions(+)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index 0ac71d64f7..3a2add4486 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -285,6 +285,9 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnASUS:pn*:*
KEYBOARD_KEY_ee=volumedown
KEYBOARD_KEY_ef=mute
+evdev:name:Asus WMI hotkeys:dmi:bvn*:bvr*:bd*:svnASUS*:pn*M1607KA*:*
+ KEYBOARD_KEY_7e=prog2 # Fn+F8, launch emoji keyboard
+
# Asus TF103C misses the home button in its PNP0C40 GPIO resources
# causing the volume-button mappings to be off by one, correct this
evdev:name:gpio-keys:phys:gpio-keys/input0:ev:3:dmi:*:svnASUSTeKCOMPUTERINC.:pnTF103C*:*

View File

@ -0,0 +1,39 @@
From aa72a7a7c681931e666a41aa5a4dd0f41f287e09 Mon Sep 17 00:00:00 2001
From: Marcos Alano <marcoshalano@gmail.com>
Date: Sat, 9 Aug 2025 07:52:27 -0300
Subject: [PATCH] Enable KEY_PERFORMANCE key present on Linux 6.17
Note, this change does not require the kernel running on the host is
equal or newer than 6.17. But systemd-udevd needs to be built with the
kernel headers with KEY_PERFORMANCE, and the relevant kernel header is
already updated by the previous commit.
(cherry picked from commit d5f65056ee5dea588c168ce64c0dbbc0344d60c8)
Resolves: RHEL-72697
---
hwdb.d/60-keyboard.hwdb | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index 3a2add4486..465d527817 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -251,7 +251,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnNitro*ANV*15-51:pvr*
# Alienware/Dell reserves these keys; safe to apply on all their devices
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAlienware*:pn*:*
- KEYBOARD_KEY_68=!prog3 # Fn+f1 Performance mode toggle
+ KEYBOARD_KEY_68=!performance # Fn+f1 Performance mode toggle
KEYBOARD_KEY_81=touchpad_toggle # Touchpad toggle
KEYBOARD_KEY_8a=ejectcd
KEYBOARD_KEY_92=macro1 # Fn+f2
@@ -396,7 +396,7 @@ evdev:name:gpio-keys:phys:gpio-keys/input0:ev:3:dmi:bvn*:bvr*:bd*:svncube:pni1-T
###########################################################
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pn*:*
- KEYBOARD_KEY_68=!prog2 # G-Mode (Dell-specific)
+ KEYBOARD_KEY_68=!performance # G-Mode (Dell-specific)
KEYBOARD_KEY_81=playpause # Play/Pause
KEYBOARD_KEY_82=stopcd # Stop
KEYBOARD_KEY_83=previoussong # Previous song

View File

@ -0,0 +1,119 @@
From 51b21b29997e2724433111e6ac695d5dc654a6b3 Mon Sep 17 00:00:00 2001
From: "Todd C. Miller" <Todd.Miller@sudo.ws>
Date: Tue, 6 May 2025 16:39:14 -0600
Subject: [PATCH] flush_ports: flush POSIX message queues properly
On Linux, read() on a message queue descriptor returns the message
queue statistics, not the actual message queue data. We need to use
mq_receive() to drain the queues instead.
Fixes a problem where a POSIX message queue socket unit with messages
in the queue at shutdown time could result in a hang on reboot/shutdown.
(cherry picked from commit ffb6adb76367d5ab7d43937ccaac5947717b5b78)
Resolves: RHEL-90860
---
src/basic/socket-util.c | 49 +++++++++++++++++++++++++++++++++++++++++
src/basic/socket-util.h | 1 +
src/core/socket.c | 8 +++++--
3 files changed, 56 insertions(+), 2 deletions(-)
diff --git a/src/basic/socket-util.c b/src/basic/socket-util.c
index 1d86ca3f55..c33a26acef 100644
--- a/src/basic/socket-util.c
+++ b/src/basic/socket-util.c
@@ -3,6 +3,7 @@
#include <arpa/inet.h>
#include <errno.h>
#include <limits.h>
+#include <mqueue.h>
#include <net/if.h>
#include <netdb.h>
#include <netinet/ip.h>
@@ -1209,6 +1210,54 @@ int flush_accept(int fd) {
}
}
+ssize_t flush_mqueue(int fd) {
+ _cleanup_free_ char *buf = NULL;
+ struct mq_attr attr;
+ ssize_t count = 0;
+ int r;
+
+ assert(fd >= 0);
+
+ /* Similar to flush_fd() but flushes all messages from a POSIX message queue. */
+
+ for (;;) {
+ ssize_t l;
+
+ r = fd_wait_for_event(fd, POLLIN, /* timeout= */ 0);
+ if (r < 0) {
+ if (r == -EINTR)
+ continue;
+
+ return r;
+ }
+ if (r == 0)
+ return count;
+
+ if (!buf) {
+ /* Buffer must be at least as large as mq_msgsize. */
+ if (mq_getattr(fd, &attr) < 0)
+ return -errno;
+
+ buf = malloc(attr.mq_msgsize);
+ if (!buf)
+ return -ENOMEM;
+ }
+
+ l = mq_receive(fd, buf, attr.mq_msgsize, /* msg_prio = */ NULL);
+ if (l < 0) {
+ if (errno == EINTR)
+ continue;
+
+ if (errno == EAGAIN)
+ return count;
+
+ return -errno;
+ }
+
+ count += l;
+ }
+}
+
struct cmsghdr* cmsg_find(struct msghdr *mh, int level, int type, socklen_t length) {
struct cmsghdr *cmsg;
diff --git a/src/basic/socket-util.h b/src/basic/socket-util.h
index 61bf8ff32b..4fbc732322 100644
--- a/src/basic/socket-util.h
+++ b/src/basic/socket-util.h
@@ -186,6 +186,7 @@ int receive_one_fd(int transport_fd, int flags);
ssize_t next_datagram_size_fd(int fd);
int flush_accept(int fd);
+ssize_t flush_mqueue(int fd);
#define CMSG_FOREACH(cmsg, mh) \
for ((cmsg) = CMSG_FIRSTHDR(mh); (cmsg); (cmsg) = CMSG_NXTHDR((mh), (cmsg)))
diff --git a/src/core/socket.c b/src/core/socket.c
index 65b07e70fd..7abae70255 100644
--- a/src/core/socket.c
+++ b/src/core/socket.c
@@ -2284,8 +2284,12 @@ static void flush_ports(Socket *s) {
if (p->fd < 0)
continue;
- (void) flush_accept(p->fd);
- (void) flush_fd(p->fd);
+ if (p->type == SOCKET_MQUEUE)
+ (void) flush_mqueue(p->fd);
+ else {
+ (void) flush_accept(p->fd);
+ (void) flush_fd(p->fd);
+ }
}
}

View File

@ -0,0 +1,125 @@
From 1ff8791c68726c97d745ed0c8ec8f1f6f97255cf Mon Sep 17 00:00:00 2001
From: Li Tian <litian@redhat.com>
Date: Wed, 16 Jul 2025 11:41:22 +0800
Subject: [PATCH] kernel-install: add --entry-type=type1|type2 option to
kernel-install
Both kernel-core and kernel-uki-virt call kernel-install
upon removal. Need an additional argument to avoid complete
removal for both traditional kernel and UKI.
And because kernel-install in RHEL9 is a shell script,
we need a specific solution.
Signed-off-by: Li Tian <litian@redhat.com>
(cherry picked from commit b6d499768394297b1d313cdc72dab0720dc315f6)
Resolves: RHEL-83932
---
shell-completion/bash/kernel-install | 14 ++++++++++++++
src/kernel-install/50-depmod.install | 6 ++++++
src/kernel-install/90-loaderentry.install | 5 +++++
src/kernel-install/90-uki-copy.install | 5 +++++
src/kernel-install/test-kernel-install.sh | 7 +++++++
5 files changed, 37 insertions(+)
diff --git a/shell-completion/bash/kernel-install b/shell-completion/bash/kernel-install
index 4708777507..a06ffb471a 100644
--- a/shell-completion/bash/kernel-install
+++ b/shell-completion/bash/kernel-install
@@ -20,6 +20,15 @@ _kernel_install() {
local comps
local MACHINE_ID
local cur=${COMP_WORDS[COMP_CWORD]}
+ local prev=${COMP_WORDS[COMP_CWORD-1]}
+ local entry_types="type1 type2 all"
+
+ case "$prev" in
+ --entry-type)
+ COMPREPLY=( $(compgen -W "$entry_types" -- "$cur") )
+ return 0
+ ;;
+ esac
case $COMP_CWORD in
1)
@@ -41,6 +50,11 @@ _kernel_install() {
;;
esac
+ if [[ "${COMP_WORDS[1]}" == "remove" ]] && [[ $cur == -* ]]; then
+ COMPREPLY=( $(compgen -W '--entry-type' -- "$cur") )
+ return 0
+ fi
+
COMPREPLY=( $(compgen -W '$comps' -- "$cur") )
return 0
}
diff --git a/src/kernel-install/50-depmod.install b/src/kernel-install/50-depmod.install
index 43bd87c7ed..a3e06c3dbf 100755
--- a/src/kernel-install/50-depmod.install
+++ b/src/kernel-install/50-depmod.install
@@ -31,6 +31,12 @@ case "$COMMAND" in
exec depmod -a "$KERNEL_VERSION"
;;
remove)
+ [ "$KERNEL_INSTALL_BOOT_ENTRY_TYPE" = "type2" ] || \
+ [ "$KERNEL_INSTALL_BOOT_ENTRY_TYPE" = "type1" ] && \
+ [ -d "/lib/modules/$KERNEL_VERSION/kernel" ] && \
+ echo "Multiple entry types exist, not removing modules.dep or associated files." && \
+ exit 0
+
[ "$KERNEL_INSTALL_VERBOSE" -gt 0 ] && \
echo "Removing /lib/modules/${KERNEL_VERSION}/modules.dep and associated files"
exec rm -f \
diff --git a/src/kernel-install/90-loaderentry.install b/src/kernel-install/90-loaderentry.install
index 41a05534b9..896231e784 100755
--- a/src/kernel-install/90-loaderentry.install
+++ b/src/kernel-install/90-loaderentry.install
@@ -41,6 +41,11 @@ fi
case "$COMMAND" in
remove)
+ if [ -f "/lib/modules/$KERNEL_VERSION/vmlinuz" ] && [ "$KERNEL_INSTALL_BOOT_ENTRY_TYPE" = "type2" ]; then
+ [ "$KERNEL_INSTALL_VERBOSE" -gt 0 ] && \
+ echo "BOOT_ENTRY_TYPE=type2, not removing loader entries."
+ exit 0
+ fi
[ "$KERNEL_INSTALL_VERBOSE" -gt 0 ] && \
echo "Removing $BOOT_ROOT/loader/entries/$ENTRY_TOKEN-$KERNEL_VERSION*.conf"
exec rm -f \
diff --git a/src/kernel-install/90-uki-copy.install b/src/kernel-install/90-uki-copy.install
index d443c4b401..c35cd53592 100755
--- a/src/kernel-install/90-uki-copy.install
+++ b/src/kernel-install/90-uki-copy.install
@@ -33,6 +33,11 @@ UKI_DIR="$BOOT_ROOT/EFI/Linux"
case "$COMMAND" in
remove)
+ if [ "$KERNEL_INSTALL_BOOT_ENTRY_TYPE" = "type1" ]; then
+ [ "$KERNEL_INSTALL_VERBOSE" -gt 0 ] && \
+ echo "BOOT_ENTRY_TYPE=type1, not removing UKI related."
+ exit 0
+ fi
[ "$KERNEL_INSTALL_VERBOSE" -gt 0 ] && \
echo "Removing $UKI_DIR/$ENTRY_TOKEN-$KERNEL_VERSION*.efi"
exec rm -f \
diff --git a/src/kernel-install/test-kernel-install.sh b/src/kernel-install/test-kernel-install.sh
index 3b9ff76e60..23f3c2cf4a 100755
--- a/src/kernel-install/test-kernel-install.sh
+++ b/src/kernel-install/test-kernel-install.sh
@@ -54,6 +54,13 @@ test ! -f "$entry"
test ! -f "$BOOT_ROOT/the-token/1.1.1/linux"
test ! -f "$BOOT_ROOT/the-token/1.1.1/initrd"
+# Test --entry-type options
+"$kernel_install" -v add 1.1.1 "$D/sources/linux" "$D/sources/initrd"
+"$kernel_install" -v remove 1.1.1 --entry-type=type1
+test ! -e "$entry"
+test ! -e "$BOOT_ROOT/the-token/1.1.1/linux"
+test ! -e "$BOOT_ROOT/the-token/1.1.1/initrd"
+
# Invoke kernel-install as installkernel
ln -s --relative -v "$kernel_install" "$D/sources/installkernel"
"$D/sources/installkernel" -v 1.1.2 "$D/sources/linux" System.map /somedirignored

View File

@ -0,0 +1,56 @@
From a2d2e9bfc825c42d398c4d012dd73d7e389c2980 Mon Sep 17 00:00:00 2001
From: Li Tian <litian@redhat.com>
Date: Fri, 18 Jul 2025 09:11:29 +0800
Subject: [PATCH] kernel-install: add --entry-type=type1|type2 option to
kernel-install.in
Both kernel-core and kernel-uki-virt call kernel-install
upon removal. Need an additional argument to avoid complete
removal for both traditional kernel and UKI.
And because kernel-install in RHEL9 is a shell script,
we need a specific solution.
Signed-off-by: Li Tian <litian@redhat.com>
(cherry picked from commit 19d4040d71da15d0a91d0be854e5125fa6042870)
Resolves: RHEL-83932
---
src/kernel-install/kernel-install.in | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/src/kernel-install/kernel-install.in b/src/kernel-install/kernel-install.in
index 105bd54acc..d16c5652bd 100755
--- a/src/kernel-install/kernel-install.in
+++ b/src/kernel-install/kernel-install.in
@@ -26,9 +26,11 @@ usage()
{
echo "Usage:"
echo " kernel-install [OPTIONS...] add KERNEL-VERSION KERNEL-IMAGE [INITRD-FILE...]"
- echo " kernel-install [OPTIONS...] remove KERNEL-VERSION"
+ echo " kernel-install [OPTIONS...] remove KERNEL-VERSION [--entry-type...]"
echo " kernel-install [OPTIONS...] inspect"
echo "Options:"
+ echo " --entry-type type1|type2|all"
+ echo " Operate only on the specified bootloader entry type"
echo " -h, --help Print this help and exit"
echo " --version Print version string and exit"
echo " -v, --verbose Increase verbosity"
@@ -371,6 +373,16 @@ case "$COMMAND" in
;;
remove)
+ if [ "$1" = "--entry-type" ]; then
+ shift
+ if [ "$1" = "type1" ] || [ "$1" = "type2" ]; then
+ export KERNEL_INSTALL_BOOT_ENTRY_TYPE="$1"
+ elif [ "$1" != "all" ]; then
+ echo "Error: invalid --entry-type '$1'" >&2
+ exit 1
+ fi
+ fi
+
for f in $KERNEL_INSTALL_PLUGINS; do
log_verbose "+$f remove $KERNEL_VERSION $ENTRY_DIR_ABS"
err=0

View File

@ -0,0 +1,37 @@
From 805c757b16ee8ec65ea9bad9318de3c845490f19 Mon Sep 17 00:00:00 2001
From: Li Tian <litian@redhat.com>
Date: Fri, 18 Jul 2025 09:16:20 +0800
Subject: [PATCH] kernel-install: do not mix || and &&
This also slightly updates log message, and make it shown only when
verbose mode is enabled.
Signed-off-by: Li Tian <litian@redhat.com>
(cherry picked from commit 9026f17907553b42257e9cc26969143795ae0f44)
Resolves: RHEL-83932
---
src/kernel-install/50-depmod.install | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/kernel-install/50-depmod.install b/src/kernel-install/50-depmod.install
index a3e06c3dbf..4cfea578fd 100755
--- a/src/kernel-install/50-depmod.install
+++ b/src/kernel-install/50-depmod.install
@@ -31,11 +31,11 @@ case "$COMMAND" in
exec depmod -a "$KERNEL_VERSION"
;;
remove)
- [ "$KERNEL_INSTALL_BOOT_ENTRY_TYPE" = "type2" ] || \
- [ "$KERNEL_INSTALL_BOOT_ENTRY_TYPE" = "type1" ] && \
- [ -d "/lib/modules/$KERNEL_VERSION/kernel" ] && \
- echo "Multiple entry types exist, not removing modules.dep or associated files." && \
+ if [ -n "$KERNEL_INSTALL_BOOT_ENTRY_TYPE" ] && [ -d "/lib/modules/$KERNEL_VERSION/kernel" ]; then
+ [ "$KERNEL_INSTALL_VERBOSE" -gt 0 ] && \
+ echo "Multiple entry types may exist, not removing modules.dep or associated files."
exit 0
+ fi
[ "$KERNEL_INSTALL_VERBOSE" -gt 0 ] && \
echo "Removing /lib/modules/${KERNEL_VERSION}/modules.dep and associated files"

View File

@ -0,0 +1,39 @@
From 756f152c2a8671711fa44de39401a328a97ce345 Mon Sep 17 00:00:00 2001
From: Li Tian <litian@redhat.com>
Date: Fri, 18 Jul 2025 09:18:17 +0800
Subject: [PATCH] man/kernel-install: mention --entry-type= option in the man
page
Signed-off-by: Li Tian <litian@redhat.com>
(cherry picked from commit a87b6c2c5a59561d79f40b166b416545449108db)
Resolves: RHEL-83932
---
man/kernel-install.xml | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/man/kernel-install.xml b/man/kernel-install.xml
index 4d91b7b20b..4b4360ed7f 100644
--- a/man/kernel-install.xml
+++ b/man/kernel-install.xml
@@ -174,6 +174,19 @@
<para>The following options are understood:</para>
<variablelist>
+ <varlistentry>
+ <term><option>--entry-type=type1|type2|all</option></term>
+ <listitem>
+ <para>
+ Controls the type of entries handled by the command. This is typically useful when multiple types
+ of boot entries with the same kernel version are installed, and only one should be removed. When
+ <literal>type1</literal> or <literal>type2</literal> is specified, each plugin is invoked with
+ <varname>$KERNEL_INSTALL_BOOT_ENTRY_TYPE</varname> environment variable with the specified
+ value. When <literal>all</literal> is specified, the environment variable will not be set.
+ Defaults to <literal>all</literal>.
+ </para>
+ </listitem>
+ </varlistentry>
<varlistentry>
<term><option>-v</option></term>
<term><option>--verbose</option></term>

View File

@ -0,0 +1,388 @@
From 6908cae6db2ca758861bd39d2ad0ac28da1b5372 Mon Sep 17 00:00:00 2001
From: Florian Schmaus <flo@geekplace.eu>
Date: Mon, 6 Nov 2023 13:15:55 +0100
Subject: [PATCH] cgroup: add support for memory.peak
Linux's Control Group v2 interfaces exposes memory.peak, which contains the
"max memory usage recorded for the cgroup and its descendants since the
creation of the cgroup."
This commit adds a new property "MemoryPeak" for units and makes "systemctl
show" display this value if it is available.
Fixes #29878.
Signed-off-by: Florian Schmaus <flo@geekplace.eu>
(cherry picked from commit 6c71db763cb482c30870359dd3d188a6aa23c4da)
Related: RHEL-95797
---
man/org.freedesktop.systemd1.xml | 36 +++++++++++++++++++++
src/core/cgroup.c | 54 ++++++++++++++++++++++++++++++++
src/core/cgroup.h | 1 +
src/core/dbus-unit.c | 24 ++++++++++++++
src/core/unit.c | 1 +
src/core/unit.h | 3 ++
src/systemctl/systemctl-show.c | 10 +++++-
7 files changed, 128 insertions(+), 1 deletion(-)
diff --git a/man/org.freedesktop.systemd1.xml b/man/org.freedesktop.systemd1.xml
index 78781b6ed3..e7b9b0a127 100644
--- a/man/org.freedesktop.systemd1.xml
+++ b/man/org.freedesktop.systemd1.xml
@@ -2629,6 +2629,8 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice {
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t MemoryCurrent = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
+ readonly t MemoryPeak = ...;
+ @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t MemoryAvailable = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t CPUUsageNSec = ...;
@@ -3204,6 +3206,8 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice {
<!--property MemoryCurrent is not documented!-->
+ <!--property MemoryPeak is not documented!-->
+
<!--property CPUUsageNSec is not documented!-->
<!--property EffectiveCPUs is not documented!-->
@@ -3784,6 +3788,8 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2eservice {
<variablelist class="dbus-property" generated="True" extra-ref="MemoryCurrent"/>
+ <variablelist class="dbus-property" generated="True" extra-ref="MemoryPeak"/>
+
<variablelist class="dbus-property" generated="True" extra-ref="MemoryAvailable"/>
<variablelist class="dbus-property" generated="True" extra-ref="CPUUsageNSec"/>
@@ -4521,6 +4527,8 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2esocket {
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t MemoryCurrent = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
+ readonly t MemoryPeak = ...;
+ @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t MemoryAvailable = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t CPUUsageNSec = ...;
@@ -5118,6 +5126,8 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2esocket {
<!--property MemoryCurrent is not documented!-->
+ <!--property MemoryPeak is not documented!-->
+
<!--property CPUUsageNSec is not documented!-->
<!--property EffectiveCPUs is not documented!-->
@@ -5690,6 +5700,8 @@ node /org/freedesktop/systemd1/unit/avahi_2ddaemon_2esocket {
<variablelist class="dbus-property" generated="True" extra-ref="MemoryCurrent"/>
+ <variablelist class="dbus-property" generated="True" extra-ref="MemoryPeak"/>
+
<variablelist class="dbus-property" generated="True" extra-ref="MemoryAvailable"/>
<variablelist class="dbus-property" generated="True" extra-ref="CPUUsageNSec"/>
@@ -6316,6 +6328,8 @@ node /org/freedesktop/systemd1/unit/home_2emount {
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t MemoryCurrent = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
+ readonly t MemoryPeak = ...;
+ @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t MemoryAvailable = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t CPUUsageNSec = ...;
@@ -6841,6 +6855,8 @@ node /org/freedesktop/systemd1/unit/home_2emount {
<!--property MemoryCurrent is not documented!-->
+ <!--property MemoryPeak is not documented!-->
+
<!--property CPUUsageNSec is not documented!-->
<!--property EffectiveCPUs is not documented!-->
@@ -7331,6 +7347,8 @@ node /org/freedesktop/systemd1/unit/home_2emount {
<variablelist class="dbus-property" generated="True" extra-ref="MemoryCurrent"/>
+ <variablelist class="dbus-property" generated="True" extra-ref="MemoryPeak"/>
+
<variablelist class="dbus-property" generated="True" extra-ref="MemoryAvailable"/>
<variablelist class="dbus-property" generated="True" extra-ref="CPUUsageNSec"/>
@@ -8084,6 +8102,8 @@ node /org/freedesktop/systemd1/unit/dev_2dsda3_2eswap {
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t MemoryCurrent = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
+ readonly t MemoryPeak = ...;
+ @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t MemoryAvailable = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t CPUUsageNSec = ...;
@@ -8595,6 +8615,8 @@ node /org/freedesktop/systemd1/unit/dev_2dsda3_2eswap {
<!--property MemoryCurrent is not documented!-->
+ <!--property MemoryPeak is not documented!-->
+
<!--property CPUUsageNSec is not documented!-->
<!--property EffectiveCPUs is not documented!-->
@@ -9071,6 +9093,8 @@ node /org/freedesktop/systemd1/unit/dev_2dsda3_2eswap {
<variablelist class="dbus-property" generated="True" extra-ref="MemoryCurrent"/>
+ <variablelist class="dbus-property" generated="True" extra-ref="MemoryPeak"/>
+
<variablelist class="dbus-property" generated="True" extra-ref="MemoryAvailable"/>
<variablelist class="dbus-property" generated="True" extra-ref="CPUUsageNSec"/>
@@ -9683,6 +9707,8 @@ node /org/freedesktop/systemd1/unit/system_2eslice {
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t MemoryCurrent = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
+ readonly t MemoryPeak = ...;
+ @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t MemoryAvailable = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t CPUUsageNSec = ...;
@@ -9836,6 +9862,8 @@ node /org/freedesktop/systemd1/unit/system_2eslice {
<!--property MemoryCurrent is not documented!-->
+ <!--property MemoryPeak is not documented!-->
+
<!--property CPUUsageNSec is not documented!-->
<!--property EffectiveCPUs is not documented!-->
@@ -9992,6 +10020,8 @@ node /org/freedesktop/systemd1/unit/system_2eslice {
<variablelist class="dbus-property" generated="True" extra-ref="MemoryCurrent"/>
+ <variablelist class="dbus-property" generated="True" extra-ref="MemoryPeak"/>
+
<variablelist class="dbus-property" generated="True" extra-ref="MemoryAvailable"/>
<variablelist class="dbus-property" generated="True" extra-ref="CPUUsageNSec"/>
@@ -10174,6 +10204,8 @@ node /org/freedesktop/systemd1/unit/session_2d1_2escope {
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t MemoryCurrent = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
+ readonly t MemoryPeak = ...;
+ @org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t MemoryAvailable = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t CPUUsageNSec = ...;
@@ -10347,6 +10379,8 @@ node /org/freedesktop/systemd1/unit/session_2d1_2escope {
<!--property MemoryCurrent is not documented!-->
+ <!--property MemoryPeak is not documented!-->
+
<!--property CPUUsageNSec is not documented!-->
<!--property EffectiveCPUs is not documented!-->
@@ -10533,6 +10567,8 @@ node /org/freedesktop/systemd1/unit/session_2d1_2escope {
<variablelist class="dbus-property" generated="True" extra-ref="MemoryCurrent"/>
+ <variablelist class="dbus-property" generated="True" extra-ref="MemoryPeak"/>
+
<variablelist class="dbus-property" generated="True" extra-ref="MemoryAvailable"/>
<variablelist class="dbus-property" generated="True" extra-ref="CPUUsageNSec"/>
diff --git a/src/core/cgroup.c b/src/core/cgroup.c
index 7d6b1119be..7a1aed3874 100644
--- a/src/core/cgroup.c
+++ b/src/core/cgroup.c
@@ -3716,6 +3716,60 @@ int unit_get_memory_current(Unit *u, uint64_t *ret) {
return cg_get_attribute_as_uint64("memory", u->cgroup_path, r > 0 ? "memory.current" : "memory.usage_in_bytes", ret);
}
+static int unit_get_memory_peak_raw(Unit *u, uint64_t *ret) {
+ int r;
+
+ assert(u);
+ assert(ret);
+
+ if (!u->cgroup_path)
+ return -ENODATA;
+
+ /* The root cgroup doesn't expose this information. */
+ if (unit_has_host_root_cgroup(u))
+ return -ENODATA;
+
+ if ((u->cgroup_realized_mask & CGROUP_MASK_MEMORY) == 0)
+ return -ENODATA;
+
+ r = cg_all_unified();
+ if (r < 0)
+ return r;
+ if (!r)
+ return -ENODATA;
+
+ return cg_get_attribute_as_uint64("memory", u->cgroup_path, "memory.peak", ret);
+}
+
+int unit_get_memory_peak(Unit *u, uint64_t *ret) {
+ uint64_t bytes;
+ int r;
+
+ assert(u);
+ assert(ret);
+
+ if (!UNIT_CGROUP_BOOL(u, memory_accounting))
+ return -ENODATA;
+
+ r = unit_get_memory_peak_raw(u, &bytes);
+ if (r == -ENODATA && u->memory_peak_last != UINT64_MAX) {
+ /* If we can't get the memory peak anymore (because the cgroup was already removed, for example),
+ * use our cached value. */
+
+ if (ret)
+ *ret = u->memory_peak_last;
+ return 0;
+ }
+ if (r < 0)
+ return r;
+
+ u->memory_peak_last = bytes;
+ if (ret)
+ *ret = bytes;
+
+ return 0;
+}
+
int unit_get_tasks_current(Unit *u, uint64_t *ret) {
assert(u);
assert(ret);
diff --git a/src/core/cgroup.h b/src/core/cgroup.h
index 4413eeaaa0..314b723cfd 100644
--- a/src/core/cgroup.h
+++ b/src/core/cgroup.h
@@ -292,6 +292,7 @@ int unit_watch_all_pids(Unit *u);
int unit_synthesize_cgroup_empty_event(Unit *u);
int unit_get_memory_current(Unit *u, uint64_t *ret);
+int unit_get_memory_peak(Unit *u, uint64_t *ret);
int unit_get_memory_available(Unit *u, uint64_t *ret);
int unit_get_tasks_current(Unit *u, uint64_t *ret);
int unit_get_cpu_usage(Unit *u, nsec_t *ret);
diff --git a/src/core/dbus-unit.c b/src/core/dbus-unit.c
index 9d3c3be4e9..22a29ba0cb 100644
--- a/src/core/dbus-unit.c
+++ b/src/core/dbus-unit.c
@@ -1072,6 +1072,29 @@ static int property_get_current_memory(
return sd_bus_message_append(reply, "t", sz);
}
+static int property_get_peak_memory(
+ sd_bus *bus,
+ const char *path,
+ const char *interface,
+ const char *property,
+ sd_bus_message *reply,
+ void *userdata,
+ sd_bus_error *error) {
+
+ uint64_t sz = UINT64_MAX;
+ Unit *u = ASSERT_PTR(userdata);
+ int r;
+
+ assert(bus);
+ assert(reply);
+
+ r = unit_get_memory_peak(u, &sz);
+ if (r < 0 && r != -ENODATA)
+ log_unit_warning_errno(u, r, "Failed to get memory.peak attribute: %m");
+
+ return sd_bus_message_append(reply, "t", sz);
+}
+
static int property_get_available_memory(
sd_bus *bus,
const char *path,
@@ -1537,6 +1560,7 @@ const sd_bus_vtable bus_unit_cgroup_vtable[] = {
SD_BUS_PROPERTY("ControlGroup", "s", property_get_cgroup, 0, 0),
SD_BUS_PROPERTY("ControlGroupId", "t", NULL, offsetof(Unit, cgroup_id), 0),
SD_BUS_PROPERTY("MemoryCurrent", "t", property_get_current_memory, 0, 0),
+ SD_BUS_PROPERTY("MemoryPeak", "t", property_get_peak_memory, 0, 0),
SD_BUS_PROPERTY("MemoryAvailable", "t", property_get_available_memory, 0, 0),
SD_BUS_PROPERTY("CPUUsageNSec", "t", property_get_cpu_usage, 0, 0),
SD_BUS_PROPERTY("EffectiveCPUs", "ay", property_get_cpuset_cpus, 0, 0),
diff --git a/src/core/unit.c b/src/core/unit.c
index d98ecf4367..0f60fe061c 100644
--- a/src/core/unit.c
+++ b/src/core/unit.c
@@ -111,6 +111,7 @@ Unit* unit_new(Manager *m, size_t size) {
u->ref_uid = UID_INVALID;
u->ref_gid = GID_INVALID;
u->cpu_usage_last = NSEC_INFINITY;
+ u->memory_peak_last = UINT64_MAX;
u->cgroup_invalidated_mask |= CGROUP_MASK_BPF_FIREWALL;
u->failure_action_exit_status = u->success_action_exit_status = -1;
diff --git a/src/core/unit.h b/src/core/unit.h
index e79b5322b4..4bb85b55be 100644
--- a/src/core/unit.h
+++ b/src/core/unit.h
@@ -360,6 +360,9 @@ typedef struct Unit {
nsec_t cpu_usage_base;
nsec_t cpu_usage_last; /* the most recently read value */
+ /* Most recently read value of memory.peak */
+ uint64_t memory_peak_last;
+
/* The current counter of OOM kills initiated by systemd-oomd */
uint64_t managed_oom_kill_last;
diff --git a/src/systemctl/systemctl-show.c b/src/systemctl/systemctl-show.c
index 24c7d564b8..03d53bc13c 100644
--- a/src/systemctl/systemctl-show.c
+++ b/src/systemctl/systemctl-show.c
@@ -245,6 +245,7 @@ typedef struct UnitStatusInfo {
/* CGroup */
uint64_t memory_current;
+ uint64_t memory_peak;
uint64_t memory_min;
uint64_t memory_low;
uint64_t memory_high;
@@ -697,7 +698,8 @@ static void print_status_info(
if (i->memory_current != UINT64_MAX) {
printf(" Memory: %s", FORMAT_BYTES(i->memory_current));
- if (i->memory_min > 0 || i->memory_low > 0 ||
+ if (i->memory_peak != CGROUP_LIMIT_MAX ||
+ i->memory_min > 0 || i->memory_low > 0 ||
i->memory_high != CGROUP_LIMIT_MAX || i->memory_max != CGROUP_LIMIT_MAX ||
i->memory_swap_max != CGROUP_LIMIT_MAX ||
i->memory_available != CGROUP_LIMIT_MAX ||
@@ -733,6 +735,10 @@ static void print_status_info(
printf("%savailable: %s", prefix, FORMAT_BYTES(i->memory_available));
prefix = " ";
}
+ if (i->memory_peak != CGROUP_LIMIT_MAX) {
+ printf("%speak: %s", prefix, FORMAT_BYTES(i->memory_peak));
+ prefix = " ";
+ }
printf(")");
}
printf("\n");
@@ -1927,6 +1933,7 @@ static int show_one(
{ "Where", "s", NULL, offsetof(UnitStatusInfo, where) },
{ "What", "s", NULL, offsetof(UnitStatusInfo, what) },
{ "MemoryCurrent", "t", NULL, offsetof(UnitStatusInfo, memory_current) },
+ { "MemoryPeak", "t", NULL, offsetof(UnitStatusInfo, memory_peak) },
{ "MemoryAvailable", "t", NULL, offsetof(UnitStatusInfo, memory_available) },
{ "DefaultMemoryMin", "t", NULL, offsetof(UnitStatusInfo, default_memory_min) },
{ "DefaultMemoryLow", "t", NULL, offsetof(UnitStatusInfo, default_memory_low) },
@@ -1970,6 +1977,7 @@ static int show_one(
.memory_max = CGROUP_LIMIT_MAX,
.memory_swap_max = CGROUP_LIMIT_MAX,
.memory_limit = UINT64_MAX,
+ .memory_peak = CGROUP_LIMIT_MAX,
.memory_available = CGROUP_LIMIT_MAX,
.cpu_usage_nsec = UINT64_MAX,
.tasks_current = UINT64_MAX,

View File

@ -0,0 +1,50 @@
From 4bc77bad350313fa1137597d7e388660901e1a5a Mon Sep 17 00:00:00 2001
From: Florian Schmaus <flo@geekplace.eu>
Date: Mon, 6 Nov 2023 17:24:14 +0100
Subject: [PATCH] core: include peak memory in unit_log_resources()
Signed-off-by: Florian Schmaus <flo@geekplace.eu>
(cherry picked from commit 0531bded79dcdde93f2b076f86c40d02b81a18b9)
Related: RHEL-95797
---
src/core/unit.c | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/src/core/unit.c b/src/core/unit.c
index 0f60fe061c..56580b1716 100644
--- a/src/core/unit.c
+++ b/src/core/unit.c
@@ -2238,6 +2238,7 @@ static int unit_log_resources(Unit *u) {
size_t n_message_parts = 0, n_iovec = 0;
char* message_parts[1 + 2 + 2 + 1], *t;
nsec_t nsec = NSEC_INFINITY;
+ uint64_t memory_peak = UINT64_MAX;
int r;
const char* const ip_fields[_CGROUP_IP_ACCOUNTING_METRIC_MAX] = {
[CGROUP_IP_INGRESS_BYTES] = "IP_METRIC_INGRESS_BYTES",
@@ -2281,6 +2282,24 @@ static int unit_log_resources(Unit *u) {
nsec > NOTICEWORTHY_CPU_NSEC);
}
+ (void) unit_get_memory_peak(u, &memory_peak);
+ if (memory_peak != UINT64_MAX) {
+ /* Format peak memory for inclusion in the structured log message */
+ if (asprintf(&t, "MEMORY_PEAK=%" PRIu64, memory_peak) < 0) {
+ r = log_oom();
+ goto finish;
+ }
+ iovec[n_iovec++] = IOVEC_MAKE_STRING(t);
+
+ /* Format peak memory for inclusion in the human language message string */
+ t = strjoin(FORMAT_BYTES(memory_peak), " memory peak");
+ if (!t) {
+ r = log_oom();
+ goto finish;
+ }
+ message_parts[n_message_parts++] = t;
+ }
+
for (CGroupIOAccountingMetric k = 0; k < _CGROUP_IO_ACCOUNTING_METRIC_MAX; k++) {
uint64_t value = UINT64_MAX;

View File

@ -0,0 +1,53 @@
From 989e3c2990ea0c4a43d5d0aed3ed2e5b05c6ca57 Mon Sep 17 00:00:00 2001
From: Florian Schmaus <flo@geekplace.eu>
Date: Mon, 6 Nov 2023 17:28:41 +0100
Subject: [PATCH] run: include peak memory in output
Fixes #28542.
Signed-off-by: Florian Schmaus <flo@geekplace.eu>
(cherry picked from commit 324ec6b5d2033fae4dc3e087473d27010d948f65)
Related: RHEL-95797
---
src/run/run.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/run/run.c b/src/run/run.c
index 627a6b11da..9ddb90595b 100644
--- a/src/run/run.c
+++ b/src/run/run.c
@@ -987,6 +987,7 @@ typedef struct RunContext {
uint64_t inactive_enter_usec;
char *result;
uint64_t cpu_usage_nsec;
+ uint64_t memory_peak;
uint64_t ip_ingress_bytes;
uint64_t ip_egress_bytes;
uint64_t io_read_bytes;
@@ -1048,6 +1049,7 @@ static int run_context_update(RunContext *c, const char *path) {
{ "ExecMainCode", "i", NULL, offsetof(RunContext, exit_code) },
{ "ExecMainStatus", "i", NULL, offsetof(RunContext, exit_status) },
{ "CPUUsageNSec", "t", NULL, offsetof(RunContext, cpu_usage_nsec) },
+ { "MemoryPeak", "t", NULL, offsetof(RunContext, memory_peak) },
{ "IPIngressBytes", "t", NULL, offsetof(RunContext, ip_ingress_bytes) },
{ "IPEgressBytes", "t", NULL, offsetof(RunContext, ip_egress_bytes) },
{ "IOReadBytes", "t", NULL, offsetof(RunContext, io_read_bytes) },
@@ -1238,6 +1240,7 @@ static int start_transient_service(
if (arg_wait || arg_stdio != ARG_STDIO_NONE) {
_cleanup_(run_context_free) RunContext c = {
.cpu_usage_nsec = NSEC_INFINITY,
+ .memory_peak = UINT64_MAX,
.ip_ingress_bytes = UINT64_MAX,
.ip_egress_bytes = UINT64_MAX,
.io_read_bytes = UINT64_MAX,
@@ -1333,6 +1336,9 @@ static int start_transient_service(
log_info("CPU time consumed: %s",
FORMAT_TIMESPAN(DIV_ROUND_UP(c.cpu_usage_nsec, NSEC_PER_USEC), USEC_PER_MSEC));
+ if (c.memory_peak != UINT64_MAX)
+ log_info("Memory peak: %s", FORMAT_BYTES(c.memory_peak));
+
if (c.ip_ingress_bytes != UINT64_MAX)
log_info("IP traffic received: %s", FORMAT_BYTES(c.ip_ingress_bytes));

View File

@ -0,0 +1,92 @@
From f53755c29ce0d41d716d35e6d98e638a654b7f55 Mon Sep 17 00:00:00 2001
From: Luca Boccassi <bluca@debian.org>
Date: Fri, 20 Jan 2023 23:00:38 +0000
Subject: [PATCH] core: ensure init.scope is realized after drop-ins have been
loaded
If we add a drop-in for init.scope (e.g.: to set some memory limit),
it will be loaded long after the cgroup has already been realized.
Do it again when creating the special unit.
(cherry picked from commit 020b2e41ea776cff73392da8084a0725b590d245)
Resolves: RHEL-103488
---
src/core/cgroup.c | 2 +-
src/core/cgroup.h | 1 +
src/core/scope.c | 4 ++++
test/TEST-55-OOMD/test.sh | 6 ++++++
test/units/testsuite-55.sh | 3 +++
5 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/src/core/cgroup.c b/src/core/cgroup.c
index 7a1aed3874..dcf9177f6f 100644
--- a/src/core/cgroup.c
+++ b/src/core/cgroup.c
@@ -2471,7 +2471,7 @@ static bool unit_has_mask_enables_realized(
((u->cgroup_enabled_mask | enable_mask) & CGROUP_MASK_V2) == (u->cgroup_enabled_mask & CGROUP_MASK_V2);
}
-static void unit_add_to_cgroup_realize_queue(Unit *u) {
+void unit_add_to_cgroup_realize_queue(Unit *u) {
assert(u);
if (u->in_cgroup_realize_queue)
diff --git a/src/core/cgroup.h b/src/core/cgroup.h
index 314b723cfd..d620ebf1a4 100644
--- a/src/core/cgroup.h
+++ b/src/core/cgroup.h
@@ -262,6 +262,7 @@ int unit_realize_cgroup(Unit *u);
void unit_prune_cgroup(Unit *u);
int unit_watch_cgroup(Unit *u);
int unit_watch_cgroup_memory(Unit *u);
+void unit_add_to_cgroup_realize_queue(Unit *u);
void unit_release_cgroup(Unit *u);
/* Releases the cgroup only if it is recursively empty.
diff --git a/src/core/scope.c b/src/core/scope.c
index 087ac2853a..4e1a954c6c 100644
--- a/src/core/scope.c
+++ b/src/core/scope.c
@@ -784,6 +784,10 @@ static void scope_enumerate_perpetual(Manager *m) {
unit_add_to_load_queue(u);
unit_add_to_dbus_queue(u);
+ /* Enqueue an explicit cgroup realization here. Unlike other cgroups this one already exists and is
+ * populated (by us, after all!) already, even when we are not in a reload cycle. Hence we cannot
+ * apply the settings at creation time anymore, but let's at least apply them asynchronously. */
+ unit_add_to_cgroup_realize_queue(u);
}
static const char* const scope_result_table[_SCOPE_RESULT_MAX] = {
diff --git a/test/TEST-55-OOMD/test.sh b/test/TEST-55-OOMD/test.sh
index 4dc414294c..4032896061 100755
--- a/test/TEST-55-OOMD/test.sh
+++ b/test/TEST-55-OOMD/test.sh
@@ -16,6 +16,12 @@ test_append_files() {
cat >>"${initdir:?}/etc/fstab" <<EOF
UUID=$(blkid -o value -s UUID "${LOOPDEV}p2") none swap defaults 0 0
+EOF
+
+ mkdir -p "${initdir:?}/etc/systemd/system/init.scope.d/"
+ cat >>"${initdir:?}/etc/systemd/system/init.scope.d/test-55-oomd.conf" <<EOF
+[Scope]
+MemoryHigh=10G
EOF
)
}
diff --git a/test/units/testsuite-55.sh b/test/units/testsuite-55.sh
index 8fa1d01fd0..0887eac08f 100755
--- a/test/units/testsuite-55.sh
+++ b/test/units/testsuite-55.sh
@@ -5,6 +5,9 @@ set -o pipefail
systemd-analyze log-level debug
+# Ensure that the init.scope.d drop-in is applied on boot
+test "$(cat /sys/fs/cgroup/init.scope/memory.high)" != "max"
+
# Loose checks to ensure the environment has the necessary features for systemd-oomd
[[ -e /proc/pressure ]] || echo "no PSI" >>/skipped
cgroup_type="$(stat -fc %T /sys/fs/cgroup/)"

View File

@ -0,0 +1,74 @@
From 24ce505814d3c30ae17e34512521e6e87a5336e1 Mon Sep 17 00:00:00 2001
From: Michal Sekletar <msekleta@redhat.com>
Date: Wed, 7 Sep 2022 17:37:34 +0200
Subject: [PATCH] core: add possibility to not track certain unit types
(cherry picked from commit 88e4bfa62bd2561e04a90dc009e7a3865e0878fb)
Resolves: RHEL-89796
---
docs/ENVIRONMENT.md | 9 +++++++++
src/core/unit.c | 18 ++++++++++++++++++
2 files changed, 27 insertions(+)
diff --git a/docs/ENVIRONMENT.md b/docs/ENVIRONMENT.md
index 51b1e851ff..54b779d312 100644
--- a/docs/ENVIRONMENT.md
+++ b/docs/ENVIRONMENT.md
@@ -272,6 +272,15 @@ All tools:
it is either set to `system` or `user` depending on whether the NSS/PAM
module is called by systemd in `--system` or `--user` mode.
+* `$SYSTEMD_SUPPORT_DEVICE`, `$SYSTEMD_SUPPORT_MOUNT`, `$SYSTEMD_SUPPORT_SWAP` -
+ can be set to `0` to mark respective unit type as unsupported. Generally,
+ having less units saves system resources so these options might be useful
+ for cases where we don't need to track given unit type, e.g. `--user` manager
+ often doesn't need to deal with device or swap units because they are
+ handled by the `--system` manager (PID 1). Note that setting certain unit
+ type as unsupported may not prevent loading some units of that type if they
+ are referenced by other units of another supported type.
+
`systemd-remount-fs`:
* `$SYSTEMD_REMOUNT_ROOT_RW=1` — if set and no entry for the root directory
diff --git a/src/core/unit.c b/src/core/unit.c
index 56580b1716..0d65880ac7 100644
--- a/src/core/unit.c
+++ b/src/core/unit.c
@@ -22,6 +22,7 @@
#include "dbus-unit.h"
#include "dbus.h"
#include "dropin.h"
+#include "env-util.h"
#include "escape.h"
#include "execute.h"
#include "fd-util.h"
@@ -4853,11 +4854,28 @@ int unit_setup_dynamic_creds(Unit *u) {
}
bool unit_type_supported(UnitType t) {
+ static int8_t cache[_UNIT_TYPE_MAX] = {}; /* -1: disabled, 1: enabled: 0: don't know */
+ int r;
+
if (_unlikely_(t < 0))
return false;
if (_unlikely_(t >= _UNIT_TYPE_MAX))
return false;
+ if (cache[t] == 0) {
+ char *e;
+
+ e = strjoina("SYSTEMD_SUPPORT_", unit_type_to_string(t));
+
+ r = getenv_bool(ascii_strupper(e));
+ if (r < 0 && r != -ENXIO)
+ log_debug_errno(r, "Failed to parse $%s, ignoring: %m", e);
+
+ cache[t] = r == 0 ? -1 : 1;
+ }
+ if (cache[t] < 0)
+ return false;
+
if (!unit_vtable[t]->supported)
return true;

View File

@ -0,0 +1,54 @@
From b0134d872f6f7dd6b310d4791cb10dd78c0126fe Mon Sep 17 00:00:00 2001
From: Yu Watanabe <watanabe.yu+github@gmail.com>
Date: Tue, 18 Mar 2025 15:50:43 +0900
Subject: [PATCH] tree-wide: check more log message format in log_struct() and
friends
This introduce LOG_ITEM() macro that checks arbitrary formats in
log_struct().
Then, drop _printf_ attribute from log_struct_internal(), as it does not
help so much, and compiler checked only the first format string.
Hopefully, this silences false-positive warnings by Coverity.
[dtardon: Backported just the new macros, not their use across the
source tree. I could easily avoid doing it at all, but the macros might
be useful for future backports.]
(cherry picked from commit 3cf6a3a3d4acf8347ccd0250274f517e6b2e9fe6)
Related: RHEL-100353
---
src/basic/log.h | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/basic/log.h b/src/basic/log.h
index c51941c141..153c3571b6 100644
--- a/src/basic/log.h
+++ b/src/basic/log.h
@@ -146,7 +146,7 @@ int log_struct_internal(
const char *file,
int line,
const char *func,
- const char *format, ...) _printf_(6,0) _sentinel_;
+ const char *format, ...) _sentinel_;
int log_oom_internal(
int level,
@@ -305,11 +305,15 @@ bool log_on_console(void) _pure_;
/* Do a fake formatting of the message string to let the scanner verify the arguments against the format
* message. The variable will never be set to true, but we don't tell the compiler that :) */
extern bool _log_message_dummy;
-# define LOG_MESSAGE(fmt, ...) "MESSAGE=%.0d" fmt, (_log_message_dummy && printf(fmt, ##__VA_ARGS__)), ##__VA_ARGS__
+# define LOG_ITEM(fmt, ...) "%.0d" fmt, (_log_message_dummy && printf(fmt, ##__VA_ARGS__)), ##__VA_ARGS__
+# define LOG_MESSAGE(fmt, ...) LOG_ITEM("MESSAGE=" fmt, ##__VA_ARGS__)
#else
+# define LOG_ITEM(fmt, ...) fmt, ##__VA_ARGS__
# define LOG_MESSAGE(fmt, ...) "MESSAGE=" fmt, ##__VA_ARGS__
#endif
+#define LOG_MESSAGE_ID(id) LOG_ITEM("MESSAGE_ID=" id)
+
void log_received_signal(int level, const struct signalfd_siginfo *si);
/* If turned on, any requests for a log target involving "syslog" will be implicitly upgraded to the equivalent journal target */

View File

@ -0,0 +1,29 @@
From 907ba128ec81e8821433c2bdfed84169cd9c644b Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Mon, 23 Jan 2023 16:23:45 +0100
Subject: [PATCH] build: add some coloring to --version output
Make it easier to discern enabled and disabled build options.
[dtardon: I picked just the def. of log_oom_warning(), as we don't
really need the rest.]
(cherry picked from commit 4453ebe4db0511d25bed1040930ea6430c1bed91)
Related: RHEL-100353
---
src/basic/log.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/basic/log.h b/src/basic/log.h
index 153c3571b6..3527336278 100644
--- a/src/basic/log.h
+++ b/src/basic/log.h
@@ -296,6 +296,7 @@ int log_emergency_level(void);
#define log_oom() log_oom_internal(LOG_ERR, PROJECT_FILE, __LINE__, __func__)
#define log_oom_debug() log_oom_internal(LOG_DEBUG, PROJECT_FILE, __LINE__, __func__)
+#define log_oom_warning() log_oom_internal(LOG_WARNING, PROJECT_FILE, __LINE__, __func__)
bool log_on_console(void) _pure_;

View File

@ -0,0 +1,48 @@
From 6973805b33c02c9613ca71003489c428fe1e894e Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Wed, 18 Jun 2025 11:47:06 +0200
Subject: [PATCH] core: output log cycle path in one log message, not many
Fixes: #35642
(cherry picked from commit 201647e3f2ff04fbaebc1901431b7ff610f995fb)
Related: RHEL-100353
---
src/core/transaction.c | 23 ++++++++++++++++-------
1 file changed, 16 insertions(+), 7 deletions(-)
diff --git a/src/core/transaction.c b/src/core/transaction.c
index bb51f51318..747c9101e3 100644
--- a/src/core/transaction.c
+++ b/src/core/transaction.c
@@ -393,14 +393,23 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi
unit_ids = merge_unit_ids(j->manager->unit_log_field, array); /* ignore error */
- STRV_FOREACH_PAIR(unit_id, job_type, array)
- /* logging for j not k here to provide a consistent narrative */
+ size_t m = strv_length(array);
+
+ _cleanup_free_ char *cycle_path_text = strdup("Found ordering cycle");
+ if (m > 0) {
+ (void) strextendf(&cycle_path_text, " on %s/%s", array[0], array[1]);
+ if (m > 2)
+ (void) strextendf(&cycle_path_text, "; has dependency on %s/%s", array[2], array[3]);
+ }
+
+ STRV_FOREACH_PAIR(unit_id, job_type, strv_skip(array, 4))
+ (void) strextendf(&cycle_path_text, ", %s/%s", *unit_id, *job_type);
+
+ /* logging for j not k here to provide a consistent narrative */
+ if (cycle_path_text)
log_struct(LOG_WARNING,
- LOG_UNIT_MESSAGE(j->unit,
- "Found %s on %s/%s",
- unit_id == array ? "ordering cycle" : "dependency",
- *unit_id, *job_type),
- "%s", strna(unit_ids));
+ LOG_UNIT_MESSAGE(j->unit, "%s", cycle_path_text),
+ LOG_ITEM("%s", strna(unit_ids)));
if (delete) {
const char *status;

View File

@ -0,0 +1,74 @@
From c0f5bfe59f56321ebf62b73724b4a6a12e176946 Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Wed, 18 Jun 2025 11:47:25 +0200
Subject: [PATCH] core: make log cycle messages recognizable via message IDs
(cherry picked from commit 5bbad6244ffc3849511c6ca652a27f1af550c599)
Resolves: RHEL-100353
---
src/core/transaction.c | 9 +++++++--
src/systemd/sd-messages.h | 9 +++++++++
2 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/src/core/transaction.c b/src/core/transaction.c
index 747c9101e3..2d4c48b82a 100644
--- a/src/core/transaction.c
+++ b/src/core/transaction.c
@@ -3,6 +3,8 @@
#include <fcntl.h>
#include <unistd.h>
+#include "sd-messages.h"
+
#include "alloc-util.h"
#include "bus-common-errors.h"
#include "bus-error.h"
@@ -409,6 +411,7 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi
if (cycle_path_text)
log_struct(LOG_WARNING,
LOG_UNIT_MESSAGE(j->unit, "%s", cycle_path_text),
+ LOG_MESSAGE_ID(SD_MESSAGE_UNIT_ORDERING_CYCLE_STR),
LOG_ITEM("%s", strna(unit_ids)));
if (delete) {
@@ -419,7 +422,8 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi
"Job %s/%s deleted to break ordering cycle starting with %s/%s",
delete->unit->id, job_type_to_string(delete->type),
j->unit->id, job_type_to_string(j->type)),
- "%s", strna(unit_ids));
+ LOG_MESSAGE_ID(SD_MESSAGE_DELETING_JOB_BECAUSE_ORDERING_CYCLE_STR),
+ LOG_ITEM("%s", strna(unit_ids)));
if (log_get_show_color())
status = ANSI_HIGHLIGHT_RED " SKIP " ANSI_NORMAL;
@@ -438,7 +442,8 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi
log_struct(LOG_ERR,
LOG_UNIT_MESSAGE(j->unit, "Unable to break cycle starting with %s/%s",
j->unit->id, job_type_to_string(j->type)),
- "%s", strna(unit_ids));
+ LOG_MESSAGE_ID(SD_MESSAGE_CANT_BREAK_ORDERING_CYCLE_STR),
+ LOG_ITEM("%s", strna(unit_ids)));
return sd_bus_error_setf(e, BUS_ERROR_TRANSACTION_ORDER_IS_CYCLIC,
"Transaction order is cyclic. See system logs for details.");
diff --git a/src/systemd/sd-messages.h b/src/systemd/sd-messages.h
index 51241c9426..67765c0f05 100644
--- a/src/systemd/sd-messages.h
+++ b/src/systemd/sd-messages.h
@@ -192,6 +192,15 @@ _SD_BEGIN_DECLARATIONS;
#define SD_MESSAGE_TPM_PCR_EXTEND SD_ID128_MAKE(3f,7d,5e,f3,e5,4f,43,02,b4,f0,b1,43,bb,27,0c,ab)
#define SD_MESSAGE_TPM_PCR_EXTEND_STR SD_ID128_MAKE_STR(3f,7d,5e,f3,e5,4f,43,02,b4,f0,b1,43,bb,27,0c,ab)
+#define SD_MESSAGE_UNIT_ORDERING_CYCLE SD_ID128_MAKE(f2,7a,3f,94,40,6a,47,83,b9,46,a9,bc,84,9e,94,52)
+#define SD_MESSAGE_UNIT_ORDERING_CYCLE_STR SD_ID128_MAKE_STR(f2,7a,3f,94,40,6a,47,83,b9,46,a9,bc,84,9e,94,52)
+
+#define SD_MESSAGE_DELETING_JOB_BECAUSE_ORDERING_CYCLE SD_ID128_MAKE(50,84,36,75,42,f7,47,2d,bc,6a,94,12,5d,5d,eb,ce)
+#define SD_MESSAGE_DELETING_JOB_BECAUSE_ORDERING_CYCLE_STR SD_ID128_MAKE_STR(50,84,36,75,42,f7,47,2d,bc,6a,94,12,5d,5d,eb,ce)
+
+#define SD_MESSAGE_CANT_BREAK_ORDERING_CYCLE SD_ID128_MAKE(b3,11,2d,da,d1,90,45,53,8c,76,68,5b,a5,91,8a,80)
+#define SD_MESSAGE_CANT_BREAK_ORDERING_CYCLE_STR SD_ID128_MAKE_STR(b3,11,2d,da,d1,90,45,53,8c,76,68,5b,a5,91,8a,80)
+
_SD_END_DECLARATIONS;
#endif

View File

@ -0,0 +1,41 @@
From 637b4c312f2dfbf2fadf6829550502359d195678 Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Wed, 18 Jun 2025 11:48:39 +0200
Subject: [PATCH] core: change ordering cycle log message log levels
Let's downgrade the log message about our attempts to deal with an
ordering cycle to warning, because this is a "positive" thing, we try to
improve an earlier error.
OTOH increase the log level when we first log about the cycle to error,
since that highlights the actual problem.
(cherry picked from commit fe458ad68e2813823c381c4010bad201f5e2c2be)
Related: RHEL-100353
---
src/core/transaction.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/core/transaction.c b/src/core/transaction.c
index 2d4c48b82a..2dd3c1bac3 100644
--- a/src/core/transaction.c
+++ b/src/core/transaction.c
@@ -409,7 +409,7 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi
/* logging for j not k here to provide a consistent narrative */
if (cycle_path_text)
- log_struct(LOG_WARNING,
+ log_struct(LOG_ERR,
LOG_UNIT_MESSAGE(j->unit, "%s", cycle_path_text),
LOG_MESSAGE_ID(SD_MESSAGE_UNIT_ORDERING_CYCLE_STR),
LOG_ITEM("%s", strna(unit_ids)));
@@ -417,7 +417,7 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi
if (delete) {
const char *status;
/* logging for j not k here to provide a consistent narrative */
- log_struct(LOG_ERR,
+ log_struct(LOG_WARNING,
LOG_UNIT_MESSAGE(j->unit,
"Job %s/%s deleted to break ordering cycle starting with %s/%s",
delete->unit->id, job_type_to_string(delete->type),

View File

@ -0,0 +1,25 @@
From bcd3816f09ac86fc438c89377fef0f27fa25c57b Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Wed, 18 Jun 2025 11:51:45 +0200
Subject: [PATCH] core: cast log_oom() got void
(cherry picked from commit 6650e21349273a5274ce00d689ed881d2976a6e7)
Related: RHEL-100353
---
src/core/transaction.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/core/transaction.c b/src/core/transaction.c
index 2dd3c1bac3..3f62cfd79b 100644
--- a/src/core/transaction.c
+++ b/src/core/transaction.c
@@ -382,7 +382,7 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi
/* For logging below */
if (strv_push_pair(&array, k->unit->id, (char*) job_type_to_string(k->type)) < 0)
- log_oom();
+ (void) log_oom_warning();
if (!delete && hashmap_get(tr->jobs, k->unit) && !unit_matters_to_anchor(k->unit, k))
/* Ok, we can drop this one, so let's do so. */

View File

@ -0,0 +1,26 @@
From 115bb1c4d76b4b2ccd9f400b342facb610ec820d Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Thu, 19 Jun 2025 10:15:35 +0200
Subject: [PATCH] core: when removing a job from a transaction, include in
structured log message which
(cherry picked from commit becbd2ec4e00aafb656ebc4b2977c1f62adc2ee8)
Related: RHEL-100353
---
src/core/transaction.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/core/transaction.c b/src/core/transaction.c
index 3f62cfd79b..f61ab26bf8 100644
--- a/src/core/transaction.c
+++ b/src/core/transaction.c
@@ -423,6 +423,8 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi
delete->unit->id, job_type_to_string(delete->type),
j->unit->id, job_type_to_string(j->type)),
LOG_MESSAGE_ID(SD_MESSAGE_DELETING_JOB_BECAUSE_ORDERING_CYCLE_STR),
+ LOG_ITEM("DELETED_UNIT=%s", delete->unit->id),
+ LOG_ITEM("DELETED_TYPE=%s", job_type_to_string(delete->type)),
LOG_ITEM("%s", strna(unit_ids)));
if (log_get_show_color())

View File

@ -0,0 +1,73 @@
From 9af2c41e6a7d3f6034326f30e35c324c7e02274b Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Thu, 19 Jun 2025 10:15:49 +0200
Subject: [PATCH] catalog: add entries for the order cycle log messages
Fixes: #35642
(cherry picked from commit e4003f2d9cb93d09d99b87a3d2f68cb0889ecbe8)
Related: RHEL-100353
---
catalog/systemd.catalog.in | 52 ++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
diff --git a/catalog/systemd.catalog.in b/catalog/systemd.catalog.in
index 4c29128f71..86d7067f6f 100644
--- a/catalog/systemd.catalog.in
+++ b/catalog/systemd.catalog.in
@@ -539,3 +539,55 @@ Platform Configuration Register (PCR) @PCR@, on banks @BANKS@.
Whenever the system transitions to a new runtime phase, a different string is
extended into the specified PCR, to ensure that security policies for TPM-bound
secrets and other resources are limited to specific phases of the runtime.
+
+-- f27a3f94406a4783b946a9bc849e9452
+Subject: Unit ordering cycle found
+Defined-By: systemd
+Support: %SUPPORT_URL%
+Documentation: man:systemd(1)
+
+A unit transaction was initiated that contains an ordering cycle, i.e. some
+unit that was requested to be started (either directly, or indirectly due to a
+requirement dependency such as Wants= or Requires=) is ordered before some
+other unit (via After=/Before=), but that latter unit is also ordered before
+the former by some dependency (either directly or indirectly).
+
+Ordering cycles consist of at least two units, but might involve many
+more. They generally indicate a bug in the unit definitions, as a unit
+conceptually cannot be run both before and after some other unit, it must be
+strictly ordered either before or after.
+
+The ordering cycle is shown in the log message. An attempt will be made to
+remove unit jobs from the transaction in order to make the transaction succeed
+at least partially. Note that such cycle breaking is not going to correct the
+issue, it is just an attempt to make the outcome less problematic.
+
+The correct fix is to analyze the cycle in question and then break the cycle at
+the right place by removing the right After= or Before= lines from one or more
+of the involved unit files.
+
+-- 5084367542f7472dbc6a94125d5debce
+Subject: Unit job deleted due to an ordering cycle
+Defined-By: systemd
+Support: %SUPPORT_URL%
+Documentation: man:systemd(1)
+
+In order to address an ordering cycle between units that have been added to a
+transaction a job has been removed from the transaction.
+
+The removed job is '@DELETED_TYPE@' for unit @DELETED_UNIT@.
+
+The removal of the job is done in order to minimize the negative effect of an
+ordering cycle — it is not going to fix the underlying problem, which is a bug
+in the involved unit files. The deleted job might be fundamental for the other
+units in the transaction to operate, which hence might fail.
+
+-- b3112ddad19045538c76685ba5918a80
+Subject: Unable to break ordering cycle between units
+Defined-By: systemd
+Support: %SUPPORT_URL%
+Documentation: man:systemd(1)
+
+It has been attempted to break an ordering cycle between units for which jobs
+have been enqueued as part of a transaction, but this was not successful. The
+transaction will fail.

View File

@ -0,0 +1,46 @@
From d281329eaba88a8ea16bda1c4216ee2d73376d90 Mon Sep 17 00:00:00 2001
From: Yu Watanabe <watanabe.yu+github@gmail.com>
Date: Tue, 18 Mar 2025 15:50:43 +0900
Subject: [PATCH] tree-wide: check more log message format in log_struct() and
friends
This introduce LOG_ITEM() macro that checks arbitrary formats in
log_struct().
Then, drop _printf_ attribute from log_struct_internal(), as it does not
help so much, and compiler checked only the first format string.
Hopefully, this silences false-positive warnings by Coverity.
[dtardon: Backported just the immediate fix for a compiler warning.]
(cherry picked from commit 3cf6a3a3d4acf8347ccd0250274f517e6b2e9fe6)
Related: RHEL-100353
---
src/basic/log.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/basic/log.c b/src/basic/log.c
index 2e1642dc20..20bf45170c 100644
--- a/src/basic/log.c
+++ b/src/basic/log.c
@@ -959,7 +959,9 @@ int log_struct_internal(
iovec[n++] = IOVEC_MAKE_STRING(header);
va_start(ap, format);
+ DISABLE_WARNING_FORMAT_NONLITERAL;
r = log_format_iovec(iovec, ELEMENTSOF(iovec), &n, true, error, format, ap);
+ REENABLE_WARNING;
if (r < 0)
fallback = true;
else {
@@ -993,7 +995,9 @@ int log_struct_internal(
errno = ERRNO_VALUE(error);
va_copy(aq, ap);
+ DISABLE_WARNING_FORMAT_NONLITERAL;
(void) vsnprintf(buf, sizeof buf, format, aq);
+ REENABLE_WARNING;
va_end(aq);
if (startswith(buf, "MESSAGE=")) {

View File

@ -0,0 +1,46 @@
From 218ce1e8353ba19e2886adb98379ba6c82f9692b Mon Sep 17 00:00:00 2001
From: Mike Yuan <me@yhndnzj.com>
Date: Mon, 30 Jun 2025 17:57:08 +0200
Subject: [PATCH] core/transaction: do not attempt to log "n/a" as a journal
field
Follow-up for 3cf6a3a3d4acf8347ccd0250274f517e6b2e9fe6
(cherry picked from commit 1c8d653d2b8a82ed3944f03c2dea25ad1e2cc967)
Related: RHEL-100353
---
src/core/transaction.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/core/transaction.c b/src/core/transaction.c
index f61ab26bf8..f527fbf017 100644
--- a/src/core/transaction.c
+++ b/src/core/transaction.c
@@ -412,7 +412,7 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi
log_struct(LOG_ERR,
LOG_UNIT_MESSAGE(j->unit, "%s", cycle_path_text),
LOG_MESSAGE_ID(SD_MESSAGE_UNIT_ORDERING_CYCLE_STR),
- LOG_ITEM("%s", strna(unit_ids)));
+ LOG_ITEM("%s", strempty(unit_ids)));
if (delete) {
const char *status;
@@ -425,7 +425,7 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi
LOG_MESSAGE_ID(SD_MESSAGE_DELETING_JOB_BECAUSE_ORDERING_CYCLE_STR),
LOG_ITEM("DELETED_UNIT=%s", delete->unit->id),
LOG_ITEM("DELETED_TYPE=%s", job_type_to_string(delete->type)),
- LOG_ITEM("%s", strna(unit_ids)));
+ LOG_ITEM("%s", strempty(unit_ids)));
if (log_get_show_color())
status = ANSI_HIGHLIGHT_RED " SKIP " ANSI_NORMAL;
@@ -445,7 +445,7 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi
LOG_UNIT_MESSAGE(j->unit, "Unable to break cycle starting with %s/%s",
j->unit->id, job_type_to_string(j->type)),
LOG_MESSAGE_ID(SD_MESSAGE_CANT_BREAK_ORDERING_CYCLE_STR),
- LOG_ITEM("%s", strna(unit_ids)));
+ LOG_ITEM("%s", strempty(unit_ids)));
return sd_bus_error_setf(e, BUS_ERROR_TRANSACTION_ORDER_IS_CYCLIC,
"Transaction order is cyclic. See system logs for details.");

View File

@ -0,0 +1,97 @@
From d9281e6450d2cca3ea5e7eed61d95b8ff0fcca0b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Date: Sat, 16 Sep 2023 10:08:12 +0200
Subject: [PATCH] basic/parse-util: add helper to parse bounded unsigned values
"parse_range" is already used for stuff like "a-b", so use "bounded" here to
avoid confusion.
---
src/basic/parse-util.c | 15 +++++++++++++++
src/basic/parse-util.h | 3 ++-
src/test/test-parse-util.c | 26 ++++++++++++++++++++++++++
3 files changed, 43 insertions(+), 1 deletion(-)
diff --git a/src/basic/parse-util.c b/src/basic/parse-util.c
index 3b3efb0..c1c25fd 100644
--- a/src/basic/parse-util.c
+++ b/src/basic/parse-util.c
@@ -390,6 +390,21 @@ int safe_atou_full(const char *s, unsigned base, unsigned *ret_u) {
return 0;
}
+int safe_atou_bounded(const char *s, unsigned min, unsigned max, unsigned *ret) {
+ unsigned v;
+ int r;
+
+ r = safe_atou(s, &v);
+ if (r < 0)
+ return r;
+
+ if (v < min || v > max)
+ return -ERANGE;
+
+ *ret = v;
+ return 0;
+}
+
int safe_atoi(const char *s, int *ret_i) {
unsigned base = 0;
char *x = NULL;
diff --git a/src/basic/parse-util.h b/src/basic/parse-util.h
index 8d8d523..7e1517c 100644
--- a/src/basic/parse-util.h
+++ b/src/basic/parse-util.h
@@ -28,11 +28,12 @@ int parse_errno(const char *t);
#define SAFE_ATO_MASK_FLAGS(base) ((base) & ~SAFE_ATO_ALL_FLAGS)
int safe_atou_full(const char *s, unsigned base, unsigned *ret_u);
-
static inline int safe_atou(const char *s, unsigned *ret_u) {
return safe_atou_full(s, 0, ret_u);
}
+int safe_atou_bounded(const char *s, unsigned min, unsigned max, unsigned *ret);
+
int safe_atoi(const char *s, int *ret_i);
int safe_atolli(const char *s, long long int *ret_i);
diff --git a/src/test/test-parse-util.c b/src/test/test-parse-util.c
index 388d0fe..3bf237b 100644
--- a/src/test/test-parse-util.c
+++ b/src/test/test-parse-util.c
@@ -417,6 +417,32 @@ TEST(parse_range) {
assert_se(upper == 9999);
}
+TEST(safe_atou_bounded) {
+ int r;
+ unsigned x;
+
+ r = safe_atou_bounded("12345", 12, 20000, &x);
+ assert_se(r == 0);
+ assert_se(x == 12345);
+
+ r = safe_atou_bounded("12", 12, 20000, &x);
+ assert_se(r == 0);
+ assert_se(x == 12);
+
+ r = safe_atou_bounded("20000", 12, 20000, &x);
+ assert_se(r == 0);
+ assert_se(x == 20000);
+
+ r = safe_atou_bounded("-1", 12, 20000, &x);
+ assert_se(r == -ERANGE);
+
+ r = safe_atou_bounded("11", 12, 20000, &x);
+ assert_se(r == -ERANGE);
+
+ r = safe_atou_bounded("20001", 12, 20000, &x);
+ assert_se(r == -ERANGE);
+}
+
TEST(safe_atolli) {
int r;
long long l;
--
2.47.1

Some files were not shown because too many files have changed in this diff Show More