Σελίδα 1 από 1

Dual AMD κάρτες - Optimus - Ubuntu

ΔημοσίευσηΔημοσιεύτηκε: 27 Ιουν 2013, 13:08
από sotos21
Θα δούμε πως δουλεύει το optimus σε σύστημα με δύο κάρτες ΑΜD.
Πρώτα τσεκάρουμε αν βλέπει το σύστημα τις δύο κάρτες(αν υπάρχει πυρήνας 3.10 ή έχουμε το 13.10 ubuntu είμαστε o.k.)
δίνοντας
Κώδικας: Επιλογή όλων
xrandr --listproviders

Π.χ. στο δικό μου δίνει
Κώδικας: Επιλογή όλων
sotiris@sotiris-HP-G62-Notebook-PC:~$ xrandr --listproviders
Providers: number : 3
Provider 0: id: 0x7b cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 2 outputs: 3 associated providers: 2 name:radeon
Provider 1: id: 0x46 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 4 outputs: 3 associated providers: 2 name:radeon
Provider 2: id: 0x46 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 4 outputs: 3 associated providers: 2 name:radeon
sotiris@sotiris-HP-G62-Notebook-PC:~$

Μετά δίνουμε
Κώδικας: Επιλογή όλων
xrandr --setprovideroffloadsink 1 0

και τέλος. Ότι εφαρμογή δώσουμε από εδώ και μπρος(ακόμα και μετά από επανεκκίνηση) με το πρόθεμα DRI_PRIME=1 θα ξεκινάει με την ξεχωριστή κάρτα που μέχρι τώρα κοιμότανε με τους ανοικτούς οδηγούς.
Π.χ. σκέτη η
Κώδικας: Επιλογή όλων
glxinfo | grep OpenGL
δίνει σε εμένα
Κώδικας: Επιλογή όλων
sotiris@sotiris-HP-G62-Notebook-PC:~$ glxinfo | grep OpenGL
OpenGL vendor string: X.Org
OpenGL renderer string: Gallium 0.4 on AMD RS880
OpenGL version string: 3.0 Mesa 9.2.0-devel
OpenGL shading language version string: 1.30
OpenGL extensions:
sotiris@sotiris-HP-G62-Notebook-PC:~$

Δίνοντας την με DRI_PRIME=1 δίνει
Κώδικας: Επιλογή όλων
sotiris@sotiris-HP-G62-Notebook-PC:~$ DRI_PRIME=1 glxinfo | grep OpenGL
OpenGL vendor string: X.Org
OpenGL renderer string: Gallium 0.4 on AMD CEDAR
OpenGL version string: 3.0 Mesa 9.2.0-devel
OpenGL shading language version string: 1.30
OpenGL extensions:
sotiris@sotiris-HP-G62-Notebook-PC:~$

Το σκεπτικό από εδώ και πέρα είναι το ίδιο με το Bumblebee, αντί για optirun όμως δίνουμε DRI_PRIME=1
Π.χ.
Κώδικας: Επιλογή όλων
DRI_PRIME=1 firefox

Re: Dual AMD κάρτες - Optimus - Ubuntu

ΔημοσίευσηΔημοσιεύτηκε: 09 Ιούλ 2013, 23:09
από sotos21
Ξεκίνησα δημιουργώντας εκκινητές στο launcher με εντολή DRI_PRIME=1 και το όνομα της εφαρμογής που θέλω να ανοίγει με την ξεχωριστή κάρτα(vlc, παιχνίδια κλπ) και πρόσθεσα άλλο ένα εκκινητή για τον firefox με διαφορετικό εικονίδιο για να τον ανοίγω όταν χρειάζεται(on line game, video υψηλής ανάλυσης) με την ξεχωριστή κάρτα.
Το πρόβλημα μου είναι ότι έκανα άλλους δύο εκκινητές για να ενεργοποιώ και να απενεργοποιώ on the fly την μεγάλη κάρτα. Στο πεδίο εντολή έβαλα την διαδρομή για τα σκριπτάκια, τα έκανα κιόλας να μην χρειάζονται sudo, αλλά δεν φτάνει αυτό.
Η ερώτηση μου είναι τι πρέπει να γράψω μέσα στα σκριπτ για να εκτελούνται.
Οι εντολές που δίνω στο τερματικό για την ενεργοποίηση είναι
Κώδικας: Επιλογή όλων
sudo su
echo ON > /sys/kernel/debug/vgaswitcheroo/switch

