# Pytania i odpowiedzi

&reporting.bugs;

## Pytania dotyczące dzwonienia

Nie mogę korzystać z programu &kppp;. Otrzymuję komunikaty iż pppd zakończył się lub przekroczono czas oczekiwania. Co jest tego przyczyną?

Czy uważnie Przeczytałeś tą instrukcję? Oto najczęściej występujące problemy:

- Kliknij na przycisk Szczegóły, aby program &kppp; wyświetlił ostatnie komunikaty z dziennika PPP (przycisk może nie działać na systemach innych niż &Linux; lub też w niektórych jego dystrybucjach). Komunikaty z dziennika pomogą odkryć przyczyny problemów.

- Upewnij się, iż zainstalowany demon pppd jest w binarnej formie aplikacji pppd, a nie tylko skryptem.

- Upewnij się, czy program pppd ma ustawioną flagę setuid root. Można ustawić ten tryb pracy, za pomocą polecenia ``chmod` `u+s pppd`` wydanego jako Administrator (użytkownik root).

- Sprawdź istnienie pliku `/etc/ppp/options`, oraz czy nie zawiera jakichkolwiek sprzecznych ustawień. Najlepiej jeżeli jest on pusty.

- Upewnij się, że nie używasz opcji `lock` jako parametru demona pppd (program &kppp; sam zajmie się zablokowaniem dostępu do urządzenia).

- Usuń parametr `lock` z obudwu plików: `/etc/ppp/options` oraz `˜/.ppprc`!

- Wykorzystanie dowiązanie symbolicznego: `/dev/modem` może powodować konflikty. Problemy mogą zostać wyeliminowane przez użycie rzeczywistego urządzenia np.: `/dev/cuaX` lub `/dev/ttySX`.

  Port COM1 określany jest przez `ttyS0`, COM2 to `ttyS1` i tak dalej.

- Należy upewnić się co do poprawności konfiguracji praw dostępu. Jeżeli po zalogowaniu jako Administrator, wszystko działa poprawnie, należy sprawdzić konfigurację uprawnień z jakimi działa &kppp;. Jeżeli uruchamianie &kppp; z ustawionym bitem setuid root nie wchodzi w grę, to prawdopodobnie pomoże utworzenie grupy modem.

- Przyczyną problemu może być zbyt wczesne uruchomienie demona pppd, tzn. zanim zdalny serwer będzie gotowy do negocjacji połączeniaPPP. W przypadku wykorzystania skryptu logowania, niezbędne jest sprawdzenie procedury logowania z wykorzystaniem wbudowanego terminala. Część dostawców Internetu, wymaga wysłania w skrypcie prostego polecenia: `Send` lub `Send ppp` aby uruchomić PPP. W niektórych przypadkach pomaga dodanie w skrypcie poleceń `Pause 1` lub `Pause 2` co rozwiązuje problemy z czasem wykonywania poleceń.

Jeżeli działania powyższe nie pomagają, przydatne mogą być informacje z dzienników systemowych, które można wyświetlić poleceniem:

    # tail /var/log/messages

pppd died - The remote system is required to authenticate itself ...

Typowy komunikat błędu w dziennikach systemowych:

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

Przyczyny powyższego problemu mogą być dwie

- Plik `/etc/ppp/options` zawiera opcję`auth`. Należy ją poprzedzić znakiem komentarza # i spróbować ponownie.

- System posiada już zdefiniowaną bramę domyślne. Prawdopodobnie skonfigurowany jest on do pracy w sieci lokalnej. W takim wypadku, ostatnie wersje demona pppd zachowują się, tak jakby miały aktywną opcję `auth`. Aby unieważnić to ustawienie, należy dodać argument `noauth` w konfiguracji pppd. Można również wyłączyć sieć lokalną przed rozpoczęciem dzwonienia. Jeżeli ktoś zna prosty sposób na ustawienie działania jednocześnie dwóch sieci, to autorzy programu &kppp; chętnie umieszczą instrukcję w tej dokumentacji.

Usługa pppd nieoczekiwanie kończy działanie w jądrze systemu Linux w wersjach 2.4.x

Typowy komunikat błędu w dziennikach systemowych:

    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.

Należy zainstalować program demona pppd w wersji 2.4.0b1 lub wyższej. Plik `Documentation/Changes` w źródłach jądra zawiera więcej informacji.

