有没有办法如何以编程方式识别我正在运行的哪个扶手板?覆盆子pi,cubieboard或beagleboneblack?这3种类型足以区分。
我希望使用cat /sys/devices/virtual/dmi/id/sys_vendor
,但这不适用于debian的ARM端口: - /
答案 0 :(得分:4)
您可以阅读MIDR
注册表,该注册表将提供您可能有助于区分您运行代码的主板的实施者,变体,架构,部分和修订。
您可以使用MRC p15, 0, <Rt>, c0, c0, 0
参考:http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0500f/BABFEABI.html
答案 1 :(得分:0)
在我的主板上,在/ proc / cpuinfo中,我已经
了Processor : ARMv7 Processor rev 7 (v7l)
processor : 0
BogoMIPS : 1562.98
processor : 1
BogoMIPS : 1560.01
Features : swp half thumb fastmult vfp edsp thumbee neon vfpv3 tls
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x2
CPU part : 0xc09
CPU revision : 7
Hardware : FC7100 Workbench
Revision : 6008
有趣的部分是Hardware
字段,这是我的电路板名称。该字段基于机器ID,来自arch / arm / tools / mach-type linux文件。然而,这种方法现在可能已经过时,因为我们现在使用设备树而不是板支持包。您可能必须查找设备树文档才能获得所需的信息。
答案 2 :(得分:0)
我用Python写作
我查看/ proc / cpuinfo并解析硬件字段
BCM2708是Pi1(A,B,A +,B +)
BCM2709是Pi2(B +)
BCM2835是Pi3
对于Beaglebone,你可以:
import platform
p = platform.platform()
如果其中任何一个属实,那么你就有了Beaglebone Black。
if p.lower().find('arm7l-with-debian') > -1
if p.lower().find('arm7l-with-ubuntu') > -1
if p.lower().find('arm7l-with-glibc2.4') > -1
if p.lower().find('arm7l-with-arch') > -1
如果它不是RPi而不是Beaglebone那么也许它就是另一个。
这是从Tony DiCola在Adafruit完成的工作中收集到的,但我不记得我发现它的项目。