Wir wandern weiter auf unserer Reise des Setups. Hoffentlich liess sich Xorg (zur Zeit Version 7, Split Ebuilds) emergen, was aufgrund zahlreicher Umstellungen nicht immer reibungslos möglich gewesen sein dürfte. Die Konfiguration von Xorg spielt sich in der Datei /etc/X11/xorg.conf ab.

Dies ist meine Version, wobei es zu beachten gilt, dass ich die ATI binary Treiber und das Synaptics-Modul verwende:

Section "Module"
        Load  "dbe"     # Double buffer extension
        SubSection "extmod"
                Option      "omit xfree86-dga"   # don't initialise the DGA extension
        EndSubSection
        Load  "type1"
        Load  "freetype"
        Load  "glx"
        Load  "dri"
        Load  "drm"
        Load  "record"
        Load  "xtrap"
EndSection

Section "ServerLayout"
        Identifier     "Simple Layout"
        Screen      0  "Screen0" 0 0
        InputDevice    "Mouse1" "CorePointer"
        InputDevice    "Mouse2" "SendCoreEvents"
        InputDevice    "Keyboard1" "CoreKeyboard"
EndSection

Section "Files"
        FontPath     "/usr/share/fonts/75dpi:unscaled"
        FontPath     "/usr/share/fonts/100dpi:unscaled"
        FontPath     "/usr/share/fonts/TTF"
        FontPath     "/usr/share/fonts/Type1"
        FontPath     "/usr/share/fonts/cyrillic"
        FontPath     "/usr/share/fonts/misc"
        FontPath     "/usr/share/fonts/ukr"
        FontPath     "/usr/local/share/fonts"
EndSection

Section "InputDevice"
        Identifier  "Keyboard1"
        Driver      "keyboard"
        Option      "XkbModel" "microsoft"
        Option      "XkbLayout" "de"
        Option      "XkbVariant" "nodeadkeys"

EndSection

Section "InputDevice"
        Identifier  "Mouse1"
        Driver      "synaptics"
        Option      "AccelFactor" "0.0010"
        Option      "Emulates3Buttons" "on"
        Option      "Device" "/dev/psaux"
        Option      "ZAxisMapping" "4 5"
        Option      "Edges" "1900 5400 1800 3900"
        Option      "Finger" "25 30"
        Option      "FingerHigh" "30"
        Option      "FingerLow" "25"
        Option      "InputFashion" "Mouse"
        Option      "MaxSpeed" "0.10"
        Option      "MaxTapMove" "220"
        Option      "MaxTapTime" "180"
        Option      "MinSpeed" "0.02"
        Option      "VertScrollDelta" "100"
        Option      "SHMConfig" "on"
        Option      "UpDownScrolling" "on"
        Option      "Protocol" "IMPS/2"
        Option      "CorePointer" ""
        Option      "TapButton1" "1"
        Option      "SHMConfig" "on"
EndSection

Section "InputDevice"
        Identifier  "Mouse2"
        Driver      "mouse"
        Option      "InputFashion" "Mouse"
        Option      "Name" "Logitech MX500"
        Option      "Device" "/dev/input/mice"
        Option      "Protocol" "ExplorerPS/2"
        Option      "Buttons" "7"
        Option      "ZAxisMapping" "4 5"
        Option      "Resolution" "1600"
        Option      "ButtonMapping" "1 2 3 6 4 5"
EndSection

Section "Monitor"
        Identifier   "tft"
        VendorName   "AUO"
        ModelName    "f03"
        HorizSync    27.0 - 29.0
        VertRefresh  40.0 - 60.0
        ModeLine     "1400x1050" 122.0 1400 1488 1640 1880 1050 1052 1064 1082 +hsync +vsync
        Option      "DPMS" "true"
EndSection

# === ATI device section ===
Section "Device"
    Identifier                          "card0"
    Driver                              "fglrx"
# === disable/enable XAA/DRI ===
    Option "no_accel"                 "no"
    Option "no_dri"                     "no"
# === misc DRI settings ===
#    Option "mtrr"                       "on" # disable DRI mtrr mapper, driver has its own code for mtrr
# ### FireGL DDX driver module specific settings ###
# === Screen Management ===
    Option "DesktopSetup"               "Single"
    Option "ScreenOverlap"              "0"
    Option "GammaCorrectionI"           "0x06419064"
    Option "GammaCorrectionII"          "0x00b02c0b"
# === OpenGL specific profiles/settings ===
    Option "Capabilities"               "0x00000000"
    Option "CapabilitiesEx"             "0x00000000"
# === Video Overlay for the Xv extension ===
    Option "VideoOverlay"               "on"
# === OpenGL Overlay ===
# Note: When OpenGL Overlay is enabled, Video Overlay
#       will be disabled automatically
    Option "OpenGLOverlay"              "on"
# === Center Mode (Laptops only) ===
    Option "CenterMode"                 "off"
# === Pseudo Color Visuals (8-bit visuals) ===
    Option "PseudoColorVisuals"         "off"
