LINUX.ORG.RU
решено ФорумAdmin

поименование звук. устройств в баш скрипте

 ,


0

1
добрый день

в системе имеется 3 постоянных звуковых устройства (подключены постоянно)

обычно, после загрузки уст-ва "поименованы" так:

hw:0 - EMU101K (PCI карта, основная)
hw:1 - SAA7134 (встроенная на мат.пл или ск. всего ТВ-тюнер)
hw:2 - USB-Audio (WEB-камера)

но иногда (довольно таки часто) "hw:1" & "hw:2" меняются местами:

hw:0 - EMU101K
hw:1 - USB-Audio
hw:2 - SAA7134

ВОПРОС:
как на уровне скрипта (bash) - определить что кому принадлежит?

описание харда-софта и пр. в данном случае не имеет смысла (я надеюсь )

можно ключ. слова, ссылки, советы (обязательно отвечу на все вопросы по делу)

спасибо
★★★★

Последнее исправление: sunjob (всего исправлений: 1)

Разбирай вывод

aplay -l
или содержимое /proc/asound.

kostik87 ★★★★★
()

не слушай его. кури опцию модулей ядра index или попросту образайся не по hw:X, а по hw:DJx, hw:PCH или что у тебя там. смотреть в выводе aplay -L.

t184256 ★★★★★
()
Ответ на: комментарий от t184256

С чего это? Он спросил как ему определять какое устройство к какой карте относится, а не как ему сделать так, что бы у звуковых карт были постоянные имена устройства. Так что какой вопрос такой и ответ.

kostik87 ★★★★★
()
Ответ на: комментарий от kostik87

Они и так уже есть, эти постоянные имена. А ты советуешь хрень, не морочь человеку голову. Если бы у него одинаковые были звуковухи. ему бы пришлось заморочиться с выдачей постоянных индексов. Но они у него разные, поэтому достаточно просто написать какое-нибудь hw:USB и писать остальной скрипт.

А что предлагаешь ты? Что-то лишнее парсить? Спросил бы он «как на произвольной системе получить таблицу соответсвий», твой ответ был бы хреновым, но в тему. А так он хреновый и не в тему.

t184256 ★★★★★
()
Ответ на: комментарий от t184256

Они и так уже есть, эти постоянные имена.

Ты уверен, что правильно прочитал шапку темы? Давай почитаем ещё раз вместе:

обычно, после загрузки уст-ва «поименованы» так:

hw:0 - EMU101K (PCI карта, основная) hw:1 - SAA7134 (встроенная на мат.пл) hw:2 - USB-Audio (WEB-камера)

но иногда (довольно таки часто) «hw:1» & «hw:2» меняются местами:

hw:0 - EMU101K hw:1 - USB-Audio hw:2 - SAA7134

Ферштейн? По сути имена устройство звуковых карт зависят от очерёдности загрузки модулей ядра поддержки указанных карт. Так что давай советуй ТС, как ему решить эту проблему.

kostik87 ★★★★★
()
Ответ на: комментарий от kostik87

выводы команд

main$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Live [SB Live! 5.1], device 0: emu10k1 [ADC Capture/Standard PCM Playback]
  Subdevices: 32/32
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7
  Subdevice #8: subdevice #8
  Subdevice #9: subdevice #9
  Subdevice #10: subdevice #10
  Subdevice #11: subdevice #11
  Subdevice #12: subdevice #12
  Subdevice #13: subdevice #13
  Subdevice #14: subdevice #14
  Subdevice #15: subdevice #15
  Subdevice #16: subdevice #16
  Subdevice #17: subdevice #17
  Subdevice #18: subdevice #18
  Subdevice #19: subdevice #19
  Subdevice #20: subdevice #20
  Subdevice #21: subdevice #21
  Subdevice #22: subdevice #22
  Subdevice #23: subdevice #23
  Subdevice #24: subdevice #24
  Subdevice #25: subdevice #25
  Subdevice #26: subdevice #26
  Subdevice #27: subdevice #27
  Subdevice #28: subdevice #28
  Subdevice #29: subdevice #29
  Subdevice #30: subdevice #30
  Subdevice #31: subdevice #31
