Raspberry Pi 3 имеет менее 1 ГБ памяти на уровне ОС

13

Я не знаю, является ли это критической проблемой или нет. Но мне нужно избавиться от вопросительных знаков в моей голове.

Я недавно купил плату Raspberry Pi 3 и, играя с ней, я понял, что meminfo показывает размер физической памяти намного меньше (~ 880 МБ), чем 1 ГБ (что указано на официальном сайте ).

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

Объем памяти, доступной для графического процессора, составляет 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-обновление работало или выдавало какие-либо предупреждения?
Shreyas Murali
Подробная информация добавляется к тексту вопроса.
ваха
Вероятно, это та же проблема, что предложила Джоан в другой теме. Проверьте это с помощью zcat /proc/config.gz|grep CONFIG_VMSPLIT . Только то, что решение с rpi-update не работает, потому что пока нет более нового ядра для Pi3. Но вы можете перекомпилировать свое ядро ​​с разделением памяти 2 ГБ / 2 ГБ самостоятельно.
Янка
1
Это совершенно нормально, мой Pi3 показывает: MemTotal: 882776 kB MemFree: 126868 kB MemAvailable: 689576 kB«В нормальных условиях НИКОГДА не нужно запускать rpi-update, поскольку он всегда приводит вас к передовой прошивке и ядру, и, поскольку это может быть тестовой версией, это может привести к тому, что ваш RPi не будет загружаться». raspberrypi.org/forums/viewtopic.php?p=916911#p916911
Milliways
Что vcgencmd get_mem arm && vcgencmd get_mem gpuпоказывает?
Milliways

Ответы:

14

Если выходной сигнал vcgencmd get_mem arm && vcgencmd get_mem gpuIS

arm=880M
gpu=128M

Это означает, что графический процессор использует 128M.

Это можно проверить / изменить raspi-config Advanced Options, хотя я сам не уменьшил GPU. Я ухожу из памяти, но я думаю, что это по умолчанию, возможно, связано с камерой. По крайней мере, теперь вы знаете, где ваша память.

Milliways
источник
Да, это все о камере.
ваха
880М и 128М составляют до 1008М. Где остальные 16М?
v7d8dpo4
@ v7d8dpo4 Из вопроса:memory size for GPU is 16MB
Дэвид Старки
9

Прежде всего, я выражаю наилучшие пожелания @Milliways за предложение проверить 2 простые команды.

vcgencmd get_mem arm && vcgencmd get_mem gpu

Где недостающая память 128 МБ?

Даже если и то, raspi-configи другое /boot/config.txtговорит о том, что объем доступной памяти для графического процессора составляет 16 МБ, фактические значения составляют 880 МБ для процессора, 128 МБ для графического процессора.

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

Таким образом, отсутствующая (на самом деле не отсутствующая) 128 МБ памяти зарезервирована для графического процессора .

Что вызывает эту ситуацию?

Даже /boot/config.txtвключает в себя строку gpu_mem=16, есть еще одна строка, которая включает модуль камеры.

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

Таким образом, включение модуля камеры приводит к резервированию 128 МБ памяти для графического процессора, что подразумевается здесь .

Короче говоря, можно сказать, что start_x=1переопределяет gpu_mem=16.

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

root@mypi:~# vcgencmd get_mem arm && vcgencmd get_mem gpu
arm=992M
gpu=16M
Ваха
источник
2
Да, камера по умолчанию резервируется на 128 Мб. Он может работать с меньшим разделением (если я правильно помню, вплоть до 32 Мб), но с более ограниченной функциональностью (чем меньше памяти, тем ниже разрешение, которое вы можете обрабатывать и т. Д.). Если разделение слишком мало (как 16Mb), оно будет просто по умолчанию 128.
Дейв Джонс
-1

Помимо опции rpi-update, существует и другая (возможная) причина, по которой сообщаемая память меньше. На этот раз это связано с разделением пространства ядра / пространства пользователя. В этом посте подробно описано исправление, которое включает в себя настройку конфигурации сборки ядра и ее перестройку из исходного кода. Один пользователь сообщил об успехе

by tesla01 »Чт 05 февраля 2015 20:04 Привет, я подтверждаю, что опция 2G / 2G работает при использовании собственного ядра

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

Благодарность :)

Вам нужно будет убедиться, что это действительно причина (проверив значение CONFIG_VMSPLITis либо CONFIG_VMSPLIT=3Gor CONFIG_VMSPLIT=2G), так как некоторые посты ниже в этой ссылке сообщают об успехе, например, так

by birdman »Чт, 12 февраля 2015 г. 10:01 вечера В эту минуту было обновление для libraspberrypi- * и raspberrypi-bootloader. ядро сейчас 3.18.7-v7 +. память теперь сообщает top как "KiB Mem: 998096"

Благодарность!!

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

К сожалению, я не рядом с моим ИП, чтобы проверить какие-либо из этих претензий.

Шрейас Мурали
источник