Мы — долго запрягаем, быстро ездим, и сильно тормозим.

FreeBSD
  настройка
  подсчёт трафика
  программы
  почтовые системы
  Шелезяки
  UPS APC-1500
  NetMos NM9845
  cisco & syslog
  LAN card`s test
  HDD & UDMA100
  S.M.A.R.T.
  D-Link DE-200TP
  Marvell 88E8053
  D-Link DGE530T
  КПК + FreeBSD
  D-Link DWL-G520
  SkyLink-CDMA
  Atheros AR5007EG
  BlueTooth mouse
  Asus Eee PC
  atacontrol
  SkyStar-2+SlonAx
  TT budget S-1401
  SiS*Mirage*1 на D201GLY2
  NetXtreme BCM5722
  snd_hda
  Peoplenet + C-motech (3G)
  freebsd + huawei 162 gsm modem
  tw_cli
  pc_speaker
  Canon/gphotofs
  Охранная система на FreeBSD+LPT
  Даешь 220 в LPT
  Мелочи
  Файловая система
  WWW
  Security
  system
  Games Servers
  X11
  Programming
Очумелые Ручки
OpenBSD
Cisco


www.lissyara.su —> статьи —> FreeBSD —> Шелезяки —> snd_hda

Патчим snd_hda для корректной работы с наушниками

Автор: manefesto.


Вместе с выходом FreeBSD 6.3,7.0 в состав дистрибутива был включен драйвер snd_hda.
Купив ноутбук и обнаружев звуковуху HDA, была обнаружен один недочет в драйвере. А именно при втыкании наушников, встроенные динамики продолжали играть.Немного поискав на просторах интернета наткнулся на блог http://acer-freebsd.blogspot.com/2008/02/sound-in-both-speaker-and-headphones.html. По аналогии у меня почему то получилось.
Собственно говоря решение проблемы.

Подгружаем модуль snd_hda
$kldload snd_hda

В нулевой консоли наблюдаем нечто вроде

pcm0: <HDA Codec: Realtek ALC888>
pcm0: <HDA Driver Revision: 20071129_0050>

Из этого делаем вывод что используется кодек ALC888.

Теперь смотри вывод pciconf -lv о нашей бездушной железке, а именно :

$pciconf -lv | grep -A2 pcm
pcm0@pci0:0:27:0:       class=0x040300 card=0x17651043 chip=0x284b8086 rev=0x03 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '82801H &SUBSYS_81EC1043&REV_02\3&11583659&0&D8'

на интересует card=0x17651043

Лезем в /usr/src/sys/dev/sound/pci/hda/ и правим hdac.c

Здесь указываем идентификатор карты(первые четыре цифры после 0х) и вносим изменения:
219 #define ASUS_X55SV_SUBVENDOR    HDA_MODEL_CONSTRUCT(ASUS, 0x1765)

Привязываем кодек ALC888 к карте

{ LG_LW20_SUBVENDOR, HDA_CODEC_ALC880, HDAC_HP_SWITCH_CTL,
0, 0, -1, 27, { 20, -1 }, -1 },
+ { ASUS_X55SV_SUBVENDOR, HDA_CODEC_ALC888, HDAC_HP_SWITCH_CTL,
+ 0, 0, -1, 27, { 20, -1 }, -1 },
{ ACER_A5050_SUBVENDOR, HDA_CODEC_ALC883, HDAC_HP_SWITCH_CTL,
0, 0, -1, 20, { 21, -1 }, -1 },

Включаем в ядро:
device snd_hda

пересобираем ядро и любуемся звуком в наушниках.
==============================================
PS: По аналогии делаем для других ноутбуков.
PPS: Особая благодарность paradox



Ссылка на обсуждение: http://forum.lissyara.su/viewtopic.php?t=9100.

размещено: 2008-07-02,
последнее обновление: 2008-07-02,
автор: manefesto

оценить статью:

hint, 2008-07-08 в 15:24:13

По ссылке на блог - Страница не найдена. За заметку спасибо, попробую, сам столкнулся буквально неделю назад с такой проблемой после приобритения ноута.

sjava, 2008-07-13 в 12:23:00

http://acer-freebsd.blogspot.com/2008/02/sound-in-both-speaker-and-headphones.html

(в ссылке точку надо убрать :) )

Pattern, 2008-08-01 в 0:25:43

Добавочка с поправочкой. Для тех, кому не понятно, откуда взят поток цифр
0, 0, -1, 20, { 21, -1 }, -1 },
При запуске в нуль консоли пишется модель кодека, с которой опозналась карта. В данном случае ALC888. Через поиск в файле hdac.c ищем этот кодек, который описан для другой модели карты и смело копируем их для своей модели.
ЗЫЖ Просто я голову сломал, пока сообразил откуда они взялись.

paradox, 2008-08-01 в 1:49:24

вообще на форуме все рассписано
просто manefesto не поправил статью

а то можно потоком цифр ошибиться
а они там могут быть очень даже разные

Time , 2008-08-26 в 11:39:13

Подскажите пожалуисто как включить микрофон, хочу пользоваться скаипом а он выдает мол не наидины наушники

VampiRUS, 2008-09-14 в 11:42:47

Был был бы очень благодарен еслиб линк заменили на http://vampirus.ru/2008/02/02/sound-in-both-speaker-and-headphones/
т.к. с того блога я перехал, ну и ссылка была бы не лишней ;)
зы: спасибо, за этот сайт и инфу на нём

DimanNe, 2009-10-25 в 11:51:49

Хз конечно к какой версии snd_hda была написана эта статья, но во FreeBSD 8 beta4 решать проблему так - глупо, всё можно настроить без изменения исходников и перекомпиляции.
1)Verbose boot:
hdac0:  nid 27 0x02214c20 as  2 seq  0    Headphones  Jack jack  1 loc  2 color   Green misc 12
видим что Headphones соответсвует nid 27 (нам надо знать только это число), дальше пишем лишь одну строчку в /boot/device.hints
hint.hdac.0.cad0.nid27.config="as=1 seq=15" и перезагружаемся. Всё работает.


Оставьте свой комментарий:
Ваше имя:   *
e-mail:  
жирный
наклонный
подчёркнутый
ссылка
цвет
Нынешний год:   *
 


Хостинг HOST-FOOD

2014-07-27, lissyara
gmirror

Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9

Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту

Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis

Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS

Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT

В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat

Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp

Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration

Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 12 чел.
За последние 30 мин было: 47 человек
За сегодня было
7705 показов,
863 уникальных IP
 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.0366 секунд
Из них PHP: 21%; SQL: 79%; Число SQL-запросов: 77 шт.
Исходный размер: 87687; Сжатая: 17044