Possible values for `uname -m`

Linux

(v4.12 – 2017-July)

Let’s refer to the source of the newuname system call.

Tracking this down is complicated by the fact that Linux has UTS namespaces, but the init_uts_ns machine field is initialized by the UTS_MACHINE macro, which is defined per-architecture.

Further complicating matters, machine can be overridden via override_architecture(), if the process is running under a 32-bit “compat” personality, to COMPAT_UTS_MACHINE.

UTS_MACHINE defaults in Makefile to the same thing as ARCH. However, many platforms have separate sub-architectures under the same arch directory, so they set UTS_MACHINE themselves

With the list of directories in arch/ and a little grep-ing of the Linux kernel sources (git grep 'UTS_MACHINE\s*:=' and git grep COMPAT_UTS_MACHINE), we can arrive at this list:

  • alpha
  • arc

  • arm

  • aarch64_be (arm64)
  • aarch64 (arm64)
  • armv8b (arm64 compat)
  • armv8l (arm64 compat)

  • blackfin

  • c6x
  • cris
  • frv
  • h8300
  • hexagon
  • ia64
  • m32r
  • m68k
  • metag
  • microblaze
  • mips (native or compat)
  • mips64 (mips)
  • mn10300
  • nios2
  • openrisc
  • parisc (native or compat)
  • parisc64 (parisc)
  • ppc (powerpc native or compat)
  • ppc64 (powerpc)
  • ppcle (powerpc native or compat)
  • ppc64le (powerpc)
  • s390 (s390x compat)
  • s390x
  • score
  • sh
  • sh64 (sh)
  • sparc (native or compat)
  • sparc64 (sparc)
  • tile
  • unicore32
  • i386 (x86)
  • i686 (x86 compat)
  • x86_64 (x64)
  • xtensa

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)