Raspberry Pi 3 має менше 1 ГБ пам'яті, доступної на рівні ОС


13

Я не знаю, важлива це проблема чи ні. Але мені потрібно позбутися знаків запитань у моїй свідомості.

Нещодавно я придбав дошку Raspberry Pi 3, і, граючи з нею, я зрозумів, що meminfo показує розмір фізичної пам'яті набагато менше (~ 880MB), ніж 1 Гб (що вказано на офіційному сайті ).

root@mypi:~# cat /proc/meminfo 
MemTotal:         882780 kB
MemFree:          536068 kB
MemAvailable:     712180 kB

Обсяг пам’яті, доступного для GPU, становить 16 Мб (що є мінімально дозволеним обмеженням), перевіреного двічі у відповідному пункті меню raspi-config.

raspi-config -> Advanced Options -> Memory Split

Конфігурація завантаження також говорить, що gpu_mem становить 16 Мб .

root@mypi:~# cat /boot/config.txt | grep -i gpu
gpu_mem=16

Щоб звузити проблемний простір, ось система інформації. До речі, система є сучасною.

Реліз ОС:

root@mypi:~# cat /etc/os-release | grep PRETTY_NAME
PRETTY_NAME="Raspbian GNU/Linux 8 (jessie)"

Версія ядра:

root@mypi:~# uname -a
Linux mypi 4.4.23-v7+ #913 SMP Tue Oct 4 14:16:19 BST 2016 armv7l GNU/Linux

Конфігурація vmsplit ядра:

root@mypi:~# zcat /proc/config.gz | grep CONFIG_VMSPLIT | grep -v ^#
CONFIG_VMSPLIT_2G=y

Отже, у мене є 2 питання:

  • Де відсутня пам'ять 128 Мб?
  • Що викликає таку ситуацію?

яку ОС ви використовуєте - raspbian / arch / other? cat /etc/os-releaseповинні сказати це. що версія ядра? uname -aповинні це дати. це повинно допомогти звузити ймовірні причини. чи справді rpi-оновлення спрацювало чи створило якісь попередження?
Шреяс Муралі

Детальна інформація додається до тексту запитання.
vaha

Це, мабуть, та сама проблема, що Джоан запропонувала в іншій темі. Перевірте за допомогою zcat /proc/config.gz|grep CONFIG_VMSPLIT . Тільки те, що рішення з rpi-update не працює, оскільки ще немає більшого ядра для Pi3. Але ви можете перекомпілювати своє ядро ​​з розділеною 2 Гб / 2 ГБ пам'яті.
Янка

1
Це абсолютно нормально, мій Pi3 показує: MemTotal: 882776 kB MemFree: 126868 kB MemAvailable: 689576 kB"У звичайних обставинах НІКОЛИ не потрібно запускати rpi-оновлення, оскільки це завжди приводить вас до передового програмного забезпечення та ядра, і тому, що це може бути тестова версія, вона може залишити ваш RPi незавантаженим". raspberrypi.org/forums/viewtopic.php?p=916911#p916911
Milliways

Що vcgencmd get_mem arm && vcgencmd get_mem gpuпоказує?
Міллівей

Відповіді:


14

Якщо вихід vcgencmd get_mem arm && vcgencmd get_mem gpuє

arm=880M
gpu=128M

Це означає, що GPU використовує 128M.

Це можна перевірити / змінити raspi-config Advanced Options, хоча я не знижував GPU сам. Я йду з пам’яті, але думаю, що це типовий варіант, можливо, пов’язаний із камерою. Принаймні, тепер ви знаєте, де ваша пам’ять.


Так, це все стосується камери.
vaha

880M і 128M складають до 1008M. Де інші 16М?
v7d8dpo4

@ v7d8dpo4 З питання:memory size for GPU is 16MB
Девід Старкі

10

Перш за все, я вітаю @Milliways за пропозицію перевірити 2 прості команди.

vcgencmd get_mem arm && vcgencmd get_mem gpu

Де відсутня пам'ять 128 Мб?

Навіть якщо і те, raspi-configі інше /boot/config.txtговорить, що об'єм пам'яті, доступної для GPU, становить 16 Мб, фактичні значення - 880 Мб для процесора, 128 Мб для GPU.

root@mypi:~# vcgencmd get_mem arm && vcgencmd get_mem gpu
arm=880M
gpu=128M

Отже, відсутня (фактично не відсутня) 128 МБ пам'яті зарезервована для GPU .

Що викликає таку ситуацію?

Навіть /boot/config.txtвключає лінію gpu_mem=16, є ще одна лінія, яка дозволяє модуль камери.

root@mypi:~# cat /boot/config.txt | grep -i start_x
start_x=1

Таким чином, дозволяючи модуль камери призводить до 128 резервування пам'яті для GPU , яка неявно мається на увазі тут .

Коротше кажучи, можна сказати, що це start_x=1перекриває gpu_mem=16.

Після відключення модуля камери від start_x=0, ось значення пам'яті:

root@mypi:~# vcgencmd get_mem arm && vcgencmd get_mem gpu
arm=992M
gpu=16M

3
Так, камерою за замовчуванням є бронювання на 128 Мб. Він може працювати з меншими розщепленнями (якщо я правильно пам'ятаю, аж до 32 Мбіт), але з більш обмеженою функціональністю (чим менше пам’яті, тим менша роздільна здатність, з якою ви можете працювати і так далі). Якщо розбиття занадто мало (як 16 Мбіт), воно буде за замовчуванням до 128.
Дейв Джонс

-1

Крім параметра rpi-update, існує ще одна (можлива) причина, чому пам'ять, що повідомляється, менше. Цього разу це стосується простору ядра / пам'яті простору користувача. У цій публікації детально описано виправлення, яке передбачає налаштування конфігурації збірки ядра та відновлення її з вихідного коду. Один користувач повідомив про успіх

автор tesla01 »Чт 05 лютого 2015 р. 20:04 Привіт, я підтверджую, що опція 2G / 2G працює, коли використовується власне ядро

5 лютого 19:17:12 ядро ​​малини: [0.000000] Пам'ять: 940776K / 966656K доступно (код ядра 5785K, rwdata 377K, rodata 1760K, 396K init, 771K bss, 25880K зарезервовано)

Спасибі :)

Вам потрібно буде переконатися, що це справді причина (перевіряючи значення CONFIG_VMSPLITє CONFIG_VMSPLIT=3Gабо CONFIG_VMSPLIT=2G), оскільки деякі публікації далі в цьому посиланні повідомляють про успіх,

автор birdman »Чт 12 лютого 2015 р. 22:01 Щойно в цю хвилину було оновлено бібліотеки для завантажувальних програм * і малинового завантажувача. ядро зараз 3.18.7-v7 +. пам'ять тепер повідомляється вгорі як "KiB Mem: 998096"

Спасибі!!

тоді як деякі інші не мали таких же результатів

На жаль, я не поруч зі своїм PI, щоб перевірити будь-яке з цих тверджень.

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