# Frågor och svar

&reporting.bugs;

## Frågor om uppringning

Jag kan inte få &kppp; att fungera. &kppp; säger att pppd har dött eller att en tidsgräns har överskridits. Vad är det som händer?

Har du läst den här manualen noggrant? Här är återigen de vanligaste stötestenarna:

- Klicka på knappen Detaljer. &kppp; visar då ett utdrag från PPP-loggmeddelanden (kanske fungerar detta inte på andra system än &Linux;, eller till och med på vissa &Linux;-distributioner). Loggen hjälper dig att spåra felet.

- Försäkra dig om att pppd är den riktiga pppd-binärfilen och inte ett skript

- Försäkra dig om att pppd är setuid root. Du kan välja det här läget genom att skriva ``chmod` `u+s pppd`` som root.

- Försäkra dig om att filen `/etc/ppp/options` finns och att den inte innehåller några poster som kan orsaka konflikter. Om du tvekar: låt den vara tom.

- Försäkra dig om att du inte använder väljaren `lock` som ett argument till pppd (&kppp; hanterar redan låsning av enheten).

- Ta bort väljaren `lock` både från filen `/etc/ppp/options` och `˜/.ppprc`!

- Att använda den symboliska länken `/dev/modem` kan orsaka konflikter. Eliminera den här felkällan genom att använda den riktiga enheten, dvs.`/dev/cuaX` eller `/dev/ttySX`.

  COM1 är det samma som `ttyS0`, COM2 är `ttyS1` och så vidare.

- Försäkra dig om att du ställer in riktiga rättigheter. Om du har problem kanske du först vill köra som root, och senare, när allting fungerar bra välja mindra skadliga rättigheter om du inte har möjlighet att köra &kppp; setuid root. Det riktiga sättet att fortsätta är antagligen att skapa en modem-grupp.

- Du kanske startar pppd för tidigt, dvs. innan fjärrservern är klar att förhandla om en PPP-anslutning. Om du använder ett inloggningsskript, bör du använda den inbyggda terminalen för att verifiera inloggningsproceduren. Vissa leverantörer kräver att du anger ett enkelt `Send` eller `Send ppp` för att starta PPP. Vissa användare rapporterade till och med att de var tvungna att lägga till `Pause 1` eller `Pause 2` till sina skript för att lösa tidskonflikter.

Om ingenting hjälper, kan du hämta en del avlusningsinformation från systemloggen genom att skriva:

    # tail /var/log/messages

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

Typiskt felmeddelande i systemloggen:

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

Så vitt jag kan förstå finns det två orsaker till problemet:

- `/etc/ppp/options` innehåller alternativet `auth`. Skriv helt enkelt in kommentartecknet # innan det och försök igen.

- Systemet har redan en standardrutt. Har du ställt in ett lokalt nätverk? Om så är fallet, beter sig nyare versioner av pppd som om `auth` hade angivits. För att överskrida det, kan du lägga till `noauth` i pppd-argumenten i Kppp:s inställningsdialogruta. Som ett alternativ skulle du kunna koppla ner det lokala nätverket innan du ringer upp. Jag skulle vara tacksam om någon kunde ge instruktioner om hur man får de två nätverksanslutningarna att fungera smärtfritt tillsammans.

pppd kraschar med 2.4.x Linux-kärna

Typiskt felmeddelande i systemloggen:

    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.

Installera pppd 2.4.0b1 eller senare. Se `Documentation/Changes` i kärnans källkod för mer information.

Varför säger &kppp; Kan tyvärr inte komma åt modemet.?

Det här betyder att &kppp; inte har rättighet att öppna modemenheten eller att du valde en modemenhet i dialogrutan Modem som inte är giltig. Försäkra dig först om att du har valt rätt modemenhet. När du väl är säker på att du har valt rätt modemenhet, måste du ge &kppp; rättigheter att komma åt modemenheten och att kunna ändra `/etc/resolv.conf` om du vill att &kppp; ska ställa in DNS åt dig på ett riktigt sätt. Om du har råd med att köra &kppp; setuid root skulle det lösa alla accessproblem, om inte måste du räkna ut vad de rätta skyddet är för dina syften. För att ge &kppp; setuid root rättigheter, gör följande:

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

Varför säger &kppp; att den inte kan skapa en låsfil för modemet?

