Antes de comenzar a construir y usar el TERM
debes asegurarte de que
tienes incluido el soporte TCP/IP en el kernel. Además, asegurate de que
esté activo el interface loopbackde TCP/IP. Si este es tu caso puedes
seguir con el resto de esta sección.
En las versiones nuevas del term
han aparecido dos conceptos nuevos.
Estos dos conceptos se explican en los dos siguientes apartados.
A partir de la versión 1.16 aparece el concepto de compartir la conexión
TERM
con otros usuarios. Esto significa que cuando habilitas la
característica shared (compartida), otra gente podrá usar la misma
conexión TERM
que tu estas usando, es decir, cuando estas trabajando en
tu máquina remota a través de tu conexión TERM
(por ejemplo, has usado
trsh en tu máquina local para acceder) otra persona en tu máquina local
podrá usar la misma conexión TERM
al mismo tiempo para transitir un
fichero con ftp a su cuenta en tu máquina local desde un ftp site de
cualquier lugar del mundo.
Cuando deshabilitas la característica shared (compartida) (o sea, ejecutas
TERM
en modo privado) tu y solo tu (sin contar al root :-) puede usar la
conexión TERM
.
Por supuesto, solo necesitas instalar el shared TERM
en el extremo en el
que quieres permitir a la gente usar la misma conexión TERM
que tu estas
usando. Asi que, si otra gente tiene cuenta en tu máquina local y quieren
usarlo desde algún logar de tu red remota habilitas la característica
shared en el extremo remoto de tu conexión TERM
. De esta forma toda esta
gente puede acceder a tu máquina a la vez compartiendo la misma conexión
TERM
entre si y contigo mismo. (NOTA: el primer ejemplo necesitaba
habilitar la característica shared en el extremo local de la conexión
TERM
).
NOTA para la instalación como root:
Cuando instalas TERM
como root primero
debes crear un grupo TERM
(antes de compilar) si miembros añadiendo la
siguiente linea en /etc/group:
term::16:root
o cualquier otro GID no usado en vez del 16 si éste ya esta en uso.
Después de compilar e instalar coloca al TERM
y sus clientes el SGID term:
chgrp term <cliente_term> chmod g+s <cliente_term>
También cualquier programa que hagas utilizable con TERM
debe llevar SGID
TERM
.
A partir de la versión 2.0.0 de TERM
se usa el concepto full TERM
networking (conexión de red totalmente TERM). Cuando tu única conexión con
el mundo exterior es una conexión TERM
, tienes una red full TERM
(completamente TERM) y deberías construir el TERM
con full TERM
networking.
En este caso se ha puesto un fichero llamado termnet
en el directorio
compartido. Esto dice a TERM
que tu única conexión con el exterior es a
través del TERM
.
Cuando también tienes algún otro tipo de conexión de red además de los
programas (pasados a TERM
) de la conexión TERM
, primero intenta que
realicen su trabajo usando esta otra conexión. Si ésta falla entonces se
invoca el TERM
y se intenta realizar el trabajo a través de la conexión
TERM
. Para aclarar esto, ahora se da un ejemplo en el que el se usa el
telnet hecho utilizable en TERM
. Este telnet debería funcionar con y sin
TERM
.
telnet localhost
no usa el TERM
para conectar, pero
telnet zeus.cs.kun.nl
usará el TERM
solo si no tienes otro tipo de conexión de red.
El full TERM networking también implica el mentir sobre el nombre del
host, y dice que es el host remoto en su lugar. Además, provoca que
bind(0) actue siempre en el host remoto. En esencia hace que muchos
programas puedan usarse cuando sin ir a través del TERM
mientras el TERM
esta corriendo. Desafortunadamente, la mayoria de programas y demonios UDP
no funcionarán con TERM
sin estos incómodos trucos.
TERM
Si tienes suerte esto solo debe implicar un make
. Sin embargo, lo más
probable es que necesites hacer más. Debido a nuevas opciones en las
versiones nuevas del TERM
(sharing, configure) ahora es un poco más
complicado crear el ejecutable del TERM
. Ahora pueden seguirse un par de
caminos para obtener el ejecutable.
Para cubrir todos estos caminos con los que puede construirse el TERM
vamos a dividir esta sección en tres partes:
TERM
hasta la versión 1.15TERM
, versiones 1.16 hasta 1.19TERM
, versiones 2.0.0 y superioresterm
hasta la versión 1.15Para estas versiones del term
construirlo no debería implicar ejecutar
más que estos comandos
make DO=install OS-type make installman
Encontrarás el term
, sus clientes y las páginas de manual (man
)
comodamente construidas e instaladas y listas para usar después de esto.
Además, necesitaras crear un directorio $HOME/term
. Este directorio lo
usará el term
para buscar su fichero termrc
.
La única cosa que puedes querer hacer es cambiar algunos de los pathes en el Makefile o cambiar algunos de los flags del compilador.
term
, versiones 1.16 hasta 1.19Para construir el term
ahora puedes elegir una de las siguientes formas:
term
en modo privadoterm
en modo sharedterm
en modo privadoterm
en modo sharedAbajo se explicará cómo habilitar/deshabilitar la opción shared durante la
compilación del term
term
con otros usuarios.
Como usuario que no quiere compartir la conexión term
con otros
usuarios deberias hacer lo siguiente para construir el term
:
make DO=install OS-type make installmanDespués de esto, el
term
, sus clientes y las páginas de manual están
generados e instalados.
Además, necesitaras crear un directorio $HOME/term
. Este directorio lo
usará el term
para buscar su fichero termrc
.
La única cosa que puedes querer hacer es cambiar algunos de los pathes
en el Makefile o cambiar algunos de los flags del compilador.
term
con otros usuarios.
Como usuario que quiere compartir la conexión term
con otros
usuarios deberias hacer lo siguiente para construir el term
:
make DO=installshare USERSHARE=$HOME/term OS-type make installmanDespués de esto, el
term
, sus clientes y las páginas de manual están
hechos e instalados.
Además, tendrás un directorio $HOME/term
(por defecto) con permisos
drwxrwxr-x
. En este directorio encontrarás al menos el socket usado por
el term
para sus conexiones (tmp/private/socket=
).
term
con
otros usuarios.
Como root que no quiere compartir la conexión term
con otros
usuarios deberías hacer lo siguiente para construir el term
:
make DO=install OS-type make installmanDespués de esto, el
term
, sus clientes y las páginas de manual están
hechos e instalados.
Además, tendrás un directorio llamado /usr/local/lib/term
(por defecto)
con permisos drwxr-xr-x
. En este directorio encontrarás al menos el socket
usado por el term
para sus conexiones (tmp/private/socket=
).
term
.
Primero, asegúrate de haber leido la sección sobre 'sharing' de arriba.
Como root que quiere compartir la conexión term
deberias hacer lo
siguiente:
make DO=installshare OS-type make installmanDespués de esto, el
term
, sus clientes y las páginas de manual están
hechos e instalados.
Además, tendrás un directorio llamado /usr/local/lib/term
(por defecto)
con permisos drwxrwxr-x
. En este directorio encontrarás al menos el socket
usado por el term
para sus conexiones (tmp/private/socket=
).TERM
, versions 2.0.0 and higherPrimero asegúrate de haber leido la sección sobre ' full term networking' de arriba.
Para las versiones de term
2.0.0 y superiores hay muchas formas de generar
el binario del term
y los clientes. Todo esto puede hacerse tanto por el
root como por un usuario cualquiera:
term
en modo privado sin full term networkingterm
en modo privado con full term networkingterm
en modo shared sin full term networkingterm
en modo shared con full term networkingEn estas versiones de term
ha aparecido una nueva forma de compilar usando
el script configure. Cuando se ejecuta configure éste chequea en que
sistema operativo estás tratando de instalar el term
, si el directorio
origen esta disponible o no, y si hay puesta alguna opción de runtime.
De acuerdo con las cosas encontradas configure crea entonces un Makefile
usando Makefile.in que se entrega con el paquete del term
.
Dos de las opciones más importantes para configure son --root y --user
que establecen si el term
se instalará por el root o por un usuario
cualquiera. Se pueden usar otras opciones para instalar el term
de la
forma que quieras (con paths no estandar, por ejemplo).
term
en modo privado sin full term networking
Para generar el term
de este modo necesitas ejecutar los siguientes
comandos (tanto para el root como para cualquiera):
make install installmanEsto genera los binarios e instala estos binarios y las páginas de manual.
term
en modo privado con full term networking
Para generar el term
de este modo necesitas ejecutar los siguientes
comandos (tanto para el root como para cualquiera):
make installnet installmanEsto genera los binarios e instala estos binarios y las páginas de manual.
term
en modo shared sin full term networking
Para generar el term
de este modo necesitas ejecutar los siguientes
comandos (tanto para el root como para cualquiera):
make share installmanEsto genera los binarios e instala estos binarios y las páginas de manual.
term
en modo shared con full term networking
Para generar el term
de este modo necesitas ejecutar los siguientes
comandos (tanto para el root como para cualquiera):
make share installnet installmanEsto genera los binarios e instala estos binarios y las páginas de manual.
Con el term
se suministra una libreria con funciones para clientes term
.
Hasta la versión 1.16 esta libreria se llamaba client.a. Durante la
compilación de term
se generaba esta libreria, que después se usaba en la
compilación de los clientes term
. No se instalaba en otro directorio.
A partir de la versión 1.16 se cambió el nombre de la libreria por
libtermnet.a. Hasta la versión 1.19 esta libreria se crea en el directorio
term
y después se usa durante la compilación de los clientes term
. No se
instala en otro directorio.
A partir de la versión 2.0.0, además de libtermnet.a también se crean
libtermnet.so y libtermnet.sa (libreria shared y libreria exported
initialized) durante la instalación del paquete term
. Durante la
instalación de todas las partes del paquete, estos tres ficheros de
librerias se instalan en el directorio /usr/local/lib (por defecto).
Y después se hace un enlace desde libtermnet.so.2 a libtermnet.so.2.x.x.
Finalmente se ejecuta ldconfig para crear los enlaces necesarios y el
caché (para uso del linker de run-time, ld.so) para las librerias shared
más recientes que se encuentran en los directorios especificados en la
linea de comandos, en el fichero /etc/ld.so.conf, y en los directorios
permitidos (/usr/lib y /lib). Si la instalación se hace correctamente los
tres ficheros de libreria podrán usarse ahora por los clientes de term
que
son generados con librerias dinámicas en lugar de estáticas. Estas
librerias también se pueden usar ahora para portar tu software propio para
poderlo usar con el term
(mirar abajo).
term
reconoce un par de variables de entorno que pueden definir los
usuarios. Las tres primeras de éstas que se explicarán son:
Definiendo estas variables puedes controlar el modo en que se ejecuta el
term
.
Para versiones del term
hasta la 1.15 solo es importante la variable
TERMDIR (estas versiones no reconocen el modo shared). Para estas
versiones TERMDIR se debería definir como sigue:
setenv TERMDIR $HOME (csh o tcsh) export TERMDIR=$HOME (bash)
A partir de la versión 1.16 term
también reconoce las variables
TERMSHARE y TERMMODE. Con estas variables se le puede indicar al term
que
funcione en modo privado o en modo compartido. Explicaremos como definir
las variables para ambos modos.
term
en modo privado puede hacerse definiendo las variables
TERMDIR y TERMMODE de la siguiente forma:
Para csh o tcsh
setenv TERMDIR $HOME setenv TERMMODE 0Para bash
export TERMDIR=$HOME export TERMMODE=0
term
en modo compartido hay dos formas de definir
las variables:
term
se instala como un programa SUID solo se debe definir
TERMMODE (?? README en el paquete del term
).
setenv TERMMODE 'número' (csh o tcsh) export TERMMODE='número' (bash)En 'número' debe ponerse 1 si se esta usando una versión del
term
entre
la 1.16 y la 1.19 (README.share en el paquete del term
) y 2 si se está
usando la versión de term
2.0.0 o superior (README.security en el
paquete del term
).term
se instala como un programa SGID las variables se deben
definir del siguiente modo:
Para csh o tcsh
setenv TERMMODE 1 setenv TERMDIR /usr/local/lib/term setenv TERMSHARE $TERMDIRPara bash
export TERMMODE=1 export TERMDIR=/usr/local/lib/term export TERMSHARE=$TERMDIRPoniendo las variables de esta forma hará posible que se ejecuten clientes viejos (linkados con una versión antigua del client.a) en modo compartido (shared).
A partir de la versión 2.0.0, term
también reconoce la variable TERMSERVER.
Se necesita definir esta variable cuando se tienen varios modems y mas de
una conexión a la vez. Para especificar que conexión usar, se debe
ejecutar el term
con un nombre de servidor:
nohup term -v /dev/modem1 Connection1 & nohup term -v /dev/modem2 Connection2 &Los usuarios deberían definir la variable TERMSERVER con el nombre de conexión que quieran usar:
setenv TERMSERVER Connection1 (csh o tcsh) export TERMSERVER=Connection2 (bash)
TERM
Haz un make test
(o make termtest
para versiones nuevas del term
) para
generar el demonio de prueba del term
. (term)test
funciona ejecutando dos
copias del term
en tu sistema, una ``local'' y una ``remota''. Ambas
leerán tu termrc; de modo que puedas ajustar su comportamiento. Ahora
ejecuta (term)test
. Ahora deberías de poder hacer un trsh
y un tupload
(prueba con
tupload ./term /usr/tmpdeberías de conseguir tener una copia del binario
term
en /usr/tmp
). La salida del term
local deberia
aparecer en local.log
y la remota en remote.log
. Puedes ejecutar term
con
el flag -d255
para poder registrar lo que ocurra en estos ficheros, o
habilitar el debugging en tu termrc.
NOTA: Ejecuta el test
como ./test
para evitar el test
del sistema.
TERM
y los programas de comunicaciones.Antes de poder usar term
, tienes que establecer una conexión
vía módem usando un programa de comunicaciones como kermit o seyon. En
la documentación del programa encontrarás qué tienes que hacer para
conectarte con la máquina remota.
Cuando hayas establecido la conexión y quieras ejecutar term
,
necesitas suspender o salir del programa de comunicaciones sin cerrar
la conexión.
A continuación explicaré cómo hacer esto con algunos programas de comuniaciones.
Iniciar term
cuando se usa kermit es fácil. En el prompt
local de kermit se teclea suspend, de modo que volverás al
prompt de Linux. Desde este prompt puedes ya establecer la conexión term
.
Una forma de iniciar chequeo de línea o TERM
cuando usas
seyon es poner linecheck y TERM
en el menú Transfer
(controlado por el fichero '$HOME/.seyon/protocols').
Añade al fichero '$HOME/.seyon/protocols' lo siguiente:
"Line check" "$cd /tmp; linecheck" "Term" "$term -c off -w 10 -t 150 -s 38400 -l $HOME/tlog"
Ahora, cuando inicies linecheck o term
en la máquina local,
selecciona en el menú Transfer el ítem "Line Check" o "Term".
Por supuesto, también podrías usar el botón de comando de shell y teclear en el diálogo que se te abrirá las palabras 'linecheck' o 'term'. Esto mismo hace redirección automática al comando.
Presumiblemente, puedes establecer una conexión modem entre tus hosts local y remoto. Típicamente lo que haces es, llamar a algún tipo de servidor de terminales y conectas con tu host remoto a través de él. También sueles usar para ello un software de terminal, como kermit o seyon para comunicar con tu modem (los ejemplos de este documento usan el kermit, ya que es el que usa el autor). Si estas teniendo problemas con tu modem, o con tu software de terminal, echa una ojeada al Serial HOWTO; esto debería ayudarte.
Una vez establecido el enlace, querrás hacerlo lo más transparente posible. Comprueba los comandos en el servidor de terminal (help o ? suele ser un buen comienzo). Busca la opción 8 bits siempre que sea posible. Esto puede implicar cambiar la forma en que accedes a tu sistema, por ejemplo, si el servidor usa rlogin, tu tendrás que usarlo poniendo el flag -8 para hacerlo transparente. Especialmente vigila el control de flujo por xon/xoff. Tú no necesitas eso. Intenta habilitar el control de flujo por hardware rts/cts. Puede que tengas que mirar los docs de tu modem para saber como configurarlo para hacer comunicaciones rts/cts de 8 bits.
ATENCIÓN: En algunos documentos las opciones de linea de comandos para linecheck se citan en orden incorrecto. He comprobado esto y he hallado que el orden de las opciones que menciono aqui abajo es el correcto.
NOTA: a partir de la versión de term
2.3.0 linecheck ya no necesitrá tener
el nombre de un fichero de log en la linea de comandos. Escribirá su
salida al fichero linecheck.log en el directorio desde el que se ejecute
linecheck.
linecheck es un programa que se entrega con el term
. Comprueba la
transparencia de un enlace, produciendo información de configuración que
necesita el term para funcionar correctamente. linecheck manda todos los
256 caracteres de 8 bits posibles sobre el enlace y verifica que cada uno
se transmite correctamente. Hay que configurar term para manejar
caracteres que no pueden ser transmitidos por el enlace, y linecheck
determina cuales son estos caracteres. Debes usar linecheck después de
haber establecido un enlace modem lo más transparente posible. Para correr
linecheck haz lo siguiente:
linecheck linecheck.log
linecheck linecheck.log > /dev/modem <
/dev/modem
Cuando termine linecheck encontrarás un conjunto de números al final de los ficheros linecheck.log. Estos son los que deberias poner como 'escape' en el termrc al otro lado del enlace. Por ejemplo, mi linecheck.log local decia que 'escape' 29 y 157. Asi que, mi termrc local escapa (evita) estos caracteres y mi termrc remoto ninguno. Si se escapa (evita) un carácter en un extremo, también debo ignorarlo (ignore) en el otro; asi que, en este ejemplo, debería ignorar 29 y 157 en mi sistema remoto.
Si linecheck se cuelga, prueba a usar
linecheck linecheck.log 17 19
en el sistema remoto, y
linecheck linecheck.log 17 19 > /dev/modem < /dev/modem
en el sistema local. Esto evitará tus caracteres de xon/xoff (control de flujo), que colgarán tu linea si tienes control de flujo software. Si soluciona los problemas de cuelgues, tendrás que escapar/ignorar 17/19 en ambos termrc. Si tu servidor de terminal tiene otros caracteres que lo cuelguen, prueba a correr lineckeck con esos caracteres escapados como el ejemplo de arriba. Puedes marcar esos caracteres si linecheck se cuelga. Si es este el caso, mátalo, y loego mira en los logs. Los últimos caracteres transmitidos es probable que sean los culpables. Vuelve a intentarlo escapando estos caracteres.
En resumen, mi termrc local tiene las lineas:
escape 29 escape 157
y mi termrc remoto tiene las lineas:
ignore 29 ignore 157
ya que mi linecheck.log remoto decia que 'escape 29 y 157'.
TERM
Accede a tu sistema remoto, haciendo el enlace lo más transparente posible
(si no lo has hecho aun). Arranca term
en el extremo remoto. Yo lo hago
asi:
exec term -r -l $HOME/tlog -s 38400 -c off -w 10 -t 150.Vamos a desgranar las opciones una por una (ten en cuenta que con igual facilidad podría poner estas opciones en mi termrc. Lo hice asi porque evitaba tener que editar un fichero mientras ponia a punto el
term
).
exec
implica destruir la shell actual, corriendo en su lugar el programa
indicado. Ejecuto las cosas con exec porque no pretendo usar mi shell de
login de nuevo; solo estoy despericiando de memoria. Si estas depurando el
enlace y eres capaz de abortar el term
remoto, puede que no quieras hacer
el exec.
La opción -r es necesaria solo en un extremo. term
verá a este extremo
como el remoto de la conexión (ten en cuenta que el extremo remoto del
term
puede ser tu propia máquina local). Si no usas esta opción en un
extremo los clientes de term
se caerán expontaneamente.
-l $HOME/tlog
. Esto registra los errores en el fichero tlog en mi
directorio home. Muy util para depurar. No hay razón para no ponerlo.
-s 38400
: Tengo un modem 14400, con compresión. Para ratios de
compresión óptimos, necesito poder mandar bits al pipe lo más rápido
posible. Para un modem más lento, deberias un número menor. Fíjate que si
tienes una uart 16450 en tu puerto serie, velocidades altas pueden
provocar perdida de datos por desbordamiento del chip de tu puerto serie.
term
se recuperará de esto, pero si ves muchos mensajes en tu log, (o
recibes overrun warnings en versiones del kernel 0.99pl15 en adelante) de
nuevo necesitas reducir este número.
-c off
: Desactiva la compresión de datos. Tengo un modem con compresión,
y no necesito comprimir las cosas dos veces.
-w 10 -t 150
: De nuevo estas son opciones para optimizar mi enlace de
modem rápido. Pongo mi ventana a 10 y mi timeout a 150. Esto lo hago de
acuerdo con la recomendación de la página de manual de term_setup.
Vuelve sobre tu máquina local y suspende tu programa de comunicaciones
(ˆZ en kermit). No querrás que esté corriendo a la vez que term
, ya que
lucharía con el term
por el puerto serie. Si puedes convencer a tu modem
de que no cuelgue cuando salgas de tu programa de comunicaciones (cuando
cambia el DTR), podrías salir del programa en este punto.
Ahora lanza el term
local. Yo uso:
term -c off -l $HOME/tlog -s 38400 -w 10 -t 150 < /dev/modem > /dev/modem &Necesito decirle al
term
donde está el modem; Asi que apunto tanto la
entrada como la salida estandar a /dev/modem (eso es lo que hacen <
y >
).
Tambien lo hago correr en background; de modo que puedo usar esta consola
para otra cosa si la necesito.
term
debería de funciona ya :-). Prueba con trsh
, a ver qué pasa. Si se
cuelga, o el enlace parece lento, echa una ojeada a tu tlog en ambos
extremos. ┐Tienes timeouts o mensajes de error? Si es asi, entonces es que
has configurado algo mal. Vuelvelo a intentar (después de que hayas
terminado de leer esto :-). Observa que la conexión no parecerá muy rápida,
especialmente si usas compresión - será un poco a saltos. La velocidad
real aparece durante transmisiones de ficheros y similares.
term
Muy probablemente, una vez que hayas hecho un montón de trabajo usando el
term
, querrás terminar el trabajo y deshacer tu conexión term
. Para poder
hacer esto hay cuatro formas:
term
a ambos lados de la conexión. Esta es
la forma menos recomendada de terminar tu conexión.echo '00000' > /dev/modemEsto terminará la conexión
term
correctamente. Funcionará en todas las
versiones del term
. Hay que asegurarse de que la secuencia contiene al
menos cinco ceros.term
('00000' por defecto). Deba ser de una longitud
de 5 caracteres por lo menos, para evitar terminaciones accidentales.term
perfectamente.TERM
de tus particiones.Ok, me habéis preguntado por esto. Así que voy a presentar los pasos a
seguir para desinstalar term
:
term
, tendrás uno o más de los siguientes directorios:
$HOME/.term/termrc $HOME/.term/termrc.<servidor> $HOME/term/termrc $HOME/term/termrc.<servidor> /usr/local/lib/term/termrc /usr/local/lib/term/termrc.<servidor> /etc/termrc /etc/termrc.<servidor>Estos directorios pueden eliminarse con su contenido, usando '/bin/rm -rf'.
term
. Esta es la parte
más difícil. Para los ejecutables, busca en el directorio
'/usr/local/bin' o '$HOME/bin'.
Con otros ejecutables que hiciste compatibles con term
no
puedo ayudarte. Necesitas saber qué ejecutables modificaste para saber
cuáles borrar. No olvides ficheros de configuración y otros que vengan
con esos ejecutables.cd / find . -name libtermnet* -exec /bin/rm {}Esto encontrará y borrará todos los ficheros de librería relacionados por todo tu disco duro.
include
. De nuevo, lo mejor es que teclees esto:
cd / find . -name termnet.h -exec /bin/rm {}
term
los manuales
se colocaron en uno de los directorios siguientes:
/usr/local/man/man1 /usr/local/man/cat1 $HOME/man/man1 $HOME/man/cat1Debes buscar por lo menos las siguientes páginas de manual: term, term_clients, term_setup, tdownload, linecheck, trdate, trdated, termrc, termtest, tmon, tredir, trsh, tshutdown, tudpredir, tupload, txconnand finally tiptest.
Después de todo este ejercicio, podrás estar bastante seguro de que
has borrado todo lo relacionado con term
.
Una vez que consigues correr el term
, puede que quieras intentar optimizar
las cosas. Una buena forma de medir la velocidad de tu enlace es corriendo
tmon
en una ventana mientras transfieres un fichero en otra. Intenta con
ficheros de texto y ficheros comprimidos suficientemente grandes; el texto
a secas debería dar un factor del doble de rápido que el comprimido. Los
parámetros que querras ajustar son baudrate -s
),
compression (-c
), windows -w
), timeout -t
) y retrain (-A
).
Cuidado con el parámetro retrain. Con la versión 1.19 del term
obtengo un
peor rendimiento de un 80% a un 90% comparado con la ejecución del term
sin
el parámetro retrain. No está claro si se trata de un bug el la versión
1.19 y si este problema existe solo en la versión 1.19 del term
.
Baudrate
: el número máximo de bits por segundo que el term
intentará enviar
a través del enlace serie. term
evitará enviar caracteres a una velocidad
superior a esta. Por defecto se usa la velocidad del puerto serie del
ordenador, pero hay que avisar de que esta puede ser demasiado alta si el
modem funciona a una velocidad menor sobre la linea telefónica. La opción
baudrate está indicada para sistemas que almacenan en buffer la salida al
modem. Durante la configuración y el ajuste es mejor usar un baudrate
pequeño que uno que sea demasiado grande. Para enlaces de alta velocidad
(> 38400), ponerlo sin límite será probablemente ventajoso. Esto se
consigue usando el valor 'off'. term
confiará entonces solamente en el
kernel para controlar el flujo.
Compression
: necesitarás poner en 'on' si no tienes un modem con
compresión. Si tienes un modem de estos, pon 'compression off', de lo
contrario estarás comprimiendo las cosas dos veces, lo que habitualmente
incrementa la cantidad de datos transmitidos. Modems con compresión son
aquellos que usan los protocolos MNP-5 o V42.bis. Observa la documentación
del modem y el mensaje del modem cuando conecta.
Windows
: este es el número de unidades de datos, o paquetes, que el term
enviará por la línea antes de obtener reconocimiento (ack) desde el term
remoto. Para modems rápidos, aumentar esto puede ser una mejora; para
enlaces más lentos esto puede saturar el extremo remoto.
Timeout
: el tiempo que el term
esperará a un ack. Si has aumentado windows
y estás teniendo timeouts en el ficheo log, prueba a aumentar este valor.
Para un 14400/V42.bis, yo uso -c off -w 10 -t 150
. Consigo unos 1700 cps en
ficheros comprimidos y 3500 cps en ficheros ascii usando tupload.
En esta sección se dan algunas opiniones sobre qué comprobar cuando se
tienen problemas ejecutando el term
o alguno de sus clientes.
term
? En las nuevas
versiones del term ha cambiado una par de veces la estructura del arbol
de directorios bajo /usr/local/lib/term. Si no te has dado cuenta de
ello puede causar todo tipo de mensajes de error. Lo mejor es borrar el
arbol de directorios bajo /usr/local/lib/term (salvando tu termrc) y
entonces instalar la nueva versión. De esta forma evitas pelearte con
un arbol de directorios lioso.term
borra todos los sockets (llamados socket=) creados por el term
. El no
hacer esto puede causar extraños problemas. Para averiguar qué socket
está atendiendo el term
, puedes usar el programa "netstat".term
no compila correctamente en sunOS 4.1.3? Has configurado el
term
con './configure --user'. Durante la compilación estás teniendo un
error de ensamblador en un flag '-k' desconocido. La razon de este error
es desconocida. La solución a este error es configurar el term
con
librerías estáticas. Es decir, tendrás que hacer './configure --user
--static' y entonces seguir con el proceso de compilación como sueles
hacerlo normalmente. Ahora el term
debería compilar
correctamente.termtest
te está presentando el error: 'Term:
failed to connect to term socket '/root/.term/sockettest'' (Term:
falla la conexión al socket de term '/root/.term/sockettest')? Cuando
termtest corre espera que el ejecutable 'term' esté en el mismo sitio
que éste. Cuando haces un 'make install' antes de ejecutar termtest,
el binario de TERM es movido a '/usr/local/bin' (u otro similar).
Para ello hay que hacer algo parecido a esto:
ln -s /usr/local/bin/term /usr/src/term-<version_number>/term
term
se ha modificado bastante, y
muchos sistemas tienen versiones diferentes de los programas rondando
por ellos. Asegúrate de que estás usando la versión correcta. Esto
también se aplica al linecheck. Puede usarse el tipo de la bash -a, o el
comando whereis para encontrar qué programa está corriendo. Las
versiones de term
posteriores a 1.11 deberían mostrar su número de
versión al comenzar. (Aunque la versión 1.14 dice ser la
1.12. Sigh.)term
que estes corriendo y el modo en que instalaste el term
(siendo root o usuario) este fichero debe estar en uno de los siguientes
directorios:
/usr/local/lib/term/termrc /usr/local/lib/term/termrc.<servidor> /etc/termrc /etc/termrc.<servidor>Algunos sistemas tienen termrc's pre-instalados; asegúrate de que no estén antes de instalar. Si estás ejecutando cosas como root, busca en /.term. El
term
crea ficheros (sockets en realidad) mientras se ejecuta; de modo que
tiene su propio directorio, /.term, donde esta el fichero termrc (nota,
íno hay un punto precediendo a termrc!).term
su fichero termrc? Cuando inicias term
a ambos lados,
deberías ver mensajes como este de abajo:
Term version: 2.2.9 Reading file: /usr/local/lib/term/termrc Using shared mode.Cuando falta la segunda línea el
term
no puede encontrar su fichero termrc
y sabes que algo ha ido mal durante la instalación (a no ser que no estes
usando el fichero termrc y estés introduciendo todas las opciones en linea
de comandos :-). Comprueba el sitio y los permisos del fichero termrc en el
sitio donde term
no puede encontrar su fichero termrc.escape 1,4,30,255 ignore 1,4,30,255Aunque
term
no reconoce lo anterior tampoco avisará de
ello. Simplemente lo ignorará.
Cuando tienes que ignorar o "escapar" caracteres, tendrás que ponerlos
en diferentes líneas del fichero 'termrc', cada línea comenzando por
la palabra escape o ignore. Solo cuando haya que
hacerlo con varios caracteres deberá hacerse de la siguiente forma:
escape 16-19 # escapar caracteres 16, 17, 18, 19 escape 23 # 23 escpae 255 # ...y 255 ignore 16-19 # ignorar caracteres 16, 17, 18, 19 ignore 23 # 23 ignore 255 # ...y 255
term
1.19 en una máquina con sunOS 4.*.term
debes prevenirte de
ello. Tambien cuando se cambia el modo en que esta trabajando term
(por
ejemplo de modo privado a modo shared) deben adaptarse las propiedades
y permisos de ficheros y directorios.# Formato del fichero: # IP_NUMBER HOSTNAME ALIASES # # Este es el nombre de tu máquina, en primer lugar, seguido de aliases 127.0.0.1 localhost linuxpc.domain linuxpcCuando tu única conexión con el exterior se hace mediante
term
, la línea anterior es la única que debe aparecer en
'/etc/hosts'. No pongas otros nodos de Internet en ese fichero, pues
term
no trabajará con ellos.lo Link encap:Local Loopback inet addr:127.0.0.1 Bcast:127.255.255.255 Mask:255.255.255.0 UP BROADCAST LOOPBACK RUNNING MTU:2000 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 TX packets:4984 errors:0 dropped:0 overruns:0Durante el arranque también puedes ver qué protocolos se utilizan. En mi máquina aparece lo siguiente:
IP Protocols: ICMP, UDP, TCPPara más información sobre cómo instalar la loopback-interface, léete la NET-HOWTO.
term
? Esto significa que tu conexión de term
no está optimizada. Un
pequeño número de esos mensajes no es problema nunca. Estos son debidos
muy posiblemente a que los factores temporales influyen en la conexión
física entre tus hosts remoto y local.
Cuando tienes un monton de estos mensajes todo el tiempo, tu conexión se
ralentizará considerablemente. Tienes que ajustar los parámetros
mencionados en la sección 'Optimizando tu conexión' de arriba. Además,
esta parte de la instalación es un proceso de prueba y error. No se
pueden dar unas reglas fijas sobre los valores a colocar en los variados
parámetros ya que son muchos los factores que influyen en la conexión.
Estos factores difieren entre las conexiones e incluso en tiempo.TERM
-izada de ftp o
ncftp. Sin embargo, algunas de estas aplicaciones adaptadas tampoco
funcionarán.