Содержание

Ключевые слова: Х-терминал, linux, LTSP, Linux Terminal Server Project, терминальный linux-сервер, бездисковая станция, ПК без жесткого диска, использование старых компьютеров, diskless workstation, thin client, asplinux, использование Linux в офисе, X-terminal

Музыка на терминале (продолжение)

Узнать какие обязательные параметры требует модуль ядра можно и другим способом, при этом вовсе не обязательно обращаться за помощью к глобальной паутине. Достаточно вспомнить какие утилиты есть в самой операционной системе Linux. Так, узнать предназначение модуля ядра можно воспользовавшись такой командой:

$ /sbin/modinfo -d opl3sa2
"Module for OPL3-SA2 and SA3 sound cards (uses AD1848 MSS driver)."

А список его параметров покажет эта же утилита, только с другим параметром:

$ /sbin/modinfo -p opl3sa2
io int, description "Set I/O base of OPL3-SA2 or SA3 card (usually 0x370.  Address must be even and must be from 0x100 to 0xFFE)"
mss_io int, description "Set MSS (audio) I/O base (0x530, 0xE80, or other. Address must end in 0 or 4 and must be from 0x530 to 0xF48)"
mpu_io int, description "Set MIDI I/O base (0x330 or other. Address must be even and must be from 0x300 to 0x334)"
irq int
dma int, description "Set MSS (audio) first DMA channel (0, 1, 3)"
dma2 int, description "Set MSS (audio) second DMA channel (0, 1, 3)"
ymode int, description "Set Yamaha 3D enhancement mode (0 = Desktop/Normal, 1 = Notebook PC (1), 2 = Notebook PC (2), 3 = Hi-Fi)"
loopback int, description "Set A/D input source. Useful for echo cancellation (0 = Mic Rch (default), 1 = Mono output loopback)"
isapnp int, description "When set to 0, ISA PnP support will be disabled"
multiple int, description "When set to 0, will not search for multiple cards"

В подавляющем количестве случаев принудительную загрузку обязательных модулей таких как soundcore, sound, ad1848 и uart401 выполнять не обязательно, так как через механизм зависимостей модулей ядра они будут загружены автоматически. Например, если в предыдушем примере ограничиться только непосредственно звуковым модулем карты в параметрах файла /opt/ltsp/i386/etc/lts.conf, то звук все равно будет работать:

        SOUND              = Y
        SOUND_DAEMON       = esd
        SMODULE_01         = opl3sa2 io=0x370 mss_io=0x530 mpu_io=0x330 irq=5 dma=0 dma2=1

Убедимся в правильной загрузке модулей при помощи команды lsmod (модули, относящиеся к работе звука в ядре: opl3sa2, ad1848, mpu401, sound и soundcore):

# /sbin/lsmod
Module                  Size  Used by
opl3sa2                 6048   1 
ad1848                 19008   0 [opl3sa2] 
mpu401                 18832   0 [opl3sa2] 
sound                  52448   1 [opl3sa2 ad1848 mpu401] 
soundcore               3248   6 [sound] 
floppy                 46972   0 
nfsswap                 2640   1 
serial                 48208   0 (unused)
ne2k-pci                4288   1 
8390                    5808   0 [ne2k-pci] 
crc32                   2848   0 [8390]

Конечно, использование звука на Х-терминалах сопряжено с рядом ограничений. Во-первых, для запуска дополнительных модулей ядра, обеспечивающих поддержку звука и самого звукового демона (esd или nasd) требуется дополнительная оперативная память. Во-вторых, как было уже сказано раннее, передача звука по сети значительно увеличивает требования к ее пропускной способности. В любом случае не рекомендуется использовать параметр “SOUND = Y” в разделе [Default] файла /opt/ltsp/i386/etc/lts.conf. Хорошо, если пользователи будут использовать звук в качестве элемента интерфейса (звуки при нажатии на кнопки, разворачивание и сворачивание окна и т.п.), тогда нагрузка на сеть будет распределенной. Если же они все одновременно будут слушать музыку, то звуковой трафик составит более 90% пропускной способности локальной сети Х-терминалов.

Еще одним важным ограничением сетевого звука являются задержки при его передаче. Так как обрабатывается звуковой поток сервером, а затем в разжатом виде передается звуковому демону Х-терминала, то небольшие временные задержки присутствуют.

Кроме упомянутых выше параметров настройки поддержки звука на Х-терминалах (SOUND, SOUND_DAEMON и SMODULE_ХХ) в файле /opt/ltsp/i386/etc/lts.conf можно использовать еще и следующие аргументы:

VOLUME – значение громкости динамиков компьютера, установленное в процентах. Не смотря на процентное значение (от 0 до 100), знак % не следует добавлять после числа. Значение по умолчанию: VOLUME = 75;

MIC_VOLUME – определяет чувствительность микрофона Х-терминала. Как и предыдущий параметр принимает процентное значение. По умолчанию, установлено в 75 (MIC_VOLUME = 75);

CD_VOLUME – громкость звука от проигрывателя компакт-дисков. Значение по умолчанию CD_VOLUME = 75.

Для закрепления методов настройки ISA-звуковых карт на терминалах приведу параметры для активации некоторых звуковых карт.

Звуковые карты на чипсете Crystal:

SMODULE_01         = cs4232 irq=5 io=0x220 dma=1

ESS ES1868:

SMODULE_01         = sound dmabuf=1
SMODULE_02         = opl3 io=0x388
SMODULE_03         = sb isapnp=1

Легендарный Creative Sound Blaster Vibra 16:

SMODULE_01         = sb io=0x220 irq=5 dma=1

Для PCI устройств и интегрированных звуковых контроллеров настройка намного проще. Достаточно указать в параметрах соответствующего раздела файла /opt/ltsp/i386/etc/lts.conf такие строки, если вы используете демон звука ESounD:

        SOUND              = Y
        SOUND_DAEMON       = esd
        SMODULE_01         = auto

Для пользователей, предпочитающих работать с демоном nasd, достаточно изменить лишь одну строку:

        SOUND              = Y
        SOUND_DAEMON       = nasd
        SMODULE_01         = auto

Пока интересно, читаем дальше!

Авторское право © Сеник Николай, 2004-2006