aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/x86/base-files
diff options
context:
space:
mode:
authorJo-Philipp Wich <jo@mein.io>2016-06-25 17:55:11 +0200
committerZoltan HERPAI <wigyori@uid0.hu>2016-06-25 17:55:11 +0200
commit102a71972771aae3b056c11288b9d7abbb5c0dea (patch)
tree182629795bc52c722f089f44d953401c27f924b4 /target/linux/x86/base-files
parent03b34592676c0f6d1183aac3cf0062841c4e1856 (diff)
downloadmaster-187ad058-102a71972771aae3b056c11288b9d7abbb5c0dea.tar.gz
master-187ad058-102a71972771aae3b056c11288b9d7abbb5c0dea.tar.bz2
master-187ad058-102a71972771aae3b056c11288b9d7abbb5c0dea.zip
x86: use sysfs DMI information to populate sysinfo
Use the DMI data available in sysfs to extract manufacturer and model info and write it to /tmp/sysinfo/. The data will be picked up by board_detect and can be used by e.g. LuCI to display a more appropriate model description. On an APU board the files will contain the following values: # cat /tmp/sysinfo/model PC Engines APU # cat /tmp/sysinfo/board_name pc-engines-apu Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Diffstat (limited to 'target/linux/x86/base-files')
-rw-r--r--target/linux/x86/base-files/lib/preinit/20_sysinfo28
1 files changed, 28 insertions, 0 deletions
diff --git a/target/linux/x86/base-files/lib/preinit/20_sysinfo b/target/linux/x86/base-files/lib/preinit/20_sysinfo
new file mode 100644
index 0000000000..cb63a04014
--- /dev/null
+++ b/target/linux/x86/base-files/lib/preinit/20_sysinfo
@@ -0,0 +1,28 @@
+do_sysinfo_x86() {
+ local vendor product file
+
+ for file in sys_vendor board_vendor; do
+ vendor="$(cat /sys/devices/virtual/dmi/id/$file 2>/dev/null)"
+ [ -n "$vendor" ] && break
+ done
+
+ for file in product_name board_name; do
+ product="$(cat /sys/devices/virtual/dmi/id/$file 2>/dev/null)"
+ [ -n "$product" ] && break
+ done
+
+ [ -n "$vendor" -a -n "$product" ] || return
+
+ mkdir -p /tmp/sysinfo
+
+ echo "$vendor $product" > /tmp/sysinfo/model
+
+ sed -e '
+ y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/;
+ s/[^a-z0-9_-]\+/-/g;
+ s/^-//;
+ s/-$//;
+ ' /tmp/sysinfo/model > /tmp/sysinfo/board_name
+}
+
+boot_hook_add preinit_main do_sysinfo_x86