Δημοσιεύτηκε: 01 Νοέμ 2012, 12:46
από savor13
sotos21 έγραψε:Εγκατάσταση των κλειστών οδηγών με δημιουργία πακέτων .deb

Μετά από το τρίτο κρούσμα σε μια εβδομάδα, από μέλη του forum που δήλωναν, ότι δεν μπορούν να μπουν σε γραφικό περιβάλλον, μετά από ενημερώσεις που έκαναν και έχοντας ένα κοινό χαρακτηριστικό, ότι είχαν εγκατεστημένους τους κλειστούς οδηγούς της κάρτας γραφικών, όχι από τον προτεινόμενο τρόπο(jockey) αλλά τρέχοντας το αρχείο .run που κατέβασαν, είπα να γράψω ένα σωστότερο τρόπο.
Καταρχήν να υπενθυμίσω ότι το ubuntu είναι διανομή debian(από τα αρχικά Debra + Ian),
που σημαίνει ότι η εγκατάσταση τέτοιων πακέτων είναι ομαλότερη για το σύστημα, δηλαδή τρέχοντας ένα αρχείο .run π.χ. δεν ενημερώνεται το σύστημα ότι έχει το συγκεκριμένο πακέτο, με αποτέλεσμα σε τυχόν ενημερώσεις να διαγράφονται αρχεία που θεωρούνται περιττά, να μπαίνουν και άλλα μαζί, να γίνεται στην ουσία ένας μύλος.
Πάμε λοιπόν πριν πούμε πως να φτιάξουμε τα .deb, να υπενθυμίσουμε ότι ο προτεινόμενος τρόπος για εγκατάσταση(όχι όμως και για απεγκατάσταση, αφήνει αρχεία πίσω του, που επηρεάζουν το σύστημα ή διαγράφει άλλα που είναι απαραίτητα) είναι μέσω του "Πρόσθετοι οδηγοί υλικού".
Αν εγκαθιστούμε για πρώτη φορά κλειστούς οδηγούς τότε τα παρακάτω δύο βήματα δεν σας χρειάζονται, ξεκινήστε από το τρίτο
UBUNTU 12.04
Πρώτα λοιπόν η απεγκατάσταση(που έχει την μεγαλύτερη σημασία όχι μόνο στο linux αλλά και στα windows) που εξαρτάται, από το πως έγινε η εγκατάσταση.
1) Αν έχουμε εγκαταστήσει τους κλειστούς από το jockey ή με τον παρακάτω τρόπο(χτίζοντας .deb πακέτα ) τότε δίνουμε την παρακάτω εντολή.
Κώδικας: Επιλογή όλων
sudo apt-get remove --purge fglrx fglrx_* fglrx-amdcccle* fglrx-dev* xorg-driver-fglrx

Αν έχουμε εγκαταστήσει προηγούμενη έκδοση κλειστών με τον παρακάτω τρόπο πρέπει να διαγράψουμε, τα πακέτα .deb που είχαμε δημιουργήσει, γιατί η παραπάνω εντολή θα βγάλει σφάλμα και δεν θα προχωρήσει.
Απαντάμε yes και enter
2)Aν έχουμε εγκαταστήσει τους κλειστούς τρέχοντας το .run δίνουμε τις δύο εντολές μια μια
Κώδικας: Επιλογή όλων
sudo sh /usr/share/ati/fglrx-uninstall.sh
sudo rm -rf /etc/ati

3)Πάμε στο site της ΑMD και κατεβάζουμε τους οδηγούς που αντιστοιχούν στο υλικό που έχουμε http://support.amd.com/us/gpudownload/Pages/index.aspx
4)Αν είναι συμπιεσμένο το αποσυμπιέζουμε, έτσι ώστε να γίνει αρχείο που η κατάληξη του να είναι .run το μεταφέρουμε στον προσωπικό μας φάκελο και το κάνουμε εκτελέσιμο με την εντολή
Κώδικας: Επιλογή όλων
sudo chmod +x amd-driver-installer-( )-x86.x86_64.run
Αντί για παρένθεση, βάζουμε τον αριθμό της έκδοσης που κατεβάσαμε
5)Εγκαθιστούμε τα απαραίτητα εργαλεία για να χτίσουμε τα .deb πακέτα, δίνουμε σε τερματικό
Κώδικας: Επιλογή όλων
sudo apt-get install build-essential cdbs fakeroot dh-make debhelper debconf libstdc++6 dkms libqtgui4 wget execstack libelfg0 dh-modaliases

και αν έχουμε 64bit ubuntu δίνουμε και τις παρακάτω μια μια
Κώδικας: Επιλογή όλων
sudo apt-get install ia32-libs-multiarch:i386 lib32gcc1 libc6-i386 ia32-libs
cd /usr ; sudo ln -svT lib /usr/lib64

Η τελευταία δημιουργεί σύνδεσμο(τα περισσότερα συστήματα δεν την χρειάζονται) Αν την δώσουμε όμως επειδή θα έχουμε φύγει από τον προσωπικό φάκελο, απλά ανοίγουμε καινούργιο τερματικό.
6) Χτίζουμε τα πακέτα
Κώδικας: Επιλογή όλων
sudo sh ./amd-driver-installer-( )-x86.x86_64.run --buildpkg Ubuntu/precise

7)Εγκαθιστούμε τα πακέτα
Κώδικας: Επιλογή όλων
sudo dpkg --force-overwrite -i *.deb

