32reg |
|
Темы:
29
Сообщения:
526
Участник с: 17 мая 2011
|
Здравствуйте, всем. Писал уже про эту вебку и ее микрофон, и даже костыль был найден, но очень неудобный, да и срабатывал не всегда. Скайпом пользовался очень редко, поэтому забил на эту проблему. но сейчас снова нужен скайп, а микрофон так и не работает нормально. Проблема с микрофоном, походу, не только в скайпе, а в любом приложении, записывающем звук. Выяснил в /proc что микрофон в этой usb-камере поддерживает четыре частоты записи: 16000, 24000, 32000, и 48000Гц. Если записывать arececord'ом на частотах 16000 или 24000, то звук нормальный, если на частотах 32000 и 48000 - то ускоренный (бурундучий). Пробовал в /etc/pulse/daemon.conf менять дефолтную частоту и на 41400, и на 48000, и на 16000, и на 24000 - результат один: при первом аудиовызове в скайпе микрофон работает нормально, при последующих снова ускоренно (иногда вообще без звука и скайп выдает сообщение что микрофон не найден). Есть какой-нибудь способ указать скайпу принудительно использовать нужную частоту записи, 16000 или 24000? Еще пробовал патчить файл исходников ядра drivers/usb/core/quirks.c вот этим патчем и собирал ядро. Ядро собралось, система запустилась, но микрофон лучше не заработал. Кстати, в исходниках ядра (в файле который патчил) почему-то не было строк, которые добавляет этот патч, хотя в англ топике по ссылке выше написано что этот патч потом внесли в ядро. Выходит потом снова выкинули? Подскажите, кто знаком со сборкой ядра или модулей, как мне пересобирать отдельно модуль usbcore и подсовывать его ядру для проверки? Потому что каждый раз из-за этого модуля пересобирать все ядро - это слишком. На моем компьютере понадобилось около 2,5 часов при полной загрузке 4-х ядер. В том же топике, далее вроде бы есть инструкция по сборке одтельно модуля. Попробовал по ней, вроде бы собирается и "vermagic" пишет как в том примере. Но при сборке ram image с этим модулем mkinitcpio выдает ошибку: "error exec format" (точно не помню сейчас, но как-то так). Initramfs при этом собирается. Но после загрузки системы с этого образа не работают вообще все usb-устройства. Хочу еще разные варианты изменения того файла попробовать, если научусь правильно собирать этот модуль ядра отдельно. Заметил еще (не знаю после какого обновления, но раньше такого не было), что в /dev появляются теперь два видео устройства video1 и video2 (video0 занято тв-тюнером). В настройках скайпа, соответственно также видны две веб-камеры с одинаковыми vid и pid, но, при выборе одной из них ничего не работает, даже видео. При выборе другой видео есть, звук - ускоренный. Может быть в этом проблема? В udev rules у меня ничего затрагивающего видео устройства нет. Кстати, есть ли в правилах udev возможность удаления устройства из /dev директории? То есть можно ли с помощью правила удалить устройство /dev/video2. Может тв-тюнер попробовать вытащить? Вроде бы все описал. Если нужны какие-то логи, файлы, напишите, предоставлю.
www.linux32.ru - новости и статьи о Linux
|
vs220 |
|
Темы:
22
Сообщения:
8070
Участник с: 16 августа 2009
|
Имею такую же вебку со звуком никаких проблем нет, ядро и алса стандартные, пульсы нет скайп через apulse запускается |
32reg |
|
Темы:
29
Сообщения:
526
Участник с: 17 мая 2011
|
vs220, у вас одно видео устройство в /dev появляется или два?
www.linux32.ru - новости и статьи о Linux
|
vs220 |
|
Темы:
22
Сообщения:
8070
Участник с: 16 августа 2009
|
Два |
Aivar |
|
Темы:
4
Сообщения:
6897
Участник с: 17 февраля 2011
|
vs220Дык, это же для skype-legacy надо было. skypeforlinux работает с альсой без этого. --- "Бурундучего" голоса не было, но при частоте дискретизации >22050 Гц было неприятное потрескивание. Прописал 22050 в конфиге альсы. Порядок. ЗЫ. Пульсы нет. ---
|
vasek |
|
Темы:
48
Сообщения:
11320
Участник с: 17 февраля 2013
|
32regПересобрать можно и отдельно только один модуль, вроде я как то уже тебе описывал это и вроде у тебя все получилось. Не знаю причем тут usbcore, но если причина действительно в нем и помогло внесение изменений в quirks.c, то я бы попробовал поиграться с параметрами модуля usbcore и в 1-ую очередь с параметром quirks=vendorID:productID:quirks Если получится, то это будет самый лучший вариант EDIT 1 - приведенный патч равносилен загрузке модуля usbcore с параметром quirks=vendorID:productID:b (например, quirks=0x1bcf:0x2805:b или quirks=1bcf:2805:b) где b = USB_QUIRK_RESET_RESUME и означает - device can't resume correctly so reset it instead - что и добавили в том патче Если не все будет OK, можно добавлять другие значения quirks
Ошибки не исчезают с опытом - они просто умнеют
|
vasek |
|
Темы:
48
Сообщения:
11320
Участник с: 17 февраля 2013
|
32regДа, проверил, действительно устройства с VID=0x046d, PID=0x0825 в данном файле нет rg '0x046d, 0x0825' ~/linux-4.16.8/drivers/usb/core/quirks.c …. пусто …. Для проверки взял другое устройство rg '0x046d, 0xc05a' ~/TTT/linux-4.16.8/drivers/usb/core/quirks.c 284: { USB_DEVICE(0x046d, 0xc05a), .driver_info = USB_QUIRK_RESET_RESUME }, Значит параметр quirks=0x046d:0x0825:b или quirks=046d:0825:b должен сработать
Ошибки не исчезают с опытом - они просто умнеют
|
32reg |
|
Темы:
29
Сообщения:
526
Участник с: 17 мая 2011
|
vasek, спасибо за развернутые ответы. Нет, не помогло внесение изменений в quirks.c Я не нашел пока вашего описания как собирать модуль, если не трудно дайте ссылку пожалуйста. Я заметил в этом файле отрывок, отвечающий за все веб-камеры от Logitech. Там что-то с общим VendorID связано было (046d значение). Хочу попробовать удалить общую часть про logitech и добавить патч именно для своей вебки. Может так что-то выйдет. Загружать usbcore с параметром quirks=046d:0825:USB_QUIRK_RESET_RESUME пробовал. Ничего не изменилось. Сейчас попробовал с параметром :b в конце строки вместо USB_QUIRK_RESET_RESUME - тоже ничего. Хотя должно было... Я пробовал параметры задавать через файл в /etc/modprobe.d, сейчас попробую через grub. Я про значение :b не знал. А где вы нашли информацию по возможным значениям параметра quirks? Какие еще значения могут быть? Aivar, у меня кеды и пульс идет как зависимость. Через -Rdd удалять его не очень хочется, боюсь что-нибудь другое отвалится. Пробовал поставить apulse без удаления pulseaudio - тоже не вышло. Можно ваш конфиг для alsa посмотреть? Особенно где вы выставляете макс частоту. Пульс вроде бы должен учитывать конфиги альсы в домашней директории, если они есть. Может с конфигом получиться...
www.linux32.ru - новости и статьи о Linux
|
vs220 |
|
Темы:
22
Сообщения:
8070
Участник с: 16 августа 2009
|
32regприбейте временно или попробовать лучше чем лезть в ядро, повторю у меня нормально работает на любой частоте. Сейчас воткнул в другой комп с электронным скайпом(skypeforlinux-stable-bin-8.25.0.5-1) тестовый звонок тоже отличный звук с микрофонаКакой у вас ID устройства может под одним названиям разные выпускали у меня lsusb cat /proc/asound/card2/stream0
|
32reg |
|
Темы:
29
Сообщения:
526
Участник с: 17 мая 2011
|
systemctl –user stop pulseaudio.socketпробовал, не помогает.
Вот еще на всякий случай моя звуковая:
www.linux32.ru - новости и статьи о Linux
|