определение внешней USB звуковой карты
Внешняя usb-звуковая карта определяется в нескольких разных линукс-дистрах и с разными ядрами как voip-телефон, при этом исп-ся модуль cm109.
На сайте производителя драйвера под линукс нет.
Пробовал передавать все доступные параметры модуля — всё равно кнопки на звуковой некорректно работают-громкость резко увеличивается или резко уменьшается. Как можно правильно сконфигурить сабж?
И сам факт того, что звуковая определяется как voip-телефон- это из-за одинакового чипсета?
$ lsusb Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 003: ID 0bda:0139 Realtek Semiconductor Corp. Card reader Bus 002 Device 006: ID 046d:c05f Logitech, Inc. Bus 002 Device 007: ID 0d8c:000e C-Media Electronics, Inc. Audio Adapter (Planet UP-100, Genius G-Talk) Bus 002 Device 005: ID 04f2:b272 Chicony Electronics Co., Ltd Lenovo EasyCamera
$ aplay -l **** List of PLAYBACK Hardware Devices **** card 0: PCH [HDA Intel PCH], device 0: CONEXANT Analog [CONEXANT Analog] Subdevices: 0/1 Subdevice #0: subdevice #0 card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0] Subdevices: 1/1 Subdevice #0: subdevice #0
$ aplay -L default Playback/recording through the PulseAudio sound server sysdefault:CARD=PCH HDA Intel PCH, CONEXANT Analog Default Audio Device front:CARD=PCH,DEV=0 HDA Intel PCH, CONEXANT Analog Front speakers surround40:CARD=PCH,DEV=0 HDA Intel PCH, CONEXANT Analog 4.0 Surround output to Front and Rear speakers surround41:CARD=PCH,DEV=0 HDA Intel PCH, CONEXANT Analog 4.1 Surround output to Front, Rear and Subwoofer speakers surround50:CARD=PCH,DEV=0 HDA Intel PCH, CONEXANT Analog 5.0 Surround output to Front, Center and Rear speakers surround51:CARD=PCH,DEV=0 HDA Intel PCH, CONEXANT Analog 5.1 Surround output to Front, Center, Rear and Subwoofer speakers surround71:CARD=PCH,DEV=0 HDA Intel PCH, CONEXANT 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 dmix:CARD=PCH,DEV=0 HDA Intel PCH, CONEXANT Analog Direct sample mixing device dmix:CARD=PCH,DEV=3 HDA Intel PCH, HDMI 0 Direct sample mixing device dsnoop:CARD=PCH,DEV=0 HDA Intel PCH, CONEXANT Analog Direct sample snooping device dsnoop:CARD=PCH,DEV=3 HDA Intel PCH, HDMI 0 Direct sample snooping device hw:CARD=PCH,DEV=0 HDA Intel PCH, CONEXANT Analog Direct hardware device without any conversions hw:CARD=PCH,DEV=3 HDA Intel PCH, HDMI 0 Direct hardware device without any conversions plughw:CARD=PCH,DEV=0 HDA Intel PCH, CONEXANT Analog Hardware device with all software conversions plughw:CARD=PCH,DEV=3 HDA Intel PCH, HDMI 0 Hardware device with all software conversions
сам факт того, что звуковая определяется как voip-телефон- это из-за одинакового чипсета?
всё равно кнопки на звуковой некорректно работают-громкость резко увеличивается или резко уменьшается.
менеджер горячих клавиш запущен или оно аппаратное?
все параметры модуля cm109 были опробованы:
$ modinfo cm109 filename: /lib/modules/3.8.0-32-generic/kernel/drivers/input/misc/cm109.ko license: GPL description: CM109 phone driver author: Alfred E. Heggestad srcversion: A83B250D7387181F48A9584 alias: usb:v0D8Cp000Ed*dc*dsc*dp*ic03isc00ip00in* depends: intree: Y vermagic: 3.8.0-32-generic SMP mod_unload modversions 686 parm: phone:Phone name (charp)
результат тот же. при этом еще загружается модуль snd_usb_audio:
$ modinfo snd_usb_audio filename: /lib/modules/3.8.0-32-generic/kernel/sound/usb/snd-usb-audio.ko license: GPL description: USB Audio author: Takashi Iwai srcversion: 693CAF94A3D3DF8828B81E5 alias: usb:v*p*d*dc*dsc*dp*ic01isc01ip*in* . . depends: snd-usbmidi-lib,snd-pcm,snd,snd-hwdep intree: Y vermagic: 3.8.0-32-generic SMP mod_unload modversions 686 parm: index:Index value for the USB audio adapter. (array of int) parm: id:ID string for the USB audio adapter. (array of charp) parm: enable:Enable USB audio adapter. (array of bool) parm: vid:Vendor ID for the USB audio device. (array of int) parm: pid:Product ID for the USB audio device. (array of int) parm: nrpacks:Max. number of packets per URB. (int) parm: device_setup:Specific device setup (if needed). (array of int) parm: ignore_ctl_error:Ignore errors from USB controller for mixer interfaces. (bool)
может имеет смысл явно запретить в ядре исп-ие модуля cm109 и карта определится нормально?
попробовал-теперь кнопки на звуковой вообще не увеличивают и не уменьшают громкость, в логе:
Nov 8 11:12:31 sky-19 kernel: [ 287.988651] usb 2-1.2: USB disconnect, device number 4 Nov 8 11:12:34 sky-19 kernel: [ 291.259845] usb 2-1.2: new full-speed USB device number 7 using ehci-pci Nov 8 11:12:35 sky-19 kernel: [ 291.352946] usb 2-1.2: New USB device found, idVendor=0d8c, idProduct=000e Nov 8 11:12:35 sky-19 kernel: [ 291.352956] usb 2-1.2: New USB device strings: Mfr=0, Product=1, SerialNumber=0 Nov 8 11:12:35 sky-19 kernel: [ 291.352962] usb 2-1.2: Product: Generic USB Audio Device
ну т.е. VendorID и ProductID правильные, куда дальше копать не знаю(((
cm109 Это не тот модуль. Нужен модуль ALSA. Судя по aplay она вообще не видит эту карту. Поищи здесь http://www.alsa-project.org/main/index.php/Matrix:Main . Если есть модуль для твоего чипа, то есть и настройки, если нет, то увы, карту не завести.
не всё так просто, прописал в /etc/modprobe.d/alsa-base.conf
options snd-usb-audio index=0
в списке aplay карта была ранее вторая, теперь первая:
$ aplay -l **** List of PLAYBACK Hardware Devices **** card 0: Device [Generic USB Audio Device], device 0: USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: PCH [HDA Intel PCH], device 0: CONEXANT Analog [CONEXANT Analog] Subdevices: 0/1 Subdevice #0: subdevice #0 card 1: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0] Subdevices: 1/1 Subdevice #0: subdevice #0
ситуация та же- через нее звук играется, но кнопки на звуковой некорректно увеличивают, уменьшают звук (резко до максимума или до минимума)
насколько я понимаю, воспроизведение звука обеспечивает модуль snd-usb-audio, а вот управление кнопками (keymap) занимается модуль cm109 (при этом все параметры keymap этого модуля перепробовал-то же самое. )
на сайте производителя есть только драйвер под винду Cmedia USB Audio Driver, и чип на сайте CM108AH (http://www.cmedia.com.tw/ProductsDetail/page-p/C1Serno-25/C2Serno-26/PSerno-7. ), а не CM109.
как вообще идеологически правильно в линухе прикручивать подобные устройства -> headset phone usb device (пересобирать ядро?)
Какой смысл пересобирать? Тем более udev все должен подключать автоматически.
я думал, что если в ядре явно убрать поддержку модуля CM109 (для voip-телефонов), ядро сможет подгрузить более подходящий модуль с более правильной kymap. Попробовал-unsuccessfull ((
Звуковуха на CM106, кнопки обычное hid устройство.
showkey при нажатии кнопок, что показывает? ‘dmesg | tail’ после втыкания зкуковухи?
[ 239.990066] usb 2-1.2: new full-speed USB device number 7 using ehci-pci [ 240.083167] usb 2-1.2: New USB device found, idVendor=0d8c, idProduct=000e [ 240.083176] usb 2-1.2: New USB device strings: Mfr=0, Product=1, SerialNumber=0 [ 240.083182] usb 2-1.2: Product: Generic USB Audio Device
Походу это все же не HID. Попробуй xev запустить и потыкать кнопочки.
KeymapNotify event, serial 42, synthetic NO, window 0x0, keys: 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 FocusOut event, serial 42, synthetic NO, window 0x2200001, mode NotifyGrab, detail NotifyAncestor FocusIn event, serial 42, synthetic NO, window 0x2200001, mode NotifyUngrab, detail NotifyAncestor KeymapNotify event, serial 42, synthetic NO, window 0x0, keys: 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 FocusOut event, serial 42, synthetic NO, window 0x2200001, mode NotifyNormal, detail NotifyNonlinear VisibilityNotify event, serial 42, synthetic NO, window 0x2200001, state VisibilityFullyObscured PropertyNotify event, serial 42, synthetic NO, window 0x2200001, atom 0x1bb (_NET_WM_ICON_GEOMETRY), time 249537, state PropertyNewValue MappingNotify event, serial 42, synthetic NO, window 0x0, request MappingKeyboard, first_keycode 8, count 248
при этом еще раз при его подключении:
[ 360.408162] usb 2-1.2: new full-speed USB device number 6 using ehci-pci [ 360.501266] usb 2-1.2: New USB device found, idVendor=0d8c, idProduct=000e [ 360.501276] usb 2-1.2: New USB device strings: Mfr=0, Product=1, SerialNumber=0 [ 360.501282] usb 2-1.2: Product: Generic USB Audio Device [ 360.520211] input: CM109 USB driver as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.3/input/input14
Непосретдтвенно при нажатии на клавишу появляется запись? По идее должен появиться ButtonRelease event.
нет, появляется только это:
$ xev Outer window is 0x2000001, inner window is 0x2000002 PropertyNotify event, serial 8, synthetic NO, window 0x2000001, atom 0x27 (WM_NAME), time 886396, state PropertyNewValue PropertyNotify event, serial 9, synthetic NO, window 0x2000001, atom 0x22 (WM_COMMAND), time 886396, state PropertyNewValue PropertyNotify event, serial 10, synthetic NO, window 0x2000001, atom 0x28 (WM_NORMAL_HINTS), time 886396, state PropertyNewValue CreateNotify event, serial 11, synthetic NO, window 0x2000001, parent 0x2000001, window 0x2000002, (10,10), width 50, height 50 border_width 4, override NO PropertyNotify event, serial 14, synthetic NO, window 0x2000001, atom 0x140 (WM_PROTOCOLS), time 886396, state PropertyNewValue MapNotify event, serial 15, synthetic NO, window 0x2000001, event 0x2000001, window 0x2000002, override NO PropertyNotify event, serial 20, synthetic NO, window 0x2000001, atom 0x1a1 (_NET_WM_ALLOWED_ACTIONS), time 886397, state PropertyNewValue PropertyNotify event, serial 20, synthetic NO, window 0x2000001, atom 0x184 (_NET_WM_VISIBLE_NAME), time 886398, state PropertyNewValue PropertyNotify event, serial 20, synthetic NO, window 0x2000001, atom 0x19f (_NET_WM_VISIBLE_ICON_NAME), time 886398, state PropertyNewValue PropertyNotify event, serial 20, synthetic NO, window 0x2000001, atom 0x1b9 (_OB_APP_ROLE), time 886398, state PropertyNewValue PropertyNotify event, serial 20, synthetic NO, window 0x2000001, atom 0x1bb (_OB_APP_NAME), time 886398, state PropertyNewValue PropertyNotify event, serial 20, synthetic NO, window 0x2000001, atom 0x1bc (_OB_APP_CLASS), time 886398, state PropertyNewValue PropertyNotify event, serial 20, synthetic NO, window 0x2000001, atom 0x1ba (_OB_APP_TITLE), time 886398, state PropertyNewValue PropertyNotify event, serial 20, synthetic NO, window 0x2000001, atom 0x1bd (_OB_APP_TYPE), time 886398, state PropertyNewValue PropertyNotify event, serial 20, synthetic NO, window 0x2000001, atom 0x149 (_NET_WM_ICON), time 886398, state PropertyNewValue ReparentNotify event, serial 20, synthetic NO, window 0x2000001, event 0x2000001, window 0x2000001, parent 0x10005da, (0,0), override NO PropertyNotify event, serial 22, synthetic NO, window 0x2000001, atom 0x14e (_NET_WM_STATE), time 886399, state PropertyNewValue ConfigureNotify event, serial 22, synthetic NO, window 0x2000001, event 0x2000001, window 0x2000001, (0,0), width 178, height 178, border_width 0, above 0x1000606, override NO ConfigureNotify event, serial 22, synthetic NO, window 0x2000001, event 0x2000001, window 0x2000001, (2,25), width 178, height 178, border_width 0, above 0x1000606, override NO PropertyNotify event, serial 22, synthetic NO, window 0x2000001, atom 0x145 (_NET_FRAME_EXTENTS), time 886399, state PropertyNewValue . .