KenntWas.de – Technische Tipps

Technische Informationen zu Linux, (Oracle-) Datenbanken und mehr

Raspberry Pi mit 512MB RAM: GPU_MEM jetzt in /boot/config.txt

| 1 Comment

Mein 2. Raspberry Pi ist angekommen. Jetzt mit 512MB RAM! Wichtig ist dabei ein Updates des Bootloaders, sonst hat man von den zusätzlichen 256MB Speicher nichts. Es gibt nun neue Parameter in der config.txt (gpu_mem, gpu_mem_256 und gpu_mem_512), mit denen man das Memory-Splitting zwischen CPU und GPU steuern kann.

Die CPU hat eine 4G-Kennung, damit kann man den Speicher ermitteln.

Raspberry Pi: 4G = 512MB

Raspberry Pi: 4G = 512MB

Update von Rasbian

Es gibt ein Update für den Bootloader und raspi-config

 

$ sudo aptitude update; aptitude sudo upgrade
the following packages will be upgraded: 
  bind9-host distro-info-data dnsutils dpkg dpkg-dev gnupg gpgv icedtea-6-jre-cacao libbind9-80 libdns81 
  libdpkg-perl libisc83 libisccc80 libisccfg82 liblwres80 libmikmod2 libproxy0 libraspberrypi-bin 
  libraspberrypi-dev libraspberrypi-doc libraspberrypi0 libxcb-glx0 libxcb-render0 libxcb-render0-dev 
  libxcb-shape0 libxcb-shm0 libxcb-shm0-dev libxcb1 libxcb1-dev lxsession openjdk-6-jdk openjdk-6-jre 
  openjdk-6-jre-headless openjdk-6-jre-lib raspberrypi-bootloader raspi-config squeak-vm

Bei der Installation kommen ein paar interessante Meldungen. Wofür die fixup.dat und start_cd.elf benötigt werden, weiss ich noch nicht.

Preparing to replace raspberrypi-bootloader 1.20120918-1 (using .../raspberrypi-bootloader_1.20121025-1_armhf.deb) ...
Adding 'diversion of /boot/bootcode.bin to /usr/share/rpikernelhack/bootcode.bin by rpikernelhack'
Adding 'diversion of /boot/fixup.dat to /usr/share/rpikernelhack/fixup.dat by rpikernelhack'
Adding 'diversion of /boot/fixup_cd.dat to /usr/share/rpikernelhack/fixup_cd.dat by rpikernelhack'
Adding 'diversion of /boot/kernel.img to /usr/share/rpikernelhack/kernel.img by rpikernelhack'
Adding 'diversion of /boot/kernel_cutdown.img to /usr/share/rpikernelhack/kernel_cutdown.img by rpikernelhack'
Adding 'diversion of /boot/kernel_emergency.img to /usr/share/rpikernelhack/kernel_emergency.img by rpikernelhack'
Adding 'diversion of /boot/start.elf to /usr/share/rpikernelhack/start.elf by rpikernelhack'
Adding 'diversion of /boot/start_cd.elf to /usr/share/rpikernelhack/start_cd.elf by rpikernelhack'
Unpacking replacement raspberrypi-bootloader ...
Preparing to replace raspi-config 20120918 (using .../raspi-config_20121028_all.deb) ...
Unpacking replacement raspi-config ...

Memory – Split (gpu_mem) jetzt in /boot/config.txt

Bei der Installation kommt bereits die Meldung:

Setting up raspberrypi-bootloader (1.20121025-1) ...
Memory split is now set in /boot/config.txt.
You may want to use raspi-config to set it

Das Gehampel mit den verschiedenen start.elf – Dateien ist nun vorbei. In der config.txt kann man nun einfach angeben, wieviel RAM die GPU (Grafik-Prozessor) in MB von dem kostbaren Hauptspeicher bekommen soll.

cat /boot/config.txt

# GPU-Mem jetzt in config.txt!!!!
#  16, 32, 64, 128 oder 256
gpu_mem=16 # SDRAM size based GPU memory split, uncomment and setup to override 'gpu_mem' # gpu_mem_256=128 # gpu_mem_512=128 

 

disable_lscache

disable_l2cache = 1  # Default:0

deaktiviert den ARM Zugriff auf den L2 Cache der GPU. Benötigt einen speziellen Kernel (L2 disabled).

gpu_mem, gpu_mem_256. gpu_mem_512

Mit gpu_mem gibt man den GPU-Speicher in Megabyte an, der ARM Prozessor bekommt dann den restlichen Speicher. Minimal benötigt die GPU 16MB, der Defaultwert ist 64. Gültige Werte: 16, 32, 64, 128 oder 256.

Wer zwei Raspberry Pi’s hat, kann alternativ auch gpu_mem_256 und / oder gpu_mem_512 verwenden. Diese Werte überschreiben gpu_mem, wenn sie gesetzt sind (und das SDRAM passt).

gpu_mem_256 wird nur auf einen Raspberry Pi mit 256MB ausgewertet. und auf dem mit 512MB ignoriert.

gpu_mem_512 wird nur auf dem Raspberry Pi mit 512BM ausgewertet.

Damit kann man für die beiden Raspberry Pi ein angepasstes Memory-Layout bereitstellen.

 

Die neuen Werte sind in elinux.org/RPiconfig unter’ Memory’ beschrieben.

Einstellen kann man gpu_mem mit raspi-config. Wer stattdessen die anderen Parameter (…_256 oder _512)  verwenden will, muss einen Editor bemühen.

raspi_config: Memory Split einstellen

raspi_config: Memory Split einstellen