card 0: Live [SB Live! 5.1], device 2: emu10k1 efx [Multichannel Capture/PT Playback]
  Subdevices: 8/8
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7
card 0: Live [SB Live! 5.1], device 3: emu10k1 [Multichannel Playback]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

main$ aplay -L
null
    Discard all samples (playback) or generate zero samples (capture)
front:CARD=Live,DEV=0
    SB Live! 5.1, ADC Capture/Standard PCM Playback
    Front speakers
rear:CARD=Live,DEV=0
    SB Live! 5.1, ADC Capture/Standard PCM Playback
    Rear speakers
center_lfe:CARD=Live,DEV=0
    SB Live! 5.1, ADC Capture/Standard PCM Playback
    Center and Subwoofer speakers
surround40:CARD=Live,DEV=0
    SB Live! 5.1, ADC Capture/Standard PCM Playback
    4.0 Surround output to Front and Rear speakers
surround41:CARD=Live,DEV=0
    SB Live! 5.1, ADC Capture/Standard PCM Playback
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Live,DEV=0
    SB Live! 5.1, ADC Capture/Standard PCM Playback
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Live,DEV=0
    SB Live! 5.1, ADC Capture/Standard PCM Playback
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
iec958:CARD=Live,DEV=0
    SB Live! 5.1, Multichannel Capture/PT Playback
    IEC958 (S/PDIF) Digital Audio Output

пока слабо вижу за что зацепиться

sunjob ★★★★
() автор топика
Ответ на: комментарий от sunjob
card 0: Live [SB Live! 5.1], device 0: emu10k1 [ADC Capture/Standard PCM Playback]
card 0: Live [SB Live! 5.1], device 2: emu10k1 efx [Multichannel Capture/PT Playback]
card 0: Live [SB Live! 5.1], device 3: emu10k1 [Multichannel Playback]

Ну вот видишь же, device 0, device2

kostik87 ★★★★★
()
Ответ на: комментарий от sunjob

можно изменить задание на такое (если совсем упростить) - как определить к как. устр-ву принаджежит USB-Audio

sunjob ★★★★
() автор топика
Ответ на: комментарий от kostik87

Ферштейн? По сути имена устройство звуковых карт зависят от очерёдности загрузки модулей ядра поддержки указанных карт.

Нифига ты не ферштейн, hw:Live всегда одна и та же, и от очередности это не зависит.

t184256 ★★★★★
()
Ответ на: комментарий от sunjob

aplay -L с воткнутой USB-Audio давай, а то что-то ее там пока нет.

t184256 ★★★★★
()
Ответ на: комментарий от kostik87

Я понял. Ты, как и ТС, не знаешь, что hw:номер — не единственное имя устройства. Только ты еще зачем-то отрицаешь наличие других имен.

t184256 ★★★★★
()
Ответ на: комментарий от t184256

aplay -L с воткнутой USB-Audio давай, а то что-то ее там пока нет.

вывод команд сделат «так как надо» со всемы воткуНтыми куда надо устройствами

hw:номер — не единственное имя устройства

знаем-догадываемся, в скрипте манипуляция именно ТАКИМИ устройствам, как hw:x

sunjob ★★★★
() автор топика
Ответ на: комментарий от sunjob

вывод команд сделат «так как надо» со всемы воткуНтыми куда надо устройствами

не верю, у тебя там только SB Live! 5.1

Вот так выглядит aplay -L с тремя звуковухами:

default
    Playback/recording through the PulseAudio sound server
null
    Discard all samples (playback) or generate zero samples (capture)
pulse
    PulseAudio Sound Server
sysdefault:CARD=PCH
    HDA Intel PCH, CX20590 Analog
    Default Audio Device
front:CARD=PCH,DEV=0
    HDA Intel PCH, CX20590 Analog
    Front speakers
surround21:CARD=PCH,DEV=0
    HDA Intel PCH, CX20590 Analog
    2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=PCH,DEV=0
    HDA Intel PCH, CX20590 Analog
    4.0 Surround output to Front and Rear speakers
