# Domande e risposte

&reporting.bugs;

## Domande sulla chiamata

Non riesco a far funzionare &kppp;. &kppp; mi dice che pppd ha interrotto la connessione in modo inaspettato o che si è verificato un timeout. Cosa sta succedendo?

Hai letto attentamente questo manuale? Ancora una volta, qui vi sono i trabocchetti più comuni:

- Premi il pulsante Dettagli. &kppp; ti mostrerà un estratto dai messaggi di log di PPP (potrebbe non funzionare su sistemi diversi da &Linux;, o anche su alcune distribuzioni &Linux;). Il log ti aiuterà a scovare il bug.

- Assicurati che pppd sia in realtà l'eseguibile di pppd e non uno script.

- Assicurati che pppd abbia il bit setuid attivo per `root`. Puoi impostare questa modalità eseguendo ``chmod` `u+s pppd`` come `root`.

- Assicurati che esista il file `/etc/ppp/options` e che non contenga voci in conflitto. In caso di dubbio: lascia questo file vuoto.

- Assicurati di non usare l'opzione `lock` come argomento per pppd (&kppp; si prende cura di bloccare il dispositivo).

- Rimuovi l'opzione `lock` da entrambi i file `/etc/ppp/options` e `˜/.ppprc`!

- Usare il collegamento simbolico `/dev/modem` può causare alcuni conflitti. Elimina questa fonte di problemi usando il dispositivo vero, &ie; `/dev/cuaX` o `/dev/ttySX`.

  COM1 equivale a `ttyS0`, COM2 è `ttyS1` e così via.

- Assicurati di aver impostato i permessi corretti. In caso di problemi dovresti eseguirlo prima come root e dopo, quando tutto funziona bene, dagli i permessi meno dannosi se non puoi permetterti di avviare &kppp; setuid `root`. Il modo corretto di procedere probabilmente dovrebbe essere quello di creare un gruppo `modem`.

- Potresti aver eseguito pppd troppo presto, &ie; prima che il server remoto sia pronto a negoziare una connessione PPP. Se stai usando uno script di accesso, dovresti usare il terminale integrato per verificate la tua procedura di accesso. Alcuni provider richiedono che tu usi `Send` o `Send ppp` per avviare il PPP. Alcuni utenti hanno anche segnalato che devono aggiungere `Pause 1` o `Pause 2` ai loro script per risolvere conflitti di sincronizzazione.

Se non ti aiuta niente, puoi ottenere alcune informazioni per il debug dai log di sistema scrivendo:

    # tail /var/log/messages

pppd ha interrotto la connessione - The remote system is required to authenticate itself ...

Tipico messaggio di errore nel log di sistema:

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

Tutto ciò che posso dire è che ci sono due cause per questo problema:

- `/etc/ppp/options` contiene l'opzione `auth`. Inserisci semplicemente un carattere di commento (`#`) all'inizio della riga e riprova.

- Il sistema ha già un route predefinito. Hai impostato una rete locale? In questo caso le versioni più recenti di pppd si comporteranno che se fosse stata specificata l'opzione `auth`. Per evitare questo comportamento puoi aggiungere `noauth` agli argomenti di pppd nella finestra di dialogo di configurazione di &kppp;. Alternativamente potresti disattivare la rete locale prima di una chiamata. Sarei grato se qualcuno potesse fornire le istruzioni su come combinare pacificamente le due connessioni di rete.

pppd interrompe la connessione con un kernel Linux 2.4.x

Tipici messaggi di errore nel log di sistema:

    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.

Installa pppd 2.4.0b1 o successivo. Per maggiori informazioni leggi il file `Documentation/Changes` nei sorgenti del kernel.

Perché &kppp; mi dice Impossibile accedere al modem?

Ciò significa che &kppp; non ha i permessi per aprire il dispositivo del modem o che hai selezionato un dispositivo non valido di modem nella scheda Modem. Prima assicurati di aver selezionato il dispositivo corretto del modem. Una volta che hai selezionato il dispositivo corretto del modem, devi dare a &kppp; i permessi corretti per accedere al dispositivo del modem e per poter modificare `/etc/resolv.conf` nel caso che tu voglia che &kppp; configuri correttamente il DNS. Se non puoi permetterti di avviare &kppp; setuid `root` ciò dovrebbe risolverti tutti i problemi di accesso, altrimenti dovrai scoprire quali sono i permessi corretti per i tuoi scopi. Per poter dare a &kppp; i permessi setuid `root` esegui i comandi seguenti:

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

Perché &kppp; mi dice che non può creare un file di lock per il modem?