Τι προτείνεται να βάλω στο σκριπτ το π.χ. sudo echo ON > /sys/kernel/debug/vgaswitcheroo/switch δεν δουλεύει ούτε σε τερματικό

Re: Dual AMD κάρτες - Optimus - Ubuntu

ΔημοσίευσηΔημοσιεύτηκε: 10 Ιούλ 2013, 07:30
από sotos21
To βρήκα
Κώδικας: Επιλογή όλων
#!/bin/bash
sudo chown sotiris /sys/kernel/debug/ && sudo chown sotiris /sys/kernel/debug/vgaswitcheroo/switch && echo ON > /sys/kernel/debug/vgaswitcheroo/switch &

Με OFF αντί για ON έκανα το άλλο για να κλείνω την κάρτα.
Ίσως βάλω και συντομεύσεις πληκτρολογίου.
Να τονίσω ότι η αλλαγή γίνεται άμεσα και χωρίς να τρεμοπαίξει η οθόνη.

Re: Dual AMD κάρτες - Optimus - Ubuntu

ΔημοσίευσηΔημοσιεύτηκε: 16 Ιούλ 2013, 00:36
από sotos21
Συνεχίζω το θέμα για να σας μεταφέρω εντυπώσεις.
Δεν μπορώ να πω κάτι άλλο παρά ένα τεράστιο ΕΥΓΕ στους προγραμματιστές και του πυρήνα και της AMD.
Έχουν ζωγραφίσει με 0 και 1 πάνω στο computer.
Για να καταλάβετε τις διαφορές, πρέπει να εξηγήσω πως δουλεύουν οι κλειστοί οδηγοί στο linux και στα win.
Καταρχήν η επιλογή της κάρτας(ή θα έχω μόνο την ολοκληρωμένη ή και τις δύο μαζί) γίνεται από το catalyst και χρειάζεται στο linux αποσύνδεση-επανασύνδεση και στα win να αναβοσβήσει 3 με 4 φορές η οθόνη και στις δύο περιπτώσεις πρέπει να έχουμε κλείσει ότι προγράμματα είχαμε ανοιχτά.
Εδώ απλώς πατάω το εικονίδιο στον launcher(ή την συντόμευση στο πληκτρολόγιο) και τέλος, ούτε που παρατηρώ άλλη διαφορά, ούτε χρειάζεται να κλείσω τίποτα.
Έστω ότι είμαι με ενεργές και τις δύο, το κόστος σε ρεύμα και θερμοκρασίες είναι μηδαμινό π.χ. 1 βαθμός παραπάνω θερμοκρασίας έναντι 4-5 σε win και κλειστούς.
Είναι το λεγόμενο ZERO που υπάρχει από τον (νομίζω) 3.9 πυρήνα, Δηλαδή στις συσκευές που είναι ενεργές αλλά δεν χρησιμοποιούνται, μηδενίζεται σχεδόν το ρεύμα. (όχι μόνο στις κάρτες αλλά σε όλες π.χ. dvd-player, δεύτερος σκληρός κλπ)
Το πιο ωραίο από όλα είναι η σωστή χρησιμοποίηση της ξεχωριστής κάρτας που μέχρι τώρα σε κλειστούς και win δούλευαν παράλληλα ανεβάζοντας αχρείαστα την κατανάλωση και τις θερμοκρασίες, τώρα και να την επιλέξεις να πεις δηλαδή ότι θέλω η συγκεκριμένη εφαρμογή να ανοίξει με την μεγάλη κάρτα οι καινούργιοι οδηγοί θα σε γράψουν κανονικά και θα την ανοίξουν με την μικρή, μόλις όμως υπάρξει απαίτηση από την εφαρμογή για γραφικά, αυτά και μόνο αυτά θα αναλάβει η μεγάλη, δίνοντας με αυτόν τον τρόπο όλη την επεξεργαστική της ισχύ εκεί που απαιτείται.(αφού όλα τα υπόλοιπα τα καταφέρνει οικονομικότερα η μικρή)
Θα γίνω πιο κατανοητός με ένα παράδειγμα.
Ανοίγω τον firefox με την
Κώδικας: Επιλογή όλων
DRI_PRIME=1 firefox