surround41:CARD=PCH,DEV=0
    HDA Intel PCH, CX20590 Analog
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=PCH,DEV=0
    HDA Intel PCH, CX20590 Analog
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=PCH,DEV=0
    HDA Intel PCH, CX20590 Analog
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=PCH,DEV=0
    HDA Intel PCH, CX20590 Analog
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
hdmi:CARD=PCH,DEV=0
    HDA Intel PCH, HDMI 0
    HDMI Audio Output
hdmi:CARD=PCH,DEV=1
    HDA Intel PCH, HDMI 1
    HDMI Audio Output
hdmi:CARD=PCH,DEV=2
    HDA Intel PCH, HDMI 2
    HDMI Audio Output
dmix:CARD=PCH,DEV=0
    HDA Intel PCH, CX20590 Analog
    Direct sample mixing device
dmix:CARD=PCH,DEV=3
    HDA Intel PCH, HDMI 0
    Direct sample mixing device
dmix:CARD=PCH,DEV=7
    HDA Intel PCH, HDMI 1
    Direct sample mixing device
dmix:CARD=PCH,DEV=8
    HDA Intel PCH, HDMI 2
    Direct sample mixing device
dsnoop:CARD=PCH,DEV=0
    HDA Intel PCH, CX20590 Analog
    Direct sample snooping device
dsnoop:CARD=PCH,DEV=3
    HDA Intel PCH, HDMI 0
    Direct sample snooping device
dsnoop:CARD=PCH,DEV=7
    HDA Intel PCH, HDMI 1
    Direct sample snooping device
dsnoop:CARD=PCH,DEV=8
    HDA Intel PCH, HDMI 2
    Direct sample snooping device
hw:CARD=PCH,DEV=0
    HDA Intel PCH, CX20590 Analog
    Direct hardware device without any conversions
hw:CARD=PCH,DEV=3
    HDA Intel PCH, HDMI 0
    Direct hardware device without any conversions
hw:CARD=PCH,DEV=7
    HDA Intel PCH, HDMI 1
    Direct hardware device without any conversions
hw:CARD=PCH,DEV=8
    HDA Intel PCH, HDMI 2
    Direct hardware device without any conversions
plughw:CARD=PCH,DEV=0
    HDA Intel PCH, CX20590 Analog
    Hardware device with all software conversions
plughw:CARD=PCH,DEV=3
    HDA Intel PCH, HDMI 0
    Hardware device with all software conversions
plughw:CARD=PCH,DEV=7
    HDA Intel PCH, HDMI 1
    Hardware device with all software conversions
plughw:CARD=PCH,DEV=8
    HDA Intel PCH, HDMI 2
    Hardware device with all software conversions
sysdefault:CARD=DJx
    Indigo DJx, Indigo DJx
    Default Audio Device
dmix:CARD=DJx,DEV=0
    Indigo DJx, Indigo DJx
    Direct sample mixing device
dsnoop:CARD=DJx,DEV=0
    Indigo DJx, Indigo DJx
    Direct sample snooping device
hw:CARD=DJx,DEV=0
    Indigo DJx, Indigo DJx
    Direct hardware device without any conversions
plughw:CARD=DJx,DEV=0
    Indigo DJx, Indigo DJx
    Hardware device with all software conversions
sysdefault:CARD=DJController
    TYPHOON DJ-Controller, USB Audio
    Default Audio Device
front:CARD=DJController,DEV=0
    TYPHOON DJ-Controller, USB Audio
    Front speakers
surround21:CARD=DJController,DEV=0
    TYPHOON DJ-Controller, USB Audio
    2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=DJController,DEV=0
    TYPHOON DJ-Controller, USB Audio
    4.0 Surround output to Front and Rear speakers
