<chapter id="faq">
<title
>Вопросы и ответы</title>
&reporting.bugs; <qandaset id="faqlist">

<qandadiv id="faq-dialing">
<title
>Вопросы о дозвоне</title>
<qandaentry>
<question
><para
>&kppp; не работает. &kppp; сообщает, что демон <application
>ppp</application
> прекратил работу или истёк период времени ожидания. Что происходит?</para
></question>

<answer
><para
>Внимательно ли вы прочли это руководство? Ниже приводятся наиболее распространённые ловушки:</para>

<itemizedlist>

<listitem
><para
>Нажмите на кнопку <guibutton
>Подробности</guibutton
>. &kppp; выдаст вам выдержку из логов сообщений <acronym
>PPP</acronym
> (эта опция может на работать на не-&Linux; компьютерах, и даже на некоторых дистрибутивах ОС &Linux;). Логи помогут вам найти ошибку.</para
></listitem>

<listitem
><para
>Убедитесь в том, что демон <application
>ppp</application
> является двоичным исполняемым демоном <application
>ppp</application
>, а не скриптом</para
></listitem>

<listitem
><para
>Убедитесь в том, что демон <application
>ppp</application
> установлен с SUID-битом и правами <systemitem
>root</systemitem
>. Вы можете задать этот режим командой <userinput
><command
>chmod</command
> <option
>u+s pppd</option
></userinput
> как суперпользователь <systemitem
>root</systemitem
>. </para
></listitem>

<listitem
><para
>Убедитесь в том, что файл <filename
>/etc/ppp/options</filename
> существует и не содержит конфликтующих записей. Если что-либо в этом файле вызывает у вас сомнения: удалите содержимое файла. </para
></listitem>

<listitem
><para
>Убедитесь в том, что вы <emphasis
>НЕ</emphasis
> используете опцию <option
>lock</option
> в качестве аргумента для демона <application
>ppp</application
> (программа &kppp; сама заботится о блокировке модема).</para
></listitem>

<listitem
><para
>Удалите опцию <option
>lock</option
> из <emphasis
>обоих</emphasis
> файлов <filename
>/etc/ppp/options</filename
> <emphasis
>и</emphasis
> <filename
>&tilde;/.ppprc</filename
>!</para
></listitem>
<listitem
><para
>Использование символической ссылки <filename class="symlink"
>/dev/modem</filename
> также может вызвать конфликт. Устраните причину ошибки использованием реального устройства, то есть <filename
>/dev/cuaX</filename
> или <filename
>/dev/ttySX</filename
>. </para>
<note
><para
><hardware
>COM1</hardware
> относится к <filename
>ttyS0</filename
>, <hardware
>COM2</hardware
> - к <filename
>ttyS1</filename
> и так далее. </para
></note
></listitem>

<listitem
><para
>Убедитесь в правильности задания прав на доступ. В случае неполадок вы можете запустить программу как суперпользователь, а затем, когда неполадки будут устранены, задать меньшие права, если не можете позволить себе выполнение &kppp; с правами <systemitem
>суперпользователя</systemitem
>. Возможно, решением окажется создание группы <systemitem
>modem</systemitem
>.</para
></listitem>

<listitem
><para
>Возможно, вы запускаете демон <application
>ppp</application
> слишком рано, то есть, до того, как удалённый сервер готов установить <acronym
>PPP</acronym
>-соединение. Если вы используете скрипт регистрации, с помощью встроенного терминала проверьте процедуру регистрации. Некоторые провайдеры требуют наличия простых команд <command
>Send</command
> или <command
>Send ppp</command
> для запуска <acronym
>PPP</acronym
>. По словам некоторых пользователей, им пришлось добавить команду <command
>Pause 1</command
> или <command
>Pause 2</command
> в скрипт для решения конфликтов с временем.</para
></listitem>

</itemizedlist>

<para
>Если проблема так и не разрешилась, вы можете получить информацию для отладки из логов системы, выполнив команду:</para>