Dlaczego program &kppp; wyświetla błąd: Nie można otworzyć modemu?

Błąd ten oznacza, iż program &kppp; nie ma wystarczających uprawnień do otwarcia urządzenia modemu. lub wybrane w karcie Modem urządzenie nie istnieje. Najpierw należy sprawdzić czy wybrano właściwe urządzenie, a następnie należy nadać programowi &kppp; odpowiednie uprawnienia dostępu do urządzenia i do modyfikacji pliku `/etc/resolv.conf` jeżeli &kppp; powinno konfigurować automatycznie ustawienia DNS. Jeżeli istnieje możliwość uruchomienia &kppp; z ustawionym bitem setuid root, to na pewno rozwiąże wszelkie problemy z dostępem, jeżeli nie, to należy samodzielnie ustalić prawidłowe uprawnienia. Ustawienie bitu setuid root odbywa się w następujący sposób:

    % su root
    # chown root:root &dollar;KDEDIR/bin/kppp
    # chmod +s &dollar;KDEDIR/bin/kppp
    # exit

Dlaczego program &kppp; twierdzi iż nie może stworzyć pliku blokującego dla modemu?

W większości przypadków, problem pojawia się gdy program &kppp; nie ma włączonego bitu SETUID, a użytkownik nie posiada praw zapisu do folderu z plikiem blokującym (domyślnie jest to: `/var/lock`). Dzieje się tak na przykład w dystrybucjach &RedHat;. Należy sprawdzić w oknie dialogowym ustawień modemu wybraną ścieżkę. Rozwiązaniem jest albo nadanie bitu SETUID dla programu &kppp; a jeżeli jest to niemożliwe to nadanie praw zapisu dla użytkownika w katalogu `/var/lock` lub stworzenie grupy użytkowników modem, która będzie miała prawa zapisu w katalogu `/var/lock`.

Dlaczego program &kppp; ma ustawiony znacznik SETUID?

Ustawianie bitu SETUID nie jest niezbędnie konieczne. 'Administratorzy systemów &UNIX; mogą po prostu stworzyć grupę modem, i zapisać do niej wszystkich użytkowników, którzy powinni mieć dostęp do modemu. Kolejnym krokiem, jest nadanie grupie modem uprawnień zapisu do urządzenia. Jeżeli &kppp; ma automatycznie konfigurować ustawienia DNS, to konieczne jest nadanie uprawnień do zapisu w pliku `/etc/resolv.conf`, Dostęp do zapisu w plikach `/etc/ppp/pap-secrets` oraz `/etc/ppp/chap-secrets` jest wymagany, jeżeli użytkownik wykorzystuje konfigurację protokołów PAP lub CHAP.

Zespół autorów programu &kppp; dołożył wielu starań, aby podnieść bezpieczeństwo korzystania z niego przy ustawionym bicie SETUID. Wybór stosowanego rozwiązania należy jednak do użytkownika.

Więcej informacji na ten temat znajduje się w rozdziale Bezpieczeństwo .

Co robić, gdy program &kppp; nic nie robi, i wyświetla komunikat `Oczekiwanie na OK`

Trzeba spróbować zmiany ustawień CR/LF, np.: CR, LF lub CR/LF.

Możliwe jest również, że posiadany modem potrzebuje więcej czasu na odpowiedź na polecenia inicjalizujące. Ustawienie tego czasu jest możliwe w oknie dialogowym Polecenia modemu, w karcie Modem. Odpowiednie pola toCzas oczekiwania przez inicjalizacją oraz Czas oczekiwania po inicjalizacji. Jeżeli zwiększenie ich wartości poprawia funkcjonowanie połączenia, to należy je odpowiednio dostosować do swoich potrzeb.

Połączenie działa, nie mogę jednak uruchomić żadnych programów!

Przyczyną tego problemu może być ustawienie opcji Automatycznie konfiguruj nazwę hosta co powoduje iż serwer X, nie może podłączyć się do hosta po zmianie nazwy. Jeżeli opcja ta jest naprawdę potrzebna (ale bardzo możliwe że tak nie jest) to należy sobie radzić poprzez konfigurację uprawnień dostępu do X serwera za pomocą polecenia ``xhost` `+``. Należy jednak pamiętać o kwestiach związanych z bezpieczeństwem, dlatego że to polecenie daje praktycznie każdemu dostęp do serwera X.

