Οι περισσότεροι σύγχρονοι υπολογιστές και laptops έχουν ενσωματωμένη κάποια GPU της Intel. Πολλοί προσθέτουμε και μια NVIDIA κάρτα γραφικών για απαιτητικές εφαρμογές και φυσικά gaming! Σε αυτό τον οδηγό, θα δούμε πως να χρησιμοποιούμε στο Linux και τις δύο κάρτες γραφικών (nVIDIA και Intel) ταυτόχρονα, ώστε π.χ. να μπορούμε να συνδέσουμε μία οθόνη στην Intel και μία ή περισσότερες οθόνες στην nVIDIA και να έχουμε μια ενιαία επιφάνεια εργασίας.
Σημείωση: O παρακάτω οδηγός έχει τεσταριστεί σε Ubuntu 16.04 αλλά λογικά δουλεύει και στις υπόλοιπες διανομές Linux.
Χρειαζόμαστε:
α) Υπολογιστή με onboard Intel GPU, στο BIOS του οποίου υπάρχει επιλογή Multi-Monitor.
β) Κάρτα γραφικών NVIDIA (η δοκιμή έγινε με μια GTX1060 3GB)
γ) Εγκατεστημένη διανομή Linux με X.org έκδοση 1.13+ και RandR 1.4+
δ) Ενεργοποιημένο τον nvidia driver
Με άλλα λόγια και για να μην υπάρχει σύγχυση, υποθέτουμε ότι έχετε κάνει ΗΔΗ τα εξής:
Πρώτον, έχετε εγκαταστήσει μια διανομή Linux στον υπολογιστή στον οποίο έχετε συνδέσει και την κάρτα γραφικών της nVidia.
Δεύτερον, έχετε εγκαταστήσει τον τελευταίο nvidia driver (δείτε το tutorial για την εγκατάσταση NVIDIA drivers στο Ubuntu) και έχετε κάνει reboot, οπότε το σύστημα λειτουργεί κανονικά με την nVIDIA.
Τρίτον, έχετε στον υπολογιστή μια οθόνη συνδεδεμένη με την NVIDIA κάρτα γραφικών αλλά θέλετε ενεργοποιήσετε και την ενσωματωμένη Intel GPU ώστε να συνδέσετε σε αυτήν ένα δεύτερο monitor. Σημείωση πριν προχωρήσετε: Τσεκάρετε ότι στο BIOS του υπολογιστή είναι διαθέσιμη μια επιλογή Multi-Monitor (disabled λογικά), γιατί θα χρειαστεί παρακάτω.
Τέταρτον, έχετε πρόσφατη έκδοση του X.org με xrandr 1.4+. Αυτό χρειάζεται γιατί από την έκδοση εκείνη και μετά, προστέθηκε στο RandR η δυνατότητα να δουλεύει ταυτόχρονα με δύο διαφορετικούς drivers ώστε η μία κάρτα να δείχνει πράγματα που κάνει render η άλλη (Offloading). Για να διαπιστώσετε τι έκδοση έχετε, δίνετε την εντολή:
xrandr --version
και θα πρέπει να σας απαντήσει κάτι σαν κι αυτό:
xrandr program version 1.5.0 Server reports RandR version 1.5
Πως βάζω το δεύτερο monitor να παίζει μέσω της Intel ενώ έχω ήδη NVIDIA
Αν έχετε κάνει παραπάνω, και θέλετε να ρυθμίσετε μια δεύτερη οθόνη (ή και περισσότερες οθόνες) να λειτουργεί μέσω της onboard Intel κάρτας, τότε η διαδικασία ειναι η εξής.
Κατ'αρχάς, πρέπει να βρείτε ποιό ειναι το BusID της κάρτας NVIDIA. Αυτό γίνεται με την εντολή:
nvidia-xconfig --query-gpu-info
Θα σας απαντήσει κάτι σαν κι αυτό:
Number of GPUs: 1 GPU #0: Name : GeForce GTX 1060 3GB UUID : GPU-b6b6c491-78e7-cb69-41ec-926c2c2b06b8 PCI BusID : PCI:1:0:0 Number of Display Devices: 1 Display Device 0 (TV-3): EDID Name : LG Electronics LG FULL HD Minimum HorizSync : 30.000 kHz Maximum HorizSync : 83.000 kHz Minimum VertRefresh : 56 Hz Maximum VertRefresh : 75 Hz Maximum PixelClock : 150.000 MHz Maximum Width : 1920 pixels Maximum Height : 1080 pixels Preferred Width : 1920 pixels Preferred Height : 1080 pixels Preferred VertRefresh : 60 Hz Physical Width : 480 mm Physical Height : 270 mm
Όπως βλέπετε το δικό μου BusID είναι το PCI:1:0:0. Κρατάτε αυτό που γράφει στη δική σας περίπτωση.
Έπειτα, με έναν επεξεργαστή κειμένου, με δικαιώματα root, ανοίγετε το αρχείο /etc/X11/xorg.conf:
Π.χ. στο Ubuntu:
sudo nano /etc/X11/xorg.conf
και προσθέτετε εκεί τα παρακάτω - βάζοντας το σωστό BusID για την περίπτωσή σας:
Section "ServerLayout" Identifier "layout" Screen 0 "nvidia" Inactive "intel" EndSection Section "Device" Identifier "nvidia" Driver "nvidia" BusID "ΒΑΛΕ ΕΔΩ ΤΟ BusID" EndSection Section "Screen" Identifier "nvidia" Device "nvidia" # Uncomment this line if your computer has no display devices connected to # the NVIDIA GPU. Leave it commented if you have display devices # connected to the NVIDIA GPU that you would like to use. #Option "UseDisplayDevice" "none" EndSection Section "Device" Identifier "intel" Driver "modesetting" EndSection Section "Screen" Identifier "intel" Device "intel" EndSection
Αποθηκεύστε το αρχείο. Στο nano Ctrl+X και Y. Στην ουσία, ρυθμίσαμε τον X.org να χρησιμοποιεί τον nvidia driver για το πρώτο monitor και τον "modesetting" driver για την ενσωματωμένη κάρτα γραφικών Intel.
Με αυτόν τον τον τρόπο, θα χρησιμοποιούμε τον nvidia driver ως οutput source provider. Η μόνη έξτρα ρύθμιση που απαιτείται τώρα είναι, σε κάθε εκκίνηση του Linux, να τρέχουμε το xrandr για να ενεργοποιεί και το δεύτερο Monitor (αυτό που έχουμε συνδέσει στην Onboard κάρτα γραφικών)
Για να γίνεται αυτό, αρκεί να δημιουργήσετε το αρχείο .xprofile μέσα στο προσωπικό σας φάκελο ως απλός χρήστης:
nano $HOME/.xprofile
Εκεί βάζετε τα εξής:
#!/bin/sh xrandr --setprovideroutputsource modesetting NVIDIA-0 xrandr --auto
Τώρα κάντε reboot και μπείτε στο BIOS. Εκεί βρείτε την επιλογή IGPU Multi-monitor και κάντε την Enabled.
Σώστε τις αλλαγές στο BIOS και κάντε reboot. Αν όλα πήγαν καλά, θα πρέπει να δείτε και τις δύο οθόνες να δουλεύουν και να δείχνουν μια ενιαία επιφάνεια εργασίας (όχι Mirror).
Μάλιστα, θα πρέπει να μπορείτε να "δείτε" και τις δύο οθόνες και να τους αλλάξετε "θέση" από τις Ρυθμίσεις -> Οθόνες του Ubuntu:
Δείτε περισσότερα για το RandR 1.4+ και την Nvidia εδώ.
- Συνδεθείτε ή εγγραφείτε για να σχολιάσετε