程序如何检查它是否在512MB RPi上运行?


12

512MB RPI的电路板版本是否不同?

即,您可以只查看其中的修订版/proc/cpuinfo以确定您是否拥有512MB RPi吗?

否则,最简单的检查方法是什么?


请注意,除非您正在编写更改启动文件的工具,或者只是想通知用户他们拥有什么,或者他们当前的启动配置是否正在充分利用硬件,否则最终您将无法对所学知识做很多事情。除非已由GPU启动代码授予,否则Linux内核下ARM上的应用程序实际上无法使用额外的内存。
克里斯·斯特拉顿

Answers:


10

如您所说,该cat /proc/cpuinfo | grep Revision命令将为您提供主板修订版。请注意,修订版是十六进制值。要显示等效的十进制数,请运行以下命令printf '%d\n' 0x#,其中#是上一条命令显示的十六进制值。

根据下面的图中,码131415所支持的这些512 MB板。

Model and revision                                          Decimal code(s)     Hexadecimal equivalent
Model B Revision 1.0                                        2                   0x2
Model B Revision 1.0 + ECN0001 (no fuses, D14 removed)      3                   0x3
Model B Revision 2.0                                        4, 5, 6             0x4, 0x5, 0x6
Model B Revision 2.0 (512 MB)                               13, 14, 15          0xd, 0xe, 0xf

资料来源:Element14社区文档


1
请记住,这种情况将来可能会改变。我确定代码13,14,15将始终意味着您拥有512 MB的RAM,但可能还有其他的。然后,假设大于13的所有代码都具有512MB并不是一个好主意,因为我们只是不知道那是否是正确的。所以它不应该在脚本中使用等
克日什托夫·亚当斯基

1
我的Pi装在一个盒子里,上面贴着标有“ 512MB RAM”的大写字母,但/proc/cpuinfoRevision : 0005。我是从图像中引导2012-09-18-wheezy-raspbian.ziphttp://www.raspberrypi.org/downloads
RedGrittyBrick

@RedGrittyBrick:对我来说也是一样。我昨天才收到我的Pi,根据官方博客,我有512MB RAM版本(芯片上可以看到“ 4G”)。但是cat /proc/cpuinfo返回修订版5。修订版不是在SoC中手写的吗?Raspian是否需要更新以“识别” 512MB RAM版本?
Morgan Courbet

@Morgan:像您一样,Pi上CPU的顶部芯片(RAM)标记为Samsung K4P4G324EB,三星的信息确认这是“ 128Mx32” = 4 GBit = 512 MB。我确实在某个地方读过一个论坛项目,提示需要进行固件更新(我想这是SD卡上的文件之一)
RedGrittyBrick 2012年

@RedGrittyBrick:我现在有Revision: 000f。大概是最近的dist-upgrade
Morgan Courbet

7

在诸如Linux之类的现代操作系统中,您真正需要检查的是已为通用用途提供了多少内存。可能少于实际安装的总数。因此,例如,如果512 MB的pi运行用于256 MB的安装,则不会为您提供该内存。

然后,在pi上还有CPU与GPU内存分离的问题-到Linux启动时,使用ARM CPU的内存甚至会大大少于当前内存,因为GPU的启动过程已经根据所使用的start.elf文件确定了可观的金额。

要回答直接问题,/proc/meminfofree命令的第一行应告诉您Linux总体上有多少可用物理内存。

给定应用程序可用的内存量再次变得更加复杂-内核,缓冲区和其他应用程序将占用内存。尽管交换分区可能并不通常与SD卡一起用作唯一的“磁盘”,但它可能会使可用的虚拟内存超过物理RAM。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.