Program &kppp; wykazuje poprawne połączenie, ale &konqueror; pokazuje komunikat Nieznany serwer hostname, zaś &Netscape; pokazuje: Nieznana nazwa serwera.

Należy spróbowaćpolecenia ping na numer IP jakiegoś serwera, np.: ``ping` `195.0.254.76``. Jeżeli polecenie działa to następnie należy podjąć kolejne działania:

- Należy sprawdzić, czy ustawiono co najmniej jeden adres serwera DNS.

- Sprawdzić zawartość pliku `/etc/host.conf`. Powinna tam znajdować się następująca linia: `order hosts, bind`. Opcja `bind` powoduje iż program tłumaczący nazwy, będzie wysyłał pytania do serwera nazw, jeżeli tej linii nie ma to należy ją dodać.

Jak w programie &kppp; wysłać znak \n lub \r

Wystarczy wysłać pusty ciąg znaków, tak jak w poniższym skrypcie:

    Send                            # wyślij pusty tekst
    Expect           ID:
    Send             itsme
    Expect           word:
    Send             forgot
    Expect           granted
    Send             ppp

Jak wyłączyć komunikat &kppp;: Nie mogę utworzyć pliku blokującego?

Powyższy komunikat pojawia się, gdy brak jest odpowiednich uprawnień do stworzenia bliku blokującego. Jeżeli w ustawieniach jest wybrana opcja tworzenia pliku blokującego, to użytkownik musi mieć prawa zapisu do katalogu (zwykle jest to katalog: `/var/lock`). Nie stanowi to problemu w sytuacji gdy program &kppp; działa z uprawnieniami Administratora poprzez włączenie bitu SETUID. Więcej informacji na ten temat w sekcji Pliki blokujące

Dlaczego z modemu wydobywa się taki hałas przy dzwonieniu?

Naciśnij przycisk Ustawienia, a następnie Modem. Możliwe jest ustawienie trzech poziomów głośności: Wyłączony, Średni lub Wysoki. Większość modemów nie różnicuje głośności pomiędzy poziomem średnim i wysokim. Jeżeli zmiana tych ustawień nie pomaga, należy upewnić się czy zdefiniowane są właściwe dla posiadanego modemu polecenia w oknie: Ustawienia, Modem, Polecenia modemu.

Ustawiłem poziom głośności modemu na Wyłączony lecz dalej słyszę okropny hałas w trakcie dzwonienia. Dlaczego?

Polecenia modemu konfigurujące poziom głośności, mogą zostać zagubione, jeżeli modem nie radzi sobie z interpretacją szybko przesyłanych danych. Należy spróbować zwiększyć poziom parametru Przerwa po inicjalizacji w Ustawienia, Modem, Polecenia modemu.

Program &kppp; informuje o niezwykłych prędkościach modemu, takich jak: 115200 lub 57600

Większość modemów informuje o szybkości połączenia szeregowego, a nie o rzeczywistej szybkości przesyłu po linii telefonicznej. Należy taki modem odpowiednio skonfigurować poprzez dodanie uzupełniających poleceń w ciągu inicjującym. Dla wielu modemów jest to polecenie `ATW2`. Można go dodać do polecenia dzwonienia (zwykle wyglądającego tak: `ATD`), nowe polecenie dzwonienia powinno wtedy wyglądać tak: `ATW2D`.

Dlaczego program &kppp; pokazuje komunikat Prędkość nieznana

Nowe modemu mają często bardzo skomplikowany format komunikatu informującego o szybkości połączenia, np.: `CONNECT LAP.M/V42.bis/115000:RX/31200:TX`, co powoduje iż &kppp; nie może poprawnie rozpoznać informacji o prędkości połączenia. Aby zobaczyć komunikaty modemu, należy włączyć opcję Pokaż dziennik.

Prędkość połączenia jest zbyt niska

