ALSA - aktualizacja dzięki jednej komendzie

Przydało się?

Nie
112
80%
Nie
28
20%
 
Liczba głosów: 140
Awatar użytkownika
Ari
Sędziwy Jeż
Sędziwy Jeż
Posty: 92
Rejestracja: 12 lut 2007, 16:37
Płeć: Mężczyzna
Wersja Ubuntu: 13.04
Środowisko graficzne: KDE4
Architektura: x86

ALSA - aktualizacja dzięki jednej komendzie

Post autor: Ari » 24 mar 2008, 17:16

Często przy aktualizacji jądra systemu przestaje działać dźwięk. Użytkownicy łapią się wtedy za głowy i czym prędzej szukają rozwiązania na forum.ubuntu. Sam też nieraz miałem 'starcie' z tym problemem i postanowiłem napisać skrypt, który będzie sam aktualizował ALSĘ, dzięki czemu dźwięk w naszych głośnikach powróci. Cała filozofia sprowadza się do wpisania tylko jednej komendy! No i... trzeba wejść na stronę projektu alsy, aby sprawdzić najnowszą wersję :)
Otwieramy konsolę (terminal) i wpisujemy:
Dla użytkowników GNOME:

Kod: Zaznacz cały

sudo gedit /usr/bin/update-alsa
Dla użytkowników KDE:

Kod: Zaznacz cały

sudo kate /usr/bin/update-alsa
i wklejamy poniższy kod:

Kod: Zaznacz cały

#!/bin/bash
function quest
{
echo " "
echo " "
echo "Jakiego środowiska graficznego?"
echo "Jeśli GNOME kliknij 1"
echo "Jeśli KDE kliknij 2"
echo "Jeśli KDE4 kliknij 3"
echo "Inne kliknij 4"
read -n 1 graf

case "$graf" in
  "1") echo "" ; echo "Czyli używasz GNOME. Instaluję mixer..." ; sudo apt-get install gnome-alsamixer ;; 
  "2") echo "" ; echo "Czyli używasz KDE. Instaluję mixer..." ; sudo apt-get install kmix ;;
  "3") echo "" ; echo "Czyli używasz KDE4. Instaluję mixer..." ; sudo apt-get install kmix-kde4 ;;
  "4") echo "" ; echo "Przechodzę do dalszych zadań..." ;;
  *) echo "" ; echo "Podałeś złą cyfrę!" ; quest
esac
}

