summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2022-08-26 04:13:26 +0900
committerYu Watanabe <watanabe.yu+github@gmail.com>2022-09-06 03:38:09 +0900
commit0cf2dcf15402c60498165dbd3f14536766c05051 (patch)
tree4bd11425e3aadefd76d98c0d42deeae0c94cd6f3
parentd5c8e5ac1b76eeded6303c242113014cb1757f16 (diff)
downloadsystemd-0cf2dcf15402c60498165dbd3f14536766c05051.tar.gz
udev/rules,hwdb: filter out mostly meaningless default strings
The filter is generated based on the following results: --- git clone git@github.com:linuxhw/DMI.git cd DMI git grep -h -A2 '^System Information$' | grep 'Manufacturer' | sort | uniq -c | sort -nr | less git grep -h -A2 '^System Information$' | grep 'Product Name' | sort | uniq -c | sort -nr | less --- Closes #24446.
-rw-r--r--hwdb.d/20-dmi-id.hwdb23
-rw-r--r--rules.d/50-udev-default.rules.in5
2 files changed, 26 insertions, 2 deletions
diff --git a/hwdb.d/20-dmi-id.hwdb b/hwdb.d/20-dmi-id.hwdb
index c7bf6cfab1..905d6923bb 100644
--- a/hwdb.d/20-dmi-id.hwdb
+++ b/hwdb.d/20-dmi-id.hwdb
@@ -1,5 +1,28 @@
# This file is part of systemd
+# Filter out mostly meaningless names
+dmi:*:svnDefaultstring:*
+dmi:*:svnN/A:*
+dmi:*:svnO.E.M.:*
+dmi:*:svnOEM:*
+dmi:*:svnSystemmanufacturer:*
+dmi:*:svnSystemManufacturer:*
+dmi:*:svnTobefilledbyO.E.M.:*
+dmi:*:svnToBeFilledByO.E.M.:*
+ ID_SYS_VENDOR_IS_RUBBISH=1
+
+dmi:*:pnDefaultstring:*
+dmi:*:pnN/A:*
+dmi:*:pnO.E.M.:*
+dmi:*:pnOEM:*
+dmi:*:pnSystemproductname:*
+dmi:*:pnSystemProductName:*
+dmi:*:pnSystemname:*
+dmi:*:pnSystemName:*
+dmi:*:pnTobefilledbyO.E.M.:*
+dmi:*:pnToBeFilledByO.E.M.:*
+ ID_PRODUCT_NAME_IS_RUBBISH=1
+
# Fix "Lenovo" capitalization in /sys/class/dmi/id/sys_vendor
dmi:bvnLENOVO*
ID_SYSFS_ATTRIBUTE_MODEL=product_version
diff --git a/rules.d/50-udev-default.rules.in b/rules.d/50-udev-default.rules.in
index 0394530479..843bdaf9ce 100644
--- a/rules.d/50-udev-default.rules.in
+++ b/rules.d/50-udev-default.rules.in
@@ -110,8 +110,9 @@ SUBSYSTEM=="ptp", ATTR{clock_name}=="KVM virtual PTP", SYMLINK += "ptp_kvm"
SUBSYSTEM=="ptp", ATTR{clock_name}=="hyperv", SYMLINK += "ptp_hyperv"
SUBSYSTEM!="dmi", GOTO="dmi_end"
-ENV{ID_VENDOR}="$attr{sys_vendor}"
-ENV{ID_SYSFS_ATTRIBUTE_MODEL}=="|product_name", ENV{ID_MODEL}="$attr{product_name}"
+ENV{ID_SYS_VENDOR_IS_RUBBISH}!="1", ENV{ID_VENDOR}="$attr{sys_vendor}"
+ENV{ID_SYSFS_ATTRIBUTE_MODEL}=="", ENV{ID_PRODUCT_NAME_IS_RUBBISH}!="1", ENV{ID_MODEL}="$attr{product_name}"
+ENV{ID_SYSFS_ATTRIBUTE_MODEL}=="product_name", ENV{ID_MODEL}="$attr{product_name}"
ENV{ID_SYSFS_ATTRIBUTE_MODEL}=="product_version", ENV{ID_MODEL}="$attr{product_version}"
# fallback to board information
ENV{ID_VENDOR}=="", ENV{ID_VENDOR}="$attr{board_vendor}"