summaryrefslogtreecommitdiffstats
path: root/debian/templates/image.bug/include-model
blob: 91d3cc33c10b80ce3e7d5504cd5a5ff189297ac1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
grep_model() {
  case "$(uname -m)" in
  alpha)
    grep -E '^(system (type|variation|revision)|platform string)\b' /proc/cpuinfo
    ;;
  arm*)
    grep -E '^(Processor|Hardware|Revision)\b' /proc/cpuinfo
    ;;
  i386|ia64|x86_64)
    local found=
    for name in {sys,product,chassis,bios,board}_{vendor,name,version}; do
      if [ -f /sys/class/dmi/id/$name ]; then
	echo -n "$name: "
	cat /sys/class/dmi/id/$name
	found=y
      fi
    done
    test -n "$found"
    ;;
  mips|mips64)
    grep -E '^(system type|cpu model)\b' /proc/cpuinfo
    ;;
  parisc|parisc64)
    grep -E '^(model|[hs]version)\b' /proc/cpuinfo
    ;;
  ppc|ppc64|ppc64le)
    grep -E -i '^(board|machine|model|motherboard|platform|revision|vendor)\b' /proc/cpuinfo
    ;;
  s390|s390x)
    grep -E '^processor\b' /proc/cpuinfo
    ;;
  sparc|sparc64)
    grep -E '^(cpu|fpu|pmu|prom|type)\b' /proc/cpuinfo
    ;;
  sh4|sh4a)
    grep -E '^(machine|cpu)\b' /proc/cpuinfo
    ;;
  *)
    false
    ;;
  esac

  # Device Tree model
  if [ -r /proc/device-tree/model ]; then
    echo "Device Tree model:" $(cat /proc/device-tree/model)
  fi
}

add_model() {
  local found=
  echo '** Model information' >&3
  grep_model >&3 2>/dev/null || echo "not available" >&3
  echo >&3
}

ask_model() {
  # This is still valid as long as the bug is being reported on the same
  # system.
  test $same_system = nop || add_model
}