01_sysinfo 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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*|106*|115*|125*|135*| \
  39. 210*|230*|310*|330*|430*|450*| \
  40. 550*|650*|750*|85*|86*)
  41. product="${product}-${product_version}"
  42. break
  43. ;;
  44. esac
  45. ;;
  46. "Supermicro:Super Server")
  47. continue
  48. ;;
  49. ?*:?*)
  50. break
  51. ;;
  52. esac
  53. done
  54. [ -n "$vendor" -a -n "$product" ] || return
  55. mkdir -p /tmp/sysinfo
  56. echo "$vendor $product" > /tmp/sysinfo/model
  57. sanitize_name_x86 /tmp/sysinfo/model > /tmp/sysinfo/board_name
  58. }
  59. boot_hook_add preinit_main do_sysinfo_x86