01_sysinfo_acpi 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. # SPDX-License-Identifier: GPL-2.0-or-later
  2. sanitize_name_arm64() {
  3. sed -e '
  4. y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/;
  5. s/[^a-z0-9_-]\+/-/g;
  6. s/^-//;
  7. s/-$//;
  8. ' "$@"
  9. }
  10. do_sysinfo_arm64() {
  11. local vendor product file
  12. for file in sys_vendor board_vendor; do
  13. vendor="$(cat /sys/devices/virtual/dmi/id/$file 2>/dev/null)"
  14. case "$vendor" in
  15. empty | \
  16. System\ manufacturer | \
  17. To\ [bB]e\ [fF]illed\ [bB]y\ O\.E\.M\.)
  18. continue
  19. ;;
  20. esac
  21. [ -n "$vendor" ] && break
  22. done
  23. for file in product_name board_name; do
  24. product="$(cat /sys/devices/virtual/dmi/id/$file 2>/dev/null)"
  25. case "$vendor:$product" in
  26. ?*:empty | \
  27. ?*:System\ Product\ Name | \
  28. ?*:To\ [bB]e\ [fF]illed\ [bB]y\ O\.E\.M\.)
  29. continue
  30. ;;
  31. ?*:?*)
  32. break
  33. ;;
  34. esac
  35. done
  36. [ -d "/sys/firmware/devicetree/base" ] && return
  37. [ -n "$vendor" -a -n "$product" ] || return
  38. mkdir -p /tmp/sysinfo
  39. echo "$vendor $product" > /tmp/sysinfo/model
  40. sanitize_name_arm64 /tmp/sysinfo/model > /tmp/sysinfo/board_name
  41. }
  42. boot_hook_add preinit_main do_sysinfo_arm64