Автор Тема: Звук ISA ESS1879 + Lenny Stable  (Прочитано 2684 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Gennie

  • Global Moderator
  • *****
  • Сообщений: 378
  • Karma: +10/-0
Звук ISA ESS1879 + Lenny Stable
« : 08 Марта 2009, 04:27 »
Всем доброго времени уток!
Всех замечательных и прекрасных, милых и дарящих радость девушек и женщин поздравляю с замечательным праздником!!!

А теперь по сути вопроса.

Старый ноут. Комплектующие Тошиба, американская сборка, noname. Pentium 200MHz MMX/ 96MB RAM/ 12GB HDD/ 12" 800x600x16 framebuffer only (это под Линуксом так, под вендой коммерческие дрова от НеоМаждик, в смысле, не фреймбуфер; и 24, а не 16 бит цвета, ну да ладно). На этом чуде встроен _ISA_-звук, который в винде и во всяких WinPE-подобных лайв-CD средах определяется абсолютно однозначно как ESS1879 Audio Drive. Поскольку бук не конструктор, все настройки аудио производятся довольно удобно -- прямо в биосе. По умолчанию там стояло следующее: Audio/midi port address 220h-22Fh, IRQ5, Channel1 DMA3, Channel2 DMA5, MIDI port 300h-303h. Всё. Больше там ничего не настраивается. Видимо, _НЕ НАДО_ ничего больше для звука. Сейчас я заменил IRQ на 9 вместо 5-го.

Ставил Debian Testing. Да, это был Ленни! И да, сейчас он вдруг почему-то стал stable ( :shocked: ) и потерял такую фичу как update-modules (дебианщики поймут моё недоумение). Которая теперь ничего не делает (cм. чуть ниже). Как предполагается при этом, чтобы заработал звук, если я что-либо изменил в конфигах, не вполне понятно. Может и само собой вдруг всё должно заработать, не знаю, но у меня почему-то этот звук так и не запустился на стационарной системе. Прикол в том, что мне удаётся его запустить из-под Knoppix 5.1.1, но весьма не очевидным способом. Сначала имеем следующее: одни и те же данные как под Кноппиксом, так и в стационарном Дебиане, а именно: mnc:~# cat /sys/devices/pnp0/00:0f/id
ESS1879
mnc:~# cat /sys/devices/pnp0/00:0f/options
port 0x220-0x280, align 0x1f, size 0x10, 16-bit address decoding
port 0x388-0x508, align 0x7f, size 0x4, 16-bit address decoding
port 0x300-0x330, align 0xf, size 0x2, 16-bit address decoding
irq 5,7,2/9,10 High-Edge
Dependent: 01 - Priority acceptable
   dma 3 8-bit compatible
   dma 5 8-bit compatible
Dependent: 02 - Priority acceptable
   dma 3 8-bit compatible
   dma 1 8-bit compatible
Dependent: 03 - Priority acceptable
   dma 1 8-bit compatible
   dma 5 8-bit compatible
Dependent: 04 - Priority acceptable
   dma 1 8-bit compatible
   dma 3 8-bit compatible
Dependent: 05 - Priority acceptable
   dma 0 8-bit compatible
   dma 5 8-bit compatible
Dependent: 06 - Priority acceptable
   dma 0 8-bit compatible
   dma 3 8-bit compatible
Dependent: 07 - Priority acceptable
   dma 0 8-bit compatible
   dma 1 8-bit compatible
mnc:~# cat /sys/devices/pnp0/00:0f/resources
state = disabled
io 0x220-0x22f
io 0x388-0x38b
io 0x300-0x301
irq 9
dma 3
dma 5
mnc:~# cat /sys/devices/pnp0/00:0f/uevent
PHYSDEVBUS=pnp
То есть, как видим, Линукс сам совершенно чётко определяет что это действительно ESS1879, подставляет для него в точности те же ресурсы, что я проставил в биосе и выдаёт весь довольно немаленький диапазон возможных параметров работы устройства. Тут такой момент, хоть оно "PHYSDEVBUS" и равно "pnp", однако по умолчанию и без настроек ничего не происходит. Что в свежепоставленном Дебиане, что в свежезагруженном Кноппиксе lsmod|grep snd не покажет совсем ничего. Обратите внимание: статус в Дебиане в файле занимаемых ресурсов "disabled", в то время как в Кнопе он "active". После ковыряний с alsaconf выясняем следующее:

1) Knoppix 5.1.1
Предлагает выбрать неподдерживаемую PNP-карту из списка;
Среди всего списка можно поставить только SoundBlaster8/2.0/Pro, чтобы появился звук, но он будет моно, одинаковый на оба канала, при этом появляются соответствующие модули OSS: snd-pcm-oss, snd-mixer-oss, snd-pcm, snd-page-alloc, snd-timer, snd и soundcore и, по сведениям alsamixer'а, для этого дела даже поднимается какой-то работающий микшер "CTL1345";
Далее можно снова запустить alsaconf и поставить на этот раз ES1688 (!!!) -- да-да, именно её!
Вот тогда появляется чистый стереозвук. Проверил mplayer'ом на mp3 и wav. Запись, правда, Кноппикс не тянет, вырубается с ошибкой чтения диска, но воспроизведение таким образом поднимается. Во всех других случаях, включения существующего в списке es18xx и т.п. alsamixer показывает, что на устройствах Master Volume и Hardware Master стоит неснимаемый mute. Последний регулятор ваще жесть -- такое впечатление, что этот Hardware Master вообще разmute'ить невозможно при любых прочих комбинациях (обычный Master Volume иногда можно). Разумеется, полная тишина на выходе и mplayer при попытке запуска файлов виснет до Ctrl+C либо безмолвно "проигрывает" файл (это когда Master Volume размьючивается), т.е. бегут секунды, но тишина.