<screen
><prompt
>#</prompt
> <userinput
><command
>tail</command
> <filename
>/var/log/messages</filename
></userinput
></screen>

</answer>
</qandaentry>

<qandaentry>
<question
><para
>pppd закрыл соединение - Удалённая система должна пройти аутентификацию ...</para
></question>

<answer>
<para
>Типичное сообщение об ошибке в системном журнале:</para>
<screen
>pppd[699]: The remote system is required to authenticate itself
pppd[699]: but I couldn't find any suitable secret (password) for it to use to do so.
pppd[699]: (None of the available passwords would let it use an IP address.)
</screen>
<para
>Возможны две причины этой проблемы: </para>
<itemizedlist>
<listitem
><para
>В файле <filename
>/etc/ppp/options</filename
> задан параметр <option
>auth</option
>. Закомментируйте его, добавив <prompt
>#</prompt
> в начало строки, и попробуйте ещё раз. </para
></listitem
> <listitem
><para
>Ваша система уже имеет маршрут по умолчанию. Возможно, вы уже в локальной сети? В таком случае последние версии pppd будут вести себя так, как будто задан параметр <option
>auth</option
>. Чтобы исправить это, задайте <option
>noauth</option
> в качестве параметра pppd в диалоге настройки kppp. Или же просто отключайте локальный интерфейс прежде чем начать дозвон. Я был бы благодарен тому, кто сможет подсказать простой способ мирного сосуществования двух подключений - по локальной сети и по модему. </para
></listitem>
</itemizedlist>
</answer>
</qandaentry>

<qandaentry>
<question
><para
>pppd завершает работу при ядре 2.4.x в Линукс</para
></question>
<answer>
<para
>Типичные сообщения об ошибке в системном журнале:</para>

<screen
>pppd[1182]: pppd 2.3.11 started by user, uid 500 
pppd[1182]: ioctl(PPPIOCGFLAGS): Invalid argument 
pppd[1182]: tcsetattr: Invalid argument 
pppd[1182]: Exit. 
</screen>
<para
>Обновите pppd до версии 2.4.0b1 или более свежей. Прочитайте файл <filename
>Documentation/Changes</filename
> в исходниках ядра, чтобы подробнее узнать об этом.</para
> 
</answer>
</qandaentry>

<qandaentry>
<question
><para
>Почему &kppp; выдаёт сообщение: <errorname
>Не удаётся открыть модем</errorname
>?</para
></question>

<answer
><para
>Это означает, что у &kppp; нет разрешения на использование модема или же на вкладке <guilabel
>Модем</guilabel
> вы указали недействительный модем. Сперва убедитесь в правильности указания модема. После того, как вы убедитесь в том, что модем указан верно, разрешите &kppp; доступ к модему, а также изменение файла <filename
>/etc/resolv.conf</filename
>, если &kppp; будет определять <acronym
>DNS</acronym
>. Если вы можете позволить выполнение &kppp; с правами <systemitem
>суперпользователя</systemitem
>, -- это решит проблемы с правами доступа, в противном случае все права на доступ вы должны регулировать самостоятельно. Для задания &kppp; прав <systemitem
>суперпользователя</systemitem
> выполните следующие команды:</para>

<screen
><prompt
>%</prompt
> <userinput
><command
>su</command
> <option
>root</option
></userinput>
<prompt
>#</prompt
> <userinput
><command
>chown</command
> <option
>root:root &dollar;KDEDIR/bin/kppp</option
></userinput>
<prompt
>#</prompt
> <userinput
><command
>chmod</command
> <option
>+s &dollar;KDEDIR/bin/kppp</option
></userinput>
<prompt
>#</prompt
> <userinput
><command
>exit</command
></userinput
>
</screen>
</answer>
</qandaentry>

<qandaentry>
<question
><para
>Почему &kppp; сообщает о невозможности создания файла блокировки модема?</para
></question>