Det här betyder i de flesta fall att du har installerat &kppp; utan att SETUID-biten är satt, medan du som personen som kör &kppp;, inte har skrivrättigheter för låsfilskatalogen, som normalt är `/var/lock`. Det här är till exempel fallet för &RedHat;-system. Titta i modemdialogrutan efter exakt den plats som du har valt. Lösningen är enkel, kör antingen &kppp; med SETUID om du har råd med det, ge vanliga användare skrivrättigheter i `/var/lock` eller skapa en modemgrupp som har tillgång till `/var/lock`.

Varför installeras &kppp; med SETUID-biten satt?

Det finns inget behov av SETUID-biten, om du kan lite &UNIX;-systemadministration. Skapa helt enkelt en modem-grupp, lägg till alla användare som du vill ge tillgång till modemet till den här gruppen och gör modemenheten läs- och skrivbar för gruppen. Om du också vill att DNS-konfigurationen ska fungera med &kppp;, så måste `/etc/resolv.conf` vara läs och skrivbar av medlemmar i den här gruppen. Detsamma gäller för `/etc/ppp/pap-secrets` och `/etc/ppp/chap-secrets` om du vill använda det inbyggda PAP- eller CHAP-stödet.

Kppp-gruppen har arbetat mycket med att göra &kppp; setuid-säker den senaste tiden. Men det är du som bestämmer om du installerar, och hur du installerar.

Du kanske också vill läsa avsnittet Säkerhet.

Vad gör jag när &kppp; bara väntar och visar meddelandet: `Väntar på OK`

Har du lekt med CR/LF-inställningarna? Försök med CR, LF eller CR/LF.

Som ett alternativ, kanske ditt modem kan behöva en viss tid för att svara på initieringen. Öppna dialogrutan Modemkommandon under fliken Modem och justera Fördröjning innan init och Fördröjning efter init. Undersök om du lyckas om du ökar deras värde radikalt, och gör viss finjustering senare.

Anslutningen fungerar bra, men jag kan inte starta några program!

Du har förmodligen valt alternativet Ändra automatiskt datorns namn till det för IP-adressen, och X-servern har problem med att ansluta till din nyligen omdöpta dator. Om du verkligen behöver det här alternativet (och det finns en god chans att du inte gör det), är du tyvärr på egen hand när det gäller att ställa in passande identifiering. Att skriva ``xhost` `+`` innan anslutningen startas skulle klara av det, men se upp med säkerhetsriskerna som hör ihop med detta, eftersom det här ger vem som helst fullständig tillgång till din X-server.

&kppp; rapporterar en lyckad anslutning, men &konqueror; säger bara Okänd värddator värddatornamn, och &Netscape; rapporterar The server does not have a DNS entry.

Försök att anropa en annan server med dess IP-nummer, t.ex. ``ping` `195.0.254.76``. Om det fungerar, kan du försöka med följande:

- Kontrollera om du har tillhandahållit åtminstone en DNS-adress till &kppp;.

- Kontrollera innehållet i filen `/etc/host.conf`. Det ska finnas en rad som lyder ungefär som `order hosts, bind`. Nyckelordet `bind` talar om för upplösningsbiblioteket att det ska inkludera en förfrågan till en namnserver när det utför en adressuppslagning. Om en sådan rad inte finns med, försök att lägga till den.

Hur får jag &kppp; att skicka ett \n eller ett \r?

Skicka bara en tom sträng, som i följande skript:

    Send                            # skicka en tom sträng
    Expect           ID:
    Send             itsme
    Expect           word:
    Send             forgot
    Expect           granted
    Send             ppp

Hur kan jag få &kppp; att sluta klaga om att den kan inte skapa låsfil?

Det här händer därför att du inte har rättigheter att skapa en låsfil. Om dy väljer att använda en låsfil, måste du ha skrivrättigheter till katalogen (typiskt `/var/lock`). Det här är förstås inget problem om du har gett &kppp; setuid-rättigheter. Läs gärna avsnittet om Låsfiler.

Varför låter modemet så högt när det ringer upp?

Klicka på Inställningar, och därefter Modem. Här kan du ställa in modemvolymen i tre steg: Av, medelhög och hög. För de flesta modem, ger medelhög och hög samma volym. Om det inte hjälper att ändra den här inställningen, försäkra dig om att de riktiga inställningarna för modemet anges i Inställningar, Modem, Modemkommandon.

Jag stängde av modemljudet och kontrollerade modemkommandona, men jag hör fortfarande det där hemska ljudet vid uppringning. Varför?

Volyminitieringssträngen kan gå förlorad om modemet inte kan hantera hastigheten som det tar emot kommandon från &kppp;. Öka värdet på Fördröjning efter init i Inställningar, Modem, Modemkommandon.

