Una consulta y creo que estuve un buen rato leyendo...
Respuesta
Excelente pregunta.
Desde hace unos años /dev/snd/ es el lugar donde están los
dispositivos de sonido. En estos tiempos, el viejo sistema de mezclado
(OSS - Open Sound System - responsable del /dev/dsp) ya no se usa y
generalmente no está presente sin configuración adicional:
Si necesitas los dispositivos viejos, siempre puedes subir los módulos
de compatibilidad:
[root@fenix device]# ls /dev/dsp
ls: cannot access /dev/dsp: No such file or directory
[root@fenix device]# modprobe snd-mixer-oss
[root@fenix device]# modprobe snd-pcm-oss
[root@fenix device]# ls /dev/dsp
/dev/dsp
Claramente estos viejos no son necesarios. Por curiosidad, veamos
quién usa los dispositivos de sonido.
[root@fenix ~]# lsof /dev/snd/*
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
pulseaudi 2011 marcelo mem CHR 116,4 6829 /dev/snd/pcmC0D0p
pulseaudi 2011 marcelo 20u CHR 116,7 0t0 6832 /dev/snd/controlC0
pulseaudi 2011 marcelo 21u CHR 116,4 0t0 6829 /dev/snd/pcmC0D0p
pulseaudi 2011 marcelo 22u CHR 116,7 0t0 6832 /dev/snd/controlC0
pulseaudi 2011 marcelo 27u CHR 116,7 0t0 6832 /dev/snd/controlC0
pulseaudi 2011 marcelo 29u CHR 116,7 0t0 6832 /dev/snd/controlC0
En mi caso es pulseaudio quien está usando estos dispositivos. No
conozco bien pulseaudio pero imagino que algún pipe sirve como entrada
del micrófono (en mi caso es PID 2011):
[root@fenix ~]# lsof -p 2011
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
pulseaudi 2011 marcelo cwd DIR 8,5 4096 128 /
...
pulseaudi 2011 marcelo 3u unix 0xffff8803feaa9a00 0t0
14058 socket
pulseaudi 2011 marcelo 4u unix 0xffff88038660f400 0t0
1327106 /run/user/1000/pulse/native
...
pulseaudi 2011 marcelo 9u unix 0xffff8804078f6080 0t0
17501 socket
pulseaudi 2011 marcelo 10u REG 8,5 8192
1783054 /home/marcelo/.pulse/1a1c41003ca544b1b74d3285e3d8f066-device-volumes.tdb
pulseaudi 2011 marcelo 11u REG 8,5 12288
4083442 /home/marcelo/.pulse/1a1c41003ca544b1b74d3285e3d8f066-stream-volumes.tdb
pulseaudi 2011 marcelo 12u REG 8,5 32768
1783055 /home/marcelo/.pulse/1a1c41003ca544b1b74d3285e3d8f066-card-database.tdb
pulseaudi 2011 marcelo 14u netlink 0t0
16187 KOBJECT_UEVENT
pulseaudi 2011 marcelo 15u unix 0xffff88040764b740 0t0
16188 socket
...
pulseaudi 2011 marcelo 20u CHR 116,7 0t0
6832 /dev/snd/controlC0
pulseaudi 2011 marcelo 21u CHR 116,4 0t0
6829 /dev/snd/pcmC0D0p
pulseaudi 2011 marcelo 22u CHR 116,7 0t0
6832 /dev/snd/controlC0
...
pulseaudi 2011 marcelo 27u CHR 116,7 0t0
6832 /dev/snd/controlC0
pulseaudi 2011 marcelo 29u CHR 116,7 0t0
6832 /dev/snd/controlC0
pulseaudi 2011 marcelo 30u unix 0xffff8804078f63c0 0t0
17496 socket
pulseaudi 2011 marcelo 31r DIR 8,5 4096
1210749 /home/marcelo
pulseaudi 2011 marcelo 32r DIR 0,29 60
16189 /tmp/.esd-1000
pulseaudi 2011 marcelo 33u unix 0xffff88040764a700 0t0
16191 /tmp/.esd-1000/socket
pulseaudi 2011 marcelo 34u unix 0xffff880407649380 0t0
16194 /run/user/1000/pulse/native
pulseaudi 2011 marcelo 35r FIFO 0,8 0t0 16196 pipe
pulseaudi 2011 marcelo 36r a_inode 0,9 0
6112 inotify
pulseaudi 2011 marcelo 37u unix 0xffff88040764a3c0 0t0
16202 /run/user/1000/pulse/dbus-socket
Seguramente alguno de estos sockets sirve de forma similar a los
viejos dispositivos.
Para Ver las características del dispositivo como tal hay que dar
algunas vueltas:
[root@fenix ~]# udevadm info -q all -n /dev/snd/controlC0
P: /devices/pci0000:00/0000:00:1b.0/sound/card0/controlC0
N: snd/controlC0
S: snd/by-path/pci-0000:00:1b.0
E: DEVLINKS=/dev/snd/by-path/pci-0000:00:1b.0
E: DEVNAME=/dev/snd/controlC0
E: DEVPATH=/devices/pci0000:00/0000:00:1b.0/sound/card0/controlC0
E: ID_PATH=pci-0000:00:1b.0
E: ID_PATH_TAG=pci-0000_00_1b_0
E: MAJOR=116
E: MINOR=7
E: SUBSYSTEM=sound
E: TAGS=:uaccess:
E: USEC_INITIALIZED=34650
Ahora puedes ver más datos mediante el sistema de archivos /sys
(simplemente prefija /sys al DEVPATH que salió arriba)
[root@fenix ~]# cd /sys/devices/pci0000:00/0000:00:1b.0/sound/card0/controlC0
[root@fenix controlC0]# cd device/device
[root@fenix device]# ls -l
total 0
-rw-r--r-- 1 root root 4096 Apr 3 18:04 broken_parity_status
-r--r--r-- 1 root root 4096 Apr 3 09:39 class
-rw-r--r-- 1 root root 4096 Apr 3 00:39 config
.....
Ahora tienes un montón de información a tu disposición. Por ejemplo,
el enlace con el módulo del linux
[root@fenix device]# cat modalias
pci:v00008086d00001C20sv00001043sd00008444bc04sc03i00
Con eso puedes ver el módulo del linux
[root@fenix device]# modinfo
pci:v00008086d00001C20sv00001043sd00008444bc04sc03i00
filename:
/lib/modules/3.8.4-1-ARCH/kernel/sound/pci/hda/snd-hda-intel.ko.gz
description: Intel HDA driver
....