<answer
><para
>В большинстве случаев это означает, что вы установили &kppp; без бита SETUID, или пользователь, использующий &kppp;, не имеет разрешения на запись в каталог файлов блокировки, по умолчанию - в <filename class="directory"
>/var/lock</filename
>. Это пример систем &RedHat;. Проверьте диалог модема для определения заданного каталога. Простое решение: запустите &kppp; с битом SETUID, если можете позволить себе такое, или разрешите пользователям доступ к каталогу <filename class="directory"
>/var/lock</filename
>, или создайте группу modem, у которой будет доступ к файлам каталога <filename class="directory"
>/var/lock</filename
>.</para
></answer>
</qandaentry>

<qandaentry>
<question
><para
>Почему &kppp; устанавливается с битом SETUID?</para
></question>

<answer
><para
>para
>В SETUID-бите нет нужды, если вы немного знакомы с системным администрированием ОС &UNIX;. Просто создайте группу <systemitem
>modem</systemitem
>, добавьте в неё всех пользователей, которым разрешён доступ к модему и разрешите этой группе доступ на чтение/запись в модем. Если вам также необходимо, чтобы конфигурация <acronym
>DNS</acronym
> работала с &kppp;, файл <filename
>/etc/resolv.conf</filename
> должен быть доступен на чтение/запись членам этой группы. Это также относится к файлам <filename
>/etc/ppp/pap-secrets</filename
> и <filename
>/etc/ppp/chap-secrets</filename
>, если вы используете соответствующую поддержку <acronym
>PAP</acronym
> или <acronym
>CHAP</acronym
>.</para>

<para
>Команда разработчиков программы &kppp; за последнее время проделала большую работу, чтобы сделать &kppp; безопасной в отношении SUID. Но принимать решение об установке и методах установки программы придётся вам.</para>

<para
>Вас также могут заинтересовать сведения в разделе <link linkend="security"
>Безопасность</link
>.</para
></answer>
</qandaentry>

<qandaentry>
<question
><para
>Что мне делать, если &kppp; не устанавливает соединения, а выдаёт сообщение: <computeroutput
>Ожидается строка OK</computeroutput
></para
></question>

<answer
><para
>Вы пробовали применять команды CR/LF? Попробуйте следующие команды: CR, LF или CR/LF.</para>

<para
>Кроме того, вашему модему может потребоваться некоторое время для ответа при инициализации. Откройте диалог <guilabel
>Команды модема</guilabel
> на вкладке <guilabel
>Модем</guilabel
> и измените значения задержек <guilabel
>До инициализации</guilabel
> и <guilabel
>После инициализации</guilabel
>. Выясните, поможет ли вам значительное изменение этих значений, затем выполните более точную настройку.</para
></answer>
</qandaentry>

<qandaentry>
<question
><para
>Соединение работает, но я не могу запустить ни одно приложение!</para
></question>

<answer
><para
>Вероятно, вы отметили опцию <link linkend="auto-configure-hostname"
>Автоконфигурация имени хоста</link
>, и у Х-сервера возникают проблемы при подключении к переименованному хосту. Если эта опция вам действительно необходима (а скорее всего, она не нужна), то вы должны принять решение об установке соответствующих разрешений. Выполнение команды <userinput
><command
>xhost</command
> <option
>+</option
></userinput
> перед установлением соединения решит эту проблему, но вызывает угрозу безопасности, так как разрешает всем подключение к вашему Х-серверу.</para
></answer>
</qandaentry>

<qandaentry>
<question
><para
>&kppp; сообщает об установлении соединения, но &konqueror; выдаёт сообщение <errorname
>Неизвестный хост <replaceable
>имя_хоста</replaceable
></errorname
>, а &Netscape; выдаёт сообщение <errorname
>Сервер не имеет записей в таблицах DNS.</errorname
>.</para
></question>

<answer
><para
>Попробуйте послать ICMP-запрос на <acronym
>IP</acronym
>-адрес другого сервера, например: <userinput
><command
>ping</command
> <option
>195.0.254.76</option
></userinput
>. Если на ваш запрос вы получите ответ, то:</para>