&kppp; rapporterar hela tiden ovanliga modemhastigheter som 115200 eller 57600

Många modem rapporterar normalt bara serieportens hastighet och inte hastigheten på telefonlinjen. Du måste ställa in dessa modem så att de rapporterar den sanna linjehastigheten genom att lägga till några kommandon till modemets initierings- eller uppringningssträngar. För många modem är det här kommandot `ATW2`. Om du vill lägga till det till uppringningssträngen (som normalt börjar med `ATD`), skulle den nya uppringningssträngen vara `ATW2D`.

Varför rapporterar &kppp; Okänd hastighet?

Nya modem har ofta komplexa anslutningsmeddelanden som `CONNECT LAP.M/V42.bis/115000:RX/31200:TX`, och &kppp; kan inte tolka det här meddelandet riktigt. Aktivera Visa loggfönster så ser du anslutningshastigheten.

Jag får en långsam anslutningshastighet

Om du inte är nöjd med modemhastigheten, försäkra dig om att du har ställt in anslutningshastigheten (du kan nå den genom att klicka på Inställningar, Enhet, Anslutningshastighet) till 57600 eller högre. Försäkra dig om att serieportarna stöder högre hastigheter. Många äldre system baserade på i486 fungerar inte på ett riktigt sätt om du ställer in hastigheten till 115200. Om du har en gammal 8250 UART-krets, fungerar det inte. Om du har en 16550 eller 16550A ska det fungera utan problem.

Dessutom bör du konsultera modemets handbok för att leta efter initieringssträngar som aktiverar höghastighetsläget.

Jag får en RIKTIGT långsam anslutningshastighet!

Om data droppar in med en hastighet på några få byte per sekund, bör du kontrollera hårdvaruinställningarna. Om hastigheten ökar om du flyttar musen är det definitivt en hårdvarufråga!

Du kan erhålla en del information om din serieport med ``setserial` `-a /dev/ttySx`` och kontrollera om det finns avbrottskonflikter med andra komponenter i systemet. Inställningscentralens modul Information kan också vara till hjälp i det här fallet.

Min telefonlinje kräver pulsval istället för tonval vid uppringning (eller tvärtom). Hur ändrar jag det?

Du måste ändra modemets uppringningssträng. Nästan alla modem stöder följande AT-kommandon:

`ATDT`

  Väljer tonval

`ATDP`

  Väljer pulsval

## Frågor om kostnadsregler för telefonsamtal

Hur skriver jag en regelfil för telekostnader?

Följ bara regelfilen `TEMPLATE` som följer med &kppp;. Du bör hitta en kopia i `$KDEDIR/doc/HTML/sv/kppp/`. Använd kommandoradsväljaren `-r` med &kppp; för att kontrollera syntaxen av din föreslagna regelfil.

Jag har skrivit en regelfil för telekostnader för mitt område. Vart kan jag skicka den så att andra kan använda den?

Kan min regelfil för telekostnader innehålla tidsenheter med decimaler som "(0.17, 45.5)"?

Ja, det är möjligt. Men du bör inte använda ovanligt korta tidsenheter under en tiondels sekund, eftersom det skulle orsaka större belastning på CPU:n, även om det förmodligen inte märks på en modern CPU.

I mitt land firas andra högtider än påsk som flyttar sig.

För detta fal måste du skriva ny kod som tillåter att den här helgen beräknas. Var snäll ta en titt i `ruleset.cpp` och ta efter exemplet med påsk. Skicka sedan in programfixarna.

## Frågor om systemloggarna

Jag ser ett meddelande som säger Serial line is looped back. Vad betyder det?

Ett kort svar: Du startade inte PPP-programvaran på det andra systemet.

Loggarna visar Signal 15

Om du ser följande rader, har du troligen precis fått ett fel beroende på att en tidsgräns överskridits från &kppp;. &kppp; har väntat på att PPP-gränssnittet ska aktiveras och gav upp efter den angivna tidsgränsen. En signal med signalnummer 15, dvs. SIGTERM, skickades till pppd för att den skulle avslutas.

    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.

Vad gäller för Receive serial link is not 8-bit clean?

PPP-demonen är oroad över det faktum att all data som den tar emot har bit 8 satt till noll. I de flesta fall betyder det helt enkelt att PPP-servern i andra ändan inte kör ännu. Du kan fortfarande konfronteras med en inloggningsprompt som ekar tillbaka all data som skickas av din pppd.

Och can't locate module ppp-compress? Vad är detta?

Ser du följande meddelanden?

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

Lägg då bara till raderna:

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

till din `/etc/conf.modules`-fil.