ΑΥΤΗ Η ΔΗΜΟΣΙΕΥΣΗ ΕΧΕΙ ΓΙΝΕΙ ΠΑΝΩ ΑΠΟ ΕΝΑ ΧΡΟΝΟ ΠΡΙΝ!
Το παρακάτω είναι ένας οδηγός διάγνωσης και επίλυσης προβλημάτων στον ήχο, στο λειτουργικό σύστημα Ubuntu. Κυρίως αναφέρεται σε κάρτες ήχου HDA-Intel μιας και οι περισσότεροι υπολογιστές (ιδίως εκείνοι που έχουν κατασκευαστεί μετά το 2006) έρχονται με τέτοιες κάρτες ήχου.
Λάβετε υπόψιν σαν πως τα παρακάτω ισχύουν μόνον για υποστηριζόμενες εκδόσεις Ubuntu και όχι EOL εκδόσεις. Οι υποστηριζόμενες εκδόσεις αναφέρονται στην σελίδα υποστήριξης στον πίνακα (στο τέλος της σελίδας)
Διαβάστε τον παρακάτω οδηγό με την σειρά.
Περιεχόμενα
- Εγκατάσταση πακέτων και διάγνωση μέσω τερματικού
- Εγκατάσταση και εκτέλεση του διαγνωστικού alsa-info.sh
- Προσθήκη παραμέτρων στο alsa-base.conf
- Αναβάθμιση του alsa-driver
- Εγκατάσταση και χρήση του hda-jack-retask
- Μερικά πράγματα που δεν πρέπει να κάνετε
Εγκατάσταση πακέτων και διάγνωση μέσω τερματικού
Πρώτα απ’όλα γυρίστε το τερματικό σας σε απεριόριστη κύλιση(unlimited scrolling). Αφού ανοίξετε το τερματικό πατήστε το Edit(επεξεργασία)→ Profile Preferences(προτιμήσεις προφίλ)→ Scrolling(κύλιση)→ και κάντε τικ στο κουτάκι unlimited(απεριόριστη). Αυτό ισχύει για το gnome terminal που είναι προ-εγκατεστημένο σε Ubuntu. Εάν χρησιμοποιείτε κάποιο άλλο Ubuntu-based λειτουργικό, αυτό ενδέχεται να αλλάζει.
Δοκιμάστε πρώτα την παρακάτω απλή εντολή. Μετά κάντε μια επανεκκίνηση να δείτε αν διορθώθηκε το πρόβλημα.
killall pulseaudio; rm -r ~/.pulse*
Αν όχι, τότε συνεχίζετε με τη παρακάτω εντολή.
sudo add-apt-repository ppa:ubuntu-audio-dev/ppa; sudo apt-get update;sudo apt-get dist-upgrade; sudo apt-get install pavucontrol linux-sound-base alsa-base alsa-utils ubuntu-desktop linux-image-`uname -r` libasound2; sudo apt-get -y --reinstall install linux-sound-base alsa-base alsa-utils gdm ubuntu-desktop linux-image-`uname -r` libasound2; killall pulseaudio; rm -r ~/.pulse*
Η παραπάνω εντολή θα αναβαθμίσει κάποιες βιβλιοθήκες ήχου και θα τρέξει κάποιες διαγνωστικές εντολές. Τα αποτελέσματα φυλάξτε τα κάπου διότι μπορεί να χρειαστούν. Μπορείτε να τα κάνετε μια αντιγραφή και επικόλληση σε ένα αρχείο κειμένου.
Προσοχή: Η παραπάνω εντολή θα εγκαταστήσει το ubuntu-desktop. Όσοι χρησιμοποιείτε κάποιο ubuntu-based λειτουργικό με άλλο γραφικό περιβάλλον πέραν του Unity, ίσως αντιμετωπίστε προβλήματα. Καλύτερα να παραλείψετε την παραπάνω εντολή.
Η επόμενη είναι εντολή εγκατάστασης πακέτων και επίσης διάγνωσης προβλημάτων.
cat /proc/asound/{version,cards,devices,hwdep,pcm,seq/clients}; sudo rm /etc/asound.conf; sudo rm -r ~/.pulse ~/.asound* ;sudo rm ~/.pulse-cookie; sudo apt-get update; sudo apt-get install aptitude; sudo aptitude install paman gnome-alsamixer libasound2-plugins padevchooser libsdl1.2debian-pulseaudio; sudo lshw -short;ls -lart /dev/snd; cat /dev/sndstat; lspci -nn; lsusb; sudo which alsactl; sudo fuser -v /dev/dsp /dev/snd/* ; dpkg -S bin/slmodemd; dmesg | egrep 'EMU|probe|emu|ALSA|alsa|ac97|udi|snd|ound|irmware'; sudo /etc/init.d/sl-modem-daemon status; sudo grep model /etc/modprobe.d/* ; sudo dmidecode|egrep 'anufact|roduct|erial|elease'; lsmod | egrep 'snd|usb|midi|udio'; aplay -l; sudo alsa force-reload; sudo lshw -C sound
Αυτή μπορεί να εκτελεστεί και σε ubuntu-based λειτουργικά χωρίς γραφικό περιβάλλον Unity. Φυλάξτε τα αποτελέσματα της εντολής. Είναι χρήσιμα.
Εγκατάσταση και εκτέλεση του διαγνωστικού alsa-info.sh
Η εντολή που ακολουθεί θα εγκαταστήσει και θα τρέξει ένα script ονόματι alsa-info.sh. Αυτό θα δημιουργήσει μια πλήρη αναφορά για το υλικό και το λογισμικό σας σε ότι αφορά τον ήχο-κάρτες ήχου-driver.. κλπ. Τα αποτελέσματα είναι εξαιρετικά χρήσιμα. Πατήστε πρώτα το OK (Enter) και μετά επιλέξτε (με τα βελάκια) και πατήστε(Enter) στο UPLOAD/SHARE. Αυτό θα δημιουργήσει ένα URL το οποίο πρέπει να φυλάξετε.
wget -O alsa-info.sh http://www.alsa-project.org/alsa-info.sh && chmod +x ./alsa-info.sh && ./alsa-info.sh
Προσθήκη παραμέτρων στο alsa-base.conf
Από παλιά έχει επικρατήσει η άποψη πως η προσθήκη διάφορων παραμέτρων στο alsa-base.conf μπορεί να βοηθήσει σε συγκεκριμένα chip καρτών. Πράγματι αυτό ήταν αλήθεια όμως, την σημερινή εποχή αυτό θεωρείται ξεπερασμένο και μπορεί να δημιουργήσει διάφορα προβλήματα.
Η μόνη παράμετρος που μπορείτε να θέσετε και να λειτουργήσει, δηλαδή να λύσει προβλήματα, είναι η model=auto.
Οπότε μπορείτε να εκτελέστε την παρακάτω εντολή σε ένα τερματικό και να κάνετε μια επανεκκίνηση να δείτε αν έχει επιλυθεί το πρόβλημά σας.
echo 'options snd-hda-intel model=auto' | sudo tee -a /etc/modprobe.d/alsa-base.conf
Αναβάθμιση του alsa-driver
Αναβάθμιση της έκδοσης alsa μπορείτε να κάνετε προσθέτοντας στο σύστημά σας το επίσημο αποθετήριο των ubuntu-audio-developers. Να έχετε υπόψιν σας, πως όσο διατηρείται το αποθετήριο ενεργό, ότι αναβάθμιση υπάρχει θα έρχεται και θα εγκαθίσταται αυτόματα στο σύστημά σας.
Εκτελείτε τις παρακάτω εντολές
sudo apt-add-repository ppa:ubuntu-audio-dev/alsa-daily
sudo apt-get update
sudo apt-get install oem-audio-hda-daily-dkms
Προσέξτε παραπάνω ότι, αν έχετε κάποια έκδοση του Precise (12.04 LTS) η οποία είναι point release (και όχι η αρχική) πρέπει να εγκαταστήσετε άλλο (το κατάλληλο) πακέτο.
Δώστε την εντολή
uname -r
Αν το αποτέλεσμα αρχίζει από 3.2 τότε είστε εντάξει.
Αν όμως αρχίζει από 3.5 τότε η τελευταία εντολή στο παραπάνω σετ, πρέπει αν γίνει
sudo apt-get install oem-audio-hda-daily-lts-quantal-dkms
Αντίστοιχα για 3.8
sudo apt-get install oem-audio-hda-daily-lts-raring-dkms
Κάντε επανεκκίνηση για να δείτε τα αποτελέσματα.
Απεγκατάσταση μπορείτε να κάνετε με τις παρακάτω εντολές
sudo apt-get install ppa-purge
sudo apt-get remove oem-audio-hda-daily-dkms
sudo ppa-purge ppa:ubuntu-audio-dev/alsa-daily
sudo apt-get update
Κάντε επανεκκίνηση για να ολοκληρωθεί η απεγκατάσταση.
Εγκατάσταση και χρήση του hda-jack-retask
Το hda-jack-retask είναι ένα εργαλείο που έφτιαξε ένας developer του Ubuntu Audio, o David Henningsson. Είναι ένα εύκολο εργαλείο αλλαγής των tasks της κάρτας ήχου. Αυτό που κάνει μέσα από ένα απλό GUI είναι να εκμεταλλεύεται την ευελιξία του πυρήνα και των νέων καρτών ήχου και να μπορεί να αλλάξει την συμπεριφορά των καναλιών.
Για να το εγκαταστήσετε τρέξτε σε τερματικό
sudo add-apt-repository ppa:diwic/hda
sudo apt-get update;sudo apt-get dist-upgrade
sudo apt-get install hda-jack-retask
Τρέξτε το πρόγραμμα από τερματικό με την εντολή
hda-jack-retask
Όσες γραμμές θέλετε να αλλάξετε κάντε τις ovveride (τικάρετε το κουτάκι). Πατήστε το «Apply Now» για να τεστάρετε τις αλλαγές που κάνατε επί τόπου. Αν είστε ικανοποιημένοι, πατήστε το «Set as boot default».
Μερικά πράγματα που δεν πρέπει να κάνετε
- Μην προσθέσετε τον χρήστη στο group audio
- Μην κάνετε αναβάθμιση της έκδοσης Alsa, ακολουθώντας ανεπίσημες μεθόδους
- Μην διαγράφετε το pulseaudio
Το πρόβλημα που μπορεί να δημιουργηθεί με την παραπάνω ενέργεια είναι το εξής:
Ας υποθέσουμε πως ο χρήστης Νίκος έχει ένα πρόβλημα με τον ήχο. Προσθέτει τον εαυτό του στο group audio. Βλέπει πως ο ήχος είναι muted και κάνοντας τον unmute λύνει το πρόβλημα. Ξεχνά όμως πως είναι ακόμη στο audio group ή δεν γνωρίζει πως αυτό μπορεί να δημιουργήσει προβλήματα σε άλλον χρήστη.
Ο χρήστης Σωτήρης θέλει να χρησιμοποιήσει τον υπολογιστή και ο χρήστης Νίκος κάνει ένα fast switch για να αλλάξει χρήστη. Αν λοιπόν κάποια εφαρμογή όπως πχ. το pulseaudio χρησιμοποιεί τον ήχο, τότε ο χρήστης Σωτήρης απλά δεν θα έχει ήχο.
Υπάρχουν πολλά sites-forums-blogs που προτείνουν διάφορες μεθόδους, μέσω script ή άλλες, για αναβάθμιση της έκδοσης Alsa. Αυτό μπορεί να οδηγήσει σε διάφορα προβλήματα. Ο επίσημος τρόπος αναβάθμισης περιγράφεται στο Ubuntu Wiki. Επίσης μπορείτε να αναβαθμίσετε το ίδιο εύκολα και με την προθήκη αποθετηρίου όπως περιγράφουμε παραπάνω. Βασικά ο οδηγός της Alsa έρχεται ενσωματωμένος και φορτώνεται με τον πυρήνα Linux. Οπότε σε ενδεχόμενη αναβάθμιση του πυρήνα θα αναβαθμιστεί κατάλληλα και ο οδηγός. Αν παρόλα αυτά θέλετε να αναβαθμίσετε, ακολουθήστε μια από τις παραπάνω μεθόδους, μιας και εκεί χρησιμοποιείται ο σωστός τρόπος (μέσω DKMS).
Έχει επικρατήσει η άποψη πως το PulseAudio είναι αρκετά προβληματικό. Εντάξει, δεν είναι τέλειο. Τα προβλήματα του τα έχει. Η απεγκατάσταση του pulseaudio όμως, μπορεί να δημιουργήσει πολλαπλά προβλήματα καθώς έχει αρκετές εξαρτήσεις.
Αντί αυτού:
Ανοίξτε ένα τερματικό και τρέξτε
pasuspender «όνομα εφαρμογής»
Αυτή η μέθοδος θα απενεργοποιήσει προσωρινά το pulseaudio στην συγκεκριμένη εφαρμογή. Π.χ
pasuspender smplayer
Εναλλακτικά μπορείτε να απενεργοποιήσετε εντελώς το pulseaudio με τις παρακάτω εντολές
echo autospawn=no > ~/.pulse/client.conf
pulseaudio -k
Για να επαναφέρετε το pulseaudio διαγράψτε το αρχείο client.conf και ανοίξτε μια εφαρμογή που χρησιμοποιεί το pulseaudio.