function instalacja
{
sudo apt-get install tar wget build-essential linux-headers-`uname -r` libncurses5-dev gettext gcc libgcc1
sudo /etc/init.d/alsasound stop
cd ~/alsa
# driver
if [ -e $d ]; then
   rm -Rf $d
   sudo rm -Rf alsa-driver-$w
   wget -c ftp://ftp.alsa-project.org/pub/driver/$d
   $r $d
else
   wget -c ftp://ftp.alsa-project.org/pub/driver/$d
   $r $d
fi
# lib
if [ -e $l ]; then
   rm -Rf $l
   sudo rm -Rf alsa-lib-$w
   wget -c ftp://ftp.alsa-project.org/pub/lib/$l
   $r $l
else
   wget -c ftp://ftp.alsa-project.org/pub/lib/$l
   $r $l
fi
# utils
if [ -e $u ]; then
   rm -Rf $u
   sudo rm -Rf alsa-utils-$w
   wget -c ftp://ftp.alsa-project.org/pub/utils/$u
   $r $u
else
   wget -c ftp://ftp.alsa-project.org/pub/utils/$u
   $r $u
fi

if [ -d ~/alsa/alsa-driver-$w ]; then
cd ~/alsa/alsa-driver-$w
./configure
make
sudo make install
sudo ./snddevices
else
   echo $k
   echo "$e2 alsa-driver-$w. $e"
   echo $k
   sleep 10
fi

if [ -d ~/alsa/alsa-lib-$w ]; then
cd ~/alsa/alsa-lib-$w
./configure
make
sudo make install
else
   echo $k
   echo "$e2 alsa-lib-$w. $e"
   echo $k
   sleep 10
fi

if [ -d ~/alsa/alsa-utils-$w ]; then
cd ~/alsa/alsa-utils-$w
./configure
make
sudo make install
else
   echo $k
   echo "$e2 alsa-lib-$w. $e"
   echo $k
   sleep 10
fi

sudo cp -v /lib/modules/`uname -r`/kernel/sound/pci/hda/snd-hda-intel.ko /lib/modules/`uname -r`/ubuntu/media/snd-hda-intel/snd-hda-intel.ko
sudo cp -v ~/alsa/alsa-driver-$w/modules/* /lib/modules/`uname -r`/kernel/sound/
sudo alsaconf
sudo depmod -a
sudo /etc/init.d/alsasound start
quest
echo " "
echo " "
echo "Gratulacje! Alsa została zaaktualizowana do wersji $w. Proszę nie usuwać katalogu $HOME/alsa !!! Jeśli nie będziesz miał dźwięku lub będzie zbyt cicho to pobaw się suwakami w jakimś mixerze systemowym."
echo " "
echo " "
}

echo "Update Alsa by Ari"
sleep 2
s="http://alsa-project.org w tabeli Current Version"
r="tar -xjf"
k="..................."
e="Być może wystąpił błąd przy pobieraniu lub źle podałeś wersję! Sprawdź dokładnie na stronie $s. Jeśli jest to wersja stabilna np. 1.0.16 to wpisz 1.0.16, a jeżeli jest to wersja rc np. 1.0.16rc3 to wpisz 1.0.16rc3"
e2="Nie odnalazłem któregoś z plików!"
i="Instaluję źródla Alsy do $HOME/alsa"
echo "Witaj $USER. Podaj najnowszą wersję Alsy przykładowo 1.0.16. Możesz ją sprawdzić na stronie $s"
read w
d="alsa-driver-$w.tar.bz2"
l="alsa-lib-$w.tar.bz2"
u="alsa-utils-$w.tar.bz2"
echo "Aktualizuję Alsę do wersji $w."
echo "Gdy pojawi się niebieskie okno konfiguracji, kliknij [ENTER] < OK >,  następnie wybierz swoją kartę dźwiękową i wciśnij [ENTER] < OK >, potem znowu [ENTER] < TAK > , [ENTER] < OK >, [ENTER] < TAK >."
sleep 15
if [ -d ~/alsa ]; then
   echo $i
   sleep 2
   instalacja
else
   mkdir ~/alsa
   echo $i
   sleep 2
   instalacja
fi
Po wklejeniu kodu i zapisaniu dokumentu wpisujemy do terminala:

Kod: Zaznacz cały

sudo chmod +x /usr/bin/update-alsa
Aby wywołać skrypt wpisujemy do terminala (konsoli):

Kod: Zaznacz cały

update-alsa
Można też pobrać skrypt z załącznika i jako root (sudo) skopiować do /usr/bin/ jako update-alsa. W razie pytań lub problemów, pisać na pm lub gg.

Adnotacja dla posiadaczy kart SB AUDIGY 2 od użytkownika Mattatyach
Być może pomocną będzie informacja dla użytkowników SB AUDIGY 2 - bo często pojawiają się pytania o tą kartę - że po instalacji nie wystarczy tylko ustawić suwaki do góry, ale również w "regulacji głośności" (GNOME) na zakładce "przełączniki" zaznaczyć "Audigy analog/digital OutPut Jack" i odznaczyć "IEC958 Optical Raw" no chyba że ktoś używa.

Objawy:
Zanim to zrobiłem nie było kompletnie dźwięku. a gdy był ustawiony IEC958 Optical Raw nie działały przednie głośniki tylko center i surroundy.
ODPOWIEDZ

Wróć do „Hardware-Multimedia”