¿Leíste el este manual con cuidado? Aquí hay una vez más el peligro habitual.
Asegúrate de que pppd es el binario de ppppd, no un script
Asegúrate de que pppd tiene activado el setuid root. Debes fijar este modo como root así: chmod u+s pppd.
Asegúrate de que tu fichero /etc/ppp/options existe, pero está vacío!
Asegúrate de que NO has usado la opción "lock" como un argumento para el pppd (Kppp se encarga de bloquear el dispositivo)
Usar el enlace simbólico /dev/modem puede causar algunos conflictos. Elimina esta fuente de problemas usando el dispositivo real. ej. /dev/cuaX o /dev/ttySX. NOTA: COM1 igual ttyS0, COM2 es ttyS1 y así.
Asegúrate de que tienes los permisos necesarios. En caso de problemas podrías ejecutar el programa como root primero y después, cuando todo funcione o.k dale permisos menos restrictivos si no puedes permitirte el ejecutar el Kppp con setuid root. El modo adecuado de proceder puede ser crear un grupo "modem"
Puedes estar lanzando el pppd demasiado pronto, por ejemplo antes de que el servidor remoto haya negociado una conexión PPP. SI estas usando un script para conectar debes usar el terminal incluido para verificar tu proceso de conexión. Algunos proveedores te requerirán que envíes un simple "Send" o "Send ppp" para lanzar PPP. Algunos usuarios han avisado de que han tenido que añadir "Pause 1" o "Pause 2" a sus scripts para resolver problemas de tiempo.
Si nada ayuda, puedes conseguir alguna información para depurar de los registros de tu sistema tecleando:
# tail /var/log/messages |
Esto significa que Kppp no tiene permisos para abrir el dispositivo del modem o que has seleccionado un dispositivo no valido en el cuadro de Modem. Primero asegúrate de que has seleccionado el dispositivo correcto. Una vez que te has asegurado de que has seleccionado el dispositivo correcto debes de darle los permisos necesarios para poder acceder al modem y ser capaz de modificar el fichero /etc/resolv.conf en el caso de que quieras que Kppp configure el DNS correctamente por ti. Si puedes permitirte el ejecutar Kppp con setuid root podrás resolver todos los problemas de acceso, si no, tendras que hallar cuales son los permisos necesarios para tus propósitos. Para darle a Kppp permisos del setuid root haz lo siguiente:
% su root % chown root:root $(KDEDIR)/bin/kppp % chmod +s $(KDEDIR)/bin/kppp % exit |
En la mayoría de los casos significa que has instalado pppd sin el bit de SETUID, la persona que esta ejecutando Kppp no tiene permisos para acceder al directorio de ficheros cerradura que por defecto es /var/lock. Para este ejemplo, en el caso de sistemas RedHat. Busca en el cuadro de Modem la localización exacta que has elegido. La solución es sencilla -- o ejecutas Kppp con SETUID si puedes permitírtelo, o das acceso al fichero /var/lock a los usuarios normales.
No es necesario que el bit de SETUID esté activado, si conoces un poco de administración de sistemas Unix. Simplemente crea un grupo "modem", incluye a todos los usuarios que quieres que tengan acceso al modem y dale permisos al dispositivo de lectura/escritura al grupo. Lo mismo si quieres que funcione la configuración de DNS con Kppp, debes de darle permisos de lectura/escritura al fichero /etc/resolv.conf mediante el grupo. Lo mismo ocurre con los ficheros /etc/ppp/pap-secrets y /etc/ppp/chap-secrets si quieres usar el soporte PAP o CHAP, respectivamente.
Por favor, no me critiques por instalar Kppp con el bit de setuid habilitado, simplemente no puedo con todo el correo que me llega de los usuarios desesperados que tienen problemas para hacer funcionar el Kppp porque no entendían lo suficiente de Unix y permisos de dispositivos.
El equipo Kppp ha hecho mucho trabajo últimamente para hacer al Kppp seguro en el tema del setuid. Pero depende de ti el que decidas instalarlo y como instalarlo.
¿Has jugado con la configuración de CR/LF?
Tu modem puede necesitar algún tiempo para responder a su inicialización. Abre el cuadro "Comandos del Modem" en el apartado "Modem" y ajusta los retardos de "Pre-Inicio" y "Post-Inicio". Mira si funciona cuando los incrementas drásticamente para hacer el ajuste fino más tarde.
Probablemente has activado la opción Sección 4.2 y el servidor de X tiene problemas para conectar con tu nuevo servidor. Si de verdad necesitas esta opción (hay posibilidades de que no lo necesites) dependes de ti mismo para configurar los permisos adecuados. Tecleando xhost + antes de comenzar la conexión, hará el trabajo pero ten cuidado de que cualquier riesgo en seguridad que implique porque cualquier otra persona tendrá acceso a tu servidor de X.
Prueba a hacer un ping a otro servidor, pero a su número IP, ej. ping. Si eso funciona debes
Comprobar si le diste a Kppp al menos una dirección DNS.
Comprobar el contenido de /etc/host.conf. Debe de haber una linea diciendo algo similar a order hosts, bind. El bind Sugiere a la libreria del "resolver" el incluir una consulta al servidor de nombres cuando busca una dirección.
Simplemente envía una cadena vacía como en el siguiente script:
Send # envía una cadena vacía Expect ID: Send itsme Expect word: Send forgot Expect granted Send ppp |
Esto significa que no tienes permisos para crear el fichero cerradura. Si por ejemplo has especificado '/var/lock/LCK..modem" en la configuración del modem, deberás tener permisos de escritura para escribir en /var/lock Este por supuesto no es el problema si le has dado permisos de setuid a Kppp. Por favor lee la sección de Ficheros cerradura.
Pulsa en "Configuración", "Modem". Puedes controlar el volumen del modem aqui en tres pasos: apagado, medio y alto. Para la mayoria de los modems "medio" y "alto" son el mismo volumen. Si eso no funciona asegúrate de que tienes los valores de configuración correctos para tu modem en "Configuración"/"Modem"/"Comandos del Modem"!
La cadena de inicialización del volumen puede perderse si tu modem no puede recibir los comandos desde Kppp a mucha velocidad. Incrementa el valor de "Retraso Post-Inicialización" en "Configuración"/"Modem"/"Comandos del Modem"!
Muchos modems solo avisan de la velocidad de la linea de serie, no de la velocidad sobre la linea telefónica por defecto. Debes configurar esos modems para que avisen de la verdadera velocidad sobre la linea (añade al modem o teclea la cadena). Para muchos modems eso se hace con el comando "ATW2". Si quieres añadirlo a la cadena de marcado (típicamente "ATD"), la nueva cadena sería "ATW2D".
Los nuevos modems a menudo tienen mensajes de conexión muy complejos como "CONNECT LAP.M/V42.bis/115000:RX/31200:TX", y Kppp no puedeentender el mensaje de forma adecuada. Enciende "Mostrar registro" y verás la velocidad de conexión. Actualmente estoy trabajando en una solución para ello, el programa es ahora mucho mejor, pero aun no es perfecto.
Si no estás satisfecho con la velocidad del modem, asegúrate de que tienes la velocidad de conexión ("Configuración" / "Dispositivo" / "Velocidad") puesta con 57600 o mayor. Asegúrate de que tus puertos de serie soportan velocidades mas altas. Muchos sistemas basados en i486 no hacen el trabajo de forma adecuada cuando fijas la velocidad a 115200. Si tienes una UART 8250 no funcionara. Si tienes una 16550 o 16550A debería funcionar sin fallar.
Debes modificar tu cadena del modem. Casi todos los modems soportan los comandos AT:
ATDT - selecciona marcar con tonos
ATDP - selecciona marcar con pulsos
¿Lo compilaste tú el programa o las librerías con gcc-2.8? Esta versión de gcc tiene algo estropeado y no ejecutará como se espera.
Unicamente sigue los ficheros de plantilla (TEMPLATE) que se proporcionan con Kppp. Puedes encontrar una copia en $(KDEDIR)/doc/HTML/kppp. Usa el comando -r en la línea de comandos para comprobar la sintaxis de tu fichero de normas propuesto.
Me encantaría recibir cualquier fichero de reglas que sea escrito. Los añadiré a mi Kppp web page. Antes de enviarme un nuevo fichero de reglas asegúrate de que no está ya disponible en la página web de Kppp. Después enviame el fichero de reglas por email a:mi.
Si es posible. Pero no deberás usar unidades de tiempo unusualmente pequeñas (por debajo de la decena de segundo), porque eso implica una mayor carga de CPU (aunque dudo que lo notes con una CPU moderna :-)
En ese caso nenesitarás escribir un nuevo código que te permita el cálculo de esas vacaciones. Por favor échale un vistazo al ruleset.cpp y emula el ejemplo "easter". Luego, envíame los parches a mi.