Δημοσιεύτηκε: 17 Ιουν 2013, 00:02
από Learner

Ο παρακάτω οδηγός είναι πιστό αντίγραφο του οδηγού που δημοσίευσε το μέλος kami84gr στο osarena-forums


:arrow: Περιεχόμενα



Εισαγωγή:

Από τότε που η Intel παρουσίασε την 2η γενιά icore επεξεργαστών της (Sandy-Bridge) και τώρα με την 3η γενιά (Ivy-Bridge) με ενσωματωμένη GPU , πάρα πολλοί κατασκευαστές φορητών υπολογιστών έσπευσαν να παρουσιάσουν τις υλοποιήσεις των προϊόντων τους με τους νέους αυτούς επεξεργαστές χαμηλής κατανάλωσης και αυξημένων επιδόσεων.

Το πρόβλημα για τους κατασκευαστές εντοπίζεται στο ότι οι ενσωματωμένες κάρτες γραφικών δεν είναι αρκετά δυνατές για να καλύψουν τις ανάγκες για γραφικά υψηλών απαιτήσεων που ζητούν οι χρήστες από ένα σύγχρονο σύστημα.
Η λύση δόθηκε με την εισαγωγή μια δεύτερης κάρτας γραφικών στα notebook που φέρουν αυτούς τους επεξεργαστές και με την επιλογή μέσω του bios για το ποια από τις 2 κάρτες γραφικών επιθυμεί ο χρήστης να χρησιμοποιήσει.
Αν και η προσάρτηση μιας 2ης high powered GPU στο σύστημα λύνει το πρόβλημα των επιδόσεων , ο τρόπος επιλογής της κάρτας μέσω του bios , είτε με ερώτηση κατά το boot-time , είτε με το χέρι μέσω από το bios menu αποδείχθηκε μη πρακτικός αλλά και κοστοβόρος καθώς για τον οποιοδήποτε συνδυασμό hardware επέλεγε ο κατασκευαστής , έπρεπε να φτιάξει/τροποποιήσει τη μητρική κάρτα καθώς και το bios ώστε να υποστηρίζει αυτό τον μηχανισμό. Περιττό να πούμε ότι ελάχιστα μοντέλα είδαν το φως της αγοράς με αυτό το σχεδιασμό.

Η λύση δόθηκε από τους 2 μεγάλους κατασκευαστές GPUs , την Nvidia και την AMD , και τις ξεχωριστές υλοποιήσεις τους σε μια ήδη υπάρχουσα τεχνολογία που λέγεται “Υβριδικά Γραφικά”.

Τι είναι τα υβριδικά γραφικά:

Εν ολίγοις είναι μια software λύση σε ένα hardware πρόβλημα... πιο αναλυτικά:

Το σύστημα by default χρησιμοποιεί την ενσωματωμένη GPU του επεξεργαστή και όταν αυτό εντοπίσει την ανάγκη για περισσότερη δύναμη στα γραφικά μπαίνει σε λειτουργία η δεύτερη κάρτα η οποία επεξεργάζεται την εικόνα σε ένα ξεχωριστό (κρυφό) buffer και προβάλει την εικόνα που επεξεργάστηκε μέσω της ενσωματωμένης κάρτας η οποία είναι η μόνη που έχει πρόσβαση στην οθόνη του laptop.
Αυτό όλο για να λειτουργήσει απαιτούνται ειδικοί proprietary drivers για την δεύτερη κάρτα γραφικών τους οποίους και οι δύο εταιρίες έβγαλαν μόνο για το λειτουργικό σύστημα της Microsoft κρεμώντας έτσι τους χρήστες άλλων λειτουργικών και με την Νvidia να φτάνει να δηλώνει πως (δήθεν) είναι αδύνατον να λειτουργήσει το σύστημα υβριδικών γραφικών της με την κωδική ονομασία Οptimus σε linux!!!

Το Nvidia Optimus είναι μια τεχνολογία που χρησιμοποιείται για να αυξάνει τη διάρκεια ζωής της μπαταρίας, κάνοντας εναλλαγή ανάμεσα σε δυο ανταπτορες γραφικών (έννα χαμηλής απόδοσης ενσωματωμένο προσαρμογέα γραφικών Intel και έναν υψηλής απόδοσης από Nvidia) μέσα σε ένα σύστημα υπολογιστή.
Το Optimus GPU αλλαγή switching υποστηρίζεται μόνο στα Windows, αλλά είναι επίσης ανεπίσημα διαθέσιμο για Linux, χάρη στο Bumblebee project.

Η πλειοψηφία των αγοραστών τέτοιων notebooks με εγκατεστημένο το λειτουργικό της Microsoft δεν γνωρίζουν για αυτό τον μηχανισμό που λαμβάνει δράση στο σύστημά τους και είναι λογικό καθώς η όλη διαδικασία είναι αόρατη προς τον χρήστη ο οποίος απολαμβάνει οικονομία σε μπαταρία αλλά και επιδόσεις όταν αυτές χρειάζονται.
Το πρόβλημα την υποστήριξης από την Νvidia έγινε εμφανές όταν κάποιοι χρήστες (συμπεριλαμβανομένου και εμένα) επιχείρησαν να εγκαταστήσουν την αγαπημένη τους διανομή linux στο καινούργιο τους μηχάνημά.

