01_sysinfo 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. sanitize_name_x86() {
  2. sed -e '
  3. y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/;
  4. s/[^a-z0-9_-]\+/-/g;
  5. s/^-//;
  6. s/-$//;
  7. ' "$@"
  8. }
  9. do_sysinfo_x86() {
  10. local vendor product file
  11. for file in sys_vendor board_vendor; do
  12. vendor="$(cat /sys/devices/virtual/dmi/id/$file 2>/dev/null)"
  13. case "$vendor" in
  14. empty | \
  15. System\ manufacturer | \
  16. To\ [bB]e\ [fF]illed\ [bB]y\ O\.E\.M\.)
  17. continue
  18. ;;
  19. esac
  20. [ -n "$vendor" ] && break
  21. done
  22. for file in product_name board_name; do
  23. product="$(cat /sys/devices/virtual/dmi/id/$file 2>/dev/null)"
  24. case "$vendor:$product" in
  25. ?*:empty | \
  26. ?*:System\ Product\ Name | \
  27. ?*:To\ [bB]e\ [fF]illed\ [bB]y\ O\.E\.M\.)
  28. continue
  29. ;;
  30. "PC Engines:APU")
  31. product="apu1"
  32. break
  33. ;;
  34. "Sophos:SG"|"Sophos:XG")
  35. local product_version
  36. product_version="$(cat /sys/devices/virtual/dmi/id/product_version 2>/dev/null)"
  37. case "$product_version" in
  38. 105*|115*|125*|135*|85*|86*)
  39. product="${product}-${product_version}"
  40. break
  41. ;;
  42. esac
  43. ;;
  44. "Supermicro:Super Server")
  45. continue
  46. ;;
  47. ?*:?*)
  48. break
  49. ;;
  50. esac
  51. done
  52. [ -n "$vendor" -a -n "$product" ] || return
  53. mkdir -p /tmp/sysinfo
  54. echo "$vendor $product" > /tmp/sysinfo/model
  55. sanitize_name_x86 /tmp/sysinfo/model > /tmp/sysinfo/board_name
  56. }
  57. boot_hook_add preinit_main do_sysinfo_x86