2) Lenny. [Кстати, обновился уже на ноуте, сделав aptitude dist-upgrade -- результат тот же.]
На этот раз alsaconf прямо-таки обнаруживает es18xx или в качестве альтернативы предлагает выбрать по списку неподдерживаемых pnp-устройств.
Что в первом, что во втором случае при выборе es18xx тишина, HARDmute Master Volume'а и Hardware Master'а (ну вы поняли, да?) и висяк mplayer'а при попытке проигрыша файлов до Ctrl+C. Трюк с определением SB Pro тут уже не катит: на выбор SB8/2.0/Pro, также как и на выбор ES1688, alsaconf выкидывает с разочаровывающим "Звуковых карточек не обнаружено".  :confused:
Понятно, что звук нужен на стационарной системе, а не на лайв-сиди, но как ни бился, пока не решил загадку.
А, да, вдруг понадобится. При попытке определить alsaconf'ом es18xx оно пишет файл такого содержания:
mnc:~# cat /etc/modprobe.d/sound
alias snd-card-0 snd-es18xx
options snd-es18xx index=0 isapnp=0
, который я уже допиливаю напильником, добавляя enable=1 port=0x220 fm_port=0x388 mpu_port=0x300 dma1=3 dma2=5 irq=9. Не айс! Ну да, по разным сведениям, все те же самые замечательные параметры можно прописать и в (да что болтать, посмотрите лучше сами): mnc:~# cat /etc/modutils/alsa
# ALSA portion
alias char-major-116 snd
alias snd-card-0 snd-es18xx
options snd-es18xx index=0 port=0x220 fm_port=0x388 mpu_port=0x300 dma1=3 dma2=5 irq=9 isapnp=0

# OSS/Free portion
alias char-major-14 soundcore
alias sound-slot-0 snd-card-0

# card #0
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss
, а также в /etc/modules.conf, чего я даже не делал по причине слишком большого размера и неочевидного синтаксиса этого файла, но не думаю, чтобы оно чем-то помогло. Кстати, если верить mnc:~# cat /etc/modprobe.d/pnp-hotplug
# These aliases are used by /etc/udev/hotplug.rules and are provided by
# this file, part of the udev package, because the modules themselves do not.

alias pnp:dPNP0510 irtty-sir
alias pnp:dPNP0511 irtty-sir
alias pnp:dPNP0700 floppy
alias pnp:dPNP0800 pcspkr
alias pnp:dPNP0303 atkbd
alias pnp:dPNP0f13 psmouse
, то увидим, что PCSPEAKER поднимается в любом случае -- и таки да, он всегда работает. Про """устаревшие""" системы читал, что после записи конфигов надо было запустить update-modules, причём сам alsaconf её запускает после отработки. Сейчас же в уже стабильном Ленни имеем просто супер ситуацию: mnc:~# update-modules

************************************************************************
*
* The update-modules command is deprecated and should not be used!
*
************************************************************************
А вот это, мда, просто шедевр: UPDATE-MODULES(8)                   Debian                   UPDATE-MODULES(8)

NAME
       update-modules - obsolete command

SYNOPSIS
       update-modules

DESCRIPTION
       update-modules  is an obsolete command which does nothing.  Any program
       calling it should be fixed by not using it anymore.

       Note that the file /etc/modprobe.conf is not the  exact  equivalent  of
       /etc/modules.conf.  It is not required for module-init-tools and is not
       generated any more. In fact, most people should not  create  that  file
       since  /etc/modprobe.d/* would be ignored in this case but Debian pack‐
       ages store their additional configuration files in /etc/modprobe.d/.

SEE ALSO
       depmod(8) modprobe(8) modprobe.conf(5)

BUGS
       This program should be removed after modutils will  have  been  removed
       from the distribution and no package will try to use it anymore.

AUTHOR
       This  manual  page  was  written  by Marco d’Itri <md@linux.it> for the
       Debian GNU/Linux system.

Debian GNU/Linux                  9 July 2007                UPDATE-MODULES(8)
Не смешно на самом деле!
Ну вот, взываю к коллективному разуму. Коллеги, ау! Помогите поднять этот звук на Ленни!  :help:

Да, вдруг понадобится: в Knoppix'е alsaconf генерит такие /etc/modprobe.d/sound, сначала alias snd-card-0 snd-sb8alias snd-card-0 snd-sb8
options snd-sb8 index=0 dma8=1 irq=9
-- вот тут я ничего не добавлял, и именно по этой причине поменял в биосе прерывание с умолчального пятого на девятое, -- а затем для es1688 такой: alias snd-card-0 snd-es1688
options snd-es1688 index=0 dma8=1 mpu_irq=-1 irq=9
-- смотрим, -- тут я тоже ничего не менял, но тоже вылезает именно девятое прерывание, какое бы ни стояло в биосе. Ну вот, теперь, кажется, всё рассказал. Очень жду помощи.
Мир явно движется куда-то не туда и Microsoft возглавляет это движение! (L) 2006
Microsoft is not the answer... Microsoft is a question and the answer is NO!
Thou shalt call Unix-minded tru freeware a Holyware!