This Might Be Useful

Включаем звук в Benq S52 (Conexant CX20551, ICH6 Family)

Теперь, когда мы разобрались, как собирать ядро для Ubuntu, переходим к следующему шагу. Я использую ноутбук Benq S52, в котором установлена звуковая карта на чипе Conexant CX20551 (определяется как ICH6 Family AC'97 Audio Controller). Этот чип еще полноценно не поддерживается в Linux. В bugrtaq проекта ALSA написано, что проблема решена. Но установка последнего RC ALSA мне не помогла. Поэтому был найден другой путь - небольшое редактирование исходных текстов ядра. Ниже приводятся оба варианта решения проблемы.

Вариант номер один: ставим новую ALSA

Скачиваем новую версию ALSA и собираем ее:

CODE:
  1. ./configure --with-cards=intel8x0 --with-debug=full

Я не буду приводить остальные команды, необходимые для установки, так как они есть в официальной инструкции.

После установки нужен небольшой patch, который надо не забыть поставить в автозагрузку:

CODE:
  1. echo 5c 0001> '/proc/asound/card0/codec97#0/ac97#0-0+regs'

Примечание: этот способ у меня не заработал, звука не появилось. Правда появились щелчки из динамиков. Но, судя по форумам, у некоторых этот вариант отлично срабатывал.

Вариант номер два: модифицируем ядро

Нам понадобится отредактировать несколько файлов, добавив в них определенный код.

/usr/src/YOUR_KERNEL_VERSION/sound/pci/ac97/ac97_codec.c

C++:
  1. { 0x43525970, 0xfffffff8, "CS4202", NULL, NULL },
  2. { 0x43585421, 0xffffffff, "HSD11246", NULL, NULL }, // SmartMC II
  3. { 0x43585428, 0xfffffff8, "Cx20468", patch_conexant, NULL }, // SmartAMC fixme: the mask...
  4. // Начало добавления
  5. { 0x43585431, 0xffffffff, "Cx20551", patch_cx20551, NULL }, // ДОБАВЛЯЕМ ЭТУ СТРОКУ
  6. // Конец добавления
  7. { 0x44543031, 0xfffffff0, "DT0398", NULL, NULL },
  8. { 0x454d4328, 0xffffffff, "EM28028", NULL, NULL }, // same as TR28028?

/usr/src/YOUR_KERNEL_VERSION/sound/pci/ac97/ac97_patch.c

C++:
  1. /* Добавляем эту функцию */
  2. int patch_cx20551(struct snd_ac97 * ac97)
  3. {
  4. snd_ac97_write_cache(ac97, 0x5c, snd_ac97_read(ac97, 0x5c) | 0x01 );
  5. return 0;
  6. }
  7.  
  8. /*
  9. * Analog Device AD18xx, AD19xx codecs
  10. */

/usr/src/YOUR_KERNEL_VERSION/sound/pci/ac97/ac97_patch.h

C++:
  1. int patch_cirrus_spdif(struct snd_ac97 * ac97);
  2. int patch_conexant(struct snd_ac97 * ac97);
  3. // Начало добавления
  4. int patch_cx20551(struct snd_ac97 * ac97); /* ДОБАВЛЯЕМ ЭТОТ PROTOTYPE */
  5. // Конец добавления
  6. int patch_ad1819(struct snd_ac97 * ac97);

Теперь компилируем ядро, ставим его, перегружаемся и наслаждаемся звуком. Лично у меня все заработало.

· Сборка MySQL, Apache и PHP со всеми необходимыми расширениями
· Включение классического логон-скрина в Windows Vista
· Включение экрана загрузки Aurora
· Отключаем нежелательные HTML-элементы с помощью CSS
· Включение DreamScene

- Коментировать
- Trackback

Leave a Reply

code