έτσι ώστε να ανοίξει με την μεγάλη κάρτα (δεν είναι ανάγκη να το κάνω με τερματικό, μπορώ και από το εικονίδιο του launcher όπως έγραψα σε προηγούμενο post)
Ανοίγω ένα τερματικό και δίνω την
Κώδικας: Επιλογή όλων
sudo radeontop
για να παρακολουθώ τα ρολόγια και τον φόρτο της μικρής και την
Κώδικας: Επιλογή όλων
sudo radeontop -b 2
για την μεγάλη.
Αποτέλεσμα είναι ότι όσες ιστοσελίδες και αν ανοίξω η αν κουνάω με το ποντίκι τον firefox τα ρολόγια και ο φόρτος της μεγάλης θα είναι όλα ZERO, μόλις όμως πάω π.χ. εδώ http://sinisterchipmunk.github.io/dungeon.html που απαιτούνται γραφικά, αμέσως ξυπνάει η μεγάλη. Έχω την εντύπωση, διορθώστε με αν κάνω λάθος, ότι η τεχνολογία nvidia-optimus δεν το έχει αυτό και αν ανοίξεις κάτι με την nvidia τότε θα ανοίξει με αυτήν και όχι την intel.

Re: Dual AMD κάρτες - Optimus - Ubuntu

ΔημοσίευσηΔημοσιεύτηκε: 01 Απρ 2014, 18:57
από madvinegar
Κώδικας: Επιλογή όλων
τώρα και να την επιλέξεις να πεις δηλαδή ότι θέλω η συγκεκριμένη εφαρμογή να ανοίξει με την μεγάλη κάρτα οι καινούργιοι οδηγοί θα σε γράψουν κανονικά και θα την ανοίξουν με την μικρή, μόλις όμως υπάρξει απαίτηση από την εφαρμογή για γραφικά, αυτά και μόνο αυτά θα αναλάβει η μεγάλη, δίνοντας με αυτόν τον τρόπο όλη την επεξεργαστική της ισχύ εκεί που απαιτείται.(αφού όλα τα υπόλοιπα τα καταφέρνει οικονομικότερα η μικρή)


Σωτηρη να κανω μια ερωτηση? Δεν εχω τετοιο συστημα, απλα διαβασα με ενδιαφερον τα παραπανω σχόλια σου, οποτε μπορει να μη γινεται και αυτο που προτείνω.

Εφόσον ακομα και αν ενεργοποιηθεί η μεγάλη καρτα, (που πολύ σωστα δεν αρχίζει να χρησιμοποιείται αυτόματα αλλά παρα μονο αν απαιτηθεί απο το προγραμμα που εχεις ανοιξει, αρα και δεν σου καταναλωνει οπως λες πορους ή ανεβαζει την θερμοκρασία ασκοπα), γιατι δεν την ενεργοποιείς μονιμα απο την εκκινηση του υπολογιστή?

Δλδ, πχ αν αυτη η παραμετρος που λες μπει στο /etc/default/grub, τί διαφορά θα έχει?

Με λιγα λόγια, να ειναι μονιμα ενεργοποιημένη η μεγαλη, αλλα τα προγραμματα που ανοιγεις να χρησιμοποιούν τη μικρή, μέχρι που θα απαιτηθούν βαρυτερα γραφικά και οπότε θα μπαινει η μεγαλη αυτοματα. (ειδικά και με τον πυρηνα της 14.04 που κλεινει αυτοματα την μεγαλη καρτα).

