Esta sección responde las preguntas mas frecuentes sobre las
comunicaciones serie con FreeBSD. PPP y SLIP se tratan en la
sección .
¿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 cónsola 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
sio0: type 16550A
sio1 at 0x2f8-0x2ff irq 3 on isa
sio1: type 16550A
Esto muestra dos puertos serie. El primero en la irq 4 usando
la dirección El kernel para más
detalles.
¿Cómo se si FreeBSD ha encontrado mi módem interno?
Respondido en la sección anterior.
He actualizado a 2.0.5 y mi
No te preocupes, han sido integrados en los dispositivos ¿Cómo accedo a los puertos serie en FreeBSD?
El tercer puerto serie, (conocido
como COM3 en DOS), está en /dev/cuaa2 para dispositivos de
salida (dial-out) y en /dev/ttyd2 para dispositivos de
entrada (dial-in). Cuál es la diferencia entre estas dos clases de
dispositivos?.
Usas los /dev/ttydX
en "blocking mode", un proceso esperará para que el dispositivo
¿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 para cada puerto serie de la tarjeta en el fichero 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 El siguiente ejemplo es para una tarjeta AST 4-port en la irq 7:
options "COM_MULTIPORT"
device sio4 at isa? port 0x2a0 tty flags 0x781
device sio5 at isa? port 0x2a8 tty flags 0x781
device sio6 at isa? port 0x2b0 tty flags 0x781
device sio7 at isa? port 0x2b8 tty flags 0x781 irq 7 vector siointr
Los flags indican que el puerto master tiene un número menor
de 7 (¿Puede manejar FreeBSD tarjetas multipuerto compartiendo irq?
Todavía no. Tendrás que usar una irq diferente para cada
tarjeta.
¿Puedo cambiar los parámetros serie por defecto para un puerto?
El dispositivo
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 XON/XOFF, haz
stty -f /dev/ttyid5 clocal cs8 ixon ixoff
Un buen lugar para hacer esto es en /etc/rc.serial. Ahora,
una aplicación tendrá esta configuración por
defecto cuando abra el puerto 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
stty -f /dev/ttyld5 57600
Ahora, una aplicación que abre Naturalmente, deberías hacer que el estado inicial y el estado
de bloqueo sean solo de escritura para el usuario ¿Cómo puedo activar logins de entrada en mi módem?
Quieres hacerte proveedor de Internet, eh?. Primero,
necesitarás uno o mas 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 RTS/CTS para el control de flujo.
Finalmente, debe usar una velocidad constante entre el ordenador y
él mismo, pero debería negociar la velocidad entre
él mismo y el módem remoto.
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
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 fichero
para el módem. Este fichero 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
/dev/ttyd1 tiene un módem conectado, la velocidad es de
57600 bps y sin paridad (Muchos usuarios, ponen un sus ficheros .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 fichero ,
necesitas lanzar una señal :
kill -HUP 1
Esto fuerza al proceso init a releer el fichero .
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
¿Cómo puedo conectar un dumb terminal a un FreeBSD?
Si estás usando otro ordenador 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 fichero
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 /dev/ttyd4 tiene un
terminal Wyse50 conectado a 38400 bps sin paridad y los logins de
root son permitidos.
¿Porqué no puedo ejecutar
En tu sistema, los programas y son probablemente
ejecutables solo por y el grupo Alternativamente, puedes dejar que todos los usuarios de tu sistema
ejecuten
# chmod 4511 /usr/bin/cu
# chmod 4511 /usr/bin/tip
Mi módem hayes no está soportado. ¿Que puedo hacer?
Actualmente, el man de 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 (utilizando
la cadena También, el timeout de llamada para
¿Cómo puedo introducir estos comandos AT?
Haz lo que se llama una entrada . Por ejemplo, si tu módem está
conectado al primer puerto serie, /dev/cuaa0, escribe la
siguiente línea:
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
y estarás conectado al módem.
Si no existe el dispositivo /dev/cuaa0 en tu sistema
, teclea lo siguiente:
# cd /dev
# ./MAKEDEV cuaa0
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 /dev/cuaa0>)
y speed siendo la velocidad (por ejemplo 57600. Cuando
termines de entrar los comandos AT, pulsa la tecla . para
salir.
El símbolo
El símbolo un
número de teléfono determinado. Pero el símbolo
. Pon una contrabarra junto al carácter:
pn=\@
¿Cómo puedo llamar desde la línea de comandos?
Pon lo que se llama una entrada . Por ejemplo:
tip115200|Dial any phone number at 115200 bps:\
:dv=/dev/cuaa0:br#115200:at=hayes:pa=none:du:
tip57600|Dial any phone number at 57600 bps:\
:dv=/dev/cuaa0:br#57600:at=hayes:pa=none:du:
Entonces puedes hacer cosas como antes que , usa una
entrada genérica de cu:
cu115200|Use cu to dial any number at 115200bps:\
:dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du:
y teclea ``¿Tengo que teclear la velocidad cada vez que hago esto?
Pon una entrada para piensa que
una buena velocidad por defecto es 1200 bps ya que busca una entrada
Accedo a diferentes hosts a través de un servidor de terminales.
En lugar de esperar a que estés conectado y teclear
:
pain|pain.deep13.com|Forrester's machine:\
:cm=CONNECT pain\n:tc=deep13:
muffin|muffin.deep13.com|Frank's machine:\
:cm=CONNECT muffin\n:tc=deep13:
deep13:Gizmonics Institute terminal server:\
:dv=/dev/cua02:br#38400:at=hayes:du:pa=none:pn=5551234:
Esto hará que puedas teclear ¿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 fichero
y usa \@ para la opción
big-university:\
:pn=\@:tc=dialout
dialout:\
:dv=/dev/cuaa3:br#9600:at=courier:du:pa=none:
Entonces, lista los números de teléfono de la
universidad en el fichero :
big-university 5551111
big-university 5551112
big-university 5551113
big-university 5551114
intentará cada uno de estos números en el
orden en el que estén listados. Si quieres que se realicen
reintentos, ejecuta ¿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
que el próximo carácter es un dato literal. Puedes
configurar el carácter "forzar" a cualquier otro carácter
con el escape Teclea Puedes tener el carácter de forzar donde quieras, especificando
lo siguiente en tu fichero $HOME/.tiprc
force=De repente, todo lo que tecleo es en mayúsculas
Has debido pulsar CTRL+A, tiene este
carácter especial para gente que tenga la tecla caps-lock
estropeada. Usa Aqui hay un ejemplo del fichero .tiprc perfecto para usuarios de
Emacs que necesiten teclear CTRL+2 y CTRL+A muchas veces:
force=^^
raisechar=^^
El simbolo ^^ es SHIFT+CTRL+6.
¿Cómo puedo hacer transferecia de ficheros con
Si estás conectado con otro sistema UNIX, puedes enviar y
recibir ficheros con y
en el sistema remoto para aceptar y enviar ficheros. La sintaxis es:
~p []
~t []
No hay chequeo de errores, por lo que es mejor usar otro protocolo
como zmodem.
¿Cómo puedo usar zmodem con
Primero, instala uno de los programas zmodem de la colección de
ports (por ejemplo
y ).
Para recibir ficheros, inicia el programa de envío en la parte
remota. A continuación, pulsa enter y teclea
Para enviar ficheros, inicia el programa de recepción en la
parte remota. A continuación pulsa enter y teclea
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
para solucionar el problema.