Die config.txt Konfigurationsdatei

In der Boot-Partition einer SD-Karte für den Raspberry Pi kann man über die Datei config.txt diverse Parameter des Geräts beim Start setzen. Die Datei ist standardmäßig bei den Distributionen nicht vorhanden und kann mit reinen Text-Editor (kein Wordpad oder Word oder dergleichen!) erstellt und bearbeitet werden. Da die Boot-Partition FAT-formatiert ist, kann man sie auch von seinem Computer aus einsehen, wenn die SD-Karte angeschlossen ist. Im mit Linux gestarteten Pi ist sie unter /boot erreichbar.

Parameter in der config.txt werden zeilenweise als Key-Value-Paar angegeben (Schlüssel-Wert), mit einem =-Zeichen dazwischen. Alles was in einer Zeile hinter einem #-Zeichen steht, wird als Kommentar gewertet. Wenn der Pi startet, liest der Grafikprozessor diese Datei ein und setzt die Geräteparamter entsprechend, noch ehe das Betriebssystem geladen wird.

Liste der Paramter und möglicher Werte

Taktfrequenzen

arm_freq: Taktfrequenz des ARM in MHz. Standard: 700
gpu_freq: Setzt core_freq, h264_freq, isp_freq, v3d_freq auf denselben Wert. Standard: 250
core_freq: Taktfrequenz der GPU in MHz. Standard: 250
h264_freq: Taktfrequenz des Hardware-Video-Blocks in MHz. Standard: 250
isp_freq: Taktfrequenz des Bild-Sensor-Pipeline-Blocks in MHz. Standard: 250
v3d_freq: Taktfrequenz des 3D-Blocks in MHz. Standard: 250
sdram_freq: Taktfrequenz des SDRAM-Hauptspeichers in MHz. Standard: 400

Spannungen

over_voltage: ARM-/GPU-Kern-Spannungs-Anpassung. [-16,8] ergibt [0,8V, 1,4V]. Standard: 0 (1,2V)
over_voltage_sdram: Setzt over_voltage_sdram_c, over_voltage_sdram_i, over_voltage_sdram_p zusammen. Standard: 0 (1,2V)
over_voltage_sdram_c: SDRAM-Controller-Spannungs-Anapssung. [-16,8] ergibt [0,8V,1,4V]. Standard: 0 (1,2V)
over_voltage_sdram_i: SDRAM- I/O-Spannungs-Anpassung. [-16,8] ergibt  [0,8V,1,4V]. Standard: 0 (1,2V)
over_voltage_sdram_p: SDRAM-Phy-Spannungs-Anpassung. [-16,8] ergibt [0,8V,1,4V]. Standard: 0 (1,2V)

Die GPU hat übrigens ein eigenes internes Power-Management und schaltet nicht benötigte Teile ab. Es ist daher nicht nötig sie um weiter Strom zu sparen absichtlich langsamer zu betreiben. Zudem hängen auch Teile des ARM und der RAM-Zugriff am Bustakt der GPU. Diese würden also ebenfalls langsamer.

Hinweise zur Übertaktung und Betrieb mit Überspannung

Wer die Spannungen nach oben korrigiert verliert seine Gewährleistung. Der Chip hat ein internes Signal-Bit welches nur einmal gesetzt und nicht wieder gelöscht werden kann und beim Betrieb mit erhöhter Spannung gesetzt wird. Außerdem verkürzt der Betrieb bei höherer Versorgungsspannung die Lebenszeit der Komponenten! Bei Standardeinstellungen sollte der Pi auch mit 800 MHz, viele auch mit 900 MHz laufen.

Mit Einstellung 6 (1,35V) wurde der Kern über einen längeren Zeitraum bei 1 GHz betrieben. In kurzen Tests wurden auch 1,15 GHz erreicht. Die GPU wurde in Tests schon mit 350 MHz betrieben. Das beschleunigt auch das Gesamtsystem abseits von Grafikbeschleunigung, da der ARM-Kern bei Zugriffen auf den L2-Cache und den RAM über die GPU geht. Genau betrachtet ist der Broadcom-Chip ein Grafikprozessor mit angeflanschtem ARM-CPU-Kern.

Grafik-Ausgabe

sdtv_mode: Analoger TV-Modus (Composite). Standard ist 0 (NTSC)

  • SDTV_MODE_NTSC       = 0, /** Normaler NTSC */
  • SDTV_MODE_NTSC_J     = 1, /** Japanische Version von NTSC */
  • SDTV_MODE_PAL        = 2, /** Normales PAL */
  • SDTV_MODE_PAL_M      = 3, /** Brasilianische Version von PAL – 525/60 anstatt 625/50 */

sdtv_aspect: Analoges Seitenverhältnis. Standard: 1 (4:3)

  • SDTV_ASPECT_4_3      = 1, /** 4:3 */
  • SDTV_ASPECT_14_9     = 2, /** 14:9 */
  • SDTV_ASPECT_16_9     = 3  /** 16:9 */