Ciò nella maggior parte dei casi significa che hai installato &kppp; senza il bit setuid attivo mentre tu, la persona che esegue &kppp;, non hai l'accesso in scrittura alla cartella dei file di lock che in maniera predefinita è `/var/lock`. Questo per esempio è il caso dei sistemi &RedHat;. Controlla la finestra di dialogo del modem per il percorso preciso che hai scelto. La soluzione è semplice: o eseguire &kppp; con il bit setuid se puoi permetterti di farlo, o dare agli utenti normali l'accesso in scrittura a `/var/lock` o creare un gruppo per il modem che avrà l'accesso a `/var/lock`.

Perché &kppp; è installato con il bit setuid attivo?

Non c'è alcun bisogno del bit setuid, se te ne intendi un po' di amministrazione di sistemi &UNIX;. Crea semplicemente un gruppo `modem`, e aggiungi al quel gruppo tutti gli utenti che vuoi che possano accedere al modem e rendi il dispositivo del modem leggibile e scrivibile per quel gruppo. Inoltre se vuoi che la configurazione DNS funzioni con &kppp;, allora il file `/etc/resolv.conf` deve essere leggibile e scrivibile dai membri di quel gruppo. Lo stesso vale per `/etc/ppp/pap-secrets` e `/etc/ppp/chap-secrets` se vuoi usare il supporto incluso per, rispettivamente, PAP o CHAP.

La squadra di &kppp; recentemente ha fatto molto lavoro per rendere &kppp; sicuro riguardo al bit setuid. Ma sta a te decidere se e come installarlo.

Puoi anche leggere la sezione sulla Sicurezza.

Cosa faccio quando &kppp; si ferma e si mette in attesa con il messaggio: `In attesa di OK`

Hai modificato l'impostazione CR/LF? Prova CR, LF o CR/LF.

In alternativa, il modem potrebbe richiedere del tempo per rispondere alla sua inizializzazione. Apri la finestra di dialogo Comandi modem... nella scheda Modem e regola i ritardi Prima dell'inizializzazione e Dopo l'inizializzazione. Vedi se hai successo quando incrementi drasticamente questi valori, e in seguito fai regolazioni più precise.

La connessione funziona bene, ma non posso avviare alcuna applicazione!

Hai probabilmente attivato l'opzione Configura automaticamente il nome host, e il server X ha problemi connettendosi al tuo nuovo host. Se hai realmente bisogno di questa opzione (ed è molto probabile di no), sfortunatamente devi impostare tu stesso le autorizzazioni appropriate. Eseguire ``xhost` `+`` prima di avviare la connessione farà il lavoro, ma attenzione ai rischi di sicurezza che si vengono a creare, dato che ciò garantisce effettivamente a tutti l'accesso al tuo server X.

&kppp; segnala una connessione riuscita, ma &konqueror; dice Host `nomehost` sconosciuto, e &Netscape; segnala Il server non ha una voce DNS.

Prova eseguire il ping usando il suo numero IP, ⪚ ``ping` `195.0.254.76``. Se ciò funziona, puoi provare le seguenti cose:

- Controllare se hai fornito a &kppp; almeno un indirizzo DNS.

- Controlla i contenuti del file `/etc/host.conf`. Lì vi dovrebbe essere una linea simile a `order hosts, bind`. La parola chiave `bind` avvisa la libreria di risoluzione di includere una interrogazione del server durante una ricerca di un indirizzo. Se non vi è una linea simile, prova ad aggiungerla.

Come posso far sì che &kppp; invii \n o \r

Invia solamente una stringa vuota come nel seguente script:

    Send                            # invia una stringa vuota
    Expect           ID:
    Send             itsme
    Expect           word:
    Send             forgot
    Expect           granted
    Send             ppp

Come posso fermare &kppp; dal lamentarsi: Impossibile creare il file di lock?

Ciò accade poiché non hai i permessi per creare un file di lock. Se hai scelto di usare un file di lock, devi avere i permessi di scrittura nella cartella (in genere `/var/lock`). Ciò ovviamente non è un problema se hai dato a &kppp; i permessi di setuid. Leggi la sezione sui file di lock.

Perché il mio modem fa così tanto rumore durante una chiamata?

Premi Configura..., quindi Modem. Qui puoi controllare il volume del modem in tre passi: spento, medio e alto. Per la maggior parte dei modem, medio e alto rappresentano lo stesso volume. Se la modifica di questa opzione non produce alcun risultato, assicurati che siano specificate le impostazioni corrette per il tuo modem in Configura..., Modem, Comandi modem....

Ho disattivato il volume del modem e ho verificato i comandi del modem, ma ancora sento quell'orribile rumore durante una chiamata. Perché?

