Nie wiem, czy jest to problem krytyczny, czy nie. Ale muszę pozbyć się znaków zapytania w mojej głowie.
Niedawno kupiłem płytę Raspberry Pi 3 i podczas zabawy z niej zdałem sobie sprawę, że meminfo pokazuje rozmiar pamięci fizycznej znacznie mniej (~ 880 MB) niż 1 GB (co jest podane na oficjalnej stronie ).
root@mypi:~# cat /proc/meminfo
MemTotal: 882780 kB
MemFree: 536068 kB
MemAvailable: 712180 kB
Ilość pamięci dostępnej dla GPU wynosi 16 MB (co jest minimalnym dozwolonym limitem) sprawdzona dwukrotnie w powiązanym punkcie menu raspi-config.
raspi-config -> Advanced Options -> Memory Split
Konfiguracja rozruchowa mówi również, że gpu_mem ma 16 MB .
root@mypi:~# cat /boot/config.txt | grep -i gpu
gpu_mem=16
Aby zawęzić obszar problemów, oto informacje o systemie. Nawiasem mówiąc, system jest aktualny.
Wersja systemu operacyjnego:
root@mypi:~# cat /etc/os-release | grep PRETTY_NAME
PRETTY_NAME="Raspbian GNU/Linux 8 (jessie)"
Wersja jądra:
root@mypi:~# uname -a
Linux mypi 4.4.23-v7+ #913 SMP Tue Oct 4 14:16:19 BST 2016 armv7l GNU/Linux
Konfiguracja jądra vmsplit:
root@mypi:~# zcat /proc/config.gz | grep CONFIG_VMSPLIT | grep -v ^#
CONFIG_VMSPLIT_2G=y
Mam więc 2 pytania:
- Gdzie brakuje 128 MB pamięci?
- Co powoduje tę sytuację?
cat /etc/os-release
powinien to powiedzieć. jaka wersja jądra?uname -a
powinien dać to. powinno to pomóc zawęzić prawdopodobne przyczyny. czy aktualizacja rpi faktycznie działała lub generowała jakieś ostrzeżenia?MemTotal: 882776 kB MemFree: 126868 kB MemAvailable: 689576 kB
„W normalnych okolicznościach NIGDY nie trzeba uruchamiać aktualizacji rpi, ponieważ zawsze prowadzi to do najnowocześniejszego oprogramowania układowego i jądra, a ponieważ może to być wersja testowa, może spowodować, że nie można uruchomić RPi”. raspberrypi.org/forums/viewtopic.php?p=916911#p916911vcgencmd get_mem arm && vcgencmd get_mem gpu
pokazujeOdpowiedzi:
Jeśli wynikiem
vcgencmd get_mem arm && vcgencmd get_mem gpu
jestOznacza to, że GPU używa 128M.
Można to zweryfikować / zmienić
raspi-config
Advanced Options
, chociaż sam nie zmniejszyłem GPU. Wychodzę z pamięci, ale myślę, że jest to ustawienie domyślne, prawdopodobnie związane z kamerą. Przynajmniej teraz wiesz, gdzie jest twoja pamięć.źródło
memory size for GPU is 16MB
Po pierwsze, pozdrawiam @Milliways za sugestię sprawdzenia 2 prostych poleceń.
Gdzie brakuje 128 MB pamięci?
Nawet jeśli jedno
raspi-config
i drugie/boot/config.txt
mówi, że ilość pamięci dostępnej dla GPU wynosi 16 MB, rzeczywiste wartości wynoszą 880 MB dla procesora, 128 MB dla GPU.Tak więc brakuje (właściwie nie brakuje) 128 MB pamięci zarezerwowanej dla GPU .
Co powoduje tę sytuację?
Nawet
/boot/config.txt
obejmuje linięgpu_mem=16
, istnieje inna linia, która włącza moduł kamery.Tak więc włączenie modułu kamery prowadzi do 128 MB rezerwacji pamięci dla GPU, co jest tutaj domyślnie implikowane .
Krótko mówiąc, możemy powiedzieć, że to
start_x=1
zastępujegpu_mem=16
.Po wyłączeniu modułu kamery
start_x=0
, oto wartości pamięci:źródło
Oprócz opcji aktualizacji rpi wydaje się, że istnieje inny (możliwy) powód, dla którego zgłaszana pamięć jest mniejsza. Tym razem dotyczy to podziału przestrzeni jądra / przestrzeni użytkownika. W tym poście szczegółowo opisano poprawkę polegającą na poprawieniu konfiguracji kompilacji jądra i przebudowaniu jej z kodu źródłowego. Jeden użytkownik zgłosił sukces
Trzeba będzie zweryfikować to rzeczywiście przyczyną (sprawdzając wartość
CONFIG_VMSPLIT
jest alboCONFIG_VMSPLIT=3G
alboCONFIG_VMSPLIT=2G
) w niektórych stanowisk w dalszej części tego raportu łącza sukcesu tak jakpodczas gdy niektóre inne nie miały takich samych wyników
Niestety nie jestem w pobliżu mojego PI, aby zweryfikować którekolwiek z tych roszczeń.
źródło