surround41:CARD=DJController,DEV=0
    TYPHOON DJ-Controller, USB Audio
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=DJController,DEV=0
    TYPHOON DJ-Controller, USB Audio
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=DJController,DEV=0
    TYPHOON DJ-Controller, USB Audio
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=DJController,DEV=0
    TYPHOON DJ-Controller, USB Audio
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=DJController,DEV=0
    TYPHOON DJ-Controller, USB Audio
    IEC958 (S/PDIF) Digital Audio Output
dmix:CARD=DJController,DEV=0
    TYPHOON DJ-Controller, USB Audio
    Direct sample mixing device
dsnoop:CARD=DJController,DEV=0
    TYPHOON DJ-Controller, USB Audio
    Direct sample snooping device
hw:CARD=DJController,DEV=0
    TYPHOON DJ-Controller, USB Audio
    Direct hardware device without any conversions
plughw:CARD=DJController,DEV=0
    TYPHOON DJ-Controller, USB Audio
    Hardware device with all software conversions

hw:PCH, hw:DJx и hw:DJController. А ты нам голову морочишь.

t184256 ★★★★★
()
Ответ на: комментарий от sunjob

надеюсь, вы поверите, что я систему не доутыкал и не перегружал? выводы команд даны как есть, без шаманства

а по поводу 3го устройства USB-Audio - это веб камера, а не звуковая карта (так сказать не полноценная звук. карта, ну или как то, во всяком случае - команды именно так выдали листинг)

sunjob ★★★★
() автор топика
Ответ на: комментарий от t184256

Обрезал вывод aplay -L?

нет, не обрезал! (как в анкете на «секретку» - даю полный ответ) для каких утилитарных целей мне ее обрезать или морочить вам голову?

sunjob ★★★★
() автор топика
Ответ на: комментарий от sunjob

Может быть я недостаточно квалифицирован и опытен... но пока в aplay -L не появится что-то, кроме твоей Creative, я буду считать, что меня разыгрывают. Общее направление мысли я дал: у карт из твоей постановки задачи уже есть постояные имена, выясни и юзай их. А я откланяюсь.

t184256 ★★★★★
()
Ответ на: комментарий от sunjob

как уже было сказано :
пропиши опции модулей гденть в modprobe.conf

например:
options snd-ca0106 index=0
options snd-hda-intel index=1
...

и твой USB-Audio будет всегда hw:2

anTaRes ★★★★
()

SAA7134

тв-тьюнер чтоль ?
у меня внешний такой был (или на таком чипе), AverMedia

не совсем полноценное устройство вывода звука, как и вебка
ткчто aplay -l не факт что покажет

anTaRes ★★★★
()
Ответ на: комментарий от anTaRes

пропиши опции модулей гденть в modprobe.conf

систему допиливать не катит (решение должно быть в юзер-окружении)

как на уровне скрипта (bash) - определить что кому принадлежит?

не совсем полноценное устройство вывода звука, как и вебка
так что aplay -l не факт что покажет

ну дак я за что говорю?

sunjob ★★★★
() автор топика
Ответ на: комментарий от sunjob

как на уровне скрипта (bash) - определить что кому принадлежит?

тогда от обратного, если индексы назначаются автоматом - пройтись по модулям и узнать

$ cat /sys/module/snd_ca0106/parameters/index
или
$ cat /proc/asound/cards
или
$ for i in {0..2}; do echo "hw:$i - "; cat /proc/asound/card$i/id; done

anTaRes ★★★★
()
Ответ на: комментарий от anTaRes

ДРУГ, РЕАЛЬНО КЛАНЯЮСЬ, СПАСИБО

#!/bin/sh
clear; set -e

for i in {0..2}; do
echo -n "hw:$i - ";
cat /proc/asound/card$i/id;
done

-->

hw:0 - Live
hw:1 - SAA7134
hw:2 - C615

теперь немного поскрепеть мозгами и допилить по месту... :о)
sunjob ★★★★
() автор топика
Ответ на: комментарий от sunjob

ну и, собственно, окончательный вариант

#!/bin/sh
clear; set -e

for i in {0..2}; do
STR=`cat /proc/asound/card$i/id`
if [ "${STR}" = "C615" ]; then
echo "INDEX = $i"
fi
done
sunjob ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.