Γινεται κατι τετοιο ή λεω μπουρδες?

Re: Dual AMD κάρτες - Optimus - Ubuntu

ΔημοσίευσηΔημοσιεύτηκε: 01 Απρ 2014, 19:44
από sotos21
madvinegar έγραψε:Με λιγα λόγια, να ειναι μονιμα ενεργοποιημένη η μεγαλη, αλλα τα προγραμματα που ανοιγεις να χρησιμοποιούν τη μικρή, μέχρι που θα απαιτηθούν βαρυτερα γραφικά και οπότε θα μπαινει η μεγαλη αυτοματα. (ειδικά και με τον πυρηνα της 14.04 που κλεινει αυτοματα την μεγαλη καρτα).

Επειδή με τρέλανες λίγο κάτσε να το κάνω πιο απλό.
Γράφεις αντίθετα πράγματα
"να ειναι μονιμα ενεργοποιημένη η μεγαλη" VS "που κλεινει αυτοματα την μεγαλη καρτα"
Όλη η ιστορία είναι η μεγάλη κάρτα να είναι μόνιμα κλειστή γιατί με το που απλά υπάρχει καταναλώνει ρεύμα και ζεσταίνει το λάπτοπ, εκτός από την περίπτωση που χρειάζονται γραφικά.
Τι πιο απλό λοιπόν από το να φτιάξουμε 4-5 εκκινητές στο launcher με π.χ browser, δύο τρία παιχνίδια ίσως κάποια εφαρμογή που απαιτεί γραφικά όπως photoshop και τέλος ένα player μήπως δούμε κανένα 1080p video.
Εδώ έχει φτιάξει οδηγό ο επίτιμος https://forum.ubuntu-gr.org/viewtopic.php?f=9&t=22896 για τους εκκινητές.
Στο Exec= βάζουμε π.χ. DRI_PRIME=1 vlc
Η παράμετρος είναι πολύ απλή σε όσους θέλουν αυτό που λες
radeon.runpm=0 στο /etc/default/grub και μένει μόνιμα ανοικτή η μεγάλη χωρίς όμως να κάνει τίποτα.
Πάλι θέλει DRI_PRIME=1 και την εφαρμογή για να ξεκινήσει κάτι με την μεγάλη.
Κάπου είχα διαβάσει να έχουμε επιλογή στο login για να ξεκινούν τα πάντα με την μεγάλη, αν ενδιαφέρεσαι να το ψάξω.

Re: Dual AMD κάρτες - Optimus - Ubuntu

ΔημοσίευσηΔημοσιεύτηκε: 01 Απρ 2014, 20:09
από madvinegar
sotos21 έγραψε:Γράφεις αντίθετα πράγματα
"να ειναι μονιμα ενεργοποιημένη η μεγαλη" VS "που κλεινει αυτοματα την μεγαλη καρτα"

Οταν εγραψα να κλεινει η μεγαλη εννοούσα να ειναι σε "υπνωση" οπως περιπγραφεις (και να δουλευει η μικρη) μεχρι να απαιτηθουν βαρυτερα γραφικα. Σορρυ που δεν το εθεσα σωστα.


Όλη η ιστορία είναι η μεγάλη κάρτα να είναι μόνιμα κλειστή γιατί με το που απλά υπάρχει καταναλώνει ρεύμα και ζεσταίνει το λάπτοπ, εκτός από την περίπτωση που χρειάζονται γραφικά.

Δεν εγραψες πως ειναι ελαχιστη η επιβαρυνση σε cpu και θερμοκρασία?

Η παράμετρος είναι πολύ απλή σε όσους θέλουν αυτό που λες
radeon.runpm=0 στο /etc/default/grub και μένει μόνιμα ανοικτή η μεγάλη χωρίς όμως να κάνει τίποτα.
Πάλι θέλει DRI_PRIME=1 και την εφαρμογή για να ξεκινήσει κάτι με την μεγάλη.