Αμέσως μετά την εγκατάσταση προβλήματα όπως:

  • Θόρυβος
  • Αυξημένη Θερμοκρασία
  • Χαμηλές επιδόσεις
  • και το σημαντικότερο... ελάχιστη διάρκεια μπαταρίας έγιναν ορατά.

Για καλή μας τύχη όσων έχουμε notebooks με τον συνδυασμό sandy/Ivy – bridge CPU + Nvidia Optimus enabled GPU μια ομάδα από devs της κοινότητας αφοσιώθηκαν να κάνουν δυνατό αυτό που η Nvidia χαρακτήρισε ως "αδύνατον" .
Έτσι φτιάχτηκε το project Βumblebee και χάρη σε αυτό πλέον και μπορούμε να χρησιμοποιούμε τις 2 κάρτες ταυτόχρονα, σε ξεχωριστές εφαρμογές την κάθε μία (κάτι που ούτε στα windows δεν γίνεται) , και φυσικά να κλείσουμε τελείως την nvidia κάρτα ώστε να τρέχει μόνο με η ενσωματωμένη.

Update: η Nvidia μετά από 1,5 + χρόνο και μετά από μια χειρονομία του Linus Torvalds, συνοδευόμενη από ένα κοσμητικό επίρρημα, αποφάσισε να προφέρει υποστήριξη του Optimus στο Linux , κάτι το οποίο θα χρειαστεί ένα εύλογο διάστημα για να υλοποιηθεί.
Έτσι μέχρι τότε το Bumblebee παραμένει η μοναδική λύση αξιοποίησης του Optimus Hybrid Graphics σε Linux.

Αυτά για το ιστορικό κομμάτι...τώρα στην εξήγηση γιατί αδειάζει έτσι η μπαταρία την στιγμή που δεν υπάρχουν drivers και άρα έπρεπε η κάρτα να είναι ανενεργή σωστά;
Λάθος... ο kernel αναγνωρίζει κανονικά και τις δύο κάρτες αλλά χρησιμοποιεί μόνο την ενσωματωμένη μιας και αυτή είναι συνδεδεμένη με το monitor αλλά επειδή η μία κάρτα συνδέεται με την άλλη δεν μπορεί να κλείσει αυτόματα την nvidia με αποτέλεσμα να δουλεύει από μόνη της στο background και μάλιστα στο Full!!
Έτσι έχουμε μέσα στο laptop μια high-powered κάρτα που δεν μπορούμε να χρησιμοποιήσουμε και η οποία μεταξύ άλλων ρουφάει όλη τη μπαταρία μας.

ΛΥΣΗ:

Σε Ubuntu 12.04/12.10 και τα παράγωγά του λειτουργικά αρκεί να κάνουμε μόνο τα εξής:

► Ανοίγουμε ένα terminal και δίνουμε:
Κώδικας: Επιλογή όλων
sudo add-apt-repository ppa:bumblebee/stable

πατάμε enter όταν μας προτρέψει.
► μετά δίνουμε:
Κώδικας: Επιλογή όλων
sudo apt-get update && sudo apt-get install bumblebee bumblebee-nvidia


κάνουμε reboot και μόλις τελειώσει η διαδικασία είμαστε έτοιμοι.

SOS: αν τυχόν έχουμε κάποιους nvidia drivers εγκατεστημένους πριν βάλουμε το bumblebee πρέπει να τους ΒΓΑΛΟΥΜΕ!!!

Περαιτέρω configuration (προτείνεται)

► σε terminal δίνουμε:
Κώδικας: Επιλογή όλων
sudo nano /etc/bumblebee/bumblebee.conf

► Ψάχνουμε τη γραμμή που λέει "driver=" και την αλλάζουμε σε "driver=nvidia" (χωρίς τα quotes)
μετά πιο κάτω:
Βρίσκουμε αυτή την γραμμή:
Κώδικας: Επιλογή όλων
KernelDriver=nvidia-current
Module=nvidia
PMMethod=auto

και την αλλάζουμε σε:
Κώδικας: Επιλογή όλων
KernelDriver=nvidia-current
Module=nvidia
PMMethod=bbswitch

► το ίδιο και πιο κάτω :
Αλλάζουμε αυτό:
Κώδικας: Επιλογή όλων
driver-nouveau
KernelDriver=nouveau
PMMethod=auto

σε αυτό:
Κώδικας: Επιλογή όλων
driver-nouveau
KernelDriver=nouveau
PMMethod=bbswitch


σώζουμε τώρα τις αλλαγές (ctrl+O) και βγαίνουμε (ctrl+X)

► ξανά σε terminal δίνουμε:
Κώδικας: Επιλογή όλων
sudo nano /etc/modprobe.d/bbswitch.conf

θα είναι ένα κενό αρχείο....βάζουμε την γραμμή:
Κώδικας: Επιλογή όλων
options bbswitch load_state=0 unload_state=0