raspi-config: Wieviel Speicher soll die GPU bekommen?

raspi-config: Wieviel Speicher soll die GPU bekommen?

Da ich diesen Pi als Server verwende, lasse ich nur 16MB übrig. Der Wert wird direkt in die /boot/config.txt eingetragen: gpu_mem=16.

Mem-free

Jetzt habe ich auch mehr Speicher (512 – 16 = 496).

pi@raspberrypi ~ $ free
             total       used       free     shared    buffers     cached
Mem:        497764      92252     405512          0      16604      51544
-/+ buffers/cache:      24104     473660
Swap:       524284          0     524284

 

cpuinfo

root@raspberrypi:~# cat /proc/cpuinfo
Processor       : ARMv6-compatible processor rev 7 (v6l)
BogoMIPS        : 697.95
Features        : swp half thumb fastmult vfp edsp java tls 
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xb76
CPU revision    : 7

Hardware        : BCM2708
Revision        : 000f       <---- Revision 15 
Serial          : 0000000079de25xxx

Hardware Revision

Den Raspberry Pi mit 512MB gibt es in den Revisionen 13,14,15. cpuinfo gibt den Wert hexadezimal aus (d=13, e=14, f=15).

Model and revision               Code(s)
Model B Revision 1.0             2
Model B Revision 1.0 + ECN0001 (no fuses, D14 removed)    3
Model B Revision 2.0             4, 5, 6
Model B Revision 2.0 (512 MB)    13, 14, 15 

 

/boot

 

root@raspberrypi:~# ls -l /boot
 total 16880
 -rwxr-xr-x 1 root root   17764 Oct 31 21:45 bootcode.bin
 -rwxr-xr-x 1 root root     142 Jul 15 22:06 cmdline.txt
 -rwxr-xr-x 1 root root    1224 Sep 21 09:09 config.txt
 -rwxr-xr-x 1 root root    1180 Sep 21 09:03 config.txt-sav
 -rwxr-xr-x 1 root root    2020 Oct 31 21:45 fixup_cd.dat
 -rwxr-xr-x 1 root root    5282 Oct 31 21:45 fixup.dat
 -rwxr-xr-x 1 root root     137 Jul 15 22:44 issue.txt
 -rwxr-xr-x 1 root root 2104952 Oct 31 21:46 kernel_cutdown.img
 -rwxr-xr-x 1 root root 9522048 Oct 31 21:46 kernel_emergency.img
 -rwxr-xr-x 1 root root 2695192 Oct 31 21:45 kernel.img
 -rwxr-xr-x 1 root root  523144 Oct 31 21:46 start_cd.elf
 -rwxr-xr-x 1 root root 2347828 Oct 31 21:46 start.elf

 

Overclocking

Beim Setzen des Turbo-Modes (1Ghz) kommt eine Warnung, dass SD-Karten ggf. zerstört werden. Mir ist es mit dem alten Pi auch schon 2x passiert, dass eine SD-Karte und ein USB-Stick sich verabschiedet haben. Ich teste aber weiterhin mit 1Ghz.

raspi-config: Overclock-Optionen

raspi-config: Overclock-Optionen

 

Overclocking: Warnung beim Turbomodus 1Ghz

Overclocking: Warnung beim Turbomodus 1Ghz

 

cat /boot/config.txt

# Overclock mode settings.
#
# default recommended values are:

#                                          arm_freq | core_freq | sdram_freq | over_voltage
# no overclocking               :    700   |    250         |    400     |      0
# mode ‘Modest’                 :    800   |    300        |    400     |      0
# mode ‘Medium’               :    900   |    333         |    450     |      2
# mode ‘High’                     :    950    |    450         |    450     |      6
# mode ‘Turbo’                   :   1000   |    500        |    500     |      6
#                                                                                       600  # raspi-config stellt bei turbo sdram_freq=600 ein

#uncomment to overclock the arm. 700 MHz is the default.
arm_freq=1000

# for more options see http://linux.org/RPiconfig
core_freq=500
sdram_freq=600
over_voltage=6

# GPU-Mem jetzt in config.txt!!!!
gpu_mem=16

 

Fazit

Wie bereits geschrieben: Mein Pi mit 512MB ist noch ganz frisch. Ich teste ihn noch. Die neue Lösung, in der config.txt nur noch anzugeben, wieviel Speicher die GPU bekommen soll, finde ich gut. Der alte Weg (kopieren der startxxx.elf nach start.elf) machte nur Probleme. Es würde auch verhindern, dass eine SD-Karte auf einem Pi mit weniger (256MB) RAM läuft.

Openelec habe ich auf dem 512er Raspberry Pi noch nicht ausprobiert. Da werde ich mir erst eine neue Version kompilieren müssen, die den neuen Bootloader unterstützt. Ich glaube die Instabilitäten in vergangenen Versionen hängen auch damit zusammen, dass Openelec keinen swap einrichtet und daher beim ‘kleinen’ Pi mit den 128MB klar kommen muss. Mit 512MB hat man da wesentlich mehr Luft.

In dem Beipackzettel zum neuen Raspberry Pi stand

  • Faster…
  • Double RAM…
  • Same Price…

‘Gefühlt’ ist der Pi mit 512MB RAM etwas schneller. Das kann natürlich daran liegen, dass nun mehr Speicher für den Cache vorhanden ist.
Wie sind Eure Erfahrungen?

One Comment

  1. Pingback: raspbian: Die Konfiguration noch einmal aufrufen | KenntWas.de - Technische Tipps

Leave a Reply

Required fields are marked *.