Next Previous Contents

18. Odpravljanje težav

Obstaja morje razlogov, zakaj vaša povezava ne deluje - chat ni uspel pravilno dokončati svojega dela, imate motnje na liniji itd. Preglejte sistemski dnevnik za namige.

18.1 V jedro sem vključil PPP podporo vendar...

Zelo pogosta težava je, da ljudje vključijo PPP podporo v jedro, in ko poskušajo pognati pppd, se jedro pritoži da ne podpira ppp-ja! Za takšno obnašanje obstajajo različni razlogi.

Ali ste zagnali računalnik s pravim jedrom?

Medtem ko ste prevedli jedro s posporo za ppp, ne poganjate pravega jedra. To se lahko zgodi, če ne osvežite datoteke /etc/lilo.conf in poženete lilota.

Dober test jedra lahko dobite z ukazom uname -a, ki bi moral izpisati takšno vrstico


Linux archenland 2.0.28 #2 Thu Feb 13 12:31:37 EST 1997 i586

To izpiše verzijo jedra ter datum, ko je bilo jedro prevedeno - kar bi vam moralo dati kar dober namig, kaj se dogaja.

Ali ste vključili ppp podporo kot modul?

Če ste prevedli podporo za ppp v jedru kot modul, toda niste prevedli modulov in jih namestili, lahko dobite tako napako. Preberite Kernel-HOWTO in datoteko README v /usr/src/linux!

Še ena možnost v povezavi z moduli je, da pričakujete, da bodo potrebni moduli avtomatsko naloženi, vendar ne poganjate kerneld-ja. (ki avtomatsko nalaga in odstranjuje module po potrebi). Preverite kerneld mini-HOWTO za navodila za namestitev kerneld-ja.

Ali uporabljate pravo verzijo PPP-ja za vaše jedro?

Z jedrom 2.0.x morate uporabljati ppp-2.2. Ppp-2.2 lahko uporabljate z jedri 1.2.x (če popravite jedro), sicer morate uporabljati ppp 2.1.2.

Ali poganjate pppd kot root?

Če pppd-ja ne poganjate kot root (in pppd ni suid root), lahko prejmete to sporočilo.

18.2 Moj modem se poveže, toda ppp se nikoli ne zažene

Na to temo obstajajo brezštevilne variacije (poglejte v comp.os.linux...).

ZELO pogosta napaka je, da ste nekaj zatipkali v vaših skriptah. Edina stvar, ki jo lahko naredite je, da zapisujete chatov pogovor med vašim računalnikom z Linuxom in strežnikom v sistemski dnevnik (/var/log/messages) in greste skozi ta izpis vrsto po vrsto. Mogoče se boste morali ročno prijaviti na strežnik, da stvari spet preverite.

Dnevnik morate zelo pazljivo primerjati z dejanskimi pozivi in ves čas misliti, da imamo ljudje navado, da preberemo kar mislimo, da smo napisali, ne pa kar je dejansko napisano!

18.3 Sistemski dnevnik pravi: ,,serial line is not 8 bit clean...``

Tudi na to obstajajo variacije - kot naprimer serial line looped back ipd., razlog pa je lahko ena (ali zaporedje) od številnih stvari.

Za razumevanje kaj se dogaja, je nujno nekoliko doumeti, kaj se dogaja ,,za odrom``, kjer nastopa pppd.

Ko se pppd zažene, pošlje LCP (link control protocol) pakete oddaljenemu računalniku. Če sprejme veljaven odgovor, gre na naslednjo stopnjo (uporabi IPCP - kontrolne pakete za IP) in šele ko se to pogajanje konča, se zažene dejanski sloj IP, tako da lahko uporabljate PPP povezavo.

Če na drugem koncu ni ppp strežnika ko vaš PC pošlje lcp pakete, se ti zrcalijo na prijavnem procesu na oddaljenem koncu. Ker ti paketki uporabljajo 8 bitov, odbijanje olupi 8. bit (ASCII je 7-bitna koda). PPP to vidi in se potemtakem pritoži.