► σώζουμε και βγαίνουμε με όπως και πριν και κάνουμε restart ( τσεκάρουμε τώρα τη διάρκεια της μπαταρίας μας και χαμογελάμε!)

Πως το χρησιμοποιούμε:

Στην κατάσταση που είναι ο υπολογιστής μας τώρα μετά από τα προηγούμενα βήματα η nvidia κάρτα είναι απενεργοποιημένη και χρησιμοποιείται μόνο η ενσωματωμένη.
Αν θέλουμε να τρέξουμε κάποια εφαρμογή με την nvidia κάρτα , είτε από το terminal είναι από το run menu (alt+F2) βάζουμε πριν από το όνομα της εφαρμογής τη λέξη optirun .
Θα κάνει 2-3 δευτερόλεπτα περίπου να ανοίξει η εφαρμογή που θέλουμε καθώς είναι μέχρι να πάρει μπρος η κάρτα.

► Για παράδειγμα μπορούμε να συγκρίνουμε την απόδοση της ενσωματωμένης κάρτας γραφικών δίνοντας την εντολή:
Κώδικας: Επιλογή όλων
glxspheres

► και συγκρίνουμε τώρα με την nvidia κάρτα :
Κώδικας: Επιλογή όλων
optirun glxspheres

► το ίδιο και με άλλες εφαρμογές πχ optirun firefox
► Για να ανοίξουμε το Nvidia Control Panel για να ρυθμίσουμε την κάρτα μας δίνουμε:
Κώδικας: Επιλογή όλων
optirun nvidia-settings -c :8


Μπορούμε για ευκολία σε εφαρμογές που θέλουμε να τις τρέχουμε πάντα μέσω της nvidia κάρτας να βάλουμε την εντολή στο command line του shortcut στο μενού των εφαρμογών.
Δυστυχώς ακόμα το bumblebee δεν υποστηρίζει το αυτόματο πέρασμα από την μία κάρτα στην άλλη όπως συμβαίνει στα windows (να "ευχαριστούμε" για ακόμα μια φορά την nvidia για αυτό)

Μερικά περαιτέρω kernel power tweaks:

Δεν θα δείτε μεγάλη διαφορά και ίσως κάποια συστήματα να αντιμετωπίσουν προβλήματα με αυτά αλλά είστε ελεύθεροι να τα δοκιμάσετε καθώς κάθε λεπτό επιπλέον αυτονομίας σε μπαταρία είναι σημαντικό.

► Ανοίγουμε ένα τερματικό και δίνουμε:
Κώδικας: Επιλογή όλων
sudo nano /etc/default/grub


βρίσκουμε την γραμμή:
Κώδικας: Επιλογή όλων
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

και την αλλάζουμε σε:
Κώδικας: Επιλογή όλων
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i915.i915_enable_fbc=1 i915.lvds_downclock=1 drm.vblankoffdelay=1”

σώζουμε και βγαίνουμε από τον editor και δίνουμε στο terminal
Κώδικας: Επιλογή όλων
sudo update-grub

► και κάνουμε restart τον υπολογιστή.
► Μόλις επανεκκινήσει το σύστημα και όλα λειτουργούν καλά ανοίγουμε πάλι ένα terminal και δίνουμε:
Κώδικας: Επιλογή όλων
echo SATA_ALPM_ENABLE=true | sudo tee /etc/pm/config.d/sata_alpm

► και κάνουμε πάλι restart

SOS: σε κάποια προβληματικούς Sata controllers μπορεί η ενεργοποίηση του ALPM μπορεί να προκαλέσει απώλεια δεδομένων. Ενεργοποιήστε το με δικιά σας ευθύνη και έχοντας κάνει τα απαραίτητα backup.
► Το απενεργοποιείτε δίνοντας:
Κώδικας: Επιλογή όλων
echo SATA_ALPM_ENABLE=false | sudo tee /etc/pm/config.d/sata_alpm

► και επανεκκίνηση.

Σημαντικό επίσης στην διάρκεια της μπαταρίας είναι η φωτεινότητα της οθόνης.... στο KDE και στο XFCE οι power managers τους αναγνωρίζουν αυτόματα ότι αποσυνδέθηκε το ρεύμα και χαμηλώνουν τη φωτεινότητα...
Στην εποχή του Gnome 2 o gnome-power-manager δεν είχε αυτή τη δυνατότητα και η χρήση ενός τρίτου προγράμματος όπως το Jupiter ήταν απαραίτητη για αυτή τη δουλειά.
Δεν γνωρίζω αν έχει αλλάξει η κατάσταση με τον power-manager του Gnome 3.

Στο δικό μου laptop Dell Inspiron N7110 μετά από όλα αυτά τα tweaks έχω πλέον 15 λεπτά περισσότερης αυτονομίας απ'οτι στα windows 3:30 και 3:46 ώρες αντίστοιχα.

Καλό tweaking!

Πηγή: OSArena-Forums
Αρχικός συντάκτης οδηγού: kami84gr

Creative Commons License
Η εργασία υπάγεται στην άδεια Creative Commons Αναφορά-Παρόμοια διανομή 3.0 Ελλάδα