如何以编程方式识别ARM板

时间:2015-06-29 21:23:35

标签: arm raspberry-pi beagleboneblack iot

有没有办法如何以编程方式识别我正在运行的哪个扶手板?覆盆子pi,cubieboard或beagleboneblack?这3种类型足以区分。 我希望使用cat /sys/devices/virtual/dmi/id/sys_vendor,但这不适用于debian的ARM端口: - /

3 个答案:

答案 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完成的工作中收集到的,但我不记得我发现它的项目。