如何在Ubuntu上检查平台是笔记本电脑还是台式机?

4

如何检查执行平台是笔记本还是台式机?最简单的方法是什么? 如果我需要检查 /sys/class/power_supply/ 目录中的文件,应该选择哪个文件? 谢谢。


1
那么,如果一台“桌面”计算机恰好使用了“笔记本”CPU和主板呢? - crashmstr
我需要知道如何处理最简单的情况,即桌面电脑不使用任何笔记本电脑硬件。 - Umut
2
你真正感兴趣的差异在哪里呢?我的笔记本电脑几乎一直连接着电源,带有强大的CPU、大量的内存、大容量硬盘、有线以太网连接,以及外接键盘和显示器。我曾经拥有一个实验室,里面有无线网络的台式机。寻找与你相关的特征,不要考虑“外形因素”。 - vonbrand
3个回答

3

查看是否有盖子存在怎么样?这应该可以在Ubuntu系统上使用acpi实现:

if [ -d "/proc/acpi/button/lid" ]; then
    echo "computer is a laptop"
fi

3

您可能认为区分笔记本电脑和台式机很重要。但实际上,您真正关心的只是 /sys/class/power_supply/ 是否存在。

if [ -d "/sys/class/power_supply" ]; then
    # Work with the files in /sys/class/power_supply
fi

2
不幸的是,我的富士通台式机有一个目录,其中只有一个名为“hidpp_battery_0”的链接,指向/sys/devices/中的一个条目,即无法很好地区分平台。 - Darko Veberic

1

检查电池是否存在,如果有电池,则为笔记本电脑。如果没有电池,则为个人电脑。

#!/bin/bash

# Run upower to check battery charge level.

LEVEL="$(upower -i $(upower -e | grep 'BAT') | grep -E "percentage" | awk '{print $2}' | sed 's/\%//g')"

if [ $LEVEL -le 100 ]; then

    echo "Device is equipped with a battery and may be a laptop."

else
    echo "Device is NOT equipped with a batter and is likely a desktop."

fi

或者您可以检查/sys/module/battery是否存在,例如:if [ -d "/sys/module/battery" ]; then echo "计算机是笔记本电脑"; fi - bmaupin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接