code: def _pv_linux_machine(machine):
      if machine == "x86_64":
          return machine
      elif machine in ["aarch64", "armv7l", "armv6l"]:
          arch_info = ("-" + machine) if _is_64bit() else ""
      else:
          raise NotImplementedError(
              "Unsupported CPU architecture: `%s`" % machine
          )
  
      cpu_info = ""
      try:
          cpu_info = subprocess.check_output(
              ["cat", "/proc/cpuinfo"]
          ).decode()
          cpu_part_list = [
              x for x in cpu_info.split("\n") if "CPU part" in x
          ]
          cpu_part = cpu_part_list[0].split(" ")[-1].lower()
      except Exception as error:
          raise RuntimeError(
              "Failed to identify the CPU with '%s'\nCPU info: %s"
              % (error, cpu_info)
          )
  
      if "0xb76" == cpu_part:
          return "arm11" + arch_info
      elif "0xc07" == cpu_part:
          return "cortex-a7" + arch_info
      elif "0xd03" == cpu_part:
          return "cortex-a53" + arch_info
      elif "0xd07" == cpu_part:
          return "cortex-a57" + arch_info
      elif "0xd08" == cpu_part:
          return "cortex-a72" + arch_info
      elif "0xc08" == cpu_part:
          return "beaglebone" + arch_info
      elif machine == "armv7l":
          log.warning(
              "WARNING: Please be advised that this device (CPU part = %s) is not officially supported by Picovoice. "
              "Falling back to the armv6-based (Raspberry Pi Zero) library. This is not tested nor optimal."
              % cpu_part
          )
          return "arm11"
      else:
          raise NotImplementedError("Unsupported CPU: '%s'." % cpu_part)
  
file_path: porcupine/binding/python/_util.py
imports: import logging
  import os
  import platform
  import subprocess
label_desc: Use image node_id 2 for calling a global function with example usage: _pv_linux_machine(machine) and returns: machine, unknown, unknown, unknown, unknown, unknown, unknown, str