Nowe posty

Autor Wątek: 2 karty muzyczne problem - Sabayon Linux  (Przeczytany 10233 razy)

Offline Łukasz

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 285
    • Zobacz profil
2 karty muzyczne problem - Sabayon Linux
« dnia: 2008-08-18, 22:43:05 »
Witam, mam problem ze świeżo zainstalowanym systemem Sabayon wiem, że oparty jest on na Gentoo ale nie miałem nigdy z nim do czynienia także zdecydowałem się zadać pytanie... mianowicie posiadam w komputerze 2 karty muzyczne jedna zintegrowana druga SB Live 5.1, chce żeby system korzystał tylko z Creativa a zintegrowaną zostawił w spokoju. I mam z tym niejaki problem w innych dystrybucjach radziłem sobie poprzez graficzny menedżer urządzeń gdzie nie było z tym problemów a tutaj nie mogę znaleźć podobnego narzędzia jak wspomniałem system jest dla mnie nowy i nie mam o nim zielonego pojęcia ewentualnie tyle co z innych dystrybucji. Proszę o pomoc, pozdrawiam Łukasz.

Offline arctgx

  • Users
  • Guru
  • *****
  • Wiadomości: 2753
    • Zobacz profil
2 karty muzyczne problem - Sabayon Linux
« Odpowiedź #1 dnia: 2008-08-18, 23:41:29 »
Kiedy masz tę zintegrowaną kartę włączoną w BIOSie, nie chcesz jej tam wyłączać i odpalisz Linuksa, to po jej wykryciu system będzie próbował załadować sterownik dla niej. Dowiedz się jaki to sterownik (lspci i lsmod| grep snd) i dopisz w którymś z plików katalogu /etc/modprobe.d linię blacklist nazwa_modułu. Powinno to zadziałać po restarcie systemu, a przed nim możesz ręcznie wyładować tenże moduł (modprobe -r). Nie wiem czy blacklist działa dla modułów nie posiadających aliasów.

Jeśli może znajdę elegantsze rozwiązanie na poziomie samej Alsy, to dopiszę coś.

ed: "jak" > "jaki" (literówka)
Użytkownik: Ib5sXfcCkvYR
Hasło: adam

Offline Łukasz

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 285
    • Zobacz profil
2 karty muzyczne problem - Sabayon Linux
« Odpowiedź #2 dnia: 2008-08-19, 00:01:57 »
lspci:

00:00.0 Host bridge: Intel Corporation 82945G/GZ/P/PL Memory Controller Hub (rev 02)
00:01.0 PCI bridge: Intel Corporation 82945G/GZ/P/PL PCI Express Root Port (rev 02)
00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 01)
00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 01)
00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 (rev 01)
00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1 (rev 01)
00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #2 (rev 01)
00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #3 (rev 01)
00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #4 (rev 01)
00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 01)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev e1)
00:1f.0 ISA bridge: Intel Corporation 82801GB/GR (ICH7 Family) LPC Interface Bridge (rev 01)
00:1f.2 IDE interface: Intel Corporation 82801GB/GR/GH (ICH7 Family) SATA IDE Controller (rev 01)
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 01)
01:00.0 VGA compatible controller: ATI Technologies Inc RV530 [Radeon X1600]
01:00.1 Display controller: ATI Technologies Inc RV530 [Radeon X1600] (Secondary)
03:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8053 PCI-E Gigabit Ethernet Controller (rev 19)
04:01.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 07)
04:01.1 Input device controller: Creative Labs SB Live! Game Port (rev 07)
04:07.0 FireWire (IEEE 1394): Texas Instruments TSB43AB23 IEEE-1394a-2000 Controller (PHY/Link)
lsmod:

snd_emu10k1           145808  1
snd_rawmidi            27648  1 snd_emu10k1
snd_ac97_codec        114632  1 snd_emu10k1
ac97_bus                3456  1 snd_ac97_codec
snd_seq_device          9876  2 snd_emu10k1,snd_rawmidi
snd_hda_intel         407084  1
snd_pcm                83976  3 snd_emu10k1,snd_ac97_codec,snd_hda_intel
snd_timer              26000  2 snd_emu10k1,snd_pcm
snd_page_alloc         12176  3 snd_emu10k1,snd_hda_intel,snd_pcm
snd_util_mem            6528  1 snd_emu10k1
snd_hwdep              11656  2 snd_emu10k1,snd_hda_intel
snd                    65272  12 snd_emu10k1,snd_rawmidi,snd_ac97_codec,snd_seq_device,snd_hda_intel,snd_pcm,snd_timer,snd_hwdep
Sęk z tym, że nie moge odszukać opcji w Biosie wyłączającej zintegrowaną kartę muzyczną, żenujący bios Awarda...

