• Dual-monitors in Linux

    Το άρθρο που ακολουθεί, εξηγεί πως να εγκαταστήσετε και να χρησιμοποιήσετε μια εξωτερική οθόνη σε laptop με κάρτα γραφικών ATI, που τρέχει Debian Linux.
    Ο οδηγός είναι γενικός και θεωρητικά τουλάχιστον θα μπορούσε να χρησιμοποιηθεί για όλες τις standard linux διανομές.

    Προαπαιτούμενα
    1. xserver-xorg (έκδοση >= 7.2)
    2. xrandr (έκδοση >= 1.2)
    3. radeon opensource driver (kernel module + xorg module)

    Προαιρετικά (για direct rendering και glx support)
    1. libgl-mesa-dri
    2. libgl-mesa-glx

    1. Επεξεργασία του /etc/X11/xorg.conf
    Ανοίγουμε το αρχείο /etc/X11/xorg.conf με τον αγαπημένο μας editor και αλλάζουμε με τη σειρά τα παρακάτω

    Στο Section "Monitor" βάζουμε την κύρια οθόνη (για παράδειγμα την οθόνη του laptop)

    Κώδικας:
    Section "Monitor"
    Identifier "Laptop Monitor"
    Option "DPMS" 
    EndSection
    Προσοχή Δεν χρειάζεται να ορίσουμε δέυτερο monitor για την εξωτερική οθόνη. Το xrandr θα κάνει την δουλειά του.

    Επόμενο βήμα είναι να ορίσουμε την κάρτα γραφικών. Εδώ χρησιμοποιούμε τον opensource driver που παρέχει o xserver και όχι τον binary (fglrx) της ΑΤΙ μιας και ο δεύτερος έχει αρκετά προβλήματα υποστήριξης (τουλάχιστον με παλιές κάρτες γραφικών).
    Πηγαίνουμε στο Section "Device" και γράφουμε τα παρακάτω

    Κώδικας:
    Section "Device"
        Identifier  "ATI Mobility RADEON X700"
        Driver      "radeon"                       #απαραίτητο..
        BusID       "PCI:1:0:0"
            Option      "ColorTiling" "on"
            Option      "AccelMethod" "XAA"
            Option      "EnablePageFlip"  "on"
            Option      "XAANoOffScreenPixMaps"
            Option      "RenderAccel"   "true"
    EndSection
    Στο section αυτό έχω ορίσει και ορισμένα optimizations για την καλύτερη απόδοση του radeon driver. Επίσης στην επιλογή BusID πρέπει να εισάγετε την τιμή που αντιστοιχεί στο bus που βρίσκεται η κάρτα γραφικών. Αυτή προκύπτει από την εντολή
    Κώδικας:
    lspci -b
    Στη συνέχεια πηγαίνουμε στο Section "Screen" και εισάγουμε τα παρακάτω
    Κώδικας:
    Section "Screen"
        Identifier "Laptop Screen"
        Device     "ATI Mobility RADEON X700"
        Monitor    "Laptop Monitor"
        DefaultDepth     24
        SubSection "Display"
            Depth     24
            Modes   "1680x1050" "1280x800" "1024x768" "800x600"
            Virtual 1680 1050
        EndSubSection
    EndSection
    Στην επιλογή Modes μπορείτε να εισάγετε τις δικές σας προτιμώμενες αναλύσεις με φθίνουσα σειρά.
    Επίσης η τιμή του Virtual πρέπει να είναι ίση με την μέγιστη ανάλυση.
    Προσοχή: Η τιμή του Virtual είναι σωστά γραμμένη παραπάνω... Μην χρησιμοποιήσετε κάτι του τύπου "1680x1050". Δεν θα δουλέψει!

    Τέλος για να έχουμε και direct rendering support πρέπει να φορτώνουμε τα ακόλουθα modules: glx, dri.
    Πηγαίνουμε στο Section "Modules" (αν δεν υπαρχει, δημιουργείστε ένα) και γράφουμε τα παρακάτω:
    Κώδικας:
    Section "Module"
        Load  "dbe"
        Load  "dri"
        Load  "glx"
    EndSection
    Επίσης πρέπει να ορίσουμε και το Section "DRI".

    Κώδικας:
    Section "DRI"
        Mode         0666
    EndSection
    Τέλος το Section "ServerLayout" πρέπει να περιέχει υποχρεωτικά την παρακάτω γραμμή:
    Κώδικας:
    Screen          "Laptop Screen"
    η οποία αφορά την οθόνη που έχουμε καθορίσει.

    Το πρώτο βήμα ολοκληρώθηκε. Αυτό που μένει τώρα είναι να "σηκώσουμε" τον Xserver και να παίξουμε με το xrandr.

    Χρησιμοποιώντας το xrandr
    Για αρχή καλό είναι να βρίσκεστε στην κύρια οθόνη σας (πχ laptop).
    Ανοίξτε ένα τερματικό και πληκτρολογήστε την εντολή

    Κώδικας:
    xrandr -q
    Η εντολή αυτή θα ψάξει να βρεί όλες τις διαθέσιμες θύρες που έχει η κάρτα γραφικών σας και όλα τα συνδεδεμένα monitors. Θα εμφανιστεί ένα αποτέλεσμα για το καθενα από αυτά.

    Στην περίπτωση μου (κυρια οθόνη laptop και μια widescreen συνδεδεμένη μέσω της θύρας VGA) το αποτέλεσμα είναι το εξής

    Κώδικας:
    Screen 0: minimum 320 x 200, current 1680 x 1050, maximum 1680 x 1050
    VGA-0 connected 1680x1050+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
       1680x1050      60.0*
       1280x800       59.8     60.0
       1280x768       60.0
       1024x768       60.0     59.9
       800x600        60.3     59.9
       640x480        59.9
    LVDS connected (normal left inverted right x axis y axis)
       1280x800       59.9 +   60.0
       1280x768       60.0
       1024x768       60.0
       800x600        60.3
       640x480        59.9
    DVI-0 disconnected (normal left inverted right x axis y axis)
    Το LVDS είναι η οθόνη του laptop ενώ το VGA-0 είναι η εξωτερική οθόνη η οποία συνδέθηκε στη θύρα VGA.
    Επίσης εμφανίζεται και το DVI-0 με την σημείωση "disconnected", το οποίο σημαίνει ότι δεν υπάρχει συνδεδεμένη οθόνη στη θύρα DVI.
    Επιλέξτε σε ποια διαθέσιμη θύρα θέλετε να έχετε το εξωτερικό monitor.
    Σημείωση: Ελέγξτε ότι το συνδεδεμένο monitor έχει τις σωστές επιθυμητές αναλύσεις. Για παράδειγμα στο παραπάνω φαίνεται ότι η εξωτερική οθόνη έχει μέγιστη ανάλυση 1680x1050 που είναι και η επιθυμητή.

    Καιρός λοιπόν να γυρίσουμε στην εξωτερική οθόνη μας οθόνη.
    Πληκτρολογήστε στο τερματικό σας την παρακάτω εντολή

    Κώδικας:
    xrandr --output VGA-0 --mode 1680x1050 --output LVDS --off
    Η εντολή αυτή ενεργοποιεί το εξωτερικό monitor (VGA-0) με ανάλυση 1680x1050 και απενεργοποιεί (--off) την οθόνη του laptop (LVDS).
    Αν έχετε συνδέσει την οθόνη σε άλλη θύρα (πχ DVI-0) τότε αντί για VGA-0 εισάγετε την αντίστοιχη. Επίσης στο --mode βάλτε την ανάλυση που θέλετε.

    Μόλις εκτελέσουμε την εντολή, πρέπει να γυρίσει το output στην εξωτερική σας οθόνη με την επιλεγμένη ανάλυση!!


    3. Ένα κόλπο και επίλογος
    Προκειμένου να μην εκτελούμε το Βήμα 2 κάθε φορά που σηκώνουμε τον xserver, μπορούμε να κάνουμε το εξής απλό κόλπο.

    Στο αρχείο .xinitrc που βρίσκεται στο home directory μας, μπορούμε να γράψουμε την εντολή
    Κώδικας:
    xrandr --output VGA-0 --mode 1680x1050 --output LVDS --off &
    Προσοχή: Η εντολή πρέπει να είναι η πρώτη που θα εκτελεστεί.

    Εγώ προσωπικά μιας και χρησιμοποιώ KDE 3.5 αντί για το .xinitrc έχω φτιάξει ένα μικρό αρχείο με όνομα xrandr.desktop το οποίο έχω αποθηκεύσει στον κατάλογο
    ~/.kde/Autostart/

    Το αρχείο αυτό "εκτελείται" αυτόματα από το KDE κάθε φορά που φορτώνεται.
    Τα περιεχόμενα του αρχείου είναι τα εξής:

    Κώδικας:
    [Desktop Entry]
    Encoding=UTF-8
    Name=xrandr
    Exec=xrandr --output LVDS --off --output VGA-0 --mode 1680x1050
    Type=Application
    hidden=true
    X-KDE-autostart-after=kdesktop
    X-KDE-StartupNotify=false
    X-KDE-UniqueApplet=true
    OnlyShowIn=KDE;
    Ελπίζω πως ο οδηγός αυτός θα βοηθήσει. Κάθε σχόλιο και παρατήρηση είναι ευπρόσδεκτα!
    Να σημειώσω εδώ ότι ο οδηγός αυτός οφείλεται σε μεγάλο βαθμό στον αντίστοιχο
    που βρίσκεται εδώ. Είναι γραμμένος από τον ktogias τον οποίο ευχαριστώ πολύ για την πολύτιμη βοήθειά του!
    Αυτό το άρθρο δημοσιεύθηκε πρώτα στο forum με θέμα: Dual-monitors in Linux Δημοσιεύθηκε από csawfish Δείτε την αρχική δημοσίευση