Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2011-09-02 12:31:54

  bobycob - Członek z Ramienia

bobycob
Członek z Ramienia
Skąd: Wrocław
Zarejestrowany: 2007-08-15

Łatwa zmiana domyślnej karty dźwiękowej (hdmi, analog)

Cześć

Mam głośniki podłączone do monitora, a monitor podłączony przez hdmi do laptopa.
W jaki sposób zorganizować proste przełączanie dźwięku między zintegrowaną kartą dźwiękową a wyjściem hdmi? Ewentualnie odtwarzanie dźwięku na obu kartach jednocześnie - zintegrowaną zawsze można ściszyć. Najlepiej tak aby phonon to łyknął lub nie zauważał ;).
Próbowałem używać wbudowanego w kde phonon - jednak wiele programów z nim nie gada, zwłaszcza przeglądarki i flash, do tego nie zauważa, że HDMI jest odłączone więc w głośnikach wewnętrznych cisza. Musze po odłączeniu hdmi wyłączać aplikację zmieniać priorytet wyjść i znów uruchamiać. Nie jest to przyjazne :).

pozdrawiam

Ostatnio edytowany przez bobycob (2011-09-02 17:25:16)

Offline

 

#2  2011-09-02 12:37:42

  ilin - Palacz

ilin
Palacz
Skąd: PRLu
Zarejestrowany: 2006-05-03

Re: Łatwa zmiana domyślnej karty dźwiękowej (hdmi, analog)

http://forum.dug.net.pl/viewtopic.php?id=18662

?


[b]Problemy rozwiązujemy na forum nie na PW[/b] -> Niech inni na tym skorzystają.
[url=http://dug.net.pl/]Polski portal Debiana[/url]

Offline

 

#3  2011-09-02 16:38:23

  bobycob - Członek z Ramienia

bobycob
Członek z Ramienia
Skąd: Wrocław
Zarejestrowany: 2007-08-15

Re: Łatwa zmiana domyślnej karty dźwiękowej (hdmi, analog)

Dzięki

Wyjdzie z tego małe how-to :)
Dla mnie nieeleganckie i niewygodne byłoby użycie jakiegoś skryptu ręcznie odpalanego gdy na klawiaturze marnuje się tyle przycisków 'gadających' z ACPI.
Laptop to ASUS K52jr opis będzie powinien działać z wszystkimi z serii. Reszta będzie wymagać drobnych modyfikacji.
Jednak po kolei.
Całość sprowadza się do wybrania domyślnej karty dźwiękowej, Uzyskuje to tworząc plik asound.conf, gdy pliku nie ma używany jest dźwięk karty zintegrowanej -  los tak chciał, że jest domyślną standardowo. Po utworzeniu lub usunięciu tego pliku konieczne jest zrestartowanie /etc/init.d/alsa-utils.
Za pomocą aplay -l zdobywamy informacje jakie karty siedzą w naszym komputerku:

Kod:

aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Intel [HDA Intel], device 0: CONEXANT Analog [CONEXANT Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 3: HDMI 0 [HDMI 0]
  Subdevices: 0/1
  Subdevice #0: subdevice #0

i na podstawie uzyskanych danych możemy utworzyć przykładowy plik asound.conf w katalogu /etc

Kod:

pcm.!default {
    type hw
    card 1
    device 3
}

ctl.!default {
    type hw           
    card 1
}

Po jego utworzeniu proponuję upewnić, się czy wpisane tam ustawienia są poprawne i uzyskujemy oczekiwany efekt :). Przejście do następnej części jest w przeciwnym przypadku bezsensowne.

Za pomocą programu acpi_listen zdobywamy id naszego przycisku który chcemy użyć do sterowania wyjściem. Asus stworzył na mije szczęście ich sporo, a części nie używam. Wybrałem klawisz pod literą 'C' - taki monitorek z 's'.
Tworzymy  w /etc/acpi/events plik o nazwie asus-hdmi-audio i zapełniamy go:

Kod:

event=hotkey (ATKD|HOTK) 0000008a
action=/etc/acpi/asus-hdmi-switch.sh

Oczywiście tajemnicze '0000008a' to numerek klawisza używanego do sterowania :).
Następnie tworzy plik ze skryptem, który  będzie wykonywany po naciśnięciu klawisza, asus-hdmi-switch.sh w katalogu /etc/acpi i czynimy go wykonywalnym chmod +x asus-hdmi-switch.sh
i zapełnieniamy go zawartością:

Kod:

#!/bin/sh

HDMISTATUS=0
test -e /etc/asound.conf && HDMISTATUS=1

if [ $HDMISTATUS = 0 ]; then
echo 'wlaczenie wyjscia hdmi'
echo "pcm.!default {
    type hw
    card 1
    device 3
}

ctl.!default {
    type hw           
    card 1
}" > /etc/asound.conf
chmod 666 /etc/asound.conf
/etc/init.d/alsa-utils 'restart'
    
    elif [ $HDMISTATUS = 1 ]; then
echo ' wylaczenie wyjscia hdmi' 
rm /etc/asound.conf             
/etc/init.d/alsa-utils 'restart'
    fi
    
    exit 0

Ustawienia w pliku /etc/asound.conf są niestety ignorowane przez phonon - cóż pozostaje się z tym pogodzić, lub zrezygnować z KDE4.

Ostatnio edytowany przez bobycob (2011-09-02 16:49:18)

Offline

 

#4  2011-09-02 17:05:36

  ilin - Palacz

ilin
Palacz
Skąd: PRLu
Zarejestrowany: 2006-05-03

Re: Łatwa zmiana domyślnej karty dźwiękowej (hdmi, analog)

Dorzucę tylko

Jeśli mamy w systemie tylko jednego użytkownika (choć można powielić) to lepiej zrobić zamiast w /etc/asound.conf  w pliku ~/.asoundrc

Wówczas odpada  /etc/init.d/alsa-utils


[b]Problemy rozwiązujemy na forum nie na PW[/b] -> Niech inni na tym skorzystają.
[url=http://dug.net.pl/]Polski portal Debiana[/url]

Offline

 

#5  2011-09-02 17:16:54

  bobycob - Członek z Ramienia

bobycob
Członek z Ramienia
Skąd: Wrocław
Zarejestrowany: 2007-08-15

Re: Łatwa zmiana domyślnej karty dźwiękowej (hdmi, analog)

To prawda i nawet byłoby bardziej eleganckie. Jednak z jakiegoś  powodu wpisy w tym pliku nie działały.
Choć teraz nie jestem pewien (a i sprawdzać się nie chce) czy aby na pewno dodałem linijkę "device 3" do pliku asoundrc.

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)

[ Generated in 0.012 seconds, 11 queries executed ]

Informacje debugowania

Time (s) Query
0.00009 SET CHARSET latin2
0.00004 SET NAMES latin2
0.00100 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.119.110.35' WHERE u.id=1
0.00372 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.119.110.35', 1734007765)
0.00031 SELECT * FROM punbb_online WHERE logged<1734007465
0.00048 SELECT topic_id FROM punbb_posts WHERE id=180442
0.00031 SELECT id FROM punbb_posts WHERE topic_id=19619 ORDER BY posted
0.00096 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=19619 AND t.moved_to IS NULL
0.00028 SELECT search_for, replace_with FROM punbb_censoring
0.00211 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=19619 ORDER BY p.id LIMIT 0,25
0.00071 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=19619
Total query time: 0.01001 s