Offline arctgx

  • Users
  • Guru
  • *****
  • Wiadomości: 2753
    • Zobacz profil
2 karty muzyczne problem - Sabayon Linux
« Odpowiedź #3 dnia: 2008-08-19, 00:06:43 »
Jak się możesz sam domyślać, tym sterownikiem do nieładowania/wyładowania z jądra jest moduł snd_hda_intel.

Prócz nieładowania sterownika można jeszcze zmienić kolejność z korzystania z kart przez podsystem ALSA, nadając modułom parametr index - ręcznie w poleceniu lub na stałe w którymś z plików w modprobe.d.

Już znalazłem dobre rozwiązanie w dokumentacji Alsy ze źródeł jądra, którą możesz poczytać i tu:
http://www.mjmwired.net/kernel/Documentation/sound/alsa/ALSA-Configuration.txt#2167

Moduł snd - główny dla Alsy, posiada parametr ograniczający liczbę automatycznie ładowanych sterowników kart dźwiękowych. Nazywa się on cards_limit. Ustawiasz go oczywiście na 1.

Stwórz więc w /etc/modprobe.d plik o takiej zawartości:

options snd              cards_limit=1

alias snd-card-0         snd-emu10k1
alias snd-card-1         snd-hda-intel

options snd-hda-intel    index=1
options snd-emu10k1      index=0

# i dla emulacji OSS:
alias sound-slot-0       snd-emu10k1
alias sound-slot-1       snd-hda-intel
nazwij go jakoś, sprawdź czy podobnych wpisów nie ma już w sąsiednich plikach (zakomentuj je wtedy) i zrestartuj usługę Alsy (/etc/init.d/skrypt_alsy stop, później start, ew. restart czy reload zamiast tego) lub cały system.

Przy limicie równym 1 i pierwszeństwie dla emu10k1, wpisy o intelowskiej karcie nie mają znaczenia. Jeśli przestawisz limit na 2, intelowska karta będzie występowała jako drugie urządzenie.

W dokumencie znalazłem jeszcze opcję enable dla dowolnego sterownika karty. Nie wiem czy zanegować ją to znaczy dać jej wartość 0, no, disable, false czy jeszcze inaczej. Nie ma to jak eksperymentować...
Użytkownik: Ib5sXfcCkvYR
Hasło: adam

Offline

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 365
    • Zobacz profil
2 karty muzyczne problem - Sabayon Linux
« Odpowiedź #4 dnia: 2008-08-19, 09:13:39 »
Cytat: lukaszn
...systemem Sabayon wiem, że oparty jest on na Gentoo...
No to skoro już tyle wiesz, to może wystarczyło zasięgnąć porady u źródła czyli przejrzeć dokumentację na gentoo.org :)
Bez problemu znalazłbyś odpowiedź na swoje pytanie: http://www.gentoo.org/doc/pl/alsa-guide.xml
A jeśli uważasz że to za mało zawsze masz wiki: http://gentoo-wiki.com/HOWTO_ALSA#Multiple_Cards_.28Different_Modules.29 a w ostateczności forum Gentoo na którym ten temat był już wałkowany wiele razy.
Pozdrawiam

Offline Łukasz

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 285
    • Zobacz profil
2 karty muzyczne problem - Sabayon Linux
« Odpowiedź #5 dnia: 2008-08-19, 11:10:20 »
Dzięki arctgx jak zwykle działa :) Pozdrawiam

Offline arctgx

  • Users
  • Guru
  • *****
  • Wiadomości: 2753
    • Zobacz profil
2 karty muzyczne problem - Sabayon Linux
« Odpowiedź #6 dnia: 2008-08-19, 14:45:37 »
Napisz przynajmniej, które z rozwiązań zadziałało...
Użytkownik: Ib5sXfcCkvYR
Hasło: adam

Offline Łukasz

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 285
    • Zobacz profil
2 karty muzyczne problem - Sabayon Linux
« Odpowiedź #7 dnia: 2008-08-19, 17:23:29 »
Drugie rozwiązanie. Pierwszego już próbowałem prędzej bo myślałem podobnie aby dodać do blacklist ale ten sposób nie dał rezultatu. Pzdr