hdmi_mode: HDMI Modus. Wird standardmäßig mit dem Endgerät ausgehandelt.

  • HDMI_CEA_VGA             =  1
  • HDMI_CEA_480p60          =  2
  • HDMI_CEA_480p60H         =  3
  • HDMI_CEA_720p60          =  4
  • HDMI_CEA_1080i60         =  5
  • HDMI_CEA_480i60          =  6
  • HDMI_CEA_480i60H         =  7
  • HDMI_CEA_240p60          =  8
  • HDMI_CEA_240p60H         =  9
  • HDMI_CEA_480i60_4x       = 10
  • HDMI_CEA_480i60_4xH      = 11
  • HDMI_CEA_240p60_4x       = 12
  • HDMI_CEA_240p60_4xH      = 13
  • HDMI_CEA_480p60_2x       = 14
  • HDMI_CEA_480p60_2xH      = 15
  • HDMI_CEA_1080p60         = 16
  • HDMI_CEA_576p50          = 17
  • HDMI_CEA_576p50H         = 18
  • HDMI_CEA_720p50          = 19
  • HDMI_CEA_1080i50         = 20
  • HDMI_CEA_576i50          = 21
  • HDMI_CEA_576i50H         = 22
  • HDMI_CEA_288p50          = 23
  • HDMI_CEA_288p50H         = 24
  • HDMI_CEA_576i50_4x       = 25
  • HDMI_CEA_576i50_4xH      = 26
  • HDMI_CEA_288p50_4x       = 27
  • HDMI_CEA_288p50_4xH      = 28
  • HDMI_CEA_576p50_2x       = 29
  • HDMI_CEA_576p50_2xH      = 30
  • HDMI_CEA_1080p50         = 31
  • HDMI_CEA_1080p24         = 32
  • HDMI_CEA_1080p25         = 33
  • HDMI_CEA_1080p30         = 34
  • HDMI_CEA_480p60_4x       = 35
  • HDMI_CEA_480p60_4xH      = 36
  • HDMI_CEA_576p50_4x       = 37
  • HDMI_CEA_576p50_4xH      = 38
  • HDMI_CEA_1080i50_rb      = 39
  • HDMI_CEA_1080i100        = 40
  • HDMI_CEA_720p100         = 41
  • HDMI_CEA_576p100         = 42
  • HDMI_CEA_576p100H        = 43
  • HDMI_CEA_576i100         = 44
  • HDMI_CEA_576i100H        = 45
  • HDMI_CEA_1080i120        = 46
  • HDMI_CEA_720p120         = 47
  • HDMI_CEA_480p120         = 48
  • HDMI_CEA_480p120H        = 49
  • HDMI_CEA_480i120         = 50
  • HDMI_CEA_480i120H        = 51
  • HDMI_CEA_576p200         = 52
  • HDMI_CEA_576p200H        = 53
  • HDMI_CEA_576i200         = 54
  • HDMI_CEA_576i200H        = 55
  • HDMI_CEA_480p240         = 56
  • HDMI_CEA_480p240H        = 57
  • HDMI_CEA_480i240         = 58
  • HDMI_CEA_480i240H        = 59

overscan_left: Anzahl Pixel die links übersprungen werden.
overscan_right: Anzahl Pixel die rechts übersprungen werden.
overscan_top: Anzahl Pixel die oben übersprungen werden.
overscan_bottom: Anzahl Pixel die unten übersprungen werden.
disable_overscan: Sollte aktiviert werden ( =1 ) um den Overscan und damit die nicht nutzbaren Rahmen um das Bild herum auszuschalten. Standard: 0
framebuffer_width: Framebuffer-Breite in Pixel. Standard entspricht dem Gerät.
framebuffer_height: Framebuffer-Höhe in Pixel. Stabdard entspricht dem Gerät.

Sonstiges

test_mode: Ermöglicht Testbild und -sound während des Bootens zur Diagnose bei Fertigungstests. Standard: 0
disable_l2cache: Ermöglicht ARM-Zugriff zum Level-2-Cache der GPU abzuschalten. Benötigt passendend L2-fähigen Kernel. Standard: 0

Zum Level-2-Cache

Die Videocore IV Dual-Core GPU des Broadcom besitzt einen 128 KB großen vierfach assoziativen Cache. Normalerweise greift der ARM hierauf nicht zu. Die Aufgabe des Caches ist also die GPU zu beschleunigen, entsprechend nahe steht er ihr und entsprechend ist er in der Architecktur weiter als gewöhnlich vom ARM-Kern entfernt, so dass dieser nur wenig von dem Cache profitieren kann. Im Betrieb bei Standardfrequenzen kann der ARM ein Datum im L2-Cache doppelt so schnell lesen wie ihm SDRAM. Bei einem Cache-Miss ist der Zugriff auf das Datum aber deutlich langsamer als ohne L2-Cache. Arbeitet die GPU parallel intensiv in ihrem Cache, reduziert dies die L2-Cache-Hit-Rate des ARM nochmals deutlich. Aus diesen Gründen ist der Zugriff auf den L2 für den ARM standardmäßig deaktiviert. Wer aber mehr CPU-Power möchte und keine / kaum Grafik-Power benötigt (Headless-Betrieb z.B. bei Servern, Robotern), für den kann es Sinn machen den L2 für den ARM aktiv zu schalten (bei gleichzeitiger Benutzung eines entsprechenden Kernels).

Tags: 

1 Kommentar

Hallo,

Hallo,

 

die Grafikbefehl sind doch falsch, oder? Oder gibt es verschieden Möglichkeiten?

Bei mir hießen die Befehle z.B.

SDTV_MODE        = 2; SDTV_ASPECT      = 1

Außerdem fehlt der Befehl OVERSCAN_SCALE noch um den Overscan auf dem X-Desktop zu bringen.

...means that all dispmanx layers are scaled, including EGL and video.

Bernhard