Obstaja več razlogov, da se pripeti to odbijanje.

Na strežnik se ne prijavljate pravilno

Ko se vaša chat skripta zaključi, se na vašem računalniku zažene pppd. Če niste končali prijavnega procesa na strežniku (vključno s pošiljanjem ukaza za zagon PPP-ja na strežniku), se PPP ne bo zagnal.

Torej se lcp paketi odbijejo in dobite to napako.

Skrbno morate preveriti ni popraviti (po potrebi) vašo chat skripto (glejte zgoraj).

Na strežniku ne zaganjate PPP-ja

Nekateri PPP strežniki zahtevajo, da vpišete ukaz in/ali RETURN po zaključku prijave, preden oddaljeni računalnik zažene ppp.

Preverite chat skripto (glejte zgoraj).

Če se prijavite ročno in ugotovite, da morate po tem poslati RETURN za zagon PPP-ja, enostavno dodajte prazen pričakuj/pošlji par na konec vaše chat skripte (prazen niz dejnsko pošlje RETURN).

Oddaljeni PPP proces se počasi zažene

Ta problem je nekoliko bolj prebrisan!

Po privzeti vrednosti vaš računalnik z Linuxom pošlje največ 10 lcp konfiguracijskih zahtevkov. Če je strežnik nekoliko počasen, je lahko vseh 10 poslanih preden je oddaljeni PPP pripravljen za njihov sprejem.

Na vašem računalniku vidi pppd vseh 10 zahtev vrnjenih (z osmim bitom odtrganim) in odneha.

Obstajata dve rešitvi:

Dodajte lcp-max-configure 30 vašim ppp možnostim. To poveča največje število lcp konfiguracijskih paketov, ki jih pppd pošlje preden odneha. Za res počasen strežnik jih boste morda potrebovali še več.

Lahko pa ste prebrisani tudi vi! Mogoče ste opazili, da ko se prijavite na PPP strežnik in poženete PPP, je prvi znak od ppp smetja vedno tilda (~).

Z uporabo tega podatka lahko dodamo nov pričakuj/pošlji par na konec chat skripte, ki bo pričakoval tildo ali kaj podobnega. To bi izgledalo takole:


\~      ''

Opomba: ker ima tilda v ukazni lupini poseben pomen, ji moramo dodati ubežni znak (leva poševnica)

18.4 Privzeta pot ni nastavljena

Če pppd noče nastaviti privzete poti, je to zato, ker (dokaj pravilno) noče odstraniti oz. zamenjati že obstoječe privzete omrežne poti.

Običajni razlog za to napako je, da v nekaterih distribucijah privzeta pot kaže na Ethernet kartico namesto da bi bila to specifična omrežna pot.

Glejte Linux NAG (Network Administrators Guide) in NET2/3 HOWTO-je za informacije o pravilni nastavitvi Ethernet kartice in pripadajočih poti.

Možno je tudi, da vaša mreža že uporablja ,vozel` (gateway) ali usmerjevalnik in je vaša usmerjevalna tabela nastavljena, da kaže privzeta pot na to.

Urejanje te situacije zahteva kar precej znanja o IP omrežjih in presega namen tega HOWTO-ja. Priporočljivo je, da dobite nekaj strokovnih nasvetov (v novičarskih skupinah ali če koga poznate).

18.5 Ostale težave

Poleg naštetih je še precej drugih razlogov, da se ppp ne poveže oz. deluje pravilno.

Poglejte v PPP-FAQ (ki je niz vprašanj in odgovorov). To je zelo obširen dokument, in odgovori SO v njem! Iz mojih (žalostnih) izkušenj lahko povem, da če odgovora ni tam, težava ni na strani PPP-ja! V mojem primeru sem uporabljal ELF jedro, programja za module pa nisem nadgradil. Zapravil sem samo 2 dni (in skoraj celo noč) preklinjajoč tisto, kar je bil predtem odličen PPP strežnik!


Next Previous Contents