Offline Dawid Chorabik

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 13
    • Zobacz profil
2 karty muzyczne problem - Sabayon Linux
« Odpowiedź #8 dnia: 2008-08-21, 09:01:33 »
Sprawdź czy Sabayon nie korzysta baselayout 2.0 i OpenRC. Wtedy blacklist dodajesz do konkretnego jądra (albo linii jąder - np 2.6.xx) w /etc/conf.d/modules
Od czasu baselayout 2.0 /etc/modules i tym podobne nie działają (nie są wspierane)

Swoją drogą  - popieram - można ładować/nieładować moduły tylko konkretnej wersji jądra.

Offline arctgx

  • Users
  • Guru
  • *****
  • Wiadomości: 2753
    • Zobacz profil
2 karty muzyczne problem - Sabayon Linux
« Odpowiedź #9 dnia: 2008-08-21, 15:52:44 »
Skoro już bawimy się, to podrzucę jeszcze jeden pomysł jak ominąć ładowanie modułu przez modprobe - bardziej pokazujący jego działanie niż praktyczny.

Jeśli damy polecenie modprobe sterownik, to modprobe poszuka najpierw w swoich konfigach wpisów na temat "sterownika", niezależnie od tego czy w jądrze istnieje taki moduł, czy nie. Może na przykład znaleźć linię:

install sterownik echo "po kiego grzyba taki wpis?"
i wtedy wypisze tylko taki właśnie komunikat.

Możemy więc użyć install do przesłaniania prostego ładowania, jakie zapewniałoby polecenie insmod. Nazwy po "install" mogą być nazwami istniejących lub nieistniejących modułów. Tak więc, po znalezieniu linii

install snd-hda-intel :
modprobe wykona polecenie : (dwukropek), czyli puste (w bashu tak przynajmniej oznacza). Nie załaduje więc modułu. Możemy jednak zignorować wpisy z install, ładując modprobe --ignore-install snd-hda-intel. To zresztą jest wykorzystywane w samym wpisie install, np.

install sterownik { polecenie_potrzebne_przed_załadowaniem_modułu; /sbin/modprobe --ignore-install sterownik $opcje_sterownika; /sbin/modprobe --ignore-install jakiś_potrzebny_moduł $inne_opcje; }
W ostatnim przykładzie polecenie po install jest złożonym poleceniem powłoki, stąd nawiasy klamrowe wokół i średniki po każdym z poleceń, włącznie z ostatnim.
Użytkownik: Ib5sXfcCkvYR
Hasło: adam

Offline Łukasz

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 285
    • Zobacz profil
2 karty muzyczne problem - Sabayon Linux
« Odpowiedź #10 dnia: 2008-08-21, 16:15:39 »
Proponuje przykleić temat bo może ktoś będzie potrzebował takiej pomocy.

Offline arctgx

  • Users
  • Guru
  • *****
  • Wiadomości: 2753
    • Zobacz profil
2 karty muzyczne problem - Sabayon Linux
« Odpowiedź #11 dnia: 2008-08-21, 16:44:29 »
Zastanawiałem się nad tym chwilę, ale nie chciałbym jednak nadużywać tej możliwości. Nie wiem czy jest to aż tak powszechny problem, by każdemu nowemu gościowi tego działu o nim trąbić. O przyklejeniu myślałbym sam wtedy, gdyby znudziło mi się powtarzanie tych samych podpowiedzi w rodzaju "pokaż, co mówi Xorg.0.log".

Prędzej przerzuciłbym takie ćwiczenia do artykułu czy bloga. Zresztą czeka już na tym forum parę takich, choćby o zrzutach w trybie tekstowym (setterm) - na razie jednak mam inne zajęcie.

Chyba można od użytkowników, w tym samego siebie, wymagać minimum szukania.

Nic też nie stoi na przeszkodzie, byś na podstawie tego wątku czy innych tekstów (a najlepiej źródłowych, jeśli mają dobrą dokumentację, przy okazji podając te źródła, by czytający wiedzieli gdzie szukać) sam opracował artykuł. Nic tak chyba nie utrwala wiedzy jak lektura, sprawdzanie tych wiadomości i robienie notatek na bieżąco.
Użytkownik: Ib5sXfcCkvYR
Hasło: adam