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 Fundację Dzieciom „Zdążyć z Pomocą”.
Więcej informacji na dug.net.pl/pomagamy/.

#1 2018-11-05 16:08:25

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Urządzenia w /dev/snd/

Czy ktoś mógłby mi pomóc rozwiązać zagadkę znaczenia nazw urządzeń w  /dev/snd/ ? Dla przykładu, mój laptop ma coś takiego:

Kod:

# ls -al /dev/snd
total 0
drwxr-xr-x   3 root root      220 2018-11-04 11:02:40 ./
drwxr-xr-x  20 root root     3.8K 2018-11-05 05:56:58 ../
drwxr-xr-x   2 root root       60 2018-11-04 11:02:40 by-path/
crw-rw----+  1 root audio 116,  7 2018-11-04 11:02:40 controlC0
crw-rw----+  1 root audio 116,  5 2018-11-04 11:02:40 hwC0D0
crw-rw----+  1 root audio 116,  6 2018-11-04 11:02:40 hwC0D3
crw-rw----+  1 root audio 116,  3 2018-11-05 11:54:33 pcmC0D0c
crw-rw----+  1 root audio 116,  2 2018-11-05 14:06:26 pcmC0D0p
crw-rw----+  1 root audio 116,  4 2018-11-04 11:04:08 pcmC0D3p
crw-rw----+  1 root audio 116,  1 2018-11-04 11:02:39 seq
crw-rw----+  1 root audio 116, 33 2018-11-04 11:02:40 timer

Co oznaczają w skrócie te urządzenia? Czyli co się dzieje, gdy jakiś proces próbuje je odczytać lub zapisać (ewentualnie coś innego z nimi zrobić)? Z tego co póki co znalazłem, to C0, to card0, D0 to device0, no i chyba ten pcm z "c", to jest mikrofon? A pozostałe? xD

Online

 

#2 2018-11-05 16:32:29

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Urządzenia w /dev/snd/

Co tu masz do nierozumienia?

Kod:

mpv       22518 pacjent  mem    CHR 116,18          2259 /dev/snd/pcmC3D8p
mpv       22518 pacjent   22r   CHR 116,33      0t0 2183 /dev/snd/timer
mpv       22518 pacjent   23u   CHR 116,18      0t0 2259 /dev/snd/pcmC3D8p
mate-sett 25859 pacjent   14u   CHR  116,4      0t0 2188 /dev/snd/controlC0
mate-sett 25859 pacjent   15u   CHR  116,9      0t0 2196 /dev/snd/controlC1
mate-sett 25859 pacjent   16u   CHR 116,15      0t0 2239 /dev/snd/controlC2
mate-sett 25859 pacjent   17u   CHR 116,20      0t0 2264 /dev/snd/controlC3
mate-volu 25943 pacjent   10u   CHR  116,4      0t0 2188 /dev/snd/controlC0
mate-volu 25943 pacjent   11u   CHR  116,9      0t0 2196 /dev/snd/controlC1
mate-volu 25943 pacjent   12u   CHR 116,15      0t0 2239 /dev/snd/controlC2
mate-volu 25943 pacjent   13u   CHR 116,20      0t0 2264 /dev/snd/controlC3

Po odpaleniu, MPV  gada z timerem (potrzebne, dzięki temu wszystkie karty grają w jednym czasie, np kernel dostosowuje się  z dźwiękiem  do input_lagu ekranu).
W ten sposób nie ma efektu że strzelam,  a odgłos wystrzału jest przez efektem na obrazie.
MPV posyła dźwięk przez cyfrowe wyjście HW 3:8 (HDMI), to też jest chyba zrozumiałe.

seq to sekwencer.
https://pl.wikipedia.org/wiki/Sekwencer_(muzyka)

Reszta to urządzenia in, out albo control kart.
W ten sposób sterowniki mapują interfejsy poszczególnych kart dźwiękowych.

Pozdro

Ostatnio edytowany przez Jacekalex (2018-11-05 16:36:16)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#3 2018-11-05 16:48:50

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Urządzenia w /dev/snd/

Co mam do rozumienia? No ostatnio chyba się coś zmieniło w zarządzaniu dźwiękiem i appki zaczęły żądać praw do niektórych z tych urządzeń i się zastanawiam dlaczego akurat teraz i czemu działały wcześniej, bo moja abstrakcja audio-strict nie miała żadnych urządzeń wypisanych. xD

