01_sysinfo 832 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  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. [ -n "$vendor" ] && break
  14. done
  15. for file in product_name board_name; do
  16. product="$(cat /sys/devices/virtual/dmi/id/$file 2>/dev/null)"
  17. case "$vendor:$product" in
  18. "PC Engines:APU")
  19. product="apu1"
  20. break
  21. ;;
  22. "Supermicro:Super Server")
  23. continue
  24. ;;
  25. ?*:?*)
  26. break
  27. ;;
  28. esac
  29. done
  30. [ -n "$vendor" -a -n "$product" ] || return
  31. mkdir -p /tmp/sysinfo
  32. echo "$vendor $product" > /tmp/sysinfo/model
  33. sanitize_name_x86 /tmp/sysinfo/model > /tmp/sysinfo/board_name
  34. }
  35. boot_hook_add preinit_main do_sysinfo_x86