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>
This commit is contained in:
Jo-Philipp Wich 2016-06-01 16:26:36 +02:00
parent b8b23e0e64
commit 699f7ecd15
1 changed files with 28 additions and 0 deletions

View File

@ -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