PDA

View Full Version : Tips για τους drivers της NVidia.


DarthMoul
10-10-2007, 22:54
Επειδή συζώντας με φίλους που έχουν NVidia κάρτα γραφικών σε Linux διαπίστωσα πως ουσιαστικά την υπολειτουργούν, καλό είναι να μαζέψουμε εδώ όλα τα σχετικά tips.

Καταρχήν, ο driver πιστεύει τις περισσότερες φορές ότι η οθόνη έχει resolution 95x96 dpi. Οι περισσότερες οθόνες όμως έχουν ανάλυση από 96x96 και πάνω. Το τι ακριβώς υποστηρίζει η οθόνη το βρίσκουμε εύκολα στο manual. Το τι πιστεύει driver το βρίσκουμε με την εντολή:
xdpyinfo | grep resolution

Αν λοιπόν το resolution δεν είναι το σωστό, πράγμα που υποβαθμίζει την εμφάνιση των fonts, τότε πάμε στο /etc/X11/xorg.conf και στο Section "Monitor" προσθέτουμε την γραμμή:
Option "DPI" "96 x 96"

Αν η οθόνη υποστηρίζει καλύτερη ανάλυση μπορούμε να την δοκιμάσουμε αλλά το 96x96 είναι αρκετό.

Κάτι άλλο που επιδρά στην εμφάνιση των fonts είναι στο Section "Module". Καλό θα είναι να υπάρχει η γραμμή:
Load "freetype"
Αφού πρώτα βεβαιωθούμε ότι το πακέτα freetype και libXft είναι εγκατεστημένα.

Επίσης στο Section "Device" καλό είναι να υπάρχουν οι παρακάτω γραμμές:
Option "RenderAccel" "True"
Option "NoLogo" "TRUE"
Option "Noaccel" "FALSE"
Option "CursorShadow" "TRUE"
Option "HWCursor" "TRUE"

Εξ ορισμού ο driver δεν χρησιμοποιεί τα screen events με αποτέλεσμα να φορτώνει την CPU με δουλειά που θα έπρεπε να κάνει ο ίδιος. Το φορτίο μπορεί να είναι από 2% σε μια γρήγορη καινούργια CPU, και να φτάσει μέχρι και το 60% στις παλιότερες. Θα πρέπει λοιπόν στο Section "Screen", κάτω από την δήλωση Monitor, να προσθέσουμε την γραμμή:
Option "UseEvents" "True"

Τέλος, πριν κάνουμε οποιαδήποτε αλλαγή, θα πρέπει να κρατήσουμε ένα αντίγραφό το /etc/X11/xorg.conf, ώστε αν κάτι πάει στραβά, να επανέλθουμε στις προηγούμενες ρυθμίσεις μας.

WAntilles
11-10-2007, 14:34
Εξαιρετικά διαφωτιστικά DarthMoul.

Δεν είχα σκαλίσει ποτέ το documentation των nVidia drivers.

Μερικές επισημάνσεις:

Καταρχήν, ο driver πιστεύει τις περισσότερες φορές ότι η οθόνη έχει resolution 95x96 dpi. Οι περισσότερες οθόνες όμως έχουν ανάλυση από 96x96 και πάνω. Το τι ακριβώς υποστηρίζει η οθόνη το βρίσκουμε εύκολα στο manual. Το τι πιστεύει driver το βρίσκουμε με την εντολή:
xdpyinfo | grep resolution

Αν λοιπόν το resolution δεν είναι το σωστό, πράγμα που υποβαθμίζει την εμφάνιση των fonts, τότε πάμε στο /etc/X11/xorg.conf και στο Section "Monitor" προσθέτουμε την γραμμή:
Option "DPI" "96 x 96"

Αν η οθόνη υποστηρίζει καλύτερη ανάλυση μπορούμε να την δοκιμάσουμε αλλά το 96x96 είναι αρκετό.

Θεωρώ πως αν δεν ασχολούμαστε με DTP και τυπογραφία, καλό είναι να βάζουμε πάντα 96x96.

Option "NoLogo" "TRUE"

Αυτό αν θέλουμε μπορούμε να το βγάλουμε μιας και δεν είναι κακό.

Αντίθετα λειτουργεί και σαν ένα είδος μόνιμης επιβεβαίωσης-diagnostic ότι το σύστημά μας όντως ξεκίνησε βέλτιστα με τον driver της nVidia και δεν πήρε κάποια ατυχή "πρωτοβουλία" "αυτοματισμού" πίσω από την πλάτη μας, από μόνο του (για κάποιες διανομές που έχουν τέτοιους αποτυχημένους και διαλυμένους αυτοματισμούς).

Και μερικές προσθήκες:

Στο Section "Monitor" προσθέτουμε τα εξής:

Option "DPMS"

Από εδώ και κάτω ισχύουν για drivers 9xxx ή νεότερους:

Στο Section "Device" προσθέτουμε τα εξής:

Option "DynamicTwinView" "false"
# Option "AddARGBGLXVisuals" "true"

Προσέξτε ότι τη 2η γραμμή τη βάλαμε σχολιασμένη.

Θα εξηγήσω παρακάτω γιατί.

Η 1η γραμμή χρειάζεται σε όλους τους χρήστες που έχουν μόνο μια οθόνη (η τεράστια πλειονότητα).

Γιατί;

Γιατί απενεργοποιεί την αυτόματη ανίχνευση πολλαπλών οθονών του driver, η οποία έχει ένα bug (τουλάχιστο στη σειρά 9xxx - στην 100xxxx δεν ξέρω αν διορθώθηκε) και δεν διαβάζει σωστά τα Hz που λειτουργεί (και μπορεί να λειτουργήσει) η οθόνη μας.

Προσθέτουμε ολόκληρο το παρακάτω section:

Section "Extensions"
Option "Composite" "enable"
EndSection

Αυτό χρειάζεται για όλα τα 3D desktops (beryl, compiz-fusion) και ακόμα και αν δεν τα τρέχουμε δεν κάνει κανένα κακό να υπάρχει και να είναι έτοιμο.

Τέλος στο Section "Screen" προσθέτουμε τα εξής:

# Option "AddARGBGLXVisuals" "true"

Αυτό το είδαμε παραπάνω και θα εξηγηθεί τώρα.

Είναι μία γραμμή που τα beryl & compiz-fusion την χρειάζονται, απλά σε διαφορετικό Section.

Άρα λοιπόν για κάθε 3D desktop θα πρέπει να την ενεργοποιήσουμε σε διαφορετικό Section:

για beryl
στο Section"Device"

για compiz-fusion
στο Section"Screen"