Показаны сообщения с ярлыком alsa. Показать все сообщения
Показаны сообщения с ярлыком alsa. Показать все сообщения

воскресенье, 15 февраля 2009 г.

Микрофон, alsa и IseWM

После настройки alsaconf не работает запись звука. Выкрутил в alsamixer микрофон по максимуму, и все равно не пишет ничего "arecord test.wav". На вкладке Capture (переход по Tab-у) то же навыкручивал на максимум все что касается микрофона и Capture. Не работает. Оказалось, надо же было еще на Capture нажать пробел, для того, что бы активировать захват. При этом еще появилась подпись
L.....R
CAPTURE

пятница, 16 января 2009 г.

Модем ноутбука fujitsu siemens C1020 (modem,no dialtone,no carrier)

Попался мне ноутбук fujitsu siemens C1020. Накатил Slackware 12.2. А вот с модем вышел небольшой казус. Итак, модем в данном ноутбуке Conexant и драйвер есть на сайте Linuxant (14.4к ограничение в FREE версии). Драйвера входящие в комплект Alsa (snd_via82xx_modem) не подходят!
Скачал, установил. И вот они грабли. Что бы ни делал, какие параметры драйверу звука (snd_via82xx) не задавал, модем упорно выдает "no dialtone" или "no carrier". Если не допустить загрузку драйвера звука (snd_via82xx), то тогда модем дозванивается и соединение устанавливается, но молча, как партизан. Как только подгружаешь драйвер звука, сразу те же глюки. Даже если затем драйвер выгрузить, ничего не помогает. Только перезагрузка. Связывался с тех.поддержкой Linuxant, то же ничего толкового не сказали. Говорят, что с моими настройками все должно работать, проблем нет (я им дамп отсылал, который их программка собирает из системной информации)
Начал изучать драйвер звука и нашел таки проблему.

Проблема была в следующих строчках кода via82xx.c
===============================================
if (chip->chip_type != TYPE_VIA686) {
/* Workaround for Award BIOS bug:
* DXS channels don't work properly with VRA if MC97 is disabled.
*/
struct pci_dev *pci;
pci = pci_get_device(0x1106, 0x3068, NULL); /* MC97 */
if (pci) {
unsigned char data;
pci_read_config_byte(pci, 0x44, &data);
pci_write_config_byte(pci, 0x44, data | 0x40);
pci_dev_put(pci);
}
}
================================================
В общем, говоря проще, драйвер активирует MC97 для того, что бы DXS каналы в режиме VRA нормально работали, а это и есть наш модем (0x1106, 0x3068), который мы уже запустили с помощью драйверов linuxant. Вот здесь и произошел затык.

Закоментировал эти строчки
// pci_write_config_byte(pci, 0x44, data | 0x40);
// pci_dev_put(pci);

Пересобрал драйвер. И все работает. Для проверки зашел в minicom дал команду набора номер ATDTxxxxxx и слышу тональный сигнал, набор номера, ответ удаленного модема. Звуковая подсистема тоже работает и DXS каналы (из-за запуска которых все это и закрутилось).
В виде патча оформлять не стал. Кому понадобиться, сам разберется с двумя строчками кода.