x86: use sysfs DMI information to populate sysinfo
[openwrt/openwrt.git] / target / linux / x86 / base-files / lib / preinit / 20_sysinfo
1 do_sysinfo_x86() {
2 local vendor product file
3
4 for file in sys_vendor board_vendor; do
5 vendor="$(cat /sys/devices/virtual/dmi/id/$file 2>/dev/null)"
6 [ -n "$vendor" ] && break
7 done
8
9 for file in product_name board_name; do
10 product="$(cat /sys/devices/virtual/dmi/id/$file 2>/dev/null)"
11 [ -n "$product" ] && break
12 done
13
14 [ -n "$vendor" -a -n "$product" ] || return
15
16 mkdir -p /tmp/sysinfo
17
18 echo "$vendor $product" > /tmp/sysinfo/model
19
20 sed -e '
21 y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/;
22 s/[^a-z0-9_-]\+/-/g;
23 s/^-//;
24 s/-$//;
25 ' /tmp/sysinfo/model > /tmp/sysinfo/board_name
26 }
27
28 boot_hook_add preinit_main do_sysinfo_x86