Jeżeli prędkość modemu nie jest satysfakcjonująca, to należy się upewnić czy ustawiono szybkość połączenia (Ustawienia, Modem, Szybkość połączenia) na wartość 57600 lub większą. Następnie należy sprawdzić, czy posiadany port szeregowy obsługuje większe prędkości. Wiele komputerów opartych na procesorze i486 nie działa prawidłowo, jeżeli prędkość zostanie ustawiona na 115200. Jeżeli układ portu szeregowego jest stary (jak np.8250 UART) to nie będzie działać. Jeżeli jednak posiadany układ to 16550 lub 16550A to nie powinno być najmniejszych problemów.

Dodatkowo, należy poszukać w instrukcji modemu informacji o poleceniach konfigurujących szybkość transmisji.

Moje połączenie jest naprawdę bardzo wolne!

Jeżeli dane sączą się z prędkością kilku bajtów na sekundę, to przyczyną tego może być konfiguracja sprzętu. Jeżeli przesuwanie kursora myszki przyśpiesza transmisję, to oznacza z całą pewnością problem sprzętowy!

Wiele informacji o posiadanym porcie szeregowym można uzyskać za pomocą polecenia ``setserial` `-a /dev/ttySx``. Należy szukać informacji o konflikcie przerwań z innymi składowymi komputera. Moduł Informacje programu &kcontrol; również może zawierać pomocne informacje.

Moja linia telefoniczna wymaga wybierania impulsowego, a nie tonowego (lub vice-versa). Jak to można zmienić?

Należy zmodyfikować ciąg dzwonienia. Niemal wszystkie modemy reagują na następujące polecenia AT:

`ATDT`

  Wybieranie tonowe

`ATDP`

  Wybieranie impulsowe

## Pytania o reguły liczenia kosztów połączeń.

Jak stworzyć plik zasad liczenia kosztów połączeń telefonicznych?

Wystarczy postępować zgodnie z opisem w pliku `TEMPLATE` dostarczonym z programem &kppp;. Powinien się on znajdować w katalogu `$KDEDIR/doc/HTML/kod języka/kppp/`. Uruchamiając &kppp; w linii poleceń z opcją `-r` można sprawdzić składnię stworzonego pliku zasad liczenia kosztów połączeń.

Stworzyłem plik zasad liczenia kosztów telefonicznych dla swojego kraju, gdzie mogę go wysłać aby inni również mogli z niego skorzystać?

Czy stworzony przeze mnie plik zasad liczenia kosztów, może zawierać wielkości ułamkowe postaci np.: "(0.17, 45.5)"?

Jest to możliwe, jednak należy unikać stosowania ułamków mniejszych od 1/10 sekundy, gdyż może to powodować wyższe obciążenie procesora CPU, chociaż na nowszym sprzęcie będzie to i tak niezauważalne.

W moim kraju występuję inne (poza Świętami Wielkiej Nocy) święta z przesuwającą się datą.

W takim wypadku, niezbędne jest napisanie programu obliczającego terminy tego święta. Najlepiej to zrobić wzorując się na kodzie obliczających terminy Świąt Wielkanocnych znajdującym się w pliku `ruleset.cpp`. Następnie należy wysłać swój kod do Zespołu &kppp;!

## Pytania dotyczące dzienników systemowych

Pojawia się komunikat Łącze szeregowe zapętla się. Co to znaczy?

Krótka odpowiedź: Nie został uruchomiony program PPP na zdalnym systemie.

Dziennik połączeń zawiera błąd: Signal 15

Jeżeli widoczne są powyższe komunikaty, oznacza to iż nastąpiło przekroczenie czasu oczekiwania. Program &kppp; czekał na poprawne zestawienie połączenia PPP i zrezygnował po pewnym czasie, wysyłając polecenie zamknięcia do programu pppd. Powoduje to właśnie komunikaty w rodzaju: pppd was signalled to shut down, with signal number 15, &ie; 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.

Co oznacza komunikat: Szeregowe połączenie przychodzące filtruje 8-my bit danych

Usługa PPP wykryła iż wszystkie dane, które otrzymuje od strony serwera, mają 8-my bit ustawiony na zero. W większości przypadków oznacza to, iż zdalny serwer PPP nie został jeszcze uruchomiony. Pojawia się tam dalej pytanie o nazwę użytkownika, które jak echo zwraca wszystkie dane wysyłane przez programpppd.

oraz can't locate module ppp-compress? O co chodzi?

Jeżeli widoczne są następujące komunikaty:

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

Wystarczy dodać linie:

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

w pliku `/etc/conf.modules`.