<itemizedlist>
<listitem
><para
>Проверьте, указали ли вы в &kppp; хотя бы один <acronym
>DNS</acronym
>-сервер.</para
></listitem>

<listitem
><para
>Проверьте содержимое файла <filename
>/etc/host.conf</filename
>. Он должен содержать примерно такую строку: <literal
>order hosts, bind</literal
>. Ключевое слово <option
>bind</option
> указывает библиотеке перевода адреса запросить сервер имён при осуществлении перевода адреса. Если такой строки в файле нет, добавьте её.</para
></listitem>
</itemizedlist
></answer>
</qandaentry>

<qandaentry>
<question
><para
>Как мне указать &kppp; послать строку <keysym
>\n</keysym
> или же <keysym
>\r</keysym
></para
></question>

<answer
><para
>Добавьте пустую строку, как показано в примере скрипта:</para>

<informalexample>
<screen
>Send                            # послать пустую строку
Expect           ID:            
Send             itsme
Expect           word:
Send             forgot
Expect           granted
Send             ppp
</screen>
</informalexample>
</answer>
</qandaentry>

<qandaentry>
<question
><para
>Как мне избавиться от сообщения &kppp;: <errorname
>Невозможно создать файл блокировки модема</errorname
>?</para
></question>
<answer
><para
>Это происходит по причине отсутствия у вас прав на создание файла блокировки. Если вы используете файл блокировки, то у вас должны быть права на запись в каталог (как правило, <filename class="directory"
>/var/lock</filename
>). Такой проблемы не возникнет, если вы установили для &kppp; SUID-бит. Обратитесь к разделу <link linkend="lock-files"
>Файлы блокировки</link
>.</para
></answer>
</qandaentry>

<qandaentry>
<question
><para
>Почему мой модем так шумит при установлении соединения?</para
></question>

<answer
><para
>Нажмите на кнопку <guibutton
>Настройка</guibutton
>, а затем на вкладку <guilabel
>Модем</guilabel
>. Вы можете установить громкость динамика модема в одно из трёх состояний: Выключено, Средне и Громко. Для большинства модемов Средне и Громко дают один и тот же результат. Если изменение этой настройки не помогает, убедитесь в том, что правильные настройки модема указаны в разделе <guibutton
>Настройка</guibutton
>, <guilabel
>Модем</guilabel
>, <guibutton
>Команды модема</guibutton
>.</para
></answer>
</qandaentry>

<qandaentry>
<question
><para
>Я установил громкость динамика модема в положение <quote
>Выключено</quote
> и проверил команды модема, тем не менее, модем по-прежнему ужасно шумит при дозвоне. Почему?</para
></question>

<answer
><para
>Строка инициализации звука может быть потеряна в случае, если модем не успевает обрабатывать команды, полученные от &kppp;. Увеличьте значение <guilabel
>Задержки после инициализации</guilabel
> в разделе <guibutton
>Настройка</guibutton
>, <guilabel
>Модем</guilabel
>, <guibutton
>Команды модема</guibutton
>.</para
></answer>
</qandaentry>

<qandaentry>
<question
><para
>&kppp; сообщает об установлении соединения с нехарактерной для модемного соединения скоростью <quote
>115200</quote
> или же <quote
>57600</quote
></para
></question>

<answer
><para
>Большинство модемов сообщают о скорости последовательной линии, а не о скорости телефонного соединения. Таким модемам можно указать сообщать скорость телефонного соединения добавлением команд к строке инициализации или строке дозвона. Для большинства модемов такой командой является <command
>ATW2</command
>. Если вы хотите добавить эту команду к строке дозвона (которая, как правило, начинается с <command
>ATD</command
>), в таком случае новая строка дозвона будет такой: <command
>ATW2D</command
>.</para
></answer>
</qandaentry>

<qandaentry>
<question
><para
>Почему &kppp; выдаёт сообщение <quote
>Скорость соединения не определена</quote
>?</para
></question>

