2015-06-29 25 views
2

有沒有辦法如何以編程方式識別當前正在運行的哪個布板?無論是覆盆子pi,cubieboard還是beagleboneblack?這三種類型足以區分。 我希望用cat /sys/devices/virtual/dmi/id/sys_vendor但這不是可以在Debian的ARM端口: -/如何以編程方式識別ARM板

回答

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場,這是我的董事會的名字。該字段基於arch/arm/tools/mach-type linux文件中的機器標識。不過,這種方法現在可能已經過時了,因爲我們現在使用設備樹而不是板級支持包。您可能需要查找設備樹文檔以獲取所需的信息。

4

您可以閱讀MIDR寄存器將提供實施者,變型,architecutre,partnum和修訂你能幫助區分您正在其上運行代碼的主板。

你可以使用該寄存器MRC p15, 0, <Rt>, c0, c0, 0

參考:http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0500f/BABFEABI.html

+1

我不明白這是如何解決這個問題。一個_board_遠不僅僅是CPU核心,甚至是SoC。此外,考慮到Cubieboard上的Allwinner A10具有Cortex-A8 r3p2,而BeagleBone Black上的TI AM3359具有,呃,Cortex-A8 r3p2 ... – Notlikethat

+1

的確如此。我還沒有檢查哪個電路板使用哪個CPU,這只是一個提示,找出信息的可能方法。在cubie和小獵犬的情況下,它似乎不適合。哎呀:) 感謝您注意到這一點! – Aif

0

我用Python編寫。
我查看/ proc/cpuinfo並解析出硬件字段。
BCM2708是一個PI1(A,B,A +,B +)
BCM2709是一個PI2(B +)
BCM2835是PI3

對於Beaglebone可以:

import platform 
p = platform.platform() 

如果任何這些是真的,你有一個Beaglebone黑色。

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那麼也許它是另一個。

這是從Adafruit的託尼DiCola所做的工作收集到的,但我不從什麼項目,我發現它在召回之列。

相關問題