To może tak:
-- co oznacza ta literka "p" na końcu w urządzeniach pcm? Jeśli dobrze rozumiem to "c" jest od "capture" a "p"? xD
-- czym się różni urządzenie hw od pcm?
-- czemu jest kilka pcm z "p", no bo jest jedno z "c", gdzieś indziej widziałem, że mieli kilka urządzeń pcm z "c"
-- za co odpowiada ten cały control?

Takie pytania mi przychodzą do głowy na teraz. xD

Ostatnio edytowany przez morfik (2018-11-05 16:54:41)

Online

 

#4 2018-11-05 16:58:10

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Urządzenia w /dev/snd/

capture to mikrofon a p - play to do grania, tak to rozumiem.

Np karta HDMI Nvidia nie ma mikrofonu:

Kod:

/dev/snd/controlC3
/dev/snd/hwC3D0
/dev/snd/pcmC3D3p
/dev/snd/pcmC3D7p
/dev/snd/pcmC3D8p

natomiast karta Intel owszem, ma takowe:

Kod:

/dev/snd/controlC2
/dev/snd/hwC2D2
/dev/snd/pcmC2D0c
/dev/snd/pcmC2D0p
/dev/snd/pcmC2D1p
/dev/snd/pcmC2D2c

Urządzenia /dev/snd/hw*  to pewnie jakaś diagnostyka.

Ostatnio edytowany przez Jacekalex (2018-11-05 17:02:03)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#5 2018-11-05 17:02:07

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Urządzenia w /dev/snd/

To chyba wiem --  playback. xD

Online

 

#6 2018-11-05 17:06:40

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Urządzenia w /dev/snd/

RTFM:
https://www.tldp.org/HOWTO/Alsa-sound.html#toc6
https://www.tldp.org/HOWTO/Alsa-sound-6.html

Ostatnio edytowany przez Jacekalex (2018-11-05 17:10:37)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#7 2018-11-05 17:09:10

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Urządzenia w /dev/snd/

Znalazłem ten artykuł ździebko wcześniej ale chyba tam nie ma tego info co szukam. xD

Online

 

#8 2018-11-05 17:12:51

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Urządzenia w /dev/snd/

morfik napisał(-a):

Znalazłem ten artykuł ździebko wcześniej ale chyba tam nie ma tego info co szukam. xD

Jak gra,to chyba nie musisz zbyt wiele szukać...xD

Poza tym zawsze możesz wypakować źródełka kernela i zajrzeć do kodu modułów SND.

Masz tam też np:

/usr/src/linux/Documentation/sound/kernel-api

Ostatnio edytowany przez Jacekalex (2018-11-05 17:15:32)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#9 2018-11-05 17:14:42

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Urządzenia w /dev/snd/

Mi by generalnie zależało na ustaleniu od czego są te urządzenia i co oznaczają. Np. sda1, to też coś znaczy i tu akurat wiem co. xD A te w /dev/snd/ to jakaś magia dla mnie.

Online

 

#10 2018-11-05 17:22:56

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Urządzenia w /dev/snd/

Jeżeli Alsa to jakaś magia, to pobaw się Xorgiem. :D

Moim zdaniem alsa jest na tyle logiczna, na ile to możliwe, przy czym dysk ma jedną głowicę i kilka partycji, a karta dźwiękowa PCI ma dużo więcej portów komunikacyjnych,
które trzeba jakoś ponazywać.
Dodatkowo hw to tyle co sda, ale pcm to urządzenie dźwiękowe typu RAW.
W dyskach się takowych raczej nie używa.
Urządzenie control to są potencjometry (dyzie nie wiedzą, co to jest),
seq i timer już przemieliliśmy wcześniej.

Czego jeszcze nie wiesz?

Ostatnio edytowany przez Jacekalex (2018-11-05 17:27:38)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#11 2018-11-05 17:23:55

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Urządzenia w /dev/snd/

Znalazłem to:
https://alsa.opensrc.org/Proc_asound_documentation

A tam:

Kod:

#  cat /proc/asound/devices
  2: [ 0- 0]: digital audio playback
  3: [ 0- 0]: digital audio capture
  4: [ 0- 3]: digital audio playback
  5: [ 0- 0]: hardware dependent
  6: [ 0- 3]: hardware dependent
  7: [ 0]   : control
 33:        : timer

