<!-- <?xml version="1.0" ?> <!DOCTYPE chapter PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd"> To validate or process this file as a standalone document, uncomment this prolog. Be sure to comment it out again when you are done --> <chapter id="faq"> <title >Вопросы и ответы</title> <para >В этом разделы вы найдёте ответы на часто задаваемые вопросы об &arts;. </para> <qandaset id="faq-general"> <title >Общие вопросы</title> <qandaentry> <question> <para >Поддерживает ли &kde; мою звуковую карту? </para> </question> <answer> <para >Для воспроизведения звуков &kde; использует &arts;, а &arts; - драйверы ядра &Linux;: <acronym >OSS</acronym > или <acronym >ALSA</acronym > (с эмуляцией <acronym >OSS</acronym >). Всё будет работать, если они поддерживают вашу звуковую карту и она правильно настроена (т.е. другие приложения &Linux; могут производить звуки). Однако, с конкретным оборудованием могут возникнуть проблемы, об этом можно прочитать <link linkend="faq-hardware-specific" >в разделе о проблемах с оборудованием </link >. </para> <para >Кроме того, мы постоянно расширяем список поддерживаемых платформ. Это список для последней версии, если вашей там не оказалось, попробуйте портировать &arts; на нее. </para> <informaltable> <tgroup cols="2"> <thead> <row> <entry >Ввод и вывод звука в &arts;</entry> <entry >Комментарий</entry> </row> </thead> <tbody> <row> <entry >paud</entry> <entry >Поддержка AIX Personal Audio Device</entry> </row> <row> <entry >alsa</entry> <entry >Драйверы ALSA-0.5 и ALSA-0.9 для Linux</entry> </row> <row> <entry >libaudioio</entry> <entry >Поддержка библиотеки LibAudioIO для Solaris</entry> </row> <row> <entry >nas</entry> <entry >Поддержка звукового сервера NAS, используется для X-терминалов с NAS</entry> </row> <row> <entry >null</entry> <entry >Нулевое аудиоустройство, стирает данные о звуке</entry> </row> <row> <entry >oss</entry> <entry >Поддержка OSS (Open Sound System), работает под Linux, различными BSD и другими платформами с установленными драйверами OSS</entry> </row> <row> <entry >toss</entry> <entry >Расширенная поддержка OSS, исполльзуется тогда, когда стандартная система не работает.</entry> </row> <row> <entry >sgi</entry> <entry >Поддержка SGI Direct Media для IRIX</entry> </row> <row> <entry >sun</entry> <entry >Поддержка Solaris</entry> </row> </tbody> </tgroup> </informaltable> </answer> </qandaentry> <qandaentry> <question> <para >&artsd; не может воспроизводить файлы <literal role="extension" >wav</literal >! </para> </question> <answer> <para >Проверьте, собрано ли приложение &artsd; с поддержкой <filename >libaudiofile</filename > (<userinput ><command >ldd</command > <parameter >artsd</parameter ></userinput >). Если нет, скачайте пакет kdesupport и скомпилируйте всё ещё раз. Будет работать. </para> </answer> </qandaentry> <qandaentry> <question> <para >Я могу слышать звук только когда вхожу в систему как пользователь <systemitem class="username" >root</systemitem >, у остальных звука нет! </para> </question> <answer> <para >На то, могут ли пользователи включать звук, влияют права в файле <filename class="devicefile" >/dev/dsp</filename >. Чтобы дать права всем пользователям , сделайте следущее: </para> <procedure> <step> <para >Войдите в систему как пользователь <systemitem class="username" >root</systemitem >. </para> </step> <step> <para >Откройте окно &konqueror;. </para> </step> <step> <para >Перейдите в каталог <filename class="directory" >/dev</filename >. </para> </step> <step> <para >Нажмите <mousebutton >правую</mousebutton > кнопку мыши на файле <filename >dsp</filename > и откройте свойства. </para> </step> <step> <para >Откройте вкладку <guilabel >Права</guilabel >. </para> </step> <step> <para >Выделите <guilabel >Чтение</guilabel > и <guilabel >Запись</guilabel > во всех строках. </para> </step> <step> <para >Нажмите кнопку <guibutton >OK</guibutton >. </para> </step> </procedure> <para >Или вы можете открыть окно терминала и набрать команду <userinput ><command >chmod</command > <option >666</option > <parameter >/dev/dsp</parameter ></userinput >. </para> <para >Для ограничения прав доступа конкретных пользователей используйте права групп. В некоторых дистрибутивах &Linux;, к примеру, в Debian/Potato, право доступа к <filename class="devicefile" >/dev/dsp</filename > имеет группа <systemitem class="groupname" >audio</systemitem >, вам остаётся только добавить в эту группу пользователей. </para> </answer> </qandaentry> <qandaentry> <question> <para >Это помогло для &artsd;, а что делать с &kmix;, &kmid;, &kscd; и т. д.? </para> </question> <answer> <para >Есть и другие устройства для воспроизведения звука, к которым обращаются мультимедиа-приложения. Настраивать их можно так же, т. е. давать право доступа всем пользователям или группе. Этот список может быть и неполным (к тому же, есть устройства вроде <filename class="devicefile" >midi0</filename >, <filename class="devicefile" >midi1</filename >, ...: здесь перечислены только имена с 0). </para> <itemizedlist> <listitem> <para> <filename class="devicefile" >/dev/admmidi0</filename> </para> </listitem> <listitem> <para> <filename class="devicefile" >/dev/adsp0</filename> </para> </listitem> <listitem> <para> <filename class="devicefile" >/dev/amidi0</filename> </para> </listitem> <listitem> <para> <filename class="devicefile" >/dev/amixer0</filename> </para> </listitem> <listitem> <para> <filename class="devicefile" >/dev/audio</filename> </para> </listitem> <listitem> <para> <filename class="devicefile" >/dev/audio0</filename> </para> </listitem> <listitem> <para> <filename class="devicefile" >/dev/cdrom</filename> </para> </listitem> <listitem> <para> <filename class="devicefile" >/dev/dmfm0</filename> </para> </listitem> <listitem> <para> <filename class="devicefile" >/dev/dmmidi0</filename> </para> </listitem> <listitem> <para> <filename class="devicefile" >/dev/dsp</filename> </para> </listitem> <listitem> <para> <filename class="devicefile" >/dev/dsp0</filename> </para> </listitem> <listitem> <para> <filename class="devicefile" >/dev/midi0</filename> </para> </listitem> <listitem> <para> <filename class="devicefile" >/dev/midi0</filename> </para> </listitem> <listitem> <para> <filename class="devicefile" >/dev/midi00</filename> </para> </listitem> <listitem> <para> <filename class="devicefile" >/dev/midi00</filename> </para> </listitem> <listitem> <para> <filename class="devicefile" >/dev/mixer</filename> </para> </listitem> <listitem> <para> <filename class="devicefile" >/dev/mixer0</filename> </para> </listitem> <listitem> <para> <filename class="devicefile" >/dev/mpu401data</filename> </para> </listitem> <listitem> <para> <filename class="devicefile" >/dev/mpu401stat</filename> </para> </listitem> <listitem> <para> <filename class="devicefile" >/dev/music</filename> </para> </listitem> <listitem> <para> <filename class="devicefile" >/dev/rmidi0</filename> </para> </listitem> <listitem> <para> <filename class="devicefile" >/dev/rtc</filename> </para> </listitem> <listitem> <para> <filename class="devicefile" >/dev/sequencer</filename> </para> </listitem> <listitem> <para> <filename class="devicefile" >/dev/smpte0</filename> </para> </listitem> <listitem> <para> <filename class="devicefile" >/dev/sndstat</filename> </para> </listitem> </itemizedlist> </answer> </qandaentry> <qandaentry> <question> <para >Что делать, если artsd не запускается или работает с ошибками?</para> </question> <answer> <para >Прежде всего, попробуйте установить параметры по умолчанию в &kcontrol; (или, если вы начинаете работу в ручном режиме, не задавайте дополнительных параметров, кроме <userinput ><option >-F</option ><parameter >10</parameter > <option >-S</option ><parameter >4096</parameter ></userinput > для задержки). Наиболее высокая вероятность ошибки в <emphasis >двустороннем режиме</emphasis >, поэтому постарайтесь его отключить. </para> <para >Хороший способ понять, почему &artsd; не запускается (или работает с ошибками) - это запустить его вручную. Откройте окно &konsole; и сделайте следущее: </para> <screen width="40" ><prompt >%</prompt > <userinput ><command >artsd</command > <option >-F</option ><parameter >10</parameter > <option >-S</option ><parameter >4096</parameter ></userinput ></screen> <para >Вы можете добавить параметр <option >-l0</option >, который выведет больше информации о том, что происходит: </para> <screen width="40" ><prompt >%</prompt > <userinput ><command >artsd</command > <option >-l0</option > <option >-F</option ><parameter >10</parameter > <option >-S</option ><parameter >4096</parameter ></userinput ></screen> <para >Вы, возможно, получите объяснение того, почему &artsd; не запускается. Или, если во время работы возникают ошибки, вы увидите, <quote >где</quote > они. Если хотите сообщить об ошибке, вложите лог с <command >gdb</command > и/или <command >strace</command >. </para> </answer> </qandaentry> <qandaentry> <question> <para >Могу ли я переместить &artsd; (перенести скомпилированные файлы в другой каталог)?</para> </question> <answer> <para >Вы не сможете переместить &arts; без проблем. Дело в том, что информация о расположении скомпилированного &artsd; хранится в &artswrapper; (это необходимо для обеспечения безопасности). Однако вы можете заставить перемещённый &artsd; хотя бы находить компоненты, для этого используйте файл <filename >.mcoprc</filename > (TraderPath/ExtensionPath entries). Подробности - в <link linkend="the-mcoprc-file" >главе о файле <filename >.mcoprc</filename ></link >. </para> </answer> </qandaentry> <qandaentry> <question> <para >Могу ли я скомпилировать &arts; gcc-3.0?</para> </question> <answer> <para >Если коротко, нет. скомпилированный gcc-3.0 &arts; не будет работать. </para> <para >В официальной версии содержатся две ошибки, влияющие на &arts;. Первая - gcc-3.0 bug c++/2733 относительно безобидна (и должна справляться с проблемами инструкций ассемблера). Она прерывает компиляцию convert.cc и исправлена в gcc-3.0 CVS. Ее не должно быть в gcc-3.0.1 и выше. Также была доработана CVS-версия KDE/aRts. </para> <para >Вторая - gcc-3.0 bug, c++/3145 (генерация неправильного кода для некоторых случаев множественного виртуального наследования) гораздо важнее. Такие приложения, как &artsd;, не будут запускаться после компиляции с gcc-3.0. Даже если в gcc-3.0 что-то исправили за время написания этого FAQ, &artsd; всё равно очень часто и непредсказуемо прекращает работу. </para> </answer> </qandaentry> <qandaentry> <question> <para >Какие приложения работают с &arts;?</para> </question> <answer> <para >Вообще, все приложения &kde; работают с &arts;: </para> <itemizedlist> <listitem ><para >&noatun;</para ></listitem> <listitem ><para >&arts-builder;</para ></listitem> <listitem ><para >&aktion;</para ></listitem> <listitem ><para >&kmid;</para ></listitem> <listitem ><para >&kmidi;</para ></listitem> <listitem ><para >&kmix;</para ></listitem> <listitem ><para >&kscd;</para ></listitem> <listitem ><para >такие игры &kde;, как &kpoker; и &ktuberling;</para ></listitem> </itemizedlist> <para >Некоторые приложения, пока не включённые в &kde; (к примеру, в kdenonbeta), всё же поддерживают &arts;: </para> <itemizedlist> <listitem ><para >&brahms;</para ></listitem> <listitem ><para ><application >Kaboodle</application ></para ></listitem> <listitem ><para ><application >Kdao</application ></para ></listitem> </itemizedlist> <para >С &arts; работают и следущие приложения (не для &kde;): </para> <itemizedlist> <listitem ><para ><application >xmms</application > (с модулем &arts;)</para ></listitem> <listitem ><para >Real Networks <application >RealPlayer</application > 8.0 (работает с &artsdsp;, полная поддержка &arts; в разработке)</para ></listitem> </itemizedlist> <para >Следущие приложения <emphasis >не</emphasis > работают с &arts;: </para> <itemizedlist> <listitem ><para >нет</para ></listitem> </itemizedlist> <para >См. также ответы на вопросы о <link linkend="faq-non-arts" > приложениях не для &arts;</link >. </para> <para >Этот раздел ещё не закончен. Если вы знаете, какие приложения работают (или не работают) с &arts;, напишите автору, чтобы дополнить списки. </para> </answer> </qandaentry> </qandaset> <qandaset id="faq-non-arts"> <title >Приложения не для &arts;</title> <qandaentry> <question> <para >Как только запускается &kde;, ни одно приложение не может получить доступ к звуковой карте! </para> </question> <answer> <para >Так как звуковой сервер &arts; запускается вместе с &kde;, он использует звуковую карту. Если сервер бездействует 60 секунд, он автоматически прекращает работу и освобождает устройство. </para> </answer> </qandaentry> <qandaentry> <question> <para >Вы сказали, что сервер ждёт 60 секунд, а у меня не так! </para> </question> <answer> <para >Если вы запускаете artsd с панели управления KDE время ожидания по умолчанию будет 60 секунд. Если же из командной строки, нужно указывать его с помощью параметра -s. </para> <para >При использовании двустороннего режима сервер не отключается. Выключите его в &kcontrol;. Это вообще хорошая мысль, если вы используете &arts; только для прослушивания музыки, а не для записи. </para> </answer> </qandaentry> <qandaentry> <question> <para >Могу ли я запускать старые приложения, не поддерживающие &arts;? </para> </question> <answer> <para >Запускайте их с помощью &artsdsp;. К примеру, если обычно вы запускаете их так: </para> <screen ><prompt >%</prompt > <userinput ><command >mpg123</command > <option >foo.mp3</option ></userinput ></screen> <para >теперь набирайте следущее:</para> <screen ><prompt >%</prompt > <userinput ><command >artsdsp</command > <option >mpg123 foo.mp3</option ></userinput ></screen> <para >Звуковой выход будет перенаправляться в &arts;. Так вы не внесёте каких-либо изменений в ваши приложения. Вообще говоря, это уловка, и некоторые приложения могут не работать, или не будут использоваться все возможности звуковой карты. </para> </answer> </qandaentry> <qandaentry> <question> <para >Я не могу запустить &artsdsp; никаким приложением, всё время выскакивают ошибки! </para> </question> <answer> <para >Вам нужна последняя версия библиотеки glibc; &artsdsp; не работает на более ранних дистрибутивах &Linux;. К примеру, в Debian 2.1 (основанный на glibc 2.0) он не работает, а в Debian 2.2 (основанный на glibc 2.1.3) работает. </para> </answer> </qandaentry> <qandaentry> <question> <para >Есть ли какие-нибудь теоретические ограничения работы некоторых приложений с &artsdsp;? </para> </question> <answer> <para >Нет. Использование &artsdsp; может вылиться в большую задержку и более активное использовании процессора, чем при использовании &arts; <acronym >API</acronym >. Если всё-таки какое-то приложение не работает, это ошибка в &artsdsp;. Техника, применяемая в &artsdsp;, если она правильно реализована, должна позволять <emphasis >каждому</emphasis > приложению работать (включая такие объёмные приложения, как <application >Quake</application > 3). </para> </answer> </qandaentry> <qandaentry> <question> <para >Что мне делать, если приложение не работает с &artsdsp;? </para> </question> <answer> <para >Вы можете подождать, пока отключится &artsd;, или отключить его самостоятельно. Для этого наберите в командной строке <userinput ><command >artsshell</command > <option >suspend</option > </userinput >. Если в данный момент не работают никакие приложения &arts;, сервер отключится (и вы не сможете их запустить). </para> <para >Если сервер занят, попробуйте грубый, но эффективный метод: </para> <screen ><prompt >%</prompt > <userinput ><command >killall</command > <option >artsd</option > ; <command >killall</command > <option >artswrapper</option ></userinput> <lineannotation >Теперь запустите своё приложение.</lineannotation> <prompt >%</prompt > <userinput ><command >kcminit</command > <option >arts</option ></userinput > </screen> <para >Работающие приложения &arts; завершатся с ошибками, если вы отключите сервер. </para> </answer> </qandaentry> <qandaentry> <question> <para >Что насчет приложений, написанных под &kde; 1.x? </para> </question> <answer> <para >Если вы работаете с приложениями &kde; 1.x, которые воспроизводят звук через звуковой сервер &kde; 1, запустите <application >kaudioserver</application >. Это делается так же, как и для не-&arts; приложений. </para> <screen ><prompt >%</prompt > <userinput ><command >artsdsp</command > <option >kaudioserver</option ></userinput > </screen> <para >Вам нужно установить kaudioserver (взятый из того же источника, что и ваши приложения для &kde; 1.x), он принадлежит &kde; 1.x, а не &kde; 2. </para> </answer> </qandaentry> <qandaentry> <question> <para >Как насчёт приложений, использующих облегчённый звуковой сервис <acronym >ESD</acronym >? </para> </question> <answer> <para >Выход такой же, как и с приложениями <application >kaudioserver</application >. Вам нужно запустить сервер esd (это можно сделать с помощью &artsdsp;), тогда все приложения, поддерживающие <acronym >ESD</acronym >, будут работать: </para> <screen ><prompt >%</prompt > <userinput ><command >artsdsp</command > <option >esd</option ></userinput > </screen> <para >Свежие версии aRts ( >= 1.2.0) могут также работать с ESD (enlightened sound daemon). Укажите в командной строке параметр -a, например: </para> <screen ><prompt >%</prompt > <userinput ><command >artsd</command > <option >-a esd</option ></userinput > </screen> <para >для глобальной поддержки ESD в KDE, настройте artsd на работу с esd в разделе Центра управления Звук -> Звуковой сервер -> Ввод-вывод звука. </para> </answer> </qandaentry> </qandaset> <qandaset id="faq-latency"> <title >Задержка</title> <qandaentry> <question> <para >Во время прослушивания иногда слышны короткие паузы. Это ошибка? </para> </question> <answer> <para >Скорее всего, это не ошибка, но паузы говорят о том, что ядро &Linux; не справляется с работой в режиме реального времени. Могут возникнуть ситуации, когда &arts; не сможет продолжать воспроизведение. Вы, однако, можете дать права реального времени (в &kcontrol;) и уменьшить задержку (<guilabel >250ms</guilabel > или <guilabel >не важно</guilabel >), чтобы улучшить ситуацию. </para> </answer> </qandaentry> <qandaentry> <question> <para >Какой эффект у параметра времени ответа? </para> </question> <answer> <para >Статья помощи по этому параметру в &kcontrol;, возможно, введёт вас в заблуждение. Чем меньше значение, тем меньше времени требуется &arts;, чтобы ответить на внешние события (т.е. время после закрытия окна и до воспроизведения звука), тем больше требуется ресурсов процессора и тем больше вероятность выпаданий.</para> </answer> </qandaentry> <qandaentry> <question> <para >Есть ли ещё какие-нибудь способы убрать паузы? </para> </question> <answer> <para >Если вы пользуетесь драйвером <acronym >IDE</acronym >, напишите команду <command >hdparm</command > для переключения <acronym >IDE</acronym > в режим <acronym >DMA</acronym >. Это работает не для всех устройств и, возможно, будет трудно вернуться в начальное сотояние или, в очень редких случаях, будут потеряны данные. Чтобы узнать подробности, прочтите документацию по команде <command >hdparm</command >. У меня всё получилось с командой: </para> <screen ><prompt >%</prompt > <userinput ><command >hdparm</command > <option >-c1</option > <option >-d1</option > <option >-k1</option > <option >-K1</option > <parameter >/dev/hda</parameter ></userinput > </screen> <para >Вам нужно будет проделывать это при каждом запуске системы. Возможно, вы захотите добавить её в сценарий запуска системы (это зависит от дистрибутива, в Debian &Linux; он обычно находится в <filename >/etc/rc.boot</filename >). </para> </answer> </qandaentry> <qandaentry> <question> <para >Приоритет реального времени на меня совсем не влияет? </para> </question> <answer> <para >Убедитесь в том, что artswrapper действительно установлен suid <systemitem class="username" >root</systemitem >, как это должно быть. Во многих дистрибутивах (SuSE7.x, к примеру) это не делается. Проверить это можно так: ls -l $(which artswrapper). Хорошо: <screen> <prompt >%</prompt > <userinput ><command >ls</command > <option >-l</option > <parameter >$(which artswrapper)</parameter ></userinput> -rwsr-xr-x 1 root root 4556 Sep 24 18:05 /opt/kde2/bin/artswrapper </screen > Плохо: <screen> <prompt >%</prompt > <userinput ><command >ls</command > <option >-l</option > <parameter >$(which artswrapper)</parameter ></userinput> -rwxr-xr-x 1 root root 4556 Sep 24 18:05 /opt/kde2/bin/artswrapper </screen > Если у вас нет s, его можно получить с помощью: <screen ><prompt >%</prompt > <userinput ><command >chown</command > <option >root</option > <parameter >$(which artswrapper)</parameter ></userinput> <prompt >%</prompt > <userinput ><command >chmod</command > <option >4755</option > <parameter >$(which artswrapper)</parameter ></userinput > </screen> </para> <para >Если вы сделаете &artswrapper; SUID <systemitem class="username" >root</systemitem >, это, скорее всего, улучшит качество воспроизведения, удаляя паузы. Однако риск того, что ошибка в коде или злобный пользователь вызовут прерывание программы (или что-нибудь поломают), увеличится. К тому же, в машинах, на которых работают несколько пользователей, приоритет хорошего качества звука может привести к ухудшению работы компьютера, если кто-то будет пытаться его использовать <quote >продуктивно</quote >.</para> </answer> </qandaentry> <qandaentry> <question> <para >Почему &artsd; использует так много процессорного времени? </para> </question> <answer> <para >Проверьте настройки времени ответа. Хотя текущая версия ещё не оптимизирована. Мы работаем над этим, но сказать, насколько быстрее будет &artsd;, не можем. </para> </answer> </qandaentry> </qandaset> <qandaset id="faq-network"> <title >Прозрачность сети</title> <qandaentry> <question> <para >Зачем нужна прозрачность сети? </para> </question> <answer> <para >Включите её в &kcontrol; настройках <guilabel >Звуковая подсистема</guilabel > (<guilabel >Обмениваться информацией о безопасности и идентификации через сервер X11</guilabel > и <guilabel >Принимать сетевые запросы</guilabel >). Скопируйте <filename >.mcoprc</filename > на все машины, на которых сервер должен принимать запросы из сети. Зайдите в систему ещё раз. Убедитесь в том, что узлы обращаются друг к другу по имени (т.е. у них есть разрешимые имена или они находятся в <filename >/etc/hosts</filename >). </para> <para >Это всё, что надо сделать. Если всё-таки не работает, вот несколько замечаний. &arts; и &artsd; должны быть запущены только на узле со звуковой картой (где и будет воспроизводиться звук). Они могут запускаться при входе в &kde; (если вы это указали в &kcontrol;) или вручную: </para> <screen ><prompt >%</prompt > <userinput ><command >artsd</command > <option >-n</option > <option >-F</option > <parameter >5</parameter > <option >-S</option > <parameter >8192</parameter ></userinput > </screen> <para >Параметр <option >-n</option > нужен для разрешения сетевых запросов, тогда как остальные используются для настройки задержки. </para> <para >В файле <filename >.mcoprc</filename > должна содержаться запись: </para> <screen ><userinput >GlobalComm=Arts::X11GlobalComm</userinput > </screen> <para >на всех машинах для поддержки работы в сети. Это включается при установке флажка <guilabel >Обмениваться информацией о безопасности и идентификации через сервер X11</guilabel > на панели управления. </para> <para >Наконец, в любой версии &kde; серии 2.0.x есть ошибка, возникающая, если вы не указали имя домена. Клиенты &artsd; пытаются найти, куда можно подключиться, используя комбинацию <systemitem class="systemname" ><replaceable >имя узла</replaceable >.<replaceable >имя домена</replaceable ></systemitem >. Если имя домена пустое, они будут подключаться к <systemitem class="systemname" > <replaceable >имени узла</replaceable ></systemitem >. (заметьте, дополнительная точка). Добавление такой записи в <filename >/etc/hosts</filename > (т.е. <userinput >orion.</userinput >, если имя узла <systemitem class="systemname" >orion</systemitem >) решит проблему. </para> </answer> </qandaentry> <qandaentry> <question> <para >Как мне настроить сети, если она не работает? </para> </question> <answer> <para >Если у вас есть исходный код &kde;, зайдите в <filename class="directory" >kdelibs/arts/examples</filename >, и запустите <userinput ><command >make</command > <option >check</option ></userinput >, чтобы скомпилировать некоторые программы, включая <application >referenceinfo</application >. После этого запустите </para> <screen ><prompt >%</prompt > <userinput ><command >./referenceinfo</command > <option >global:Arts_SimpleSoundServer</option ></userinput > </screen> <para >Будут выведены имя узла и используемый &arts;. К примеру, <computeroutput >tcp:orion:1698</computeroutput > значит, что любой клиент, пытающийся использовать прозрачность сети, должен знать, как подключиться к узлу <systemitem class="systemname" >orion</systemitem >. </para> </answer> </qandaentry> </qandaset> <qandaset id="faq-hardware-specific"> <title >Вопросы, связанные с аппаратным обеспечением</title> <qandaentry> <question> <para >С каким оборудованием artsd не работает? </para> </question> <answer> <para >Не все звуковые драйверы Linux хорошо работают с aRts в некоторых версиях ядра. Ознакомьтесь с этим списком, прежде чем сообщать об ошибке. Если же вы встретились с чем-либо, отсутствующим в списке, сразу же сообщите об этом. <informaltable > <tgroup cols="4"> <thead> <row> <entry >Дравер и звуковая плата Linux</entry> <entry >Не работает в </entry> <entry >Работает в </entry> <entry >Примечания</entry> </row> </thead> <tbody> <row> <entry >Драйвер i810 (Intel 810 + AC97 Audio)</entry> <entry >2.4.9</entry> <entry >2.4.18, 2.2.20, коммерческий драйвер oss, alsa-0.5.12a с эмуляцией OSS</entry> <entry >драйвер вызывает перегрузку процессора (см. ниже)</entry> </row> <row> <entry >maestro 3/4 chipset</entry> <entry >2.4.9</entry> <entry >?</entry> <entry >драйвер иногда вызывает перегрузку процессора (см. ниже)</entry> </row> <row> <entry >драйверы aureal8820, aureal8830 с sourceforge</entry> <entry >2.4.17</entry> <entry >?</entry> <entry >Драйвер не проходит проверку или вызывает перегрузку процессора (см. ниже)</entry> </row> <row> <entry >Коммерческий драйвер OSS 3.9.4g с Aureal Vortex</entry> <entry >?</entry> <entry >?</entry> <entry >системный сбой</entry> </row> <row> <entry >ymfpci</entry> <entry >2.4.0, 2.4.12</entry> <entry >2.4.17</entry> <entry >Драйвер не проходит проверку (см. ниже)</entry> </row> </tbody> </tgroup> </informaltable> </para> </answer> </qandaentry> <qandaentry> <question> <para >Почему возникают проблемы с оборудованием и как мне о них узнать? </para> </question> <answer> <para >Обычная поблема - драйвер не предоставляет достаточно информации aRts (или даёт неправильную) о том, когда нужно писать звуковые данные. Большинство драйверов OSS предоставляют правильные данные, но не все. </para> <para >Вы, возможно, заметили, что не всем приложениям (как xmms) нужна эта информация, поэтому они работают нормально даже с вашей звуковой картой. Но для &arts; она необходима, поэтому artsd выполняется с ошибками. Это ошибка в драйвере, а не в &arts;. </para> <para >Есть два варианта поведения artsd при запуске с некорректным драйвером. Во-первых, он постоянно пытается передать новые данные, но безуспешно. В результате потребляются все ресурсы процессора, выводится отчёт о <emphasis >перегрузке cpu</emphasis >, и приложение закрывается. Другое дело, когда artsd получает неправильную информацию о том, какой объем данных нужно записать. Тогда он прекращает работать на примерно такой <emphasis >проверке</emphasis >: <screen >artsd: audiosubsys.cc:458: void Arts::AudioSubSystem::handleIO(int): Assertion `len == can_write'. Aborted </screen> </para> </answer> </qandaentry> <qandaentry> <question> <para >Что не так с драйвером, если выдаётся ошибка о пререгрузке процессора? </para> </question> <answer> <para >Обычно artsd узнаёт, когда надо записывать новые данные, с помощью функции select(). Потом используется ioctl(...GETOSPACE...) для поиска объема данных для записи. И, наконец, данные записываются. </para> <para >Проблемы возникают тогда, когда artsd постоянно работает или объём данных для записи слишком мал. В документации OSS указано, то select() только запускает процесс, если есть хоть что-то для записи, к примеру, один байт. Тогда запись данных продолжается небольшими частями, что очень трудоёмко, и в результате процессор перегружается. </para> <para >Чтобы такого не происходило, драйвер должен вызывать artsd только тогда, когда есть целый фрагмент информации для записи. </para> </answer> </qandaentry> <qandaentry> <question> <para >Что не так с драйвером, если мне выдаётся сообщение об ошибке при проверке? </para> </question> <answer> <para >Обычно artsd узнаёт, когда надо записывать новые данные, с помощью функции select(). Потом используется ioctl(...GETOSPACE...) для поиска объема данных для записи. И, наконец, данные записываются. </para> <para >Если artsd не может записать тот объём информации, которы указан в ioctl, будет выдаваться эта ошибка. Чтобы исправить ситуацию, драйвер должен предоставлять правильную информацию. </para> </answer> </qandaentry> </qandaset> <qandaset id="faq-other"> <title >Другие проблемы</title> <qandaentry> <question> <para >Я не могу работать с &arts-builder;. Во время работы модуля возникают ошибки! </para> </question> <answer> <para >Обычно так получается при использовании старых структур или модулей, которые не поддерживаются версией &kde; 2. К сожалению, информация об &arts;-0.3.4.1 устарела. Самой распространённой ошибкой является выполнение структуры &arts-builder;, приводящей к ошибке <errorname >[artsd] Synth_PLAY: audio subsystem is already used.</errorname > </para> <para >Следует использовать модуль Synth_AMAN_PLAY вместо Synth_PLAY. Прочитайте файл помощи &arts-builder; (нажмите <keycap >F1</keycap > в &arts-builder;). </para> <para >В последних версиях &arts-builder; (&kde; 2.1 beta 1 и позднее) есть примеры, которые вы можете использовать. </para> </answer> </qandaentry> </qandaset> </chapter>