Esta sección responde las preguntas más frecuentes sobre las comunicaciones serie con FreeBSD. PPP y SLIP se tratan en la sección Networking.
12.1. | ?Cómo se si FreeBSD ha encontrado mis puertos serie? |
Cuando el kernel de FreeBSD arranca, testeará los puertos serie del sistema que estén configurados en el kernel. Puedes estar atento a los mensajes de la consola o ejecutar el comando:
dmesg | grep sio
una vez el sistema esté en funcionamiento. Aquí tienes un ejemplo del resultado de la ejecución del comando:
sio0 at 0x3f8-0x3ff irq 4 on isa
Esto muestra dos puertos serie. El primero en la irq 4 usando
la dirección El kernel GENERIC incluye soporte para dos puertos serie usando la misma irq y dirección que en el ejemplo anterior. Si estas opciones no son correctar para tu sistema, o si has añadido módems internos o tienes más puertos serie de los que están configurados en el kernel, solo tienes que reconfigurar el kernel. Mira en la sección about building a kernel para más detalles. | |
12.2. | ?Cómo se si FreeBSD ha encontrado mi módem interno? |
Respondido en la sección anterior. | |
12.3. | He actualizado a 2.0.5 y mi tty0X no existen! |
No te preocupes, han sido integrados en los dispositivos ttydX. Tendrás que modificar algunos archivos antiguos de configuración. | |
12.4. | ?Cómo accedo a los puertos serie en FreeBSD? |
El tercer puerto serie,
sio2 (conocido
como COM3 en DOS), está en Usas los ttydX para los entrantes.
Al abrir | |
12.5. | ?Cómo activo el soporte de tarjetas serie multipuerto? |
Otra vez, en la sección de configuración del kernel tienes la información. Para una tarjeta multipuerto, pon una línea sio para cada puerto serie de la tarjeta en el archivo de configuración del kernel. Especifica la irq y vector solo en una de las líneas. Todos los puertos de la tarjeta compartirán la misma irq. Por consistencia, usa el último puerto serie para especificar la irq. De la misma manera, especifica la opción COM_MULTIPORT. El siguiente ejemplo es para una tarjeta AST 4-port en la irq 7:
options "COM_MULTIPORT"
Los flags indican que el puerto master tiene un número menor
de 7 ( | |
12.6. | ?Puede manejar FreeBSD tarjetas multipuerto compartiendo irq? |
Todavía no. Tendrás que usar una irq diferente para cada tarjeta. | |
12.7. | ?Puedo cambiar los parámetros serie por defecto para un puerto? |
El dispositivo ttydX (o cuaaX) es el que querrás abrir para tus aplicaciones. Cuando un proceso abre el dispositivo, tendrá una serie de configuraciones I/O por defecto. Puedes ver estas configuraciones con el comando:
stty -a -f /dev/ttyd1
Cuando le cambias la configuración a este dispositivo, este cambio
se mantiene hasta que el dispositivo se cierra. Cuando se reabre,
vuelve a la configuración por defecto. Para hacer cambios sobre la
configuración por defecto, puedes abrir y ajustar las opciones del
"estado inicial" del dispositivo. Por ejemplo, para poner el
dispositivo tty5 en modo CLOCAL, 8 bits, y contro del flujo
stty -f /dev/ttyid5 clocal cs8 ixon ixoff
Un buen lugar para hacer esto es en También puedes prevenir o limitar ciertos cambios que pretenda hacer una aplicación. Para ello, ajusta el "lock state" del dispostivo. Por ejemplo, para bloquear la velocidad del puerto ttyd5 a 57600 bps, haz:
stty -f /dev/ttyld5 57600
Ahora, una aplicación que abre ttyd5 e intenta cambiar la velocidad del puerto no podrá hacerlo. Naturalmente, deberías hacer que el estado inicial y el estado de bloqueo sean solo de escritura para el usuario root. El script MAKEDEV NO hace esto cuando crea el dispositivo. | |
12.8. | ?Cómo puedo activar logins de entrada en mi módem? |
Quieres hacerte proveedor de Internet, eh?. Primero,
necesitarás uno o más módems que puedan responder
automáticamente. Tu módem necesitará activar el
carrier-detect sólo cuando detecte una portadora y no tenerla
activada continuamente. Necesitará cortar la comunicación
y resetearse él mismo cuando la línea DTR pase de on
a off.
Probablemente usaría Para muchos módems compatibles Hayes, este comando creará estas configuraciones y las grabará en la memoria no volátil:
AT &C1 &D3 &K3 &Q6 S0=1 &W
Mira la sección enviar comandos AT para saber como enviar estas configuraciones al módem sin necesidad de un programa terminal de DOS. A continuación, añade una línea en el archivo /etc/ttys para el módem. Este archivo lista todos los puertos en los que el sistema operativo esperará los logins. La línea sería como esta:
ttyd1 "/usr/libexec/getty std.57600" dialup on insecure
Esta línea indica que el segundo puerto serie
Muchos usuarios, ponen un sus archivos .profile o .login un prompt para el tipo de terminal. El ejemplo muestra el puerto como inseguro. Para ser root en ese puerto, hacer el login como un usuario normal, y ejecutar el comando su. Si en lugar de inseguro, el terminal es seguro (secure), puedes hacer login como root directamente. Despues de modificar el archivo /etc/ttys, necesitas lanzar una señal HUP al proceso init:
kill -HUP 1
Esto fuerza al proceso init a releer el archivo /etc/ttys. El proceso init arrancará los procesos getty en todos los puertos configurados como "on". Puedes ver si los logins están disponibles en los puertos tecleando:
ps -ax | grep '[t]tyd1'
deberías ver algo como:
747 ?? I 0:00.04 /usr/libexec/getty std.57600 ttyd1
| |
12.9. | ?Cómo puedo conectar un dumb terminal a un FreeBSD? |
Si estás usando otro computador como terminal en tu sistema FreeBSD, usa un cable null módem entre los dos puertos serie. Si ya estás usando un terminal, mira en las instrucciones del mismo. A continuación, modifica el archivo /etc/ttys Por ejemplo, si estás instalando un terminal WYSE-50 en el quinto puerto serie, usa una línea como esta:
ttyd4 "/usr/libexec/getty std.38400" wyse50 on secure
Este ejemplo muestra que el puerto | |
12.10. | ?Porqué no puedo ejecutar tip o cu? |
En tu sistema, los programas tip y cu son probablemente ejecutables solo por uucp y el grupo dialer. Puedes usar el grupo dialer para controlar quien tiene acceso al módem o sistemas remotos. Sólo tienes que añadirte tu mismo al grupo dialer. Alternativamente, puedes dejar que todos los usuarios de tu sistema ejecuten tip y cu tecleando:
# chmod 4511 /usr/bin/cu
| |
12.11. | Mi módem hayes no está soportado. ?Que puedo hacer? |
Actualmente, el man de
tip está
anticuado. Hay un dialer Hayes genérico. Solo usa
`` El driver Hayes no es tan desarrollado como para reconocer algunas de las características avanzadas de los módems modernos, mensajes como BUSY, NO DIALTONE o CONNECT 115200 lo pueden confundir. Deberías anular estos mensajes cuando uses tip (utilizando la cadena ATX0&W). También, el timeout de llamada para tip
está en 60 segundos. Tu módem debería usar algo menor, o tip puede
pensar que hay un problema de comunicación. Intenta con
| |
12.12. | ?Cómo puedo introducir estos comandos AT? |
Haz lo que se llama una entrada directa en el archivo
/etc/remote.
Por ejemplo, si tu módem está
conectado al primer puerto serie,
cuaa0:dv=/dev/cuaa0:br#19200:pa=none
Usa la velocidad más alta que soporte tu módem en la sección br. A continuación teclea tip cuaa0 y estarás conectado al módem. Si no existe el dispositivo
# cd /dev
O usa el comando cu como root con los siguientes parámetros:
# cu -l``line'' -s``speed''
con line siendo el puerto serie (por ejemplo | |
12.13. | El símbolo @ no funciona correctamente! |
El símbolo @ en la opción de
números de teléfono indica a tip que busque en el archivo
phone(5) un
número de teléfono determinado. Pero el símbolo
pn=\@
| |
12.14. | ?Cómo puedo llamar desde la línea de comandos? |
Pon lo que se llama una entrada genérica en el archivo /etc/remote. Por ejemplo:
tip115200|Dial any phone number at 115200 bps:\
Entonces puedes hacer cosas como
cu115200|Use cu to dial any number at 115200bps:\
y teclea `` | |
12.15. | ?Tengo que teclear la velocidad cada vez que hago esto? |
Pon una entrada para tip1200 o cu1200, pero puedes usar la velocidad que mejor se amolde a tus necesidades. tip piensa que una buena velocidad por defecto es 1200 bps ya que busca una entrada tip1200. No tienes por que usar 1200 bps. | |
12.16. | Accedo a diferentes hosts a través de un servidor de terminales. |
En lugar de esperar a que estés conectado y teclear CONNECT <host> cada vez, usa la opción cm de tip. Por ejemplo, estas entradas en el archivo /etc/remote:
pain|pain.deep13.com|Forrester's machine:\
Esto hará que puedas teclear tip pain o tip muffin para conectarte a las máquinas pain o muffin. | |
12.17. | ?Puede tip intentar más de una línea para cada lugar? |
Este es un problema habitual en universidades con diferentes líneas de módem y unos cientos de usuarios intentado usarlas... Haz una entrada para tu universidad en el archivo /etc/remote y usa \@ para la opción pn:
big-university:\
Entonces, lista los números de teléfono de la universidad en el archivo /etc/phones:
big-university 5551111
tip intentará cada uno de estos números en el orden en el que estén listados. Si quieres que se realicen reintentos, ejecuta tip en una bucle while. | |
12.18. | ?Porqué tengo que teclea CTRL+P dos veces para enviar CTRL+P una vez? |
CTRL+P es el carácter por defecto de "forzar", usado para indicarle al programa tip que el próximo carácter es un dato literal. Puedes configurar el carácter "forzar" a cualquier otro carácter con el escape ~s, el cual significa "poner una variable". Teclea Puedes tener el carácter de forzar donde quieras, especificando
lo siguiente en tu archivo
force=<single-char>
| |
12.19. | De repente, todo lo que tecleo es en mayúsculas |
Has debido pulsar CTRL+A, tip tiene este carácter especial para gente que tenga la tecla caps-lock estropeada. Usa ~s como en la sección anterior y pon la variable "raisechar" a un valor razonable. De hecho, puedes ponerla al mismo valor que que el carácter de forzar, si no esperas usar estas características. Aqui hay un ejemplo del archivo .tiprc perfecto para usuarios de Emacs que necesiten teclear CTRL+2 y CTRL+A muchas veces:
force=^^
El simbolo ^^ es SHIFT+CTRL+6. | |
12.20. | ?Cómo puedo hacer transferecia de archivos con tip? |
Si estás conectado con otro sistema UNIX, puedes enviar y recibir archivos con ~p (put) y ~t (take). Estos comandos ejecutan cat y echo en el sistema remoto para aceptar y enviar archivos. La sintaxis es:
~p <local-file> [<remote-file>]
No hay chequeo de errores, por lo que es mejor usar otro protocolo como zmodem. | |
12.21. | ?Cómo puedo usar zmodem con tip? |
Primero, instala uno de los programas zmodem de la colección de ports (por ejemplo lrzsz y rzsz). Para recibir archivos, inicia el programa de envío en la parte remota. A continuación, pulsa enter y teclea ~C rz'' (or ``~C lrz'' si instalaste lrzsz) para empezar a recibir localmente. Para enviar archivos, inicia el programa de recepción en la parte remota. A continuación pulsa enter y teclea ~C sz <files>'' (o ~C lsz <files>) para enviarlos al sistema remoto. | |
12.22. | FreeBSD parece que no puede encontrar mis puertos series aún cuando la configuración es correcta. |
Las placas bases y tarjetas con UARTs de Acer no son detectadas correctamente por FreeBSD durante la fase de detección serie. Obten un parche de www.lemis.com para solucionar el problema. |
Puede descargar éste y muchos otros documentos desde ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/
Si tiene dudas sobre FreeBSD consulte la
documentación antes de escribir a la lista
<questions@FreeBSD.org>.
Envíe sus preguntas sobre la documentación a
<doc@FreeBSD.org>.