# Chapitre 7. Questions et réponses

# 7.1. Questions fréquemment posées (FAQ)

## 7.1.1. Je n'arrive pas à faire fonctionner Kppp. Kppp me dit que pppd est mort ou qu'un timeout a expiré !

Avez-vous lu ce manuel attentivement ? Voici encore une fois les pièges les plus communs :

- Cliquez sur le bouton "Détails". kppp vous donnera un résumé des messages de PPP (ceci peut ne pas marcher sur des systèmes non-linux, ou même sur certaines distributions de Linux). Ce rapport d'exécution vous aidera à identifier le problème.

- Vérifiez que pppd est l'exécutable pppd réel, pas un script

- Vérifiez que pppd est "setuid root". Vous pouvez régler ce mode en utilisant la commande chmod u+s pppd en tant qu'utilisateur root.

- Vérifiez que le fichier /etc/ppp/options existe, et qu'il ne contient pas d'entrées incompatibles entre elles. En cas de doute, videz ce fichier.

- Vérifiez que vous n'utilisez PAS l'option 'lock' comme paramètre de pppd (Kppp s'occupe lui-même du verrouillage du modem)

- Enlevez l'option 'lock' de vos fichiers `/etc/ppp/options` et `˜/.ppprc` !

- L'usage du lien symbolique `/dev/modem` peut être à l'origine de certains conflits. Eliminez cette source de problèmes en utilisant le périphérique réel, par exemple `/dev/cuaX` ou `/dev/ttySX`. NOTE: COM1 égale ttyS0, COM2 est ttyS1 et ainsi de suite.

- Vérifiez que vous appliquez des permissions correctes. En cas de problème, vous pouvez le tester d'abord en étant root et, plus tard, lorsque tout fonctionne bien, appliquer à Kppp des droits moins puissants lorsque vous ne pouvez pas vous permettre de le mettre setuid root. La manière la plus propre de le faire est probablement de créer un groupe 'modem'.

- Vous lancez peut-être pppd trop tôt, c'est-à-dire avant que le serveur distant soit capable de négocier une connexion PPP. Si vous utilisez un script de connexion, vous devriez utiliser le terminal intégré pour vérifier votre procédure de connexion. Certains fournisseurs nécessitent que vous exécutiez une simple instruction "Send" ou "Send ppp" pour lancer PPP. Certains utilisateurs ont même rapporté qu'ils ont dû ajouter "Pause 1" ou "Pause 2" à leurs scripts pour résoudre ces problèmes de synchronisation.

## 7.1.2. Kppp me dit ``Désolé, impossible d'accéder au modem''.

Cela signifie que Kppp n'a pas la permission d'ouvrir le périphérique modem ou que vous avez sélectionné un modem invalide dans la boîte de configuration Modem de Kppp. Vérifiez tout d'abord que vous avez sélectionné le modem approprié. Une fois cela vérifié, vous devez donner à Kppp la permission d'accéder au modem et de modifier `/etc/resolv.conf` dans le cas où vous voulez que Kppp configure le DNS pour vous. Si vous pouvez vous permettre de mettre Kppp setuid root, cela règle du même coup tous les problèmes d'accès, si vous ne le pouvez pas, vous devez choisir les permissions appropriées à chaque but. Pour mettre Kppp setuid root, faites ceci :

     % su root
     # chown root:root ${KDEDIR}/bin/Kppp
     # chmod +s ${KDEDIR}/bin/Kppp
     # exit

## 7.1.3. Kppp me dit qu'il ne peut créer un fichier verrou pour le modem.

Cela, dans la plupart des cas, s'explique par le fait que vous avez installé Kppp sans le bit SETUID et que vous, la personne exécutant Kppp, n'avez pas la permission en écriture dans le répertoire du fichier verrou (généralement `/var/lock`), comme c'est le cas sur les systèmes RedHat. Vérifiez l'emplacement que vous avez choisi pour le fichier verrou dans la boîte de configuration. La solution est simple -- ou bien vous lancez Kppp setuid si vous le pouvez (en termes de sécurité !), ou bien permettez aux utilisateurs d'écrire dans le répertoire `/var/lock`, ou bien encore crééz un groupe modem qui a accès au fichier dans `/var/lock`.

## 7.1.4. Pourquoi Kppp est-il installé avec le bit setuid ?

Il n'y a pas nécessité d'avoir le bit setuid, si vous connaissez un peu l'administration de systèmes UNIX. Créez simplement un groupe modem, ajoutez-y tous les utilisateurs devant utiliser le modem et rendez le modem accessible en lecture/écriture pour ce groupe. De plus, si vous voulez la configuration automatique du DNS, le fichier `/etc/resolv.conf` doit être accessible en lecture/écriture pour ce groupe également.

Veuillez ne pas me faire de critiques lorsque je propose d'installer Kppp setuid root, je ne peux tout simplement plus traiter le volume de courrier que je recevais d'utilisateurs désespérés, ayant des problèmes à faire fonctionner Kppp parce qu'ils ne comprenaient pas grand'chose au sujet d'UNIX et des permissions sur les périphériques.

L'équipe kppp a récemment travaillé à fond pour rendre kppp sûr en mode setuid. Mais c'est à vous de décider si vous l'installez et comment vous l'installez.

## 7.1.5. Kppp regarde voler les mouches et attend 'OK'

- Avez-vous joué avec le réglage CR/LF ? Essayez CR, LF ou CR/LF.

- Votre modem ne doit pas supporter une initialisation rapide. Ouvrez le dialogue "Commandes du modem" dans l'onglet "Modem" et ajustez les délais de "pré-initialisation" et de "post-initialisation". Vérifiez que ça fonctionne quand vous augmentez radicalement ces valeurs, et procédez à un réglage plus fin par la suite.

## 7.1.6. La connexion fonctionne correctement mais je ne peux démarrer aucune application.

Vous avez probablement activé l'option Section 7.1.6 et le serveur X a des problèmes pour se connecter à votre hôte récemment renommé. Si vous avez réellement besoin de cette option (il est possible que ce ne soit pas le cas) il vous revient de réglez les autorisations adéquates. Le fait de xhost + avant de vous connecter règlerait le problème, mais soyez averti des risques en matière de sécurité si tout le monde est autorisé à accéder à votre serveur X.

## 7.1.7. kppp indique une connexion réussie, mais Netscape dit "Le serveur n'a pas d'adresse DNS"

Essayez de faire un "ping" vers un autre serveur en utilisant son adresse IP, par exemple avec la commande `ping`. Si ça fonctionne vous devriez

- vérifier que vous avez au moins donné à Kppp une adresse DNS valide

- vérifier le contenu de `/etc/host.conf`. Il devrait y avoir une ligne ressemblant à `order hosts, bind`. Le mot-clé `bind` dit à la librairie de résolution d'adresse de faire une requète à un serveur de noms lors de la résolution d'une adresse.

## 7.1.8. Comment faire envoyer un \n ou un \r par Kppp ?

Envoyez juste une ligne vide comme dans le script suivant :

     Send                     # envoyer une chaîne vide
     Expect      ID:
     Send        c-est-moi
     Expect      word:
     Send        oublie
     Expect      granted
     Send        ppp

## 7.1.9. Kppp se plaint : ``Impossible de créer le fichier verrou''

Cela signifie que vous n'avez pas le droit de créer un fichier verrou. Si par exemple vous avez spécifié '/var/lock/LCK..modem' dans la fenêtre de configuration, vous devez avoir la permission en écriture dans `/var/lock`. Bien sûr, cela n'est pas un problème si Kppp est setuid. Veuillez lire la section sur les fichiers verrou.

## 7.1.10. Mon modem est trop bruyant quand il compose un numéro !

Cliquez sur "Configuration"/"Modem". Vous pouvez changer le son du modem sur l'une des trois valeurs: éteint, moyen et fort. Pour beaucoup de modems "moyen" et "fort" correspondent au même volume. Si ça ne fonctionne pas, assurez-vous que les réglages corrects pour votre modem sont spécifiés dans "Configuration"/"Modem"/"Commandes modem" !

## 7.1.11. Kppp indique une vitesse de modem inhabituelle comme 115200, 57600 ou une valeur similaire

Bon nombre de modems n'indiquent par défaut que la vitesse de la ligne série et non la vitesse sur la ligne téléphonique. Vous devez configurer ces modems pour qu'ils indiquent la véritable vitesse, en ajoutant une commande à la chaîne d'initialisation ou de numérotation. Pour beaucoup de modems cette commande est "ATW2". Si vous désirez l'ajouter à la chaîne de numérotation (typiquement "ATD"), la nouvelle chaîne de numérotation deviendrait "ATW2D".

## 7.1.12. kppp indique "Vitesse inconnue"

Les nouveaux modems envoient des messages de connexion très complexes comme "CONNECT LAP.M/V42.bis/115000:RX/31200:TX", et Kppp ne sait pas analyser de tels messages correctement. Validez "Afficher rapport" et cette vitesse de connexion s'affichera. Je travaille en ce moment sur une meilleure solution à ce problème, et l'analyseur de réponse est à présent bien meilleur, mais toujours pas parfait.

## 7.1.13. La vitesse de connexion est lente

Si vous n'êtes pas satisfait de la vitesse de connexion, assurez-vous d'avoir mis la vitesse de connexion ("Configuration"/"Périphérique"/"Vitesse") à 57600 ou plus. Assurez-vous que vos ports série supportent des vitesses élevées. La plupart des sysèmes basés sur le processeur i486 ne fonctionnent pas correctement avec une vitesse de 115200. Si vous avez une puce UART 8250, cela ne fonctionnera pas. Si vous avez un 16550 ou un 16550A ça doit fonctionner sans heurt.

## 7.1.14. Ma ligne téléphonique a besoin de numérotation par impulsions au lieu de tonalités (ou vice-versa)

Vous devez modifier la chaîne de numérotation du modem. La plupart des modems supportent les commandes Hayes suivantes :

- ATDT - passer en numérotation par tonalités

- ATDP - passer en numérotation par pulsations

## 7.1.15. Kppp se comporte vraiment bizarrement

L'avez-vous compilé, ou avez-vous compilé les librairies avec gcc-2.8 ? Cette version de gcc est légèrement défectueuse, et ne fonctionnera pas comme prévu.

## 7.1.16. Comment puis-je écrire un fichier de règles de coûts téléphoniques ?

Contentez-vous de suivre les fichiers TEMPLATE (modèles) fournis avec Kppp. Vous devriez en trouver une copie dans le répertoire `${KDEDIR}/doc/HTML/Kppp`. Employez l'option `-r` de la ligne de commande de Kppp pour vérifier la syntaxe de votre nouveau fichier de règles.

## 7.1.17. J'ai écrit un fichier de règles pour ma région. Où puis-je l'envoyer pour que d'autres puissent l'utiliser ?

J'aurais beaucoup de plaisir à recevoir tout fichier de règles écrit. Je les rendrai disponibles sur la page web de Kppp. Avant de m'envoyer un nouveau fichier de règles, veuillez vous assurer qu'il n'est pas déjà disponible sur cette page ;-) Ensuite, envoyez-le moi par mél à wuebben@math.cornell.edu.

## 7.1.18. Est-ce que mon fichier de règles de facturation peut contenir des unités de temps fractionnaires comme "(0.17, 45.5)"?

Oui, c'est possible. Mais vous ne devriez pas utiliser des unités de temps inhabituellement courtes (moins d'un dixième de seconde), car la charge CPU augmenterait (bien que je doute que vous vous en aperceviez avec une CPU moderne :-)

## 7.1.19. Mon pays observe des vacances fluctuantes différentes de Pâques.

Dans ce cas vous devez écrire du code qui calcule ces vacances. Veuillez vous référer à ruleset.cpp et imiter l'exemple 'easter'. Ensuite, envoyez-moi les patches.