diff options
author | Jo-Philipp Wich <jo@mein.io> | 2016-06-25 17:55:11 +0200 |
---|---|---|
committer | Zoltan HERPAI <wigyori@uid0.hu> | 2016-06-25 17:55:11 +0200 |
commit | 102a71972771aae3b056c11288b9d7abbb5c0dea (patch) | |
tree | 182629795bc52c722f089f44d953401c27f924b4 /target/linux/x86/base-files | |
parent | 03b34592676c0f6d1183aac3cf0062841c4e1856 (diff) | |
download | master-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_sysinfo | 28 |
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 |