"""
return read_from_file("/sys/class/dmi/id/bios_vendor")
+ def vendor_model_tuple(self):
+ try:
+ s = self.__cpuinfo["Hardware"]
+ except KeyError:
+ return (None, None)
+
+ if s.startswith("ARM-Versatile"):
+ return ("ARM", s)
+
+ try:
+ v, m = s.split(" ", 1)
+ except ValueError:
+ if s.startswith("BCM"):
+ v = "Broadcom"
+ m = s
+ else:
+ v = None
+ m = s
+
+ return v, m
+
@property
def vendor(self):
"""
break
if ret is None:
- try:
- return self.__cpuinfo["Hardware"]
- except KeyError:
- pass
+ if os.path.exists("/proc/device-tree"):
+ ret = self.__cpuinfo.get("Hardware", None)
+ else:
+ ret, m = self.vendor_model_tuple()
return ret
# replace the NULL byte with which the DT string ends
ret = ret.replace(u"\u0000", "")
+ # Fall back to read /proc/cpuinfo
+ if not ret:
+ v, ret = self.vendor_model_tuple()
+
return ret
@property