wybór karty dźwiękowej w zaleźności od obecności domyślnej
- pogrom
- Sędziwy Jeż
- Posty: 60
- Rejestracja: 15 lip 2008, 15:56
- Płeć: Mężczyzna
- Wersja Ubuntu: 9.04
- Środowisko graficzne: GNOME
- Kontakt:
wybór karty dźwiękowej w zaleźności od obecności domyślnej
Mam Sound blastera Live external, którego po ciężkich bojach z ALSA i plikami konfiguracyjnymi udało mi się wykorzystać na tyle, że dźwięk leci ze wszystkich 5ciu głośników tak jak powinno być.
Kartę USB mam ustawioną jako domyślną, a tą internal jako drugą. Idealnym rozwiązaniem byłoby, gdyby Ubuntu (tak jak to robi, i tu przykład z rękawa - windows) wykrywał sobie czy karta USB jest podłączona czy nie i jakby nie była, puszczał dźwięk na głośniki systemowe lub słuchawki gdy te są podłączone.
Tymczasem niestety przy odłączonej karcie USB dźwięku z zewnętrznych głośników ani słuchawek nie ma w ogóle. Mimo, że niby w opcjach wybieram jako urządzenia audio kartę zintegrowaną.
Można temu jakoś zaradzić? Już mogę okrężną drogą jakoś się pomęczyć te parę minut z każdym razem w tę i z powrotem byle od czasu do czasu móc skorzystać z dźwięku z arty zintegrowanej.
Kartę USB mam ustawioną jako domyślną, a tą internal jako drugą. Idealnym rozwiązaniem byłoby, gdyby Ubuntu (tak jak to robi, i tu przykład z rękawa - windows) wykrywał sobie czy karta USB jest podłączona czy nie i jakby nie była, puszczał dźwięk na głośniki systemowe lub słuchawki gdy te są podłączone.
Tymczasem niestety przy odłączonej karcie USB dźwięku z zewnętrznych głośników ani słuchawek nie ma w ogóle. Mimo, że niby w opcjach wybieram jako urządzenia audio kartę zintegrowaną.
Można temu jakoś zaradzić? Już mogę okrężną drogą jakoś się pomęczyć te parę minut z każdym razem w tę i z powrotem byle od czasu do czasu móc skorzystać z dźwięku z arty zintegrowanej.
- mario_7
- Administrator
- Posty: 8656
- Rejestracja: 30 sie 2006, 13:11
- Płeć: Mężczyzna
- Wersja Ubuntu: 20.04
- Środowisko graficzne: GNOME
- Architektura: x86_64
Odp: wybór karty dźwiękowej w zaleźności od obecności domyślnej
Mam pewien pomysł, ale wcześniej podaj mi to (gdy obie karty są podłączone):
Kod: Zaznacz cały
cat /proc/asound/modules
- pogrom
- Sędziwy Jeż
- Posty: 60
- Rejestracja: 15 lip 2008, 15:56
- Płeć: Mężczyzna
- Wersja Ubuntu: 9.04
- Środowisko graficzne: GNOME
- Kontakt:
Odp: wybór karty dźwiękowej w zaleźności od obecności domyślnej
Kod: Zaznacz cały
0 snd_usb_audio
1 snd_hda_intel
- mario_7
- Administrator
- Posty: 8656
- Rejestracja: 30 sie 2006, 13:11
- Płeć: Mężczyzna
- Wersja Ubuntu: 20.04
- Środowisko graficzne: GNOME
- Architektura: x86_64
Odp: wybór karty dźwiękowej w zaleźności od obecności domyślnej
ustawiałeś w systemie kolejność kart dźwiękowych?
- pogrom
- Sędziwy Jeż
- Posty: 60
- Rejestracja: 15 lip 2008, 15:56
- Płeć: Mężczyzna
- Wersja Ubuntu: 9.04
- Środowisko graficzne: GNOME
- Kontakt:
Odp: wybór karty dźwiękowej w zaleźności od obecności domyślnej
Hmm chyba tak. Ustawiałem tą USB jako domyślną (wcześniej była jako druga) podczas batalii o jej uruchomienie w pełnym stopniu czyt. żeby wszystkie głośniki działały.
- mario_7
- Administrator
- Posty: 8656
- Rejestracja: 30 sie 2006, 13:11
- Płeć: Mężczyzna
- Wersja Ubuntu: 20.04
- Środowisko graficzne: GNOME
- Architektura: x86_64
Odp: wybór karty dźwiękowej w zaleźności od obecności domyślnej
Pokaż zawartość pliku /etc/modprobe.d/alsa-base
- pogrom
- Sędziwy Jeż
- Posty: 60
- Rejestracja: 15 lip 2008, 15:56
- Płeć: Mężczyzna
- Wersja Ubuntu: 9.04
- Środowisko graficzne: GNOME
- Kontakt:
Odp: wybór karty dźwiękowej w zaleźności od obecności domyślnej
Kod: Zaznacz cały
# autoloader aliases
install sound-slot-0 /sbin/modprobe snd-card-0
install sound-slot-1 /sbin/modprobe snd-card-1
install sound-slot-2 /sbin/modprobe snd-card-2
install sound-slot-3 /sbin/modprobe snd-card-3
install sound-slot-4 /sbin/modprobe snd-card-4
install sound-slot-5 /sbin/modprobe snd-card-5
install sound-slot-6 /sbin/modprobe snd-card-6
install sound-slot-7 /sbin/modprobe snd-card-7
# Cause optional modules to be loaded above generic modules
install snd /sbin/modprobe --ignore-install snd && { /sbin/modprobe --quiet snd-ioctl32 ; : ; }
install snd-pcm /sbin/modprobe --ignore-install snd-pcm && { /sbin/modprobe --quiet snd-pcm-oss ; : ; }
install snd-mixer /sbin/modprobe --ignore-install snd-mixer && { /sbin/modprobe --quiet snd-mixer-oss ; : ; }
install snd-seq /sbin/modprobe --ignore-install snd-seq && { /sbin/modprobe --quiet snd-seq-midi ; /sbin/modprobe --quiet snd-seq-oss ; : ; }
install snd-rawmidi /sbin/modprobe --ignore-install snd-rawmidi && { /sbin/modprobe --quiet snd-seq-midi ; : ; }
# Cause optional modules to be loaded above sound card driver modules
install snd-emu10k1 /sbin/modprobe --ignore-install snd-emu10k1 $CMDLINE_OPTS && { /sbin/modprobe -Qb snd-emu10k1-synth ; }
install snd-via82xx /sbin/modprobe --ignore-install snd-via82xx $CMDLINE_OPTS && { /sbin/modprobe -Qb snd-seq ; }
# Load saa7134-alsa instead of saa7134 (which gets dragged in by it anyway)
install saa7134 /sbin/modprobe --ignore-install saa7134 $CMDLINE_OPTS && { /sbin/modprobe -Qb saa7134-alsa ; : ; }
# Load snd-seq for devices that don't have hardware midi;
# Ubuntu #26283, #43682, #56005; works around Ubuntu #34831 for
# non-Creative Labs PCI hardware
install snd /sbin/modprobe --ignore-install snd && { /sbin/modprobe -Qb snd-seq ; }
# Prevent abnormal drivers from grabbing index 0
options bt87x index=-2
options cx88_alsa index=-2
options saa7134-alsa index=-2
options snd-atiixp-modem index=-2
options snd-intel8x0m index=-2
options snd-via82xx-modem index=-2
options snd-usb-audio index=0
options snd-hda-intel model=3stack index=1
options snd-usb-usx2y index=-2
options snd-usb-caiaq index=-2
# Ubuntu #62691, enable MPU for snd-cmipci
options snd-cmipci mpu_port=0x330 fm_port=0x388
- mario_7
- Administrator
- Posty: 8656
- Rejestracja: 30 sie 2006, 13:11
- Płeć: Mężczyzna
- Wersja Ubuntu: 20.04
- Środowisko graficzne: GNOME
- Architektura: x86_64
Odp: wybór karty dźwiękowej w zaleźności od obecności domyślnej
w takim razie mój pomysł jest następujący:
(zakładam, że nie masz jeszcze pliku .asoundrc, jeśli masz, to potrzebna będzie modyfikacja)
Stwórz plik .asoundrc w katalogu domowym i wklej do niego to:
i zapisz plik.
Działa teraz karta zintegrowana (po zrestartowaniu środowiska graficznego - czyli ponownym zalogowaniu się do systemu)?
Teraz stwórz plik o nazwie dźwięk.run i wklej do niego to:
I nadaj temu plikowi prawa wykonywania.
Gdy będziesz chciał zmienić domyślną kartę dźwiękową wystarczy, że uruchomisz skrypt i zrestartujesz środowisko graficzne.
Jest to metoda na około i przy takiej konfiguracji w alsa-base raczej jedyna. Można by jeszcze tylko dodać skrypt, który sprawdzałby przy starcie systemu, czy karta USB jest i wtedy automatycznie dobierałby ustawienia.
Zamiast opisanego przeze mnie wyżej rozwiązania mógłbyś też spróbować usunąć parametry index dla modułów snd-usb-audio i sna-hda-intel z pliku alsa-base. Prawdopodobnie system wtedy zachowywałby się tak, jak chcesz.
W zasadzie problemem jest ustawianie wszystkiego, gdy podłączysz kartę w trakcie działania systemu (nie miałem okazji sprawdzać co się wtedy dzieje). Jeśli założyć, że karta jest wkładana przed uruchomieniem komputera, to rozwiązanie staje się prostsze.
Napisz co o tym sądzisz i czy jest sens kontynuowania tego sposobu, czy może coś innego potrzebujesz.
(zakładam, że nie masz jeszcze pliku .asoundrc, jeśli masz, to potrzebna będzie modyfikacja)
Stwórz plik .asoundrc w katalogu domowym i wklej do niego to:
Kod: Zaznacz cały
pcm.!default {
type hw
card 1
}
ctl.!default {
type hw
card 1
}
Działa teraz karta zintegrowana (po zrestartowaniu środowiska graficznego - czyli ponownym zalogowaniu się do systemu)?
Teraz stwórz plik o nazwie dźwięk.run i wklej do niego to:
Kod: Zaznacz cały
if [ -f ~/.asoundrc ]
then
mv ~/.asoundrc ~/.asoundrc_usb
else
mv ~/.asoundrc_usb ~/.asoundrc
fi
Gdy będziesz chciał zmienić domyślną kartę dźwiękową wystarczy, że uruchomisz skrypt i zrestartujesz środowisko graficzne.
Jest to metoda na około i przy takiej konfiguracji w alsa-base raczej jedyna. Można by jeszcze tylko dodać skrypt, który sprawdzałby przy starcie systemu, czy karta USB jest i wtedy automatycznie dobierałby ustawienia.
Zamiast opisanego przeze mnie wyżej rozwiązania mógłbyś też spróbować usunąć parametry index dla modułów snd-usb-audio i sna-hda-intel z pliku alsa-base. Prawdopodobnie system wtedy zachowywałby się tak, jak chcesz.
W zasadzie problemem jest ustawianie wszystkiego, gdy podłączysz kartę w trakcie działania systemu (nie miałem okazji sprawdzać co się wtedy dzieje). Jeśli założyć, że karta jest wkładana przed uruchomieniem komputera, to rozwiązanie staje się prostsze.
Napisz co o tym sądzisz i czy jest sens kontynuowania tego sposobu, czy może coś innego potrzebujesz.
- pogrom
- Sędziwy Jeż
- Posty: 60
- Rejestracja: 15 lip 2008, 15:56
- Płeć: Mężczyzna
- Wersja Ubuntu: 9.04
- Środowisko graficzne: GNOME
- Kontakt:
Odp: wybór karty dźwiękowej w zaleźności od obecności domyślnej
Dzięki, pobawię się tym i dam znać. W międzyczasie znalazłem coś takiego:
Co myślicie?
Nie sprawdzałem jeszcze, może uda mi się wieczorem ale wygląda wporzo bo nie wymaga re-logowania. Chociaż generalnie bardzo podobne do powyższego pomysłu.Scenario: you have two sound cards. You want to at the click of an icon switch from one sound card to the other. Here’s an example of how to set it up.
Create definitions for your cards in /etc/asound.conf:
Several things are going on here. The first two blocks are providing names for the sound cards in my system. You can find the correct values for card and device by typing “aplay -l” on the command line. For channels, choose 2 unless you have a surround sound system. The !default block defines the system default, i.e. which of the cards is used if you don’t specify which to use.Kod: Zaznacz cały
pcm.usb { type hw card 1 device 0 channels 2 } pcm.desktop { type hw card 0 device 0 channels 2 } pcm.!default { type plug slave.pcm "desktop" }
Next, create additional files for each of your sound cards:
/usr/sound/.asoundrc_desktop
/usr/sound/.asoundrc_usbKod: Zaznacz cały
pcm.!default { type plug slave.pcm "desktop" }
Finally, create executable scripts to do the switching:Kod: Zaznacz cały
pcm.!default { type plug slave.pcm "usb" }
/bin/alsa_usb
cp /usr/sound/.asoundrc_usb ~/.asoundrc
/bin/alsa_desktop
cp /usr/sound/.asoundrc_desktop ~/.asoundrc
Make icons or menu items that point to these scripts, and test them out. Most programs (e.g. firefox, xmms, etc) will have to be restarted after you switch from one card to the other in order to pick up the change.
Co myślicie?
- mario_7
- Administrator
- Posty: 8656
- Rejestracja: 30 sie 2006, 13:11
- Płeć: Mężczyzna
- Wersja Ubuntu: 20.04
- Środowisko graficzne: GNOME
- Architektura: x86_64
Odp: wybór karty dźwiękowej w zaleźności od obecności domyślnej
Rozwiązanie bardzo podobne.
Trzeba by sprawdzić, czy w obu przypadkach nie wystarczy zrestartować samych programów zamiast całego środowiska graficznego.
W razie czego można zmiksować oba pomysły.
Trzeba by sprawdzić, czy w obu przypadkach nie wystarczy zrestartować samych programów zamiast całego środowiska graficznego.
W razie czego można zmiksować oba pomysły.
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 14 gości