<answer
><para
>У современных модемов бывают очень сложными сообщения о соединении, к примеру, <computeroutput
>CONNECT LAP.M/V42.bis/115000:RX/31200:TX</computeroutput
>, и &kppp; не в состоянии правильно обработать такое сообщение. Включите опцию <guibutton
>Показывать Лог</guibutton
>, -- и определите скорость соединения.</para
></answer>
</qandaentry>

<qandaentry>
<question
><para
>Скорость моего соединения низка</para
></question>

<answer
><para
>Если вы не довольны скоростью модемного соединения, убедитесь, что вы установили скорость соединения (доступно в разделе <guibutton
>Настройка</guibutton
>, <guilabel
>Устройство</guilabel
>, <guibutton
>Скорость соединения</guibutton
>) равной 57600 или выше. Убедитесь, что ваши последовательные порты поддерживают высокие скорости. Большинство старых систем (на основе i486) некорректно работают при задании скорости, равной 115200. Если вы используете чипсет <hardware
>8250 UART</hardware
>, он не будет работать. Чип <hardware
>16550</hardware
> или <hardware
>16550A</hardware
> будет работать без проблем.</para>

<para
>Кроме того, вам нужно установить, как строка инициализации переводит модем в высокоскоростной режим (согласно руководству по эксплуатации от вашего модема).</para
></answer>
</qandaentry>

<qandaentry>
<question
><para
>Скорость моего соединения <emphasis
>очень</emphasis
> низка!</para
></question>

<answer
><para
>Если соединение происходит на скорости в несколько бит в секунду, проверьте аппаратные настройки. Если движение мыши ускоряет передачу данных, то это точно аппаратная проблема!</para>

<para
>Вы можете получить сведения о состоянии последовательного порта командой <userinput
><command
>setserial</command
> <option
>-a <replaceable
>/dev/ttySx</replaceable
></option
></userinput
> и проверить систему на наличие конфликтов прерываний. Модуль <guilabel
>Сведения</guilabel
> программы &kcontrol; также может оказаться полезным.</para
></answer>
</qandaentry>

<qandaentry>
<question
><para
>Мне необходимо использовать импульсный набор номера, а не тональный (или наоборот). Как мне изменить этот параметр?</para
></question>
<answer
><para
>Измените строку дозвона модема. Практически все модемы поддерживают следующие AT-команды:</para>

<variablelist>
<varlistentry>
<term
><command
>ATDT</command
></term>
<listitem
><para
><action
>Выбрать тоновый набор номера</action
></para
></listitem>
</varlistentry>
<varlistentry>
<term
><command
>ATDP</command
></term>
<listitem
><para
><action
>Выбрать импульсный набор номера</action
></para
></listitem>
</varlistentry>
</variablelist>
</answer>

</qandaentry>

</qandadiv>

<qandadiv id="faq-telephone-cost-rules">
<title
>Вопросы о правилах учёта стоимости телефонных звонков</title>
<qandaentry>
<question
><para
>Как мне написать файл правил (rules file) для учёта стоимости телефонных звонков?</para
></question>
<answer
><para
>Используйте файл правил <filename
>TEMPLATE</filename
>, который включен в &kppp;. Он находится в каталоге <filename class="directory"
>$KDEDIR/doc/HTML/<replaceable
>ваш_язык</replaceable
>/kppp/</filename
>. Используйте опцию <option
>-r</option
> командной строки &kppp; для проверки синтаксиса созданного вами файла правил.</para
></answer>
</qandaentry>

<qandaentry>
<question
><para
>Я написал файл правил (rules file) для учёта стоимости телефонных звонков в моем районе. Что я должен сделать, чтобы другие тоже могли использовать его?</para
></question>
<answer
><!-- LW: Find out -->
<!-- lukas: the answer is: send it to the kppp maintainer, Harri Porten --></answer>
</qandaentry>

<qandaentry>
<question
><para
>Возможно ли использовать в файле правил для учёта стоимости телефонных звонков дробные числа, к примеру, "(0.17, 45.5)"?</para
></question>
<answer
><para
>Да, возможно. Но не следует использовать слишком малые значения (менее десятых долей секунды), так как это повышает нагрузку на <acronym
>процессор</acronym
>, хотя, возможно, пройдёт незамеченным на современном <acronym
>процессоре</acronym
>.</para
></answer>
</qandaentry>

<qandaentry>
<question
><para
>Помимо праздника Пасхи, в моей стране есть и другие праздники с <quote
>не фиксированной</quote
> датой.</para
></question>
<answer
><para
>В таком случае вам придётся написать собственный код для определения даты этих праздников. Обратитесь к файлу <filename
>ruleset.cpp</filename
>, в качестве примера используйте праздник <quote
>Пасхи</quote
>. Затем пошлите этот участок кода для включения в программу!</para
></answer>
</qandaentry>
</qandadiv>

<qandadiv id="faq-system-logs">
<title
>Вопросы о логах сообщений системы</title>
<qandaentry>
<question
><para
>У меня появляется сообщение <errorname
>Линия зациклилась</errorname
>. Что это означает?</para
></question>

<answer
><para
>Короткий ответ: вам не удалось запустить <acronym
>PPP</acronym
>-соединение на удалённом компьютере.</para>

<!-- this doc doesn't exist.. help -->
<!-- http://www.dejanews.com/getdoc.xp?AN="184945314" -->

</answer>
</qandaentry>

<qandaentry>
<question
><para
>В логах значится сообщение <errorname
>Signal 15</errorname
></para
></question>
<answer
><para
>Если вы видите следующие строки, скорее всего это означает, что &kppp; сообщает об ошибке времени ожидания. &kppp; ожидает запуска <acronym
>PPP</acronym
>-интерфейса в течение заданного времени ожидания, после чего ожидание прекращается. Демон <application
>ppp</application
> получает команду на останов, Signal 15: <errorcode
>SIGTERM</errorcode
>.</para>

<informalexample>
<screen
><computeroutput>
pppd[26921]: pppd 2.3.5 started by me, uid 500
pppd[26921]: Using interface ppp0
pppd[26921]: Connect: ppp0 &lt;--&gt; /dev/ttyS0
pppd[26921]: Terminating on signal 15.
pppd[26921]: Connection terminated.
pppd[26921]: Exit.
</computeroutput
></screen>
</informalexample>
</answer>
</qandaentry>

<qandaentry>
<question
><para
>Что означает сообщение <errorname
>Принятый сигнал линии не является 8-битным</errorname
></para
></question>
<answer
><para
>Демон <acronym
>PPP</acronym
> предупреждает о том, что 8-ой бит принимаемых данных данных установлен в 0. В большинстве случаев это значит, что <acronym
>PPP</acronym
>-сервер пока не запущен на удалённом компьютере. Вы можете увидеть запрос на логин, который будет возвращать все данные, переданные демоном <application
>ppp</application
>.</para
></answer>
</qandaentry>

<qandaentry>
<question
><para
>Сообщение: <errorname
>can't locate module ppp-compress</errorname
>? Что оно означает?</para
></question>
<answer
><para
>Система выдаёт следующие сообщения?</para>

<informalexample>
<screen
><computeroutput>
modprobe: can't locate module ppp-compress-21 
modprobe: can't locate module ppp-compress-26 
modprobe: can't locate module ppp-compress-24
</computeroutput
></screen>
</informalexample>

<para
>Добавьте следующие строки:</para>

<screen
><userinput>
alias ppp-compress-21 bsd_comp 
alias ppp-compress-24 ppp_deflate 
alias ppp-compress-26 ppp_deflate </userinput
></screen>

<para
>к файлу <filename
>/etc/conf.modules</filename
>.</para>
</answer>
</qandaentry>

</qandadiv>

</qandaset>

</chapter>