No to pytanie czemu te numerki nie są po kolei? W sensie 0-0, 0-1 itd. tylko 0-3 jest następny. No i pewnie ten "hardware dependent" to jest to urządzenie z hw, cokolwiek ono oznacza. xD

Ok już wiem po co są dwa pcm

Kod:

#  cat /proc/asound/pcm
00-00: ALC270 Analog : ALC270 Analog : playback 1 : capture 1
00-03: HDMI 0 : HDMI 0 : playback 1

Czyli jeden jest od głośników w laptopie + mikrofon, a drugi jest od HDMI.

Ostatnio edytowany przez morfik (2018-11-05 17:29:34)

Online

 

#12 2018-11-05 17:35:33

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Urządzenia w /dev/snd/

Bo to pewnie zależy od typu karty dźwiękowej, a to zależy, jak się Kitajcom udała dana karta.

Kod:

~> cat /proc/asound/devices
  1:        : sequencer
  2: [ 0- 0]: digital audio playback
  3: [ 0- 0]: digital audio capture
  4: [ 0]   : control
  5: [ 1- 0]: digital audio playback
  6: [ 1- 0]: digital audio capture
  7: [ 1- 1]: digital audio playback
  8: [ 1- 1]: digital audio capture
  9: [ 1]   : control
 10: [ 2- 0]: digital audio playback
 11: [ 2- 0]: digital audio capture
 12: [ 2- 1]: digital audio playback
 13: [ 2- 2]: digital audio capture
 14: [ 2- 2]: hardware dependent
 15: [ 2]   : control
 16: [ 3- 3]: digital audio playback
 17: [ 3- 7]: digital audio playback
 18: [ 3- 8]: digital audio playback
 19: [ 3- 0]: hardware dependent
 20: [ 3]   : control
 33:        : timer

U mnie się mniej więcej zgadzają numerki.

Kod:

 0 [Dummy          ]: Dummy - Dummy
                      Dummy 1
 1 [Loopback       ]: Loopback - Loopback
                      Loopback 1
 2 [Intel          ]: HDA-Intel - HDA Intel
                      HDA Intel at 0xf3420000 irq 26
 3 [NVidia         ]: HDA-Intel - HDA NVidia
                      HDA NVidia at 0xf3000000 irq 17

Tylko dziwne w devices są te digital przy analogowych wyjściach.
W czasach cyfrowych i analogowych wyjść mogą być mocno mylące.

EDIT:
PCM u mnie:

Kod:

00-00: Dummy PCM : Dummy PCM : playback 8 : capture 8
01-00: Loopback PCM : Loopback PCM : playback 8 : capture 8
01-01: Loopback PCM : Loopback PCM : playback 8 : capture 8
02-00: ALC262 Analog : ALC262 Analog : playback 1 : capture 1
02-01: ALC262 Digital : ALC262 Digital : playback 1
02-02: ALC262 Alt Analog : ALC262 Alt Analog : capture 2
03-03: HDMI 0 : HDMI 0 : playback 1
03-07: HDMI 1 : HDMI 1 : playback 1
03-08: HDMI 2 : HDMI 2 : playback 1

Pozdro

Ostatnio edytowany przez Jacekalex (2018-11-05 17:36:56)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#13 2018-11-05 17:41:52

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Urządzenia w /dev/snd/

No pewnie ten numerek jest jak ten z lspci, w sensie zależy od tego co tam w karcie siedzi i temu pokazuje tak a nie inaczej. xD

A takie pytanie jeszcze: linux może obsłużyć max 8 kart dźwiękowych?

Online

 

#14 2018-11-05 17:52:58

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Urządzenia w /dev/snd/

morfik napisał(-a):

No pewnie ten numerek jest jak ten z lspci, w sensie zależy od tego co tam w karcie siedzi i temu pokazuje tak a nie inaczej. xD

A takie pytanie jeszcze: linux może obsłużyć max 8 kart dźwiękowych?

Tu już zapytaj na LKML albo jakiejś liście Alsy.

Nie widziałem w życiu kompa, w którym byłoby więcej niż 6 kart dźwiękowych,
więc trudno mi się wypowiedzieć w tej kwestii.

Jak przypadkowo w domu miałem łącznie 6 kart dźwiękowych, to nic nie wybuchło.

