drpaneas Δημοσ. 28 Αυγούστου 2015 Δημοσ. 28 Αυγούστου 2015 (επεξεργασμένο) Λίγο καιρό είχα μία πολύ δύσκολη μέρα με τον X Server και νομίζω αξίζει να την μοιραστώ μαζί σας καθώς έχει αρκετό εκπαιδευτικό χαρακτήρα για εσάς, και πολλούς καφέδες για μένα Όλα άρχισαν όταν προσπαθούσα να αναπαράγω κάποια bugs που σχετίζονται με το Xinerama... τα bugs αυτά είναι πλέον διορθωμένα. Λόγω δουλειάς έχω την τύχη να συνεργαζόμαι με τον director του Xorg αλλά και άλλους Xorg devs. Το θέμα τις επικοινωνίας με αυτούς τους ανθρώπους είναι το πιο δύσκολο κομμάτι. Μερικοί συνεργάζονται και σου δίνουν εύκολα πληροφορίες, και μερικοί άλλοι σου δίνουν 3 λέξεις, από τις οποίες δεν βγάζεις άκρη. Οπότε πρέπει να είσαι πολύ προσεκτικός στο 'τι' θα τους ρωτήσεις και 'πως' θα τους ρωτήσεις. Για καλή μου τύχη, τα παιδιά που εργάζονται πανω στο Xorg είναι αρκετά cool τύποι και συνενοήσιμοι. Το πρόβλημα είναι όταν πρεπει να μιλήσεις με kernel developer. Εκεί ... τα πράγματα είναι πολύ δύσκολα... τέλος παντων, ας μην πλατιάζω... Δυστυχώς δεν μπορώ να σας πω με τι είχε να κάνει το bug, δεν σας ενδιαφέρει κι όλας. Αυτό που αρκεί να καταλάβετε είτε ότι το μόνο που ήθελα ήταν να έχω ένα setup με 3 οθόνες. Δηλαδή κάτι τέτοιο: ---------- ---------- ---------- | | | | | | | Monitor0 | | Monitor1 | | Monitor2 | | | | | | | ---------- ---------- ---------- | | | | | | | | | | | | / \ / \ / \ ===== ===== ===== DVI HDMI VGA | | | ------ | --------- \ | / \ | / =========== | NVIDIA | | GeForce | =========== Οχι αναγκαία nvidia κάρτα, αλλά οποιαδήποτε. Εκείνη την στιγμή, είχα εύκαιρη μία nVIDIA κάρτα, η οποία τύγχαινε να έχει 3 outputs. "Ω, μια χαρα", σκέφτηκα. Θα τελειώσουμε γρήγορα σήμερα. 1. Δοκιμάζοντας την τύχη μου με dynamic detection ------------------------------------------------------------------------ Πρώτα απο όλα, σιγουρευόμααι ότι δεν υπάρχει "/etc/X11/xorg.conf" και αν υπάρχει, το διαγράφω. Με αυτόν τον τρόπο ο X θα προσπαθήσει να ρυθμήσει τις displays αυτόματα. Συνδέω λοιπόν και τρεις οθόνες, βεβαιώνομαι ότι δεν υπάρχει static configuration (xorg.conf) και κάνω reboot. Μόλις λοιπόν μπούταρα στο Gnome session, βλέπω αυτό: ---------- ---------- ---------- | | | | | | | NoSignal | | Mirror | | Mirror | | | | | | | ---------- ---------- ---------- | | | | | | | | | | | | / \ / \ / \ ===== ===== ===== DEAD | | | | ------------ Mirrored by default Προφανώς αυτό δεν είναι το επιθυμητό σενάριο που θέλω. Οπότε φαντάζομαι ότι ο X δεν είναι τόσο έξυπνος after all, και θέλει να του πω excplicetely πως να οργανώσει ένα triple-head setup. Να πω σε αυτό το σημείο, ότι χρησιμοποιώ τους open source nvidia drivers, nouveau. Πάμε λοιπόν να δούμε πως θα φτιάξουμε αυτό το configuration... 2. Βρίσκοντας τα output names -------------------------------------------- Καθώς είμαι συνδεμένος με στο gnome session, ανοίγω ένα terminal και βλέπω τα output names χρησιμοποιώντας την εντολή "xrandr -q" : :~> xrandr -q Screen 0: minimum 320 x 200, current 1152 x 864, maximum 8192 x 8192 DVI-I-1 connected (normal left inverted right x axis y axis) 1680x1050 59.88 + 1280x1024 75.02 60.02 1152x864 75.00 1024x768 75.08 60.00 800x600 75.00 60.32 640x480 75.00 60.00 720x400 70.08 HDMI-1 connected 1152x864+0+0 (normal left inverted right x axis y axis) 473mm x 296mm 1680x1050 59.95 + 1280x1024 75.02 60.02 1152x864 75.00* 1024x768 75.08 60.00 800x600 75.00 60.32 640x480 75.00 60.00 720x400 70.08 VGA-1 connected 1152x864+0+0 (normal left inverted right x axis y axis) 527mm x 297mm 1920x1080 60.00 + 1600x900 59.98 1280x1024 75.02 60.02 1152x864 75.00* 1024x768 75.08 60.00 800x600 75.00 60.32 640x480 75.00 60.00 720x400 70.08 Οπότε, ετσι μπροώ να βρω ποια οθόνη, αναλογή σε ποιο output της κάρτα γραφικών μου. Οπως καταλαβαίνετε προφανώς η κάρτα γραφικών μου έχει τρεις εξόδους: DVI, VGA και HDMI, τώρα όμως ξέρω ακριβώς τα outputnames και σε ποιο display είναι συνδεμένα: Monitor0 --> DVI-I-1 Monitor1 --> HDMI-1 Monitor2 --> VGA-1 3. Δημιουργώντας ένα πολύ απλό xorg.conf -------------------------------------------------------------- Σε πρώτη φάση λέω τον X Server να δημιουργήσει μόνος τους ένα πολύ basic 'xorg.conf'. Για να το κάνουμε αυτό κλείνουμε το GUI, πηγαίνοντας απλά σε runlevel 3. :~> telinit 3 Στην συνέχεια, πατάμε: CTRL+ALT+F1 για να πάμε στο πρώτο tty και κάνουμε login σαν root. Tώρα λοιπόν ρωτάω τον X Server να σερβίρει ένα xorg.conf configuration file: :~> X -configure αυτό θα κάνει generate το αρχείο '/root/xorg.conf.new' με καποιο standard generic configuration. Οποίος στην περίπτωση μου ήταν αυτός: Section "ServerLayout" Identifier "X.org Configured" Screen 0 "Screen0" 0 0 InputDevice "Mouse0" "CorePointer" InputDevice "Keyboard0" "CoreKeyboard" EndSection Section "Files" ModulePath "/usr/lib64/xorg/modules" FontPath "/usr/share/fonts/misc:unscaled" FontPath "/usr/share/fonts/Type1/" FontPath "/usr/share/fonts/100dpi:unscaled" FontPath "/usr/share/fonts/75dpi:unscaled" FontPath "/usr/share/fonts/ghostscript/" FontPath "/usr/share/fonts/cyrillic:unscaled" FontPath "/usr/share/fonts/misc/sgi:unscaled" FontPath "/usr/share/fonts/truetype/" FontPath "built-ins" EndSection Section "Module" Load "vnc" Load "glx" EndSection Section "InputDevice" Identifier "Keyboard0" Driver "kbd" EndSection Section "InputDevice" Identifier "Mouse0" Driver "mouse" Option "Protocol" "auto" Option "Device" "/dev/input/mice" Option "ZAxisMapping" "4 5 6 7" EndSection Section "Monitor" Identifier "Monitor0" VendorName "Monitor Vendor" ModelName "Monitor Model" EndSection Section "Device" ### Available Driver options are:- ### Values: <i>: integer, <f>: float, <bool>: "True"/"False", ### <string>: "String", <freq>: "<f> Hz/kHz/MHz", ### <percent>: "<f>%" ### [arg]: arg optional #Option "SWcursor" # [<bool>] #Option "HWcursor" # [<bool>] #Option "NoAccel" # [<bool>] #Option "ShadowFB" # [<bool>] #Option "VideoKey" # <i> #Option "WrappedFB" # [<bool>] #Option "GLXVBlank" # [<bool>] #Option "ZaphodHeads" # <str> #Option "PageFlip" # [<bool>] #Option "SwapLimit" # <i> #Option "AsyncUTSDFS" # [<bool>] #Option "AccelMethod" # <str> Identifier "Card0" Driver "nouveau" BusID "PCI:1:0:0" EndSection Section "Screen" Identifier "Screen0" Device "Card0" Monitor "Monitor0" SubSection "Display" Viewport 0 0 Depth 1 EndSubSection SubSection "Display" Viewport 0 0 Depth 4 EndSubSection SubSection "Display" Viewport 0 0 Depth 8 EndSubSection SubSection "Display" Viewport 0 0 Depth 15 EndSubSection SubSection "Display" Viewport 0 0 Depth 16 EndSubSection SubSection "Display" Viewport 0 0 Depth 24 EndSubSection EndSection Όπως βλέπετε, πρόκειται για πολύ generic πράγματα. Για αυτόν τον λόγο, θα το αδυνατίσω λίγο σε μία πιο μικρή εκδοχή, καθώς έχει πολλές βλακίες μέσα που δεν χρειάζομαι: Section "ServerLayout" Identifier "TripleHead Setup with nouveau" Screen 0 "Screen0" 0 0 EndSection Section "Monitor" Identifier "Monitor0" EndSection Section "Device" Identifier "Card0" Driver "nouveau" BusID "PCI:1:0:0" EndSection Section "Screen" Identifier "Screen0" Device "Card0" Monitor "Monitor0" EndSection Τι σημαίνουν αυτά που έγραψα; ---------------------------------------------- Πρώτα απο όλα χρειαζόμαστε ένα Monitor, το οποίο αντιστοιχεί στην φυσική οθόνη που έχω μπροστά μου. Κανονικά, θα έπρεπε να βάλω οτι θέλω να έχω 3 Monitors, αλλά σε πρώτη φάση είπαμε να φτιάξουμε ένα πολύ απλό xorg.conf που να δουλεύει. Στην συνέχεια θα αρχίσω να χτίζω πάνω του... ---------- | | Η λέξη "Identifier" είναι ένα πλό όνομα. Μπορείς να βάλεις ότι θέλεις | Monitor0 | Σε αυτό το guide, θα ακολουθήσω την εξής ονοματολογία:"Monitor<N>" ---------- | | / \ ===== Στην συνέχεια, χρειάζεται να πούμε στον X Server ότι α συνδέσουμε αυτό το monitor στην κάρτα γραφικών μας και να κάνουμε χρήση του video driver: ================= | | Σαν "Identifier" βάζουμε ό,τι θέλουμε. | Card0 | Το σημαντικό είναι ο driver που είναι υπεύθυνος για την | | επικοινωνία μεταξύ της καρτας γραφικών και του Linux kernel. ================= ||||||||| ||| --------- ---- ########### | PCIe 01:00.0 | <---> # nouveau # <---> KERNEL --------- ---- ########### Σημειώστε ότι ο X εντόπισε μόνος του ότι ο σωστός driver για την κάρτα γραφικών μου έχοντας 3D accel είναι ο nouveau. Αν σε μερικούς από εσάς εντοπίσει τον driver 'nv' να ξέρετε ότι αυτός είναι ο παλιός 2D driver και δεν υποστηρίζεται πλέον. Για να είμαστε σίγουροι όμως, ας βεβαιωθούμε ότι όντως φορτώθηκε αυτός ο driver: :~> lsmod | grep drm drm_kms_helper 65670 1 nouveau drm 335594 6 ttm,drm_kms_helper,nouveau καθώς επίσης δείτε ότι ο nouveau χρησιμοποιείται τόσο σε userspace όσο και σε kernelspace ως driver για την κάρτα: :~ # lspci -nnk | grep -A3 VGA 01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GF108 [GeForce GT 440] [10de:0de0] (rev a1) Subsystem: ASUSTeK Computer Inc. Device [1043:83b7] Kernel driver in use: nouveau Kernel modules: nouveau παρατηρήστε επίσης ότι το PCI BusID είναι: "01:00.0". Αυτή την πληροφορία πρέπει να την αλλάξω λίγο πριν την βάλω στο xorg.conf ως εξής: "PCI:1:0:0". Το να γράψει κανείς αυτή την πληροφορία στο xorg.conf είναι optional, μόνο αν έχετε μόνο μία καρτα γραφικών στον υπολογιστή (ούτε internal graphics). Διαφορετικά η πληροφορία δεν είναι optional, αλλά υποχρεωτική. Στην δική μου περίπτωση έχω ένα Ivy Bridge μηχάνημα, αλλά έχω κλείσει την iGPU από το bios. Ωστόσο, just to be on the safe side, επειδή πάντα υπάρχει η πιθανότητα να ενεργοποιήσω τα embedded graphics, την έβαλα να υπάρχει. Βλέπετε, αν ενεργοποιήσω τα embedded τότε θα εχω 2 PCI buses: PCI:1:0:0 --> nVIDIA PCI:0:2:0 --> Intel Graphics και δεν δεν έχω δηλώσει στο xorg.conf σε ποιο bus να τρεχει ο driver, τότε θα υπαρξει πρόβλημα. Επίσης, καλό θα είναι να ξέρετε ποιος driver είναι υπεύθυνος για την κάρτα σας με τον τρόπο που το κάνει ο X. Αρχικά κοιτάζει το vendor code, όπου στην περίπτωση της nVIDIA είναι "0x10de" και την συνέχεια τον κωδικό του μοντέλου ""0x0d30" το οποίο σημαίνει GeForce GT 440. Ετσι λοιπόν, ελέγχει αυτούς τους κωδικούς, και έχει μία λίστα με το ποιος driver είναι υπεύθυνος για αυτόν τον κωδικό. Μπορείτε να μάθετε τους δικούς σας ψάχνοντας στις πληροφορίες του kernel που σχετίζονται με το PCI Bus: :~ # cat /sys/bus/pci/devices/0000\:01\:00.0/vendor 0x10de :~ # cat /sys/bus/pci/devices/0000\:01\:00.0/device 0x0de0 Τέλος πάντων, ας επιστρέψω στο xorg.conf. Το πρόβλημα, αν μπορεί να το χαρακτηρίσει κανείς ως τέτοιο είναι πως στην device section δεν μπορώ να πω ποιο Monitor θελω να χρησιμοποιηθεί για αυτό το device. Για αυτόν τον λόγο υπάρχει ένα άλλο section που λέγεται "Screen", το οποίο παίζει την δουλειά του διαμεσολαβητή, ενώνει δηλαδή της "Monitor" και "Device" sections. ------------------------------------------------------------------------------ | | | ----------- ================= | | | | | | | Το screen είναι απλά ένα εικονικό | | Monitor 0 | | Card0 | | interface που χρησιμοποιείται για | | | | | | συνδέση την οθόνη με την κάρτα. | ----------- ================= | | | | ||||||||| ||| | | / \ --------- ---- ########### | | ===== | PCIe 01:00.0 | <---> # nouveau # <---> KERNEL | | --------- ---- ########### | | | | Screen0 | ------------------------------------------------------------------------------- Προσέξτε ότι μέχρι τώρα δεν έχω πει με ποιον τρόπο συνδέεται η card0 μέ την Monitor0. Το οποίο σημαίνει ότι μέχρι τωρα, ο X δεν γνωρίζει να η οθόνη που θέλω είναι η VGA-0, DVI-I-1 ή HDMI-1. Για την ώρα λοιπόν θα αφήσω τον X Server να αποφασίει μόνος του, όποια θέλει. Τέλος, δεν ξεχνάω να γράψω την Layout Section. Αυτή χρησιμοποιείται για να τοποθετήσουμε τα screens στην σωστή θέση. Για την ώρα έχουμε μόνο ένα Monitor, άρα αφού είναι το μοναδικό που έχουμε, θα πρέπει να το ορίσουμε και σαν το primary screen. Screen 0 "Screen0" 0 0 ^ ^ ^ | | | Primary --------------- | | σχετικές συντενταγμένες (x horizontal, y vertical) x --------- | που σημαίνουν τέρμα πάνω αριστερά στην οθόνη y ----------- 4. Ξεκινώντας τον X Server -------------------------------------- Για να ξεκινήσουμε τον X Server έχουμε 2 τρόπους να το κάνουμε: 1) Βάζοντας το αρχείο στην σωστή θέση: :~> cp xorg.conf.new /etc/X11/xorg.conf και μετά ξεκινάμε τον X: :~> X 2) ή απλά λέμε τον X να διαβάζει αυτό το configuration file ως παράμετρος (προτίνεται, μια και τεστάρουμε για την ώρα) : :~> X -config /root/xorg.conf.new Αφού ξεκινήσει, ας δούμε αν ο X Server χρησιμοποιήσε τα ίδια outputnames με το XRandR: :~> grep "Output.*connected" /var/log/Xorg.0.log [ 3409.088] (II) NOUVEAU(0): Output DVI-I-1 connected [ 3409.088] (II) NOUVEAU(0): Output HDMI-1 connected [ 3409.088] (II) NOUVEAU(0): Output VGA-1 connected και η απαντηση είναι: ναι, τα ίδια χρησιμοποιεί. Θυμάστε που σας ειπα πριν οτι δεν θα πω στον X Server τι outputname να χρησιμοποιήσει για το ένα και μοναδικό για την ώρα primary monitor που εχω; Ας δουμε λοιπόν τι πιστεύει ο X, αν δεν του το δώσω γραπτώς: [ 7177.781] (II) NOUVEAU(0): Output DVI-I-1 using monitor section Monitor0 [ 7177.813] (II) NOUVEAU(0): Output HDMI-1 has no monitor section [ 7177.845] (II) NOUVEAU(0): Output VGA-1 has no monitor section Αχά, ώστε ο X Server πιστεύει ότι το Monitor0 είναι συνδεμένο με DVI. Το οποίο είναι σωστό, αλλά αυτό ήταν καθαρά τυχαίο (ή μηπως όχι; ). Τέλος πάντων, ας μην χανουμε χρόνο, και ας δούμε τι ανάλυση διάλεξε ο X: [ 7177.945] (II) NOUVEAU(0): Output DVI-I-1 using initial mode 1152x864 [ 7177.945] (II) NOUVEAU(0): Output HDMI-1 using initial mode 1152x864 [ 7177.945] (II) NOUVEAU(0): Output VGA-1 using initial mode 1152x864 Χμ, βγάζει νοήμα η αποφαση του αν κοιτάξετε το output του xrandr λιγο πιο πανω. Εκει θα δειτε οτι η υψηλοτερη αναλυση που υποστηρίζουν και οι 3 οθόνες μου ειναι 1152x864. Ναι, εχω οθόνη που παίζει 1920x1080 αλλά οι άλλες δυο δεν μπορουν, οπότε δεν μπορεί καθε οθόνη να έχει ότι ανάλυση θελει. Αν ειναι να παιξουν και οι τρεις, πρεπει να εχουν την ιδια. Αυτό σκέφτηκε ο X Server. Προφανώς και μπορώ να εχω ο,τι αναλυση θελω σε καθε οθονη, αλλά τώρα ερμηνεύουμε το πως σκέφτεται το auto-probing του. Χμ, καλα ως εδω πιστεύω. Ας ξεκινήσω το gnome να δω τι θα γίνει. Αλλα πριν το κανω, πρεπει να βαλω το αρχείο στην σωστη θεση (της επιλογης μου να διαλεξω τον 2ο τροπο εκκινησης του X νωριτερα) : :~> cp xorg.conf.new /etc/X11/xorg.conf και μετά σε γραφικό περιβάλλον (aka runlevel 5) :~> telinit 5 Πφφ, τζίφος. Ακόμα βλέπω το ίδιο αποτέλεσμα (με εκείνο χωρίς το xorg.conf). Ας σιγουρευτούμε καταρχάς ότι ο X Server έλαβε υπόψη του το configuration: [ 7848.626] (==) Using config file: "/etc/X11/xorg.conf" ναι το ελαβε, το αρχειο ειναι το σωστο. [ 7848.627] (==) ServerLayout "TripleHead Setup with nouveau" [ 7848.627] (**) |-->Screen "Screen0" (0) [ 7848.627] (**) | |-->Monitor "Monitor0" [ 7848.627] (**) | |-->Device "Card0" ναι και το setup ειναι αυτο που εβαλα. Αν προσπαθήσουμε να κανουμε force το Monitor0 να είναι DVI-I-1 και να δούμε τι θα γίνει. Παω λοιπον στο 'device section' και προσθετω την γραμμη: Option "Monitor-DVI-I-1" "Monitor0" και βλεπω τι συμβαίνει. Για να το τεστάρω αυτό ακολουθώ παλι την ίδια διαδικασία: Αλλάζω το /etc/X11/xorg.conf telinit 3 Ξεκινάω τον X ( /usr/bin/X ) Παω στο tty1 ( ctrl+alt+f1) σκοτώνω τον X ( ctrl+c) βλεπω τα logs ( vi /var/log/Xorg.0.log ) telinit 5 Χμ, παλι δεν άλλαξε κατι. Τα ίδια αποτελέσματα... 5. Βελτιστοποιώντας το xorg.conf ----------------------------------------------- Ας δοκιμάσουμε να βαλουμε και τα 3 monitors: Section "Monitor" Identifier "Monitor0" EndSection Section "Monitor" Identifier "Monitor1" EndSection Section "Monitor" Identifier "Monitor2" EndSection και ας συνδέσουμε τα monitors στην καρτα γραφικών συμφωνα με το ακολουθο : Section "Device" Identifier "Card0" Driver "nouveau" BusID "PCI:1:0:0" Option "Monitor-DVI-I-1" "Monitor0" Option "Monitor-HDMI-1" "Monitor1" Option "Monitor-VGA-1" "Monitor2" EndSection κανω ξανα τεστ... Τα ίδια αποτελέσματα (από το gnome) αλλά τα logs αλλαξαν: [ 8893.423] (II) NOUVEAU(0): Output DVI-I-1 using monitor section Monitor0 [ 8893.455] (II) NOUVEAU(0): Output HDMI-1 using monitor section Monitor1 [ 8893.487] (II) NOUVEAU(0): Output VGA-1 using monitor section Monitor2 Το οποίο ειναι σωστό, επειδή: ---------- ---------- ---------- | | | | | | | Monitor0 | | Monitor1 | | Monitor2 | | | | | | | ---------- ---------- ---------- | | | | | | | | | | | | / \ / \ / \ ===== ===== ===== DVI HDMI VGA | | | ------ | --------- \ | / \ | / =========== | NVIDIA | | GeForce | =========== Ας ελεξω και αν ειναι ολες συνδεμένες: [ 8893.587] (II) NOUVEAU(0): Output DVI-I-1 connected [ 8893.587] (II) NOUVEAU(0): Output HDMI-1 connected [ 8893.587] (II) NOUVEAU(0): Output VGA-1 connected είναι συνδεμένες. Τοτε γιατι μωρη μλκια ακόμα βλέπω το εξης; : ---------- ---------- ---------- | | | | | | | NoSignal | | Mirror | | Mirror | | | | | | | ---------- ---------- ---------- | | | | | | | | | | | | / \ / \ / \ ===== ===== ===== DEAD | | | | ------------ Mirrored by default Ας ριξω παλι μια ματια στα logs: [ 8893.587] (II) NOUVEAU(0): Output DVI-I-1 using initial mode 1152x864 [ 8893.587] (II) NOUVEAU(0): Output HDMI-1 using initial mode 1152x864 [ 8893.587] (II) NOUVEAU(0): Output VGA-1 using initial mode 1152x864 Λοιπόν, ας προσπαθήσω να απενεργοποιήσω τις mirrored (Monitor1 kai Monitor2) βάζοντας αυτη τη γραμμη στα αντίστοιχα "Monitor" sections τους: Option "Ignore" "True" οποτε θα ειναι ετσι: Section "Monitor" Identifier "Monitor0" EndSection Section "Monitor" Identifier "Monitor1" Option "Ignore" "True" EndSection Section "Monitor" Identifier "Monitor2" Option "Ignore" "True" EndSection και συνεχίζω το testing... Ναιιιι! Yeeeeah! Επιτέλους μία φορά που ο X server εκανε αυτό που του είπα να κανει: ---------- ---------- ---------- | | | | | | | Working | | Disabled | | Disabled | | | | | | | ---------- ---------- ---------- | | | | | | | | | | | | / \ / \ / \ ===== ===== ===== Monitor0 Monitor1 Monitor2 DVI HDMI VGA, Ας δούμε τι άλλαξε στα logs: [ 9346.246] (II) NOUVEAU(0): Output DVI-I-1 using monitor section Monitor0 [ 9346.278] (II) NOUVEAU(0): Output HDMI-1 using monitor section Monitor1 [ 9346.278] (**) NOUVEAU(0): Option "Ignore" "True" [ 9346.310] (II) NOUVEAU(0): Output VGA-1 using monitor section Monitor2 [ 9346.310] (**) NOUVEAU(0): Option "Ignore" "True" το οποίο είναι σωστό (δειτε το configuration που μολις εκανα), αλλά προσέξτε επίσης ότι τώρα το HDMI-1 και το VGA-1 είναι μαρκαρισμένα με την επιλογή 'Ignore'. [ 9346.346] (II) NOUVEAU(0): Output DVI-I-1 connected το οποίο εχει σαν αποτέλεσμα να φαινεται και να ειναι connected μόνο το DVI-I-1 [ 9346.346] (II) NOUVEAU(0): Output DVI-I-1 using initial mode 1680x1050 και προφανώς αφού είναι η μόνη οθόνη, επιλέγει την μεγαλύτερη ανάλυση για αυτήν που ειναι 1680x1050. Δεν διαλέγει την χαμηλότερη 1152x864 που εβαλε πριν, διότι δεν υπάρχει 2η οθόνη για την κανει sync με αυτην. Ολα λογικά μεχρι στιγμής. Οπότε guys, λεω να δοκιμάσω να αφήσω μόνο το VGA απενεργοποιημένο, να δούμε τι θα γίνει. Για να το κάνω αυτο, αφαιρώ το 'ignore' από το monitor1. Section "Monitor" Identifier "Monitor0" EndSection Section "Monitor" Identifier "Monitor1" EndSection Section "Monitor" Identifier "Monitor2" Option "Ignore" "True" EndSection τεστάρω... και... Δουλεύει !!!! Δείτε τα αποτελέσματα: ---------- ---------- ---------- | | | | | | | Primary | | 2ndary | | Disabled | | | | | | | ---------- ---------- ---------- | | | | | | | | | | | | / \ / \ / \ ===== ===== ===== Monitor0 Monitor1 Monitor2 DVI HDMI VGA ας δούμε και τα logs: [ 10227.375] (II) NOUVEAU(0): Output DVI-I-1 using monitor section Monitor0 [ 10227.407] (II) NOUVEAU(0): Output HDMI-1 using monitor section Monitor1 [ 10227.439] (II) NOUVEAU(0): Output VGA-1 using monitor section Monitor2 [ 10227.439] (**) NOUVEAU(0): Option "Ignore" "True" το οποίο είναι σωστό. Μόνο το Monitor2 (VGA) είναι απενεργοποιημένο. [ 10227.507] (II) NOUVEAU(0): Output DVI-I-1 connected [ 10227.507] (II) NOUVEAU(0): Output HDMI-1 connected οριστε ξανα κι αλλη επαλήθευση. Το VGA-1 ειναι disconnected [ 10227.507] (II) NOUVEAU(0): Using exact sizes for initial modes [ 10227.507] (II) NOUVEAU(0): Output DVI-I-1 using initial mode 1680x1050 [ 10227.507] (II) NOUVEAU(0): Output HDMI-1 using initial mode 1680x1050 επισης, οι δυο οθονες μου υποστηριζουν και οι δύο 1680x1050. Προφανως η VGA ειναι που δεν επαιζε πριν σε αυτην τη αναλυση και ο λογος του downscale. Οπότε, το dual-head λειτουργεί. Τι σκ@τ@ συμβαίνει και παει στραβά όταν ζητάω να εχω όχι 2 αλλά 3 monitors connected; Για την ώρα το μόνο που μπορώ να πω ειναι οτι αλλάζει η τοποθεσία. Δηλαδή όταν εχω 2 οθόνες είναι λογικό η μία να ειναι αριστερά και η αλλη δεξια. Στο configuration μου, η βασικη οθονη ειναι η αριστερη (monitor0). Αυτο το επιβεβαιώνει και το gnome tool: Monitor0 ---> Primary Monitor1 ---> Secondary οποτε σκέφτομαι και λεω οτι ισως πρεπει να δηλώσω με το χέρι που θα τοποθετηθεί το τρίτο monitor στον X Server: Section "Monitor" Identifier "Monitor0" EndSection Section "Monitor" Identifier "Monitor1" EndSection Section "Monitor" Identifier "Monitor2" Option "RightOf" "Monitor1" ας το τεσταρουμε... Λοπον, όχι ακριβως οτι περιμενα... ---------- ---------- ---------- | | | | | | | NoSignal | | Primary | | 2ndary | | | | | | | ---------- ---------- ---------- | | | | | | | | | | | | / \ / \ / \ ===== ===== ===== Monitor0 Monitor1 Monitor2 DVI HDMI VGA ας δουμε τα logs: [ 10778.986] (II) NOUVEAU(0): Output DVI-I-1 using monitor section Monitor0 [ 10779.018] (II) NOUVEAU(0): Output HDMI-1 using monitor section Monitor1 [ 10779.050] (II) NOUVEAU(0): Output VGA-1 using monitor section Monitor2 [ 10779.050] (**) NOUVEAU(0): Option "RightOf" "Monitor1" σωστα. [ 10779.151] (II) NOUVEAU(0): Output DVI-I-1 connected [ 10779.151] (II) NOUVEAU(0): Output HDMI-1 connected [ 10779.151] (II) NOUVEAU(0): Output VGA-1 connected ξανα σωστα. [ 10779.151] (II) NOUVEAU(0): Using user preference for initial modes [ 10779.151] (II) NOUVEAU(0): Output DVI-I-1 using initial mode 1680x1050 [ 10779.151] (II) NOUVEAU(0): Output HDMI-1 using initial mode 1680x1050 [ 10779.151] (II) NOUVEAU(0): Output VGA-1 using initial mode 1600x900 Το τριτο monitor χρησιμοποιεί διαφορετική αναλυση (δεν υποστηριζει 1680x1050) οπως ειχα μαντέψει πριν. Λοιπόν, ας δοκιμάσω αλλο placement μπας και ... Section "Monitor" Identifier "Monitor0" EndSection Section "Monitor" Identifier "Monitor1" Option "RightOf" "Monitor0" EndSection Section "Monitor" Identifier "Monitor2" Option "RightOf" "Monitor1" EndSection δοκιμαζω... τίποτα... τα ίδια... Να μην σας ταλαιπωρώ, μετά από πολύ τεστ στο xorg.conf τελικά δεν καταφερα να ενεργοποιήσω και τις 3 οθόνες μου. Αλλά τουλάχιστον βρήκα το πρόβλημα, το οποίο είναι το CRTC. Η κάρτα μου έχει 2 CRTCs, το οποίο σημαίνει ότι έχει 2 rendering pipelindes. Με απλά λόγια, σημαίνει οτι υποστηρίζει μόνο 2 display output ports ενεργοποιημένες ταυτόχρονα. Η πληροφορία αυτή φαινεται στο xrandr: :~> xrandr --verbose | grep CRTC CRTCs: 0 1 CRTC: 0 CRTCs: 0 1 CRTC: 1 το οποίο σημαίνει: Monitor0 (DVI) --> Supports: 0 and 1 --> Enabled: κανένα , για αυτο ειναι σβηστή Monitor1 (HDMI) --> Supports: 0 and 1 --> Enabled: 0 (Working) Monitor1 (VGA) --> Supports: 0 and 1 --> Enabled: 1 (Working) Να γιατί ο X Server κανει disable μία εκ των τριων displays, επειδή η καρτα δεν έχει αρκετά CRTCs να χρησιμοποιήσει. Οποτε, ειμαι καταδικασμένος να μην μπορώ ποτέ να εχω 3 οθόνες ταυτόχρονα ανοιχτές με αυτην την κάρτα γραφικών. Πού να το φανταστώ; Βλεπω μια καρτα με 3 outputs, πού να ξέρω οτι παιζουν μόνο τα 2 από τα 3 αν τα συνδέσεις και 3. Εγω περιμενα να παιζουν και τα 3 και πηρα τα ... 6. Dualhead setup -------------------------- Αφου λοιπόν μπορω να παιξω μονο με 2 καρτες γραφικων, δειτε λιγο οσοι σαν ενδιαφερει πως μπορειτε νε σεταρετε ενα dual-head με το χερι: ---------- ---------- ---------- | | | | | | | Primary | | Secondary| | Off | | | | | | | ---------- ---------- ---------- | | | | | | | | | | | | / \ / \ / \ ===== ===== ===== Monitor0 Monitor1 Monitor2 DVI HDMI VGA Θα ξεκινησω με: Section "ServerLayout" Identifier "DualHead Setup with nouveau" # Let's change the name from triple to dual Screen 0 "Screen0" 0 0 EndSection Section "Monitor" Identifier "Monitor0" Option "Primary" "True" # Force Monitor0 to be the Primary one EndSection Section "Monitor" Identifier "Monitor1" Option "RightOf" "Monitor0" # This is going to be the secondary display EndSection Section "Monitor" Identifier "Monitor2" Option "RightOf" "Monitor1" Option "Ignore" "True" # Turn this off (no CRTC left) EndSection Section "Device" Identifier "Card0" Driver "nouveau" BusID "PCI:1:0:0" Option "Monitor-DVI-I-1" "Monitor0" Option "Monitor-HDMI-1" "Monitor1" Option "Monitor-VGA-1" "Monitor2" EndSection Section "Screen" Identifier "Screen0" Device "Card0" Monitor "Monitor0" EndSection Ας το τεστάρουμε... Ολα καλα. Λειτουργει οπως πρεπει: ---------- ---------- ---------- | | | | | | | Primary | | Secondary| | Off | | | | | | | ---------- ---------- ---------- | | | | | | | | | | | | / \ / \ / \ ===== ===== ===== Monitor0 Monitor1 Monitor2 DVI HDMI VGA και τα logs: [ 66561.307] (II) NOUVEAU(0): Output DVI-I-1 using monitor section Monitor0 [ 66561.307] (**) NOUVEAU(0): Option "Primary" "True" [ 66561.339] (II) NOUVEAU(0): Output HDMI-1 using monitor section Monitor1 [ 66561.339] (**) NOUVEAU(0): Option "RightOf" "Monitor0" [ 66561.371] (II) NOUVEAU(0): Output VGA-1 using monitor section Monitor2 [ 66561.371] (**) NOUVEAU(0): Option "RightOf" "Monitor1" [ 66561.371] (**) NOUVEAU(0): Option "Ignore" "True" ... ... ... [ 66561.440] (II) NOUVEAU(0): Output DVI-I-1 connected [ 66561.440] (II) NOUVEAU(0): Output HDMI-1 connected ολα σωστά. Οπως ειπα και πριν, εκλεισα την 3η οθονη (Monitor1) λογω περιορισμού στο hardware (2 CRTCs) : [ 66561.371] (II) NOUVEAU(0): 2 crtcs needed for screen. [ 66561.375] (II) NOUVEAU(0): Allocated crtc nr. 0 to this screen. [ 66561.375] (II) NOUVEAU(0): Allocated crtc nr. 1 to this screen. Οντως ο X Server χρησιμοποιεί τα 2 CRTCs στο screen μου: ------------------------ CRTC 0 ---> | | CRTC 1 ---> | Monitor0 Monitor1 | | | ------------------------ | | | | / \ ===== Ας δουμε τι αναλυση διαλεξε ο X αυτοματα: [ 66561.440] (II) NOUVEAU(0): Using user preference for initial modes [ 66561.440] (II) NOUVEAU(0): Output DVI-I-1 using initial mode 1680x1050 [ 66561.440] (II) NOUVEAU(0): Output HDMI-1 using initial mode 1680x1050 όπως το περίμενα, διαλεξε 1680x1050 επειδη ειναι η πιο μεγαλη αναλυση που υποστηρίζεται εξίσου απο τις 2 μεμονεμα οθόνες μου. Το 'τρικ' που μαρεσει εδω ειναι οτι χρησιμοποιώ μόνο μία screen, το οποιο μου επιτρέπει να σερνω παραθυρα απο την μια οθονη στην αλλη, καθως μοιραζονται το ιδιο screen (screen0) και δεν εχει καθε μια το δικο της. Με πιο τεχνικα λογια, με αυτον τροπο υπαρχει μονο μια DISPLAY env μεταβλητη και για την δυο οθονες μου. Ο τεχνικος ορος ειναι 'visual screen' που χρησιμοποιείται για την ενοποίηση οθονες σε μεγαλύτερη αναλυση: 1680 + 1680 = 3360 ----------------------------- | ----------- ----------- | | | | | | | | | 1680x1050 | | 1680x1050 | | | | | | | | | ----------- ----------- | | | | | | | | | | | | | | / \ / \ | | ===== ===== | ----------------------------- | | | | / \ / \ ========= Visual Screen 3360x1050 οποτε αν οι υπολογισμοι μου ειναι σωστοί και συμφωνα με τα logs: [ 66561.440] (--) NOUVEAU(0): Virtual size is 3360x1050 (pitch 0) οντως ειναι σωστοι. Οποτε ο X server διαλεξε το σωτο mode και τα συνδιασε ολα μαζι: [ 66561.440] (**) NOUVEAU(0): Driver mode "1680x1050": 146.2 MHz (scaled from 0.0 MHz), 65.3 kHz, 60.0 Hz [ 66561.440] (II) NOUVEAU(0): Modeline "1680x1050"x60.0 146.25 1680 1784 1960 2240 1050 1053 1059 1089 -hsync +vsync (65.3 kHz eP) Αν ειχα προβλημα και δεν εβρισκε το βελτιστο mode, θα επρεπε να το γραψω στο xorg.conf. Αλλα πρωτα πρεπει να ξερω την λιστα που υποστηριζει καθε οθονη μου: :~ # xrandr DVI-I-1 connected primary 1680x1050+0+0 (normal left inverted right x axis y axis) 473mm x 296mm 1680x1050 59.88*+ 1280x1024 75.02 60.02 1152x864 75.00 1024x768 75.08 60.00 800x600 75.00 60.32 640x480 75.00 60.00 720x400 70.08 HDMI-1 connected 1680x1050+1680+0 (normal left inverted right x axis y axis) 473mm x 296mm 1680x1050 59.95*+ 1280x1024 75.02 60.02 1152x864 75.00 1024x768 75.08 60.00 800x600 75.00 60.32 640x480 75.00 60.00 720x400 70.08 οποτε για τις οθονες μου το καλυτερο mode ειναι το [email protected] Για να κανω generate αυτη την 'modeline' χρησιμοποιω το εργαλειο 'gtf' gtf 1680 1050 59.95 # 1680x1050 @ 59.95 Hz (GTF) hsync: 65.17 kHz; pclk: 147.01 MHz Modeline "1680x1050_59.95" 147.01 1680 1784 1968 2256 1050 1051 1054 1087 -HSync +Vsync και μετά το βάζω στο xorg.conf Στην περιπτωση μου αυτο ειναι περιττο γιατι ο X βρηκε ηδη το optimal στην περιπτωση μου, αλλα δεν ειναι ακριβως 100% optimized στα μετρα μου: X Server ---> Modeline "1680x1050"x60.0 146.25 1680 1784 1960 2240 1050 1053 1059 1089 -hsync +vsync (65.3 kHz eP) gtf version ---> Modeline "1680x1050_59.95" 147.01 1680 1784 1968 2256 1050 1051 1054 1087 -HSync +Vsync οποτε αν θελω να ειμαι υπερβολικα σωστος το βαζω μεσα στο xorg.conf : Section "ServerLayout" Identifier "DualHead Setup with nouveau" Screen 0 "Screen0" 0 0 EndSection Section "Monitor" Identifier "Monitor0" Option "Primary" "True" Modeline "1680x1050_59.95" 147.01 1680 1784 1968 2256 1050 1051 1054 1087 -HSync +Vsync # The gtf version Option "PreferredMode" "1680x1050_59.95" # Tell X to pick the gtf version EndSection Section "Monitor" Identifier "Monitor1" Option "RightOf" "Monitor0" Modeline "1680x1050_59.95" 147.01 1680 1784 1968 2256 1050 1051 1054 1087 -HSync +Vsync # same Option "PreferredMode" "1680x1050_59.95" # same EndSection Section "Monitor" Identifier "Monitor2" Option "RightOf" "Monitor1" Option "Ignore" "True" EndSection Section "Device" Identifier "Card0" Driver "nouveau" BusID "PCI:1:0:0" Option "Monitor-DVI-I-1" "Monitor0" Option "Monitor-HDMI-1" "Monitor1" Option "Monitor-VGA-1" "Monitor2" EndSection Section "Screen" Identifier "Screen0" Device "Card0" Monitor "Monitor0" SubSection "Display" # Define the Virtual screen Depth 24 # 24 is kind of a default nowadays Virtual 3360 1050 # The visual screen resolution EndSubSection EndSection τεσταρω... Ολα καλα! Βλεπω τα logs: [ 74689.115] (II) NOUVEAU(0): Using user preference for initial modes [ 74689.115] (II) NOUVEAU(0): Output DVI-I-1 using initial mode 1680x1050_59.95 [ 74689.115] (II) NOUVEAU(0): Output HDMI-1 using initial mode 1680x1050_59.95 αχα, ωστε ο X διαλεξε την δικη μου modeline. Αψογα ! [ 74689.115] (--) NOUVEAU(0): Virtual size is 3360x1050 (pitch 0) [ 74689.115] (**) NOUVEAU(0): Mode "1680x1050_59.95": 147.0 MHz (scaled from 0.0 MHz), 65.2 kHz, 59.9 Hz [ 74689.115] (II) NOUVEAU(0): Modeline "1680x1050_59.95"x59.9 147.01 1680 1784 1968 2256 1050 1051 1054 1087 -hsync +vsync (65.2 kHz UP) Ωραια ολα αυτα... αλλα ρε παιδια εγω ηθελα triple-head setup. Οποτε τι εκανα; Παραγγελνω μια καινουρια radeon. Προσπαθω... προσπαθω... παλι τα ιδια.. τι εφταιγε; Η καρτα ειχε ελατωματικο port. Για ονομα του Θεου τι γκαντεμια ειναι αυτη! καινουρια καρτα, με faulty VGA port. Την εστειλα πίσω προφανώς την ιδια μερα στο Amazon, αλλα in the meantime χρησιμοποιησα ως 3η οθονη μεσω την embedded intel. 3 οθονες: 2 nvidia + 1 intel: ---------- ---------- ---------- | | | | | | | Monitor0 | | Monitor1 | | Monitor2 | | | | | | | ---------- ---------- ---------- | | | | | | | | | | | | / \ / \ / \ ===== ===== ===== DVI HDMI VGA | | | ------ | | \ | | \ | | =========== ======= | NVIDIA | | Intel | | GeForce | | IGPU | =========== ------- δηλαδη: Section "ServerLayout" Identifier "X-TripleHead with intel and nv drivers - using Xinerama" Screen 0 "IntelScreen" Screen 1 "NVidiaScreenRight" rightof "IntelScreen" Screen 2 "NVidiaScreenLeft" leftof "IntelScreen" Option "Clone" "off" Option "Xinerama" "off" InputDevice "Mouse" "CorePointer" InputDevice "Keyboard" "CoreKeyboard" EndSection Section "ServerFlags" Option "AllowMouseOpenFail" "on" Option "ZapWarning" "on" EndSection ##################################################################################################################### Section "Files" ModulePath "/usr/lib64/xorg/modules/updates" ModulePath "/usr/lib64/xorg/modules" FontPath "/usr/share/fonts/misc:unscaled" FontPath "/usr/share/fonts/truetype/" FontPath "/usr/share/fonts/TTF/" FontPath "/usr/share/fonts/OTF" FontPath "/usr/share/fonts/Type1/" FontPath "/usr/share/fonts/100dpi:unscaled" FontPath "/usr/share/fonts/75dpi:unscaled" EndSection ###################################################################################################################### Section "Module" Load "dri" Load "dbe" # Load "freetype" # Module does not exist, so it fails to load Load "extmod" Load "glx" EndSection Section "DRI" Group "video" Mode 0660 EndSection ###################################################################################################################### Section "InputDevice" Identifier "Keyboard" Driver "kbd" Option "Protocol" "Standard" Option "XkbLayout" "us" Option "XkbModel" "microsoftpro" Option "XkbRules" "xfree86" EndSection Section "InputDevice" Identifier "Mouse" Driver "mouse" Option "Protocol" "auto" Option "Device" "/dev/input/mice" Option "Name" "Belkin Mouse" Option "Protocol" "explorerps/2" Option "Vendor" "Sysp" Option "ZAxisMapping" "4 5 6 7" EndSection ######################################################################################################################## Section "Monitor" Identifier "OneBigMonitor4AllScreens" VendorName "DELL" ModelName "E228WFP" # Monitor connected to NVIDIA (Primary PEG selected from BIOS) Option "CalcAlgorithm" "XServerPool" HorizSync 31-94 VertRefresh 50-75 UseModes "Modes[0]" Option "CalcAlgorithm" "XServerPool" Option "DPMS" EndSection Section "Modes" Identifier "Modes[0]" EndSection ######################################################################################################################### Section "Screen" Identifier "IntelScreen" Device "IntelCard" Monitor "OneBigMonitor4AllScreens" DefaultDepth 24 EndSection Section "Screen" Identifier "NVidiaScreenRight" Device "NVidiaCardRight" Monitor "OneBigMonitor4AllScreens" DefaultDepth 24 EndSection Section "Screen" Identifier "NVidiaScreenLeft" Device "NVidiaCardLeft" Monitor "OneBigMonitor4AllScreens" DefaultDepth 24 EndSection ########################################################################################################################### Section "Device" Identifier "IntelCard" Driver "intel" BoardName "Ivy Bridge HD Graphics 4000" VendorName "Intel" BusID "PCI:0:2:0" EndSection Section "Device" Identifier "NVidiaCardRight" Driver "nv" BoardName "GeForce GT 240" VendorName "NVidia" BusID "PCI:1:0:0" Screen 0 EndSection Section "Device" Identifier "NVidiaCardLeft" Driver "nv" BoardName "GeForce GT 240" VendorName "NVidia" BusID "PCI:1:0:0" Screen 1 EndSection 2 οθονες: 1 nvidia, 1 intel: Section "ServerLayout" Identifier "X-DualHead with intel and nv drivers - using Xinerama" Screen 0 "IntelScreen" Screen 1 "NVidiaScreen" rightof "IntelScreen" Option "Clone" "off" Option "Xinerama" "off" InputDevice "Mouse" "CorePointer" InputDevice "Keyboard" "CoreKeyboard" EndSection Section "ServerFlags" Option "AllowMouseOpenFail" "on" Option "ZapWarning" "on" EndSection ##################################################################################################################### Section "Files" ModulePath "/usr/lib64/xorg/modules/updates" ModulePath "/usr/lib64/xorg/modules" FontPath "/usr/share/fonts/misc:unscaled" FontPath "/usr/share/fonts/truetype/" FontPath "/usr/share/fonts/TTF/" FontPath "/usr/share/fonts/OTF" FontPath "/usr/share/fonts/Type1/" FontPath "/usr/share/fonts/100dpi:unscaled" FontPath "/usr/share/fonts/75dpi:unscaled" EndSection ###################################################################################################################### Section "Module" Load "dri" Load "dbe" # Load "freetype" # Module does not exist, so it fails to load Load "extmod" Load "glx" EndSection Section "DRI" Group "video" Mode 0660 EndSection ###################################################################################################################### Section "InputDevice" Identifier "Keyboard" Driver "kbd" Option "Protocol" "Standard" Option "XkbLayout" "us" Option "XkbModel" "microsoftpro" Option "XkbRules" "xfree86" EndSection Section "InputDevice" Identifier "Mouse" Driver "mouse" Option "Protocol" "auto" Option "Device" "/dev/input/mice" Option "Name" "Belkin Mouse" Option "Protocol" "explorerps/2" Option "Vendor" "Sysp" Option "ZAxisMapping" "4 5 6 7" EndSection ######################################################################################################################## Section "Monitor" Identifier "OneBigMonitor4AllScreens" VendorName "DELL" ModelName "E228WFP" # Monitor connected to NVIDIA (Primary PEG selected from BIOS) Option "CalcAlgorithm" "XServerPool" HorizSync 31-94 VertRefresh 50-75 UseModes "Modes[0]" Option "CalcAlgorithm" "XServerPool" Option "DPMS" EndSection Section "Modes" Identifier "Modes[0]" EndSection ######################################################################################################################### Section "Screen" Identifier "IntelScreen" Device "IntelCard" Monitor "OneBigMonitor4AllScreens" DefaultDepth 24 EndSection Section "Screen" Identifier "NVidiaScreen" Device "NVidiaCard" Monitor "OneBigMonitor4AllScreens" DefaultDepth 24 EndSection ########################################################################################################################### Section "Device" Identifier "IntelCard" Driver "intel" BoardName "Ivy Bridge HD Graphics 4000" VendorName "Intel" BusID "PCI:0:2:0" EndSection Section "Device" Identifier "NVidiaCard" Driver "nv" BoardName "GeForce GT 240" VendorName "NVidia" BusID "PCI:1:0:0" EndSection Ολα καλα τελικα με το bug Επεξ/σία 29 Αυγούστου 2015 από drpaneas 12
Bspus Δημοσ. 28 Αυγούστου 2015 Δημοσ. 28 Αυγούστου 2015 Οπότε guys, λεω να δοκιμάσω να αφήσω μόνο το HDMI απενεργοποιημένο, να δούμε τι θα γίνει. Για να το κάνω αυτο, αφαιρώ το 'ignore' από το monitor1. Νομιζω εννοεις το VGA 1
warlock9_0 Δημοσ. 28 Αυγούστου 2015 Δημοσ. 28 Αυγούστου 2015 Ωραιο, οταν ειχα δυο οθονες ειχα βολευτει με το arandr. Ειχα φτιαξει και ενα σκριπτακι και ανοιγοκλεινα τη δευτερη οποτε ηθελα
pmav99 Δημοσ. 1 Σεπτεμβρίου 2015 Δημοσ. 1 Σεπτεμβρίου 2015 Και μόνο για τον κόπο που θα έκανες για να κάνεις format το post στον editor του insomnia, σου αξίζουν συγχαρητήρια... nice job!
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα