
Η εργασία υπάγεται στην άδεια Creative Commons Αναφορά-Μη εμπορική χρήση-Παρόμοια διανομή 3.0 ΕλλάδαΕγκατάσταση των κλειστών οδηγών με δημιουργία πακέτων .deb
UBUNTU 12.04
Μετά από το τρίτο κρούσμα σε μια εβδομάδα, από μέλη του forum που δήλωναν, ότι δεν μπορούν να μπουν σε γραφικό περιβάλλον, μετά από ενημερώσεις που έκαναν και έχοντας ένα κοινό χαρακτηριστικό, ότι είχαν εγκατεστημένους τους κλειστούς οδηγούς της κάρτας γραφικών, όχι από τον προτεινόμενο τρόπο(jockey) αλλά τρέχοντας το αρχείο .run που κατέβασαν, είπα να γράψω ένα σωστότερο τρόπο.
Καταρχήν να υπενθυμίσω ότι το ubuntu είναι διανομή debian(από τα αρχικά Debra + Ian),
που σημαίνει ότι η εγκατάσταση τέτοιων πακέτων είναι ομαλότερη για το σύστημα, δηλαδή τρέχοντας ένα αρχείο .run π.χ. δεν ενημερώνεται το σύστημα ότι έχει το συγκεκριμένο πακέτο, με αποτέλεσμα σε τυχόν ενημερώσεις να διαγράφονται αρχεία που θεωρούνται περιττά, να μπαίνουν και άλλα μαζί, να γίνεται στην ουσία ένας μύλος.
Πάμε λοιπόν πριν πούμε πως να φτιάξουμε τα .deb, να υπενθυμίσουμε ότι ο προτεινόμενος τρόπος για εγκατάσταση(όχι όμως και για απεγκατάσταση, αφήνει αρχεία πίσω του, που επηρεάζουν το σύστημα ή διαγράφει άλλα που είναι απαραίτητα) είναι μέσω του "Πρόσθετοι οδηγοί υλικού".
Αν εγκαθιστούμε για πρώτη φορά κλειστούς οδηγούς τότε τα παρακάτω δύο βήματα δεν σας χρειάζονται, ξεκινήστε από το τρίτο
Πρώτα λοιπόν η απεγκατάσταση(που έχει την μεγαλύτερη σημασία όχι μόνο στο linux αλλά και στα windows) που εξαρτάται, από το πως έγινε η εγκατάσταση.
1) Αν έχουμε εγκαταστήσει τους κλειστούς από το jockey ή με τον παρακάτω τρόπο(χτίζοντας .deb πακέτα ) τότε δίνουμε την παρακάτω εντολή.
- Κώδικας: Επιλογή όλων
sudo apt-get remove --purge fglrx fglrx_* fglrx-amdcccle* fglrx-dev*
Αν έχουμε εγκαταστήσει προηγούμενη έκδοση κλειστών με τον παρακάτω τρόπο πρέπει να διαγράψουμε, τα πακέτα .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 dpkg-dev debhelper debconf dpkg libstdc++6 libqtgui4 wget execstack libelfg0 dh-modaliases linux-headers-generic dkms devscripts gcc zlib1g-dev libfreetype6-dev fontconfig libgcc1 linux-source linux-headers-$(uname -r)
και αν έχουμε 64bit ubuntu δίνουμε και τις παρακάτω μια μια
- Κώδικας: Επιλογή όλων
sudo apt-get install ia32-libs-multiarch:i386 lib32gcc1 libc6-i386 ia32-libs
sudo ln -svT lib /usr/lib64
Η τελευταία δημιουργεί σύνδεσμο(τα περισσότερα συστήματα δεν την χρειάζονται)
Πριν συνεχίσουν όσοι έχουν 32bit αρχιτεκτονική, να διαβάσουν παρακάτω για να κάνουν τα βήματα 5a,b,c,d
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
Συμπλήρωση οδηγού: Επειδή με τις καινούργιες εκδόσεις του οδηγού της AMD εμφανίστηκε ένα πρόβλημα στο κτίσιμο των πακέτων σε 32bit συστήματα, πρέπει να κάνουμε μερικές ενέργειες για να διορθώσουμε το λάθος που έρχεται στο αρχείο που κατεβάσαμε από το site της AMD.
Λοιπόν όσοι έχουν 32bit και θέλουν πρόσφατη έκδοση για τους οδηγούς, μετά το βήμα 5 συνεχίζουν
5a) Αποσυμπιέζουν το αρχείο δίνοντας
- Κώδικας: Επιλογή όλων
sh amd-driver-installer-( )-x86.x86_64.run --extract ~/amd
5b) Στον φάκελο που δημιουργήθηκε πάμε amd/packages/Ubuntu/dists/precise και αλλάζουμε στο αρχείο rules την γραμμή 242 από :
- Κώδικας: Επιλογή όλων
dh_install -p$(PKG_driver) "arch/x86_64/usr/share/ati/lib" "$(datadir)/ati"
σε
- Κώδικας: Επιλογή όλων
dh_install -p$(PKG_driver) "arch/x86/usr/share/ati/lib" "$(datadir)/ati"
Σώνουμε
5c)Μπαίνουμε στο φάκελο amd δίνοντας
- Κώδικας: Επιλογή όλων
cd ~/amd
και συνεχίζουμε με την εντολή που θα δημιουργήσει τα πακέτα στο home
- Κώδικας: Επιλογή όλων
sudo sh ./ati-installer.sh 9.012 --buildpkg Ubuntu/precise
5d)Δίνουμε την
- Κώδικας: Επιλογή όλων
cd ~/
για να βγούμε από τον φάκελο amd και να επιστρέψουμε στο home και συνεχίζουμε από το βήμα 7
Απεγκατάσταση των κλειστών που εγκαταστήσαμε και επιστροφή στους ανοικτούς οδηγούς
α) Διαγράφουμε ή μετακινούμε(εκτός διανομής) τα πακέτα .deb που δημιουργήσαμε στον προσωπικό μας φάκελο, είναι απαραίτητο γιατί αλλιώς η παρακάτω εντολή θα βγάλει σφάλμα.Δίνουμε λοιπόν τις παρακάτω εντολές μια μια.
- Κώδικας: Επιλογή όλων
sudo apt-get remove --purge fglrx fglrx_* fglrx-amdcccle* fglrx-dev*
- Κώδικας: Επιλογή όλων
sudo rm -rf /etc/ati
- Κώδικας: Επιλογή όλων
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 libva-egl1 libva-glx1
Αν έχετε εγκαταστήσει τους κλειστούς τρέχοντας το .run, η παραπάνω εντολή θα σας έλεγε, ότι "δεν γίνετε να εγκατασταθεί γιατί εξαρτάται
από το fglrx το οποίο δεν γίνεται να εγκατασταθεί" άλλα αντί άλλων δηλαδή γιαυτό επιμένω ότι είναι λάθος ο τρόπος εγκατάστασης τρέχοντας το αρχείο .run.
Edit2 Από αυτή την ιστοσελίδα πήρα τα περισσότερα http://wiki.cchtml.com/index.php/Ubuntu_Precise_Installation_Guide
Edit3 Τη λύση με το πρόβλημα στα 32bit την έδωσε ο atom heart εδώ http://forum.ubuntu-gr.org/viewtopic.php?f=37&t=25914&start=50.