如何在 Ubuntu 18.04 服务器上找到适用于 arm64 的芯片(哪个版本的树莓派)?我可以检查什么文件或运行什么命令?/proc/cpuinfo 没有有用的信息,只有一些没有提到 pi 的通用细节。
答案1
至少在适用于 arm64 的 Ubuntu 18.04 服务器上以及使用 Raspberry Pi 3 B 时,以下命令会提供主板,包括修订版:
lshw
更简洁且更易于阅读的输出如下:
lshw -short
这样我的主板就变成了“Raspberry Pi 3 B Rev 1.2”,这正是本例所需要的。
答案2
命令lscpu
就是您要找的内容。以下是该命令的示例输出(在我的 Raspberry Pi 3B+ 上获取):
lscpu
输出结果如下:
Architecture: armv7l
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 1
Core(s) per socket: 4
Socket(s): 1
Model: 4
Model name: ARMv7 Processor rev 4 (v7l)
CPU max MHz: 1200,0000
CPU min MHz: 600,0000
BogoMIPS: 38.40
Flags: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32
另一个选择是inxi
命令(如果不存在,则可能需要使用 进行安装sudo apt install inxi
)。使用标志-C
如下:
inxi -C
输出结果如下:
CPU: Quad core ARMv7 rev 4 (v7l) (-MCP-) (ARM)
clock speeds: max: 1200 MHz 1: 1200 MHz 2: 1200 MHz 3: 1200 MHz 4: 1200 MHz
至于识别您的主板上有哪种芯片,您可以检查主板上的芯片以及制造商网站以获取信息,也可以查看不同的销售网点以获取技术细节。
答案3
我尝试将 pigpio 移植到 Debian arm64,最终失败了,因为我发现 Debian arm64 内核不支持 pigpio 所依赖的用户空间邮箱接口,但在此过程中,我研究了如何在运行 Debian arm64 内核时检测 Pis。我怀疑这也适用于 ubuntu arm64。
正如您所发现的,/proc/cpuinfo 仅包含这些内核的 CPU 核心信息。幸运的是,这些信息可以在 /proc 中的其他地方找到
首先,为了检查该设备是否是 Pi,我检查了 /proc/device-tree/model,其中有一个描述该设备的文本字符串,因此不太可能出现误报。
为了获取修订代码,我使用了 /proc/device-tree/system/linux,revision ,它以大端二进制整数的形式包含修订代码。因此,需要将其作为二进制整数从文件中读出,然后转换为小端(我为此使用了 ntohl)。
您可以在以下位置查看我的代码https://github.com/joan2937/pigpio/pull/255/commits/2e229d667fde8a2a881d5aa8482b2bb936b09f26