| sanitize_name_x86() { |
| sed -e ' |
| y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/; |
| s/[^a-z0-9_-]\+/-/g; |
| s/^-//; |
| s/-$//; |
| ' "$@" |
| } |
| |
| 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)" |
| case "$vendor:$product" in |
| "Sophos:SG"|"Sophos:XG") |
| case "$(cat /sys/devices/virtual/dmi/id/product_version 2>/dev/null)" in |
| 105*) |
| product="${product}-105" |
| break |
| ;; |
| esac |
| ;; |
| "Supermicro:Super Server") |
| continue |
| ;; |
| ?*:?*) |
| break |
| ;; |
| esac |
| done |
| |
| [ -n "$vendor" -a -n "$product" ] || return |
| |
| mkdir -p /tmp/sysinfo |
| |
| echo "$vendor $product" > /tmp/sysinfo/model |
| |
| sanitize_name_x86 /tmp/sysinfo/model > /tmp/sysinfo/board_name |
| } |
| |
| boot_hook_add preinit_main do_sysinfo_x86 |