x86: preinit: use board_name on Sm Super Servers
[openwrt/staging/lynxis.git] / target / linux / x86 / base-files / lib / preinit / 01_sysinfo
1 sanitize_name_x86() {
2 sed -e '
3 y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/;
4 s/[^a-z0-9_-]\+/-/g;
5 s/^-//;
6 s/-$//;
7 ' "$@"
8 }
9
10 do_sysinfo_x86() {
11 local vendor product file
12
13 for file in sys_vendor board_vendor; do
14 vendor="$(cat /sys/devices/virtual/dmi/id/$file 2>/dev/null)"
15 [ -n "$vendor" ] && break
16 done
17
18 for file in product_name board_name; do
19 product="$(cat /sys/devices/virtual/dmi/id/$file 2>/dev/null)"
20 case "$vendor:$product" in
21 "Supermicro:Super Server")
22 continue
23 ;;
24 ?*:?*)
25 break
26 ;;
27 esac
28 done
29
30 [ -n "$vendor" -a -n "$product" ] || return
31
32 mkdir -p /tmp/sysinfo
33
34 echo "$vendor $product" > /tmp/sysinfo/model
35
36 sanitize_name_x86 /tmp/sysinfo/model > /tmp/sysinfo/board_name
37 }
38
39 boot_hook_add preinit_main do_sysinfo_x86