La stringa di inizializzazione del volume può perdersi se il tuo modem non riesce a stare al pari della velocità con cui riceve comandi da &kppp;. Incrementa il valore di Attesa dopo l'inizializzazione in Configura..., Modem, Comandi modem.

&kppp; continua a segnalare strane velocità del modem come 115200 o 57600

Molti modem in maniera predefinita segnalano solo la velocità della linea seriale e non la velocità sulla linea telefonica. Devi configurare questi modem affinché segnalino la vera velocità della linea aggiungendo alcuni comandi alle stringhe di inizializzazione o di chiamata. Per molti modem questo comando è `ATW2`. Se vuoi aggiungerlo alla stringa di chiamata (che di solito inizia con `ATD`), la nuova stringa di chiamata sarà `ATW2D`.

Perché &kppp; segnala Velocità sconosciuta

I nuovi modem hanno spesso messaggi di connessione molto complessi come `CONNECT LAP.M/V42.bis/115000:RX/31200:TX`, e &kppp; non può analizzare questo messaggio correttamente. Attiva il pulsante Log e vedrai la velocità di connessione.

Ho una connessione lenta

Se non sei soddisfatto della velocità del modem, assicurati di aver impostato la velocità di connessione (puoi trovarla facendo clic su Configura..., Dispositivo, Velocità di connessione) a 57600 o ad un valore più alto. Assicurati che le porte seriali supportino velocità più alte. Molti sistemi più vecchi basati su i486 non funzionano correttamente se hai impostato la velocità a 115200. Se hai un vecchio chip UART 8250, non funzionerà. Se hai un 16550 o 16550A dovrebbe funzionare perfettamente.

In aggiunta, dovresti consultare il manuale del modem cercando stringhe di inizializzazione che abilitano un'alta velocità.

Ho una connessione PARECCHIO lenta!

Se i dati arrivano ad un tasso di pochi byte per secondo, dovresti controllare le impostazioni hardware. Se muovendo il mouse la velocità di trasmissione aumenta, questo è chiaramente un problema hardware!

Puoi ottenere alcune informazioni sulla porta seriale con ``setserial` `-a `/dev/ttySx``` e cercare conflitti di interrupt con altri componenti del sistema.

La mia linea telefonica richiede una chiamata a impulsi invece di una chiamata a toni (o viceversa). Come posso cambiare ciò?

Devi modificare la stringa di chiamata del tuo modem. Quasi tutti i modem supportano i seguenti comandi AT:

`ATDT`

- Seleziona la chiamata a toni

`ATDP`

- Seleziona la chiamata a impulsi

## Domande sulle regole dei costi telefonici

Come posso scrivere un file di regole di costi telefonici?

Segui il file di regole `MODELLO` fornito con &kppp;. Potrai trovarne una copia in `$KDEDIR/doc/HTML/`tualingua`/kppp/`. Usa l'opzione `-r` di &kppp; a riga di comando per controllare la sintassi del tuo file di regole.

Ho scritto un file di regole di costi telefonici per la mia regione. Dove posso inviarlo affinché gli altri possano usarlo?

Il mio file di regole di costi telefonici può contenere unità frazionarie di tempo come "(0.17, 45.5)"?

Sì, è possibile. Ma non dovresti usare unità di tempo piccole e insolite sotto una decina di secondo, poiché ciò avrà come risultato un alto carico CPU, sebbene non lo noterai su una moderna CPU.

Il mio paese osserva altre festività mobili oltre alla Pasqua.

In quel caso, devi scrivere nuovo codice che permette il calcolo di quella festività. Dai un'occhiata a `ruleset.cpp` e scrivi un codice simile a quello usato per la Pasqua. Quindi fai pervenire a noi le patch!

## Domande sui log di sistema

Vedo un messaggio che dice Serial line is looped back. Che significa?

Risposta breve: non hai avviato il PPP sul sistema remoto.

I log mostrano Signal 15

Se vedi le linee seguenti, hai probabilmente ricevuto un errore di timeout da &kppp;. &kppp; ha atteso che venisse attivata l'interfaccia PPP e dopo il timeout specificato vi ha rinunciato. pppd ha ricevuto un segnale di chiusura con il numero 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.

Che cosa mi dici di Receive serial link is not 8-bit clean

Il demone PPP è allarmato dal fatto che tutti i dati che riceve hanno il bit 8 impostato a zero. Nella maggior parte dei casi ciò indica semplicemente che il server PPP remoto non è ancora attivo. Potresti ancora trovarti di fronte ad un prompt di accesso che stampa tutti i dati inviati dal tuo pppd.

E can't locate module ppp-compress? Che cos'è?

Vedi i messaggi seguenti?

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

Aggiungi semplicemente le righe:

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

al file `/etc/conf.modules`.