# === QBS Management ===
    Option "Stereo"                     "off"
    Option "StereoSyncEnable"           "1"
# === FSAA Management ===
    Option "FSAAEnable"                 "no"
    Option "FSAAScale"                  "1"
    Option "FSAADisableGamma"           "no"
    Option "FSAACustomizeMSPos"         "yes"
    Option "FSAAMSPosX0"                "0.250000"
    Option "FSAAMSPosY0"                "0.416666"
    Option "FSAAMSPosX1"                "0.083333"
    Option "FSAAMSPosY1"                "0.083333"
    Option "FSAAMSPosX2"                "0.416666"
    Option "FSAAMSPosY2"                "0.750000"
    Option "FSAAMSPosX3"                "0.750000"
    Option "FSAAMSPosY3"                "0.916666"
    Option "FSAAMSPosX4"                "0.583333"
    Option "FSAAMSPosY4"                "0.250000"
    Option "FSAAMSPosX5"                "0.916666"
    Option "FSAAMSPosY5"                "0.583333"
# === Misc Options ===
    Option "UseFastTLS"                 "2"
    Option "BlockSignalsOnLock"         "on"
    Option "UseInternalAGPGART"         "yes"
    Option "UseInternalAGPGART"         "no"
    Option "ForceGenericCPU"            "no"
    BusID "PCI:1:0:0"    # vendor=1002, device=4c66
    Option "backingstore" "true"
    Option "RenderAccel" "true"
    Screen 0
EndSection

Section "Screen"
        Identifier "Screen0"
        Device     "card0"
        Monitor    "tft"
        DefaultDepth     24
        SubSection "Display"
                Viewport   0 0
                Depth     24
                Modes    "1400x1050"
        EndSubSection
EndSection

Section "DRI"
       Mode         0666
EndSection

Section "Extensions"
#    Option "Composite" "Enable"
EndSection

Zu beachten ist weiters auch die Einstellung des Synaptics Touchpads, welches ohne die Definition des Tippens diese Funktion auch nicht ausführen wird (Vergleiche mit diesem Posting)

Nach ein bisschen herumfummeln an der xorg.conf sollte das System auch lauffähig sein und wir können uns dem nächsten Thema widmen, dem Bugfixing diverser Eigenheiten des Notebooks, wie zum Beispiel dem DSDT Table welcher für ACPI Handling zuständig ist. Benötigte Software ist dabei der Intel ASL Compiler welcher sogar im Portage vorhanden ist. ein emerge iasl lässt uns dieses Paket installieren.

Wir beginnen mit der Extraktion des vorhandenen Tables, welcher im BIOS mitgeliefert wird, gefolgt von seiner Zerlegung und einem Recompile:

cat /proc/acpi/dsdt > dsdt.dat iasl -d dsdt.dat iasl -tc dsdt.dsl

Durch diese Vorgehensweise ist es möglich, den aktuellen DSDT Table zu debuggen, da jeder Fehler ausgegeben wird, wie das folgende Beispiel zeigt:

dsdt.dsl 2626: Field (ECR, DWordAcc, Lock, Preserve) Error 1048 - ^ Host Operation Region requires ByteAcc access

In der entsprechenden Zeile befindet sich offensichtlich ein Fehler, welchen es zu bereinigen gibt. Wer sich diese Arbeit ersparen möchte sollte auf http://acpi.sourceforge.net/ vorbeischauen, ob es nicht einen schon reparierten DSDT Table für sein System gibt. Achtung! Dabei ist unbedingt die BIOS Version zu beachten!

Ein erfolgreicher Compile sieht wie folgt aus und zählt zu den anzustrebenden Zielen:

Intel ACPI Component Architecture
ASL Optimizing Compiler / AML Disassembler version 20030228 [Feb 28 2003]
Copyright (C) 2000 - 2003 Intel Corporation
Supports ACPI Specification Revision 2.0b
ASL Input:  dsdt.dsl - 3760 lines, 123177 bytes, 1863 keywords
AML Output: DSDT.aml - 14606 bytes 499 named objects 1364 executable opcodes
Compilation complete. 0 Errors, 0 Warnings, 0 Remarks, 392 Optimizations

Wir bekommen eine Datei dsdt.hex welche sich nun als dsdt_table.h im Kernel einbauen lässt, wenn man einige Dinge beachtet:

Device Drivers --->
  Generic Driver Options --->
    [ ] Select only drivers that don't need compile-time external firmware
    [ ] Prevent firmware from being built
Power management options (ACPI, APM) --->
  ACPI (Advanced Configuration and Power Interface) Support --->
    [*] Include Custom DSDT
    (dsdt_table.h) Custom DSDT Table file to include

Wir compilen den Kernel wie gewohnt und ändern bei Bedarf die Einträge des Bootloaders. Die einmal erstellte dsdt_table.h sollte nun bei jedem zukünftigen Kernel eingebaut werden um Probleme zu vermeiden.

Vorheriger Beitrag Nächster Beitrag