Rebased from upstream / out of band repository.
[librecmc/librecmc.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