From: Jo-Philipp Wich Date: Wed, 1 Jun 2016 14:26:36 +0000 (+0200) Subject: x86: use sysfs DMI information to populate sysinfo X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=699f7ecd156bd147aaee554ad648bd8689d9358c;p=openwrt%2Fstaging%2Flynxis.git 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 --- 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