Tutaj coś piszą,ze to zależy od numerologii 32 albo 64 bity:
https://stackoverflow.com/questions/14201551/need-m … -on-my-system

Z treści wynika, że udało się zapiąć 32 karty USB, ale jak tego ktoś dokonał, pojęcia nie mam.

Z drugiej strony, jeśli np w jakimś potworze siedzi Linux z Asteriskiem i ma podłączone
np 256 linii analogowych, to każda linia to przecież równocześnie karta dźwiękowa.
Także nie traktowałbym tych limitów zbyt dosłownie.
Jeżeli Linux potrafi równocześnie obrabiać  4096 procesorów i nie zwariować,
to pewnie z innymi urządzeniami też potrafi sobie radzić w znacznie większej skali.

EDIT:
Praktycznie w dowolnej skali, jak to w Linuxie:

zgrep -i CONFIG_SND_MAX_CARDS /proc/config.gz
CONFIG_SND_MAX_CARDS=32

xD

Pozdro

Ostatnio edytowany przez Jacekalex (2018-11-05 18:12:55)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#15 2018-11-05 18:13:43

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Urządzenia w /dev/snd/

To czemu tu piszą:

Generally the device files are named in the form aaaCxDy

aaa is the service name

x is the card number (0-7)

y the device number (0-?)

I tu też piszą to samo:
https://www.kernel.org/doc/html/v4.17/sound/designs/procfile.html

Ostatnio edytowany przez morfik (2018-11-05 18:18:18)

Online

 

#16 2018-11-05 18:19:49

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Urządzenia w /dev/snd/

Zależy,kiedy to pisali, np przed powstaniem USB mobo miały tylko kilka portów ISA/PCI.
Wtedy penie 8 kart starczało, potem doszło USB, w jaju domyślnie jest 32, ale już dodali parametr kernela na wypadek, gdyby kompy kiedyś miały np 1024 karty.  xD

Kiedyś się przekonałem na własne oczy, że moduły PPPOE w jaju 3.2 zostały napisane w roku 1998.
Pewnie do tej pory się nie zmieniły.

W innych miejscach mogą być podobne kfiatki. xD

Jajka 4.17 raczej nie pisali od zera, tworzenie kernela to proces ewolucyjny.
Już i tak był płacz, jak wyleciała architektura i386, chociaż ostatnie procki z tej
architektury powstały w czasach, kiedy o istnieniu Linuxa jeszcze nie wiedziałem.

Ostatnio edytowany przez Jacekalex (2018-11-05 18:27:05)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#17 2018-11-05 18:27:10

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Urządzenia w /dev/snd/

No niby to jest dokumentacja dla kernela 4.17.0 , więc mniemam, że chyba niedawno. xD

Online

 

#18 2018-11-05 18:39:44

wikingagressor
Użytkownik
Skąd: Józefów k.Błonia, mazowieckie
Zarejestrowany: 2015-02-03

Re: Urządzenia w /dev/snd/

Z tego co kojarze to roznica pomiedzy hw... a pcm... jest taka, ze pierwsze to jest bezposredni dostep do hardware'owych buforow karty dzwiekowej, a drugi to poprzez dodatkowy blokowy cache. Ma to zapewnic bardziej plynne odtwarzanie/nagrywanie.


Peace, Love and Debian for the World!!!

Offline

 

#19 2018-11-05 20:02:36

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Urządzenia w /dev/snd/

No to w sumie już wszystko jest wiadome. xD

Online

 

#20 2018-11-05 20:09:21

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Urządzenia w /dev/snd/

a drugi to poprzez dodatkowy blokowy cache. Ma to zapewnic bardziej plynne odtwarzanie/nagrywanie.

Obecnie nie tyle płynne, tylko równe.
Jeżeli np chcesz pograć w Quake, a kernel się dowiaduje od sterownika GPU,
że monitor ma input_lag na poziomie 280ms, to o te 280 ms przestawia timer alsy,
żeby się obraz z dźwiękiem nie rozjeżdżał.

Kilka lat temu, jak podłączyłem LCD przez HDMI a dźwięk szedł na głośniki z karty HDA
na mobo, to się praktycznie grać nie dało.

Obecnie ten problem nie występuje, a zastosowanie cache w /dev/snd/pcm to już jest bezwzględna konieczność.

Ostatnio edytowany przez Jacekalex (2018-11-06 19:48:11)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

Stopka forum

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