Raspberry Pi 3 ha meno di 1 GB di memoria disponibile a livello di sistema operativo


13

Non so se si tratti di un problema critico o meno. Ma devo liberarmi dei punti interrogativi nella mia mente.

Di recente ho acquistato una scheda Raspberry Pi 3 e mentre ci giocavo , mi sono reso conto che meminfo mostra una dimensione della memoria fisica molto inferiore (~ 880 MB) rispetto a 1 GB (che è specificato sul sito ufficiale ).

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

La quantità di memoria disponibile per la GPU è di 16 MB (che è il limite minimo consentito) verificata due volte sulla relativa voce di menu raspi-config.

raspi-config -> Advanced Options -> Memory Split

La configurazione di avvio dice anche che gpu_mem è 16 MB .

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

Per restringere lo spazio del problema, ecco le informazioni di sistema. A proposito, il sistema è aggiornato.

Rilascio del sistema operativo:

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

Versione del kernel:

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

Configurazione vmsplit del kernel:

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

Quindi, ho 2 domande:

  • Dov'è la memoria mancante da 128 MB?
  • Cosa causa questa situazione?

qual è il sistema operativo che stai utilizzando - raspbian / arch / other? cat /etc/os-releasedovrei dirlo. qual è la versione del kernel? uname -adovrebbe darlo. questo dovrebbe aiutare a restringere le probabili cause. l'aggiornamento rpi ha funzionato o ha prodotto avvisi?
Shreyas Murali,

Informazioni dettagliate vengono aggiunte al testo della domanda.
vaha,

È probabilmente lo stesso problema suggerito da Joan nell'altro thread. Verificare con zcat /proc/config.gz|grep CONFIG_VMSPLIT . Solo che la soluzione con rpi-update non funziona perché non esiste ancora un kernel più recente per Pi3. Ma puoi ricompilare il kernel con la suddivisione della memoria da 2 GB / 2 GB.
Janka,

1
Questo è perfettamente normale, il mio Pi3 mostra MemTotal: 882776 kB MemFree: 126868 kB MemAvailable: 689576 kB"In circostanze normali non c'è MAI la necessità di eseguire rpi-update in quanto ti porta sempre al firmware e al kernel all'avanguardia e poiché quella potrebbe essere una versione di prova potrebbe lasciare il tuo RPi non avviabile". raspberrypi.org/forums/viewtopic.php?p=916911#p916911
Milliways,

Cosa vcgencmd get_mem arm && vcgencmd get_mem gpumostra?
Milliways,

Risposte:


14

Se l'output di vcgencmd get_mem arm && vcgencmd get_mem gpuè

arm=880M
gpu=128M

Ciò significa che la GPU utilizza 128M.

Questo può essere verificato / modificato raspi-config Advanced Options, anche se non ho ridotto la GPU da solo. Sto andando dalla memoria, ma penso che sia l'impostazione predefinita, possibilmente correlata alla fotocamera. Almeno ora sai dove si trova la tua memoria.


Sì, è tutto sulla fotocamera.
vaha,

880 M e 128 M aggiungono fino a 1008 M. Dov'è l'altro 16M?
v7d8dpo4,

@ v7d8dpo4 Dalla domanda:memory size for GPU is 16MB
David Starkey,

9

Prima di tutto, porgo i miei migliori saluti a @Milliways per aver suggerito di controllare 2 semplici comandi.

vcgencmd get_mem arm && vcgencmd get_mem gpu

Dov'è la memoria mancante da 128 MB?

Anche se entrambi raspi-confige /boot/config.txtdice che la quantità di memoria disponibile per GPU è 16 MB, i valori reali sono 880MB per la CPU, 128MB per GPU.

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

Quindi, la memoria mancante (in realtà non mancante) da 128 MB è riservata alla GPU .

Cosa causa questa situazione?

Anche /boot/config.txtinclude la linea gpu_mem=16, c'è un'altra linea che abilita il modulo videocamera.

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

Quindi, abilitando il modulo videocamera si ottiene una prenotazione della memoria di 128 MB per la GPU, implicitamente implicita qui .

In breve, possiamo dire che start_x=1le sostituzioni gpu_mem=16.

Dopo aver disabilitato il modulo telecamera da start_x=0, ecco i valori di memoria:

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

2
Sì, per impostazione predefinita la fotocamera ha una prenotazione di 128 Mb. Si può lavorare con spacchetti inferiori (se non ricordo male, tutta la strada fino a 32Mb) ma con funzionalità più limitate (meno di memoria, minore è la risoluzione è possibile gestire e così via). Se la divisione è troppo piccola (come lo è 16Mb), la configurazione predefinita è 128.
Dave Jones,

-1

A parte l'opzione rpi-update, sembra che ci sia un altro (possibile) motivo per cui la memoria segnalata è inferiore. Questa volta ha a che fare con la divisione dello spazio del kernel / spazio utente. Questo post descrive in dettaglio la correzione che comporta la modifica della configurazione di compilazione del kernel e la sua ricostruzione dal codice sorgente. Un utente ha segnalato il successo

by tesla01 »gio 05 feb 2015 20:04 Ciao, confermo che l'opzione 2G / 2G funziona quando si usa il kernel personalizzato

5 febbraio 19:17:12 kernel raspberrypi: [0.000000] Memoria: 940776K / 966656K disponibile (codice kernel 5785K, 377K rwdata, 1760K rodata, 396K init, 771K bss, 25880K riservato)

Grazie :)

Dovrai verificare che questa sia effettivamente la causa (controllando il valore di CONFIG_VMSPLITis CONFIG_VMSPLIT=3Gor o CONFIG_VMSPLIT=2G) poiché alcuni post più in basso in quel link riportano il successo in questo modo

di birdman »gio 12 feb 2015 22:01 Proprio questo minuto ha avuto un aggiornamento a libraspberrypi- * e raspberrypi-bootloader. kernel ora 3.18.7-v7 +. memoria ora riportata dall'alto come "Memoria KiB: 998096"

Grazie!!

mentre altri non hanno avuto gli stessi risultati

Purtroppo non sono vicino al mio PI per verificare nessuna di queste affermazioni.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.