Αυτο δεν ηξερα. Νομιζα πως αν εμπαινε μονιμα η παραμετρος στον grub θα ανοιγανε ολα τα προγραμματα με τη μεγαλη χωρις να προσθετεις το dri_prime=1 πριν απο καθε εφαρμογη.

Κάπου είχα διαβάσει να έχουμε επιλογή στο login για να ξεκινούν τα πάντα με την μεγάλη, αν ενδιαφέρεσαι να το ψάξω.

Θα δουλευει οπως περιγραφω? Δλδ να δουλευει η μικρη (στο παρασκήνιο η μεγαλη) και θα μπαινει η μεγαλη μονο οταν χρειαζεται? (και ολα αυτα με ελαχιστη επιβαρυνση σε θερμοκρασία και cpu?)

Re: Dual AMD κάρτες - Optimus - Ubuntu

ΔημοσίευσηΔημοσιεύτηκε: 01 Απρ 2014, 20:47
από sotos21
madvinegar έγραψε:Θα δουλευει οπως περιγραφω? Δλδ να δουλευει η μικρη (στο παρασκήνιο η μεγαλη) και θα μπαινει η μεγαλη μονο οταν χρειαζεται? (και ολα αυτα με ελαχιστη επιβαρυνση σε θερμοκρασία και cpu?)

Όχι
Καταρχήν πουθενά δεν έγραψα για επιβάρυνση cpu αλλά για ρεύμα(μπαταρία)
Πρόσεχε πως θα δουλεύει.
Θα είναι ενεργές και οι δύο κάρτες, η μικρή για να κρατάει το γραφικό περιβάλλον και η μεγάλη για την απόδοση, σε hybrid crossfire. Έξοδο στην οθόνη έχει μόνο η "μικρή" και η δουλειά της "μεγάλης" είναι να επεξεργάζεται το σήμα και να το στέλνει έτοιμο στην μικρή, η οποία με την σειρά της το στέλνει στην οθόνη.
Έτσι δουλεύουν οι κλειστοί και τα windows.
Ξαναγράφω πως δουλεύουν οι ανοικτοί.
Μόνο η μικρή είναι ενεργή, όταν επιλέξουμε την μεγάλη ξεκινάει η εφαρμογή με την μικρή και μόλις υπάρξει απαίτηση για γραφικά ξεκινάει η μεγάλη για να επεξεργαστή το σήμα, μόλις τελειώσει αυτή η απαίτηση ακόμα και αν δεν κλείσουμε την εφαρμογή κλείνει η μεγάλη.
Παράδειγμα
Ξεκινάμε τον firefox με την μεγάλη.
Ανοίγει με την μικρή.
Πάμε μεταξύ άλλων ιστοσελίδων και στο youtube για να δούμε ένα βίντεο.
Μόλις ξεκινήσει το βίντεο ξεκινάει η μεγάλη, αν πατήσεις παύση και 100 καρτέλες να έχεις ανοικτές σταματάει η μεγάλη.

Re: Dual AMD κάρτες - Optimus - Ubuntu

ΔημοσίευσηΔημοσιεύτηκε: 01 Απρ 2014, 21:16
από madvinegar
Ok. Οπότε η καλυτερη λυση ειναι οπως λες να προσθετεις την παραμετρο μονο στα προγραμματα που θελεις.

Re: Dual AMD κάρτες - Optimus - Ubuntu

ΔημοσίευσηΔημοσιεύτηκε: 01 Απρ 2014, 21:47
από sotos21
sotos21 έγραψε:Κάπου είχα διαβάσει να έχουμε επιλογή στο login για να ξεκινούν τα πάντα με την μεγάλη, αν ενδιαφέρεσαι να το ψάξω.

Eδώ ήταν
http://osarena.net/hacks-guides/pos-na-dimiourgisete-mia-nvidia-kde-session-gia-vumblebee-christes.html