Improve dmidecode parsing, as dmidecode prints warning for me and
system-board validation fails.
Delete SMBus.close as I don't see this method in SMBus class.
return "\n".join([line for line in subprocess.check_output(["dmidecode", "-s", "system-product-name"]).splitlines() if not line.startswith('#')]).strip()
except OSError:
print("Error: dmidecode is not installed", file=sys.stderr)