Есть несколько способов сделать это.
Вы можете прочитать эту информацию из прошивки с помощью модуля dmidecode, но для этого требуются разрешения. Кроме того, вы можете напрямую читать /sys/class/dmi/id/chassis_type
файл и преобразовывать число в указанную строку шасси.
Но в настоящее время я использую следующий способ:
import re
import subprocess
machine_info = subprocess.check_output(["hostnamectl", "status"], universal_newlines=True)
m = re.search('Chassis: (.+?)\n', machine_info)
chassis_type = m.group(1)
print("Your chassis type is", chassis_type)
Этот метод основан на стандартном systemd спецификация, которая проверяет прошивку, а также /etc/machine-id
.