Προσοχή δεν πρέπει να έχουμε άλλα .deb πακέτα στον προσωπικό φάκελο(όταν λέμε προσωπικό φάκελο εννοούμε το home/username και όχι σκέτο home)
Αν πάρουμε λάθος σταματάμε και ποστάρουμε εδώ.Αν πάρουμε όμως λάθος με την ένδειξη alternatives(εναλλακτικές λύσεις σημαίνει) όπως π.χ.
update-alternatives: warning: skip creation of /etc/OpenCL/vendors/amdocl32.icd because associated file /usr/lib/fglrx/etc/OpenCL/vendors/amdocl32.icd (of link group x86_64-linux-gnu_gl_conf) doesn't exist. Το προσπερνάμε.
8)Δημιουργούμε αρχείο Xorg.conf με την εντολή
Κώδικας: Επιλογή όλων
sudo aticonfig --initial -f

9)
Κώδικας: Επιλογή όλων
sudo reboot
και είμαστε έτοιμοι.

Απεγκατάσταση των κλειστών που εγκαταστήσαμε και επιστροφή στους ανοικτούς οδηγούς

α) Διαγράφουμε ή μετακινούμε(εκτός διανομής) τα πακέτα .deb που δημιουργήσαμε στον προσωπικό μας φάκελο, είναι απαραίτητο γιατί αλλιώς η παρακάτω εντολή θα βγάλει σφάλμα.Δίνουμε λοιπόν τις παρακάτω εντολές μια μια.
Κώδικας: Επιλογή όλων
sudo apt-get remove --purge fglrx fglrx_* fglrx-amdcccle* fglrx-dev* xorg-driver-fglrx

Κώδικας: Επιλογή όλων
sudo rm /etc/X11/xorg.conf

Κώδικας: Επιλογή όλων
sudo apt-get install --reinstall libgl1-mesa-glx libgl1-mesa-dri

Κώδικας: Επιλογή όλων
sudo dpkg-reconfigure xserver-xorg

Κώδικας: Επιλογή όλων
sudo reboot


Το παραπάνω γράφτηκε αφενός για τον λόγο που προείπα, αλλά και από απελπισία λόγω αργοπορίας της σωστής διαχείρισης ενέργειας από τους ανοικτούς.
Δήλωσε ο Bridgman που είναι προγραμματιστής και γράφει τους ανοικτούς οδηγούς(μεταξύ άλλων), ότι είναι έτοιμοι οι οδηγοί όσο αφορά την σωστή διαχείριση της ενέργειας και την απόδοση.(θα βρω την original δήλωση και θα την ποστάρω εδώ)
Αυτό είναι καλό νέο θα πει κάποιος, αλλά δεν είναι έτσι τα πράγματα, τώρα αρχίζει ο δεύτερος γολγοθάς(ο πρώτος ήταν να γραφτούνε)
Πρώτα θα τεσταριστούνε σε διάφορες διανομές-πυρήνες με πλήθος διαφορετικών σε hardware υλικό, γιατί γράφτηκαν μεν, αλλά γράφτηκαν καλά δε;
Μετά τα σκήπτρα παίρνει το νομικό τμήμα, γιατί πριν βγουν στην κυκλοφορία, πρέπει να τσεκαριστούν(γραμμή-γραμμή) αν έχουν καταπατηθεί πνευματικά δικαιώματα(να υπενθυμίσω ότι το τμήμα των κλειστών που αφορά την διαχείριση της ενέργειας είναι πολύ μεγαλύτερο από το σύνολο των ανοικτών οδηγών)
Εδώ πρέπει να πω, ότι κάθε προγραμματιστής που δουλεύει σε αντίστροφη μηχανική, υπογράφει έγραφα ότι δεν ξέρει τίποτα για τον κώδικα που πρέπει να επεξεργαστεί και αν ξέρει-χρησιμοποιήσει, καταλαβαίνεται τι παθαίνει.
Τα παραπάνω αν πάνε όλα καλά θα πάρει κοντά ένα χρόνο.
Μετά είναι θέμα προγραμματιστών πυρήνα, θα τους συμπεριλάβουν στον kernel που επεξεργάζονται εκείνη την χρονική στιγμή ή στον επόμενο;
Ερχόμαστε σιγά σιγά στην canonical, θα συμπεριλάβει τον kernel στην διανομή που τεστάρει εκείνη την στιγμή ή στην επόμενη;
Επειδή έχουμε στην καλύτερη των περιπτώσεων 1,5 χρόνο ακόμα, θα χρειαστούμε δυστυχώς τους κλειστούς.

Edit Aν έχετε τους κλειστούς εγκαταστήστε το xvba-va-driver αφορά την αποκωδικοποίηση βίντεο.
Κώδικας: Επιλογή όλων
sudo apt-get install xvba-va-driver

Αν έχετε εγκαταστήσει τους κλειστούς τρέχοντας το .run, η παραπάνω εντολή θα σας έλεγε, ότι "δεν γίνετε να εγκατασταθεί γιατί εξαρτάται
από το fglrx το οποίο δεν γίνεται να εγκατασταθεί" άλλα αντί άλλων δηλαδή γιαυτό επιμένω ότι είναι λάθος ο τρόπος εγκατάστασης τρέχοντας το αρχείο .run.
Edit2 Απο αυτή την ιστοσελίδα πήρα τα περισσότερα http://wiki.cchtml.com/index.php/Ubuntu_Precise_Installation_Guide


Καλημέρα και καλό μήνα. Για την 12.10 που έχω στον δεύτερο σκληρό μου, ιχύουν τα παραπάνω?