# Вопросы и ответы

&reporting.bugs;

## Вопросы о дозвоне

&kppp; не работает. &kppp; сообщает, что демон ppp прекратил работу или истёк период времени ожидания. Что происходит?

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

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

- Убедитесь в том, что демон ppp является двоичным исполняемым демоном ppp, а не скриптом

- Убедитесь в том, что демон ppp установлен с SUID-битом и правами `root`. Вы можете задать этот режим командой ``chmod` `u+s pppd`` как суперпользователь `root`.

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

- Убедитесь в том, что вы НЕ используете опцию `lock` в качестве аргумента для демона ppp (программа &kppp; сама заботится о блокировке модема).

- Удалите опцию `lock` из обоих файлов `/etc/ppp/options` и `˜/.ppprc`!

- Использование символической ссылки `/dev/modem` также может вызвать конфликт. Устраните причину ошибки использованием реального устройства, то есть `/dev/cuaX` или `/dev/ttySX`.

  COM1 относится к `ttyS0`, COM2 - к `ttyS1` и так далее.

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

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

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

    # tail /var/log/messages

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

Типичное сообщение об ошибке в системном журнале:

    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.)

Возможны две причины этой проблемы:

- В файле `/etc/ppp/options` задан параметр `auth`. Закомментируйте его, добавив `#` в начало строки, и попробуйте ещё раз.

- Ваша система уже имеет маршрут по умолчанию. Возможно, вы уже в локальной сети? В таком случае последние версии pppd будут вести себя так, как будто задан параметр `auth`. Чтобы исправить это, задайте `noauth` в качестве параметра pppd в диалоге настройки kppp. Или же просто отключайте локальный интерфейс прежде чем начать дозвон. Я был бы благодарен тому, кто сможет подсказать простой способ мирного сосуществования двух подключений - по локальной сети и по модему.

pppd завершает работу при ядре 2.4.x в Линукс

Типичные сообщения об ошибке в системном журнале:

    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.

Обновите pppd до версии 2.4.0b1 или более свежей. Прочитайте файл `Documentation/Changes` в исходниках ядра, чтобы подробнее узнать об этом.

Почему &kppp; выдаёт сообщение: Не удаётся открыть модем?

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

    % su root
    # chown root:root $KDEDIR/bin/kppp
    # chmod +s $KDEDIR/bin/kppp
    # exit

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

В большинстве случаев это означает, что вы установили &kppp; без бита setuid, или пользователь, использующий &kppp;, не имеет разрешения на запись в каталог файлов блокировки, по умолчанию - в `/var/lock`. Это пример систем &RedHat;. Проверьте диалог модема для определения заданного каталога. Простое решение: запустите &kppp; с битом setuid, если можете позволить себе такое, или разрешите пользователям доступ к каталогу `/var/lock`, или создайте группу modem, у которой будет доступ к файлам каталога `/var/lock`.

Почему &kppp; устанавливается с битом setuid?

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

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

Вас также могут заинтересовать сведения в разделе Безопасность.

Что мне делать, если &kppp; не устанавливает соединения, а выдаёт сообщение: `Ожидается строка OK`

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

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

Соединение работает, но я не могу запустить ни одно приложение!

Вероятно, вы отметили опцию Автоконфигурация имени хоста, и у Х-сервера возникают проблемы при подключении к переименованному хосту. Если эта опция вам действительно необходима (а скорее всего, она не нужна), то вы должны принять решение об установке соответствующих разрешений. Выполнение команды ``xhost` `+`` перед установлением соединения решит эту проблему, но вызывает угрозу безопасности, так как разрешает всем подключение к вашему Х-серверу.

&kppp; сообщает об установлении соединения, но &konqueror; выдаёт сообщение Неизвестный хост `имя_хоста`, а &Netscape; выдаёт сообщение Сервер не имеет записей в таблицах DNS..

Попробуйте послать ICMP-запрос на IP-адрес другого сервера, например: ``ping` `195.0.254.76``. Если на ваш запрос вы получите ответ, то:

- Проверьте, указали ли вы в &kppp; хотя бы один DNS-сервер.

- Проверьте содержимое файла `/etc/host.conf`. Он должен содержать примерно такую строку: `order hosts, bind`. Ключевое слово `bind` указывает библиотеке перевода адреса запросить сервер имён при осуществлении перевода адреса. Если такой строки в файле нет, добавьте её.

Как мне указать &kppp; послать строку \n или же \r

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

    Send                            # послать пустую строку
    Expect           ID:
    Send             itsme
    Expect           word:
    Send             forgot
    Expect           granted
    Send             ppp

Как мне избавиться от сообщения &kppp;: Невозможно создать файл блокировки модема?

Это происходит по причине отсутствия у вас прав на создание файла блокировки. Если вы используете файл блокировки, то у вас должны быть права на запись в каталог (как правило, `/var/lock`). Такой проблемы не возникнет, если вы установили для &kppp; SUID-бит. Обратитесь к разделу Файлы блокировки.

Почему мой модем так шумит при установлении соединения?

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

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

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

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

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

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

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

Скорость моего соединения низка

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

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

Скорость моего соединения очень низка!

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

Вы можете получить сведения о состоянии последовательного порта командой ``setserial` `-a `/dev/ttySx``` и проверить систему на наличие конфликтов прерываний. Модуль Сведения программы &kcontrol; также может оказаться полезным.

Мне необходимо использовать импульсный набор номера, а не тональный (или наоборот). Как мне изменить этот параметр?

Измените строку дозвона модема. Практически все модемы поддерживают следующие AT-команды:

`ATDT`

- Выбрать тоновый набор номера

`ATDP`

- Выбрать импульсный набор номера

## Вопросы о правилах учёта стоимости телефонных звонков

Как мне написать файл правил (rules file) для учёта стоимости телефонных звонков?

Используйте файл правил `TEMPLATE`, который включен в &kppp;. Он находится в каталоге `$KDEDIR/doc/HTML/`ваш_язык`/kppp/`. Используйте опцию `-r` командной строки &kppp; для проверки синтаксиса созданного вами файла правил.

Я написал файл правил (rules file) для учёта стоимости телефонных звонков в моем районе. Что я должен сделать, чтобы другие тоже могли использовать его?

Возможно ли использовать в файле правил для учёта стоимости телефонных звонков дробные числа, к примеру, "(0.17, 45.5)"?

Да, возможно. Но не следует использовать слишком малые значения (менее десятых долей секунды), так как это повышает нагрузку на процессор, хотя, возможно, пройдёт незамеченным на современном процессоре.

Помимо праздника Пасхи, в моей стране есть и другие праздники с не фиксированной датой.

В таком случае вам придётся написать собственный код для определения даты этих праздников. Обратитесь к файлу `ruleset.cpp`, в качестве примера используйте праздник Пасхи. Затем пошлите этот участок кода для включения в программу!

## Вопросы о логах сообщений системы

У меня появляется сообщение Линия зациклилась. Что это означает?

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

В логах значится сообщение Signal 15

Если вы видите следующие строки, скорее всего это означает, что &kppp; сообщает об ошибке времени ожидания. &kppp; ожидает запуска PPP-интерфейса в течение заданного времени ожидания, после чего ожидание прекращается. Демон ppp получает команду на останов, Signal 15: SIGTERM.

    pppd[26921]: pppd 2.3.5 started by me, uid 500
    pppd[26921]: Using interface ppp0
    pppd[26921]: Connect: ppp0 <--> /dev/ttyS0
    pppd[26921]: Terminating on signal 15.
    pppd[26921]: Connection terminated.
    pppd[26921]: Exit.

Что означает сообщение Принятый сигнал линии не является 8-битным

Демон PPP предупреждает о том, что 8-ой бит принимаемых данных данных установлен в 0. В большинстве случаев это значит, что PPP-сервер пока не запущен на удалённом компьютере. Вы можете увидеть запрос на логин, который будет возвращать все данные, переданные демоном ppp.

Сообщение: can't locate module ppp-compress? Что оно означает?

Система выдаёт следующие сообщения?

    modprobe: can't locate module ppp-compress-21
    modprobe: can't locate module ppp-compress-26
    modprobe: can't locate module ppp-compress-24

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

    alias ppp-compress-21 bsd_comp
    alias ppp-compress-24 ppp_deflate
    alias ppp-compress-26 ppp_deflate

к файлу `/etc/conf.modules`.