Як програма перевіряє, чи працює вона в 512MB RPi?


12

Чи мають індекс інтерфейсу 512 МБ інший перегляд плати?

тобто, ви можете просто переглянути ревізію, /proc/cpuinfoщоб визначити, чи є у вас 512 МБ RPi?

Інакше який найпростіший спосіб перевірити?


Зауважте, що в кінцевому рахунку ви не можете зробити багато знань, якщо ви не пишете інструмент для зміни файлів запуску, або просто хочете повідомити користувача про те, що вони мають, або якщо їх поточна конфігурація завантаження в повній мірі використовує обладнання. Прикладна програма на ARM під ядром Linux фактично не може використовувати додаткову пам'ять, якщо вона не була надана кодом запуску GPU.
Кріс Страттон

Відповіді:


10

Як ви вже сказали, cat /proc/cpuinfo | grep Revisionкоманда дозволить вам переглянути дошку. Зверніть увагу, що перегляд є шістнадцятковим значенням. Щоб відобразити десятковий еквівалент, запустіть цю команду printf '%d\n' 0x#, де #є шістнадцяткове значення, відображене з попередньою командою.

Згідно з наступною діаграмою, коди 13 , 14 і 15 відповідають платі 512 Мб .

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 Мб оперативної пам’яті, але можуть бути й інші. І тоді не годиться припускати, що всі коди> 13 мають 512 Мб, оскільки ми просто не знаємо, чи це буде правдою. Тому його не слід використовувати в сценаріях тощо
Кшиштоф Адамський

1
Мій Пі прийшов у коробці з наклейкою, на якій великими літерами /proc/cpuinfoнаписано "512 Мб оперативної пам'яті", але сказано Revision : 0005. Я завантажившись з зображення в 2012-09-18-wheezy-raspbian.zipвідhttp://www.raspberrypi.org/downloads
RedGrittyBrick

@RedGrittyBrick: Те саме для мене. Я щойно отримав свій Pi вчора, і згідно з офіційним блогом , у мене є версія оперативної пам'яті 512 Мб (я можу побачити "4G" на чіпі). Але cat /proc/cpuinfoповертає версію 5. Чи не редакція складно написана в SoC? Чи потрібне оновлення Raspian, щоб "розпізнати" версію оперативної пам'яті 512 Мб?
Морган Курбе

@Morgan: Як і у вас, на моєму Pi піктограмі верхній чіп (ОЗУ) є Samsung K4P4G324EB, і інформація Samsung підтверджує, що це "128Mx32" = 4 ГБ = 512 МБ. Я десь читав пункт форуму, який запропонував оновити програмне забезпечення (я думаю, це один з файлів на SD-карті)
RedGrittyBrick,

@RedGrittyBrick: У мене зараз є Revision: 000f. Напевно, недавнє dist-upgrade.
Морган Курбе

7

У сучасній операційній системі, такі як Linux, вам потрібно перевірити, наскільки доступно пам'ять для загального використання; що може бути менше загальної кількості фізично встановлених. Так, наприклад, 512 Мб пі, що працює з встановленням, призначеним для 256 Мб, не зробить цю пам'ять доступною для вас.

Тоді, на пі, виникає подальший випуск розбитої пам’яті процесора та графічного процесора - щось значно менше, ніж теперішня пам’ять, навіть буде доступна для використання процесора ARM до завантаження Linux, оскільки процес завантаження GPU вже є вимагав значної кількості, як було визначено файл start.elf, що використовується.

Щоб відповісти на пряме запитання, перший рядок /proc/meminfoабо freeкоманда повинні сказати, скільки фізичної пам'яті доступно для Linux загалом.

Скільки пам’яті доступно для даної програми, знову складніше - ядро, буфери та інші програми вимагатимуть пам’яті. І хоча це, мабуть, не використовується з SD-карткою як єдиним "диском", розділ swap може зробити доступну віртуальну пам'ять перевищенням фізичної оперативної пам'яті.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.