8.1. MTRR einrichten
Zurück | Kapitel 8. Videoausgabegeräte | Weiter

## 8.1. MTRR einrichten

Du solltest UNBEDINGT sicherstellen, dass die MTRR-Register richtig belegt sind, denn sie können einen großen Geschwindigkeitsschub bringen.

Gib den Befehl cat /proc/mtrr ein:

    --($:~)-- cat /proc/mtrr
    reg00: base=0xe4000000 (3648MB), size=  16MB: write-combining, count=9
    reg01: base=0xd8000000 (3456MB), size= 128MB: write-combining, count=1

Diese Anzeige ist richtig. Sie zeigt meine Matrox G400 mit 16MB Speicher. Ich habe die Einstellung von XFree 4.x.x, der die MTRR-Register automatisch einstellt.

Wenn nichts funktioniert, musst du sie manuell setzen. Als erstes musst du die Basisadresse finden. Dazu gibt es drei Möglichkeiten:

1. durch die X11 Start-Meldungen, zum Beispiel:

       (--) SVGA: PCI: Matrox MGA G400 AGP rev 4, Memory @ 0xd8000000, 0xd4000000
       (--) SVGA: Linear framebuffer at 0xD8000000

2. von `/proc/pci` (verwende den Befehl lspci -v):

       01:00.0 VGA compatible controller: Matrox Graphics, Inc.: Unknown device 0525
       Memory at d8000000 (32-bit, prefetchable)

3. von den mga_vid Kerneltreiber-Meldungen (verwende dmesg):

       mga_mem_base = d8000000

So, nun gilt es, die Speichergröße zu finden. Dies ist sehr einfach, konvertiere einfach die Video-RAM-Größe nach hexadezimal, oder verwende diese Tabelle:

1 MB | 0x100000
2 MB | 0x200000
4 MB | 0x400000
8 MB | 0x800000
16 MB | 0x1000000
32 MB | 0x2000000

Du kennst die Basisadresse und die Speichergröße? Lass uns die MTRR Register einstellen! Für die Matrox-Karte von oben (`base=0xd8000000`) mit 32MB RAM (`size=0x2000000`) führst du einfach folgendes aus:

    echo "base=0xd8000000 size=0x2000000 type=write-combining" > /proc/mtrr

Nicht alle CPUs unterstützen MTRRs. Zum Beispiel ältere K6-2s [bei ca. 266MHz, stepping 0] unterstützen kein MTRR, aber Stepping-12-CPUs tun es (cat /proc/cpuinfo gibt Aufschluss).

Zurück | Nach oben | Weiter
Kapitel 8. Videoausgabegeräte | Zum Anfang | 8.2. Xv