Antes de comenzar a construir y usar el TERM
debes asegurarte de que
tienes incluido el soporte TCP/IP en el kernel. Además, asegúrate de
que esté activo el interface loopback de TCP/IP. Si éste 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 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), más gente podrá usar la misma
conexión TERM
que tú estás usando, es decir, cuando estás
trabajando en tu máquina remota a través de tu conexión TERM
(has
usado trsh
en tu máquina local para acceder, por ejemplo) otra
persona en tu máquina local podrá usar la misma conexión TERM
al
mismo tiempo para transmitir 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) tú y solo tú (sin contar a
root
:-) puede usar la conexión TERM
.
Por supuesto, sólo necesitas instalar el ``shared'' TERM
en
el extremo en el que quieres permitir a la gente usar la misma conexión
TERM
que tú estés usando. Así que, si otra gente tiene cuenta en
tu máquina local y quieren usarlo desde algún lugar 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 sí 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) sin miembros, añadiendo la siguiente
línea en /etc/group
:
term::16:root
o cualquier otro GID
no usado en lugar del 16 si éste ya está 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 tener
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 compilar 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 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
sólo si no tienes otro tipo de conexión de red.
El full TERM networking también implica el mentir sobre el nombre del
host local, diciendo que es el host remoto en su lugar. Además, provoca que
bind (0)
actúe siempre en el host remoto. En esencia hace que muchos
programas puedan usarse sin ir a través del TERM
mientras el
TERM
está corriendo. Desafortunadamente, la mayoría de programas
y demonios UDP
no funcionarán con TERM
sin estos incómodos
trucos.
TERM
Si tienes suerte esto sólo 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
. Hoy en día
pueden seguirse un par de caminos para obtener el ejecutable.
Para cubrir todos los caminos a seguir 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
, la compilación 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
) cómodamente construidas e instaladas y listas para usar
después de esto.
Además, necesitarás 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 paths
en el Makefile
, o cambiar alguna opción del compilador.
term
, versiones 1.16 hasta 1.19
Para construir el term
ahora puedes elegir una de las siguientes
formas:
term
en modo privadoterm
en modo sharedroot
, construir el term
en modo privadoroot
, construir el term
en modo sharedAbajo se explicará cómo habilitar/deshabilitar la opción shared
durante la compilación del term
root
) y NO quieres
COMPARTIR (SHARE) la conexión term
con otros usuarios.
Como usuario 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 installman
Después de esto, el term
, sus clientes y las páginas de manual están
generados e instalados.
Además, necesitarás 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 paths
en el Makefile
o cambiar algún parámetro del compilador.
root
) y SI quieres COMPARTIR
(SHARE) la conexión term
con otros usuarios.
Como usuario que quiere compartir la conexión term
con otros
usuarios deberías hacer lo siguiente para construir el term
:
make DO=installshare USERSHARE=$HOME/term OS-type
make installman
Después de esto, el term
, sus clientes y las páginas de manual
estarán compiladas e instaladas.
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=
).
root
y NO quieres COMPARTIR (SHARE) la conexión 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 installman
Después de esto, el term
, sus clientes y las páginas de manual
estarán compiladas e instaladas.
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=
).
root
y quieres COMPARTIR (SHARE) la conexión term
.
Primero, asegúrate de haber leído la sección sobre ``sharing'' anterior.
Como root
que quiere compartir la conexión term
deberías hacer lo
siguiente:
make DO=installshare OS-type
make installman
Después de esto, el term
, sus clientes y las páginas de manual
estarán compiladas e instaladas.
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
, versiones 2.0.0
y superioresPrimero asegúrate de haber leído 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 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 está disponible o no, y si hay
puesta alguna opción 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
será instalado por
root
o por un usuario cualquiera. Se pueden usar otras opciones para
instalar el term
de la forma que quieras (con paths no estándar,
por ejemplo).
term
en modo privado sin full term networking
Para generar el term
de este modo necesitas ejecutar los siguientes
comandos (tanto para root
como para cualquiera):
make install installman
Esto genera los binarios, instalándolos junto con 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 installman
Esto genera los binarios, instalándolos junto con 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 installman
Esto 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 installman
Esto genera los binarios e instala estos binarios y las páginas de manual.
client.a, libtermnet.a, libtermnet.sa, libtermnet.so
Con el term
se suministra una librería 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 librería, 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 librería por
libtermnet.a
. Hasta la versión 1.19 esta librería 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 librería
exported initialized) durante la instalación del paquete
term
. Durante la instalación de todas las partes del paquete,
estos tres ficheros de librerías 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 enlazador dinámico, ld.so
) para las librerías
compartidas más recientes que se encuentran en los directorios
especificados en la línea 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 librería
podrán ser usados por los clientes de term
que son generados con
librerías dinámicas en lugar de estáticas. Estas librerías también se
pueden usar ahora para portar tu software propio a fin de poderlo usar con
el term
(ver más adelante).
term
reconoce un par de variables de entorno que pueden definir los
usuarios. Las tres primeras de éstas que se explicarán son:
TERMDIR
TERMSHARE
TERMMODE
Definiendo estas variables puedes controlar el modo en que se ejecuta el
term
.
Para versiones del term
hasta la 1.15 sólo 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 0
Para 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
sólo se debe
definir TERMMODE
. (README
en el paquete del term
).
setenv TERMMODE 'numero' # csh o tcsh
export TERMMODE='numero' # bash
En 'numero'
debe ponerse 1 si se está 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 $TERMDIR
Para bash
:
export TERMMODE=1
export TERMDIR=/usr/local/lib/term
export TERMSHARE=$TERMDIR
Poniendo 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 módems 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
. Deberías poder hacer un trsh
y un
tupload
. Prueba con:
tupload ./term /usr/tmp
deberías de conseguir tener una copia del binario term
en
/usr/tmp
). La salida del term
local debería aparecer en
local.log
y la remota en remote.log
. Puedes ejecutar
term
con el parámetro -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 comunicaciones.
kermit
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
.
seyon
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 cuadro de diálogo que se te abrirá los comandos linecheck
o
term
. Esto mismo hace redirección automática al comando.
Presumiblemente, puedes establecer una conexión módem 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 software de terminal, como kermit
o
seyon
para comunicar con tu módem (los ejemplos de este documento
usan el kermit
, ya que es el que usa el autor). Si estás teniendo
problemas con el módem, o con el 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
, tendrás que usarlo
poniendo el parámetro -8
para hacerlo transparente.
Especialmente vigila el control de flujo por xon/xoff. No lo necesitas. Intenta habilitar el control de flujo por hardware, rts/cts. Puede que tengas que mirar la documentación de tu módem para saber cómo configurarlo para hacer comunicaciones rts/cts de 8 bits.
linecheck
ATENCIÓN: En algunos documentos las opciones de línea de comandos
para linecheck
se citan en orden incorrecto. He comprobado esto y
he hallado que el orden de las opciones que menciono aquí abajo es el
correcto.
NOTA: a partir de la versión de term
2.3.0
linecheck
ya no necesitará tener el nombre del fichero de log en la
línea 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 cuáles son estos
caracteres. Debes usar linecheck
después de haber establecido un
enlace módem lo más transparente posible. Para correr linecheck
haz
lo siguiente:
linecheck linecheck.log
^Z
en kermit
) (si no te robará caracteres del linecheck
).
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 deberías poner como
'escape' en el termrc
al otro lado del enlace. Por ejemplo, mi
linecheck.log
local decía que 'escape' era el 29 y 157. Así 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; así 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 línea si tienes control de flujo por
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
luego 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 líneas:
escape 29
escape 157
y mi termrc
remoto tiene las líneas:
ignore 29
ignore 157
ya que mi linecheck.log
remoto decía que 'escape 29 y 157'.
TERM
Accede a tu sistema remoto, haciendo el enlace lo más transparente posible
(si no lo has hecho aún). Arranca term
en el extremo remoto. Yo
lo hago así:
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 así
porque evitaba tener que editar un fichero mientras ponía 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; estaría desperdiciando memoria. Si
estás depurando el enlace y eres capaz de abortar el term
remoto,
puede que no quieras hacer el exec
.
La opción -r
es necesaria sólo 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
espontáneamente.
-l $HOME/tlog
. Esto registra los errores en el fichero
tlog
en mi directorio home. Muy útil para depurar. No hay razón
para no ponerlo.
-s 38400
: Tengo un módem 14400, con compresión. Para ratios de
compresión óptimos, necesito poder mandar bits al pipe lo más rápido
posible. Para un módem más lento, debería ser un número menor. Fíjate que
si tienes una UART 16450 en tu puerto serie, las velocidades altas
pueden provocar pérdida 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) necesitarás reducir este número.
-c off
: Desactiva la compresión de datos. Tengo un módem 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 módem 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 módem 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 módem; Así que apunto
tanto la entrada como la salida estándar a /dev/modem
(eso es lo
que hacen <
y >
). También lo hago correr en
background; de modo que puedo usar esta consola para otra cosa si la
necesito.
term
debería de funcionar 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 así, entonces es que has configurado algo mal. Vuélvelo 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:
kill
) los programas term
a ambos lados de la
conexión. Esta es la forma menos recomendada de terminar tu conexión.
echo '00000' > /dev/modem
Esto 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.
termrc
de versiones 2.0.0 y superiores se puede incluir
una sentencia terminate <cualquier cadena>
. Esto establece
una cadena que hará que salga del term
(``00000
'' por
defecto). Debe ser de una longitud de 5 caracteres por lo menos, para
evitar terminaciones accidentales.
tshutdown
(realmente para la versión 1.14 está disponible como patch, para
versiones más recientes se incluye en el paquete). Ejecutando
tshutdown
, la conexión term
finalizará 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
/etc/group
una línea
con ese grupo y bórrala.
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/cat1
Debes 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
y por último, tiptest
.
/usr/tmp/private
y sus contenidos.
Después de todo este ejercicio, podrás estar bastante seguro de que
has borrado todo lo relacionado con term
.
Una vez que consigues ejecutar 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 querrás ajustar son baudrate
[velocidad del puerto] (-s
), compression
(-c
), windows
[tamaño de ventana] (-w
),
timeout
[tiempo de espera] (-t
) y retrain
(-A
).
Cuidado con el parámetro retrain
. Con la versión 1.19 del
term
obtengo peor rendimiento, que va 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 en la versión 1.19
y si este problema existe sólo 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 ésta. Por defecto se
usa la velocidad del puerto serie del ordenador, pero hay que avisar
que ésta puede ser demasiado alta si el módem funciona a una velocidad
menor sobre la línea telefónica. La opción baudrate
está indicada
para sistemas que almacenan en buffer la salida al módem. 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 módem
con compresión. Si tienes un módem de éstos, pon compression off, de
lo contrario estarás comprimiendo las cosas dos veces, lo que
habitualmente incrementa la cantidad de datos transmitidos. Los
módems con compresión son aquellos que usan los protocolos MNP-5 o
V42.bis. Observa la documentación del módem y el mensaje del módem
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 módems 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 fichero
de 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 un par de veces la estructura del
árbol de directorios bajo /usr/local/lib/term
. Si no te has dado
cuenta de ello, puedes haber causado todo tipo de mensajes de error. Lo
mejor es borrar el árbol de directorios bajo /usr/local/lib/term
(salvando tu termrc
) y entonces instalar la nueva versión. De esta
forma evitas pelearte con un árbol 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, relacionado con que el
parámetro -k
no es reconocido. La razón de este error es
desconocida. La solución 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-<numero_de_version>/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 una orden del tipo
bash -a
, o el comando whereis
para saber qué programa se está
ejecutando. 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.)
termrc
correcto en el lugar adecuado? Dependiendo de
la versión de term
que estés 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 preinstalados; 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 está el fichero termrc
(nótese, ¡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 estés usando el fichero termrc
y estés introduciendo todas
las opciones en línea de comandos :-)
. Comprueba la localización y
los permisos del fichero termrc
en el lugar donde term
no
puede encontrar su fichero termrc
.termrc
? Un
problema común es que la gente que necesite usar el escape e ignorar
ciertos caracteres, los introduzca así en el fichero termrc
:
escape 1,4,30,255
ignore 1,4,30,255
Aunque si 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
. Sólo 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
escape 255 # ...y 255
ignore 16-19 # ignorar caracteres 16, 17, 18, 19
ignore 23 # 23
ignore 255 # ...y 255
term
o .term
con NFS? Si
tu directorio term
o .term
está montado con NFS necesitas
poner el parámetro -DTERM_NFS_DIR
en la línea
CFLAGS
del Makefile
. Aunque, al autor el usar este parámetro
le produce un error de compilación al compilar term
1.19 en una
máquina con SunOS 4.*.
term
debes prevenirte de ello.
También 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.
gethostbyname: <hostname>:
Non-authoritative `host not found', o `server failed'
?
Para resolver esto tienes que chequear las siguientes cosas:
/etc/hosts
?
<hostname>
no es el nombre de tu host (las versiones viejas de SLS y
algunas viejas y nuevas versiones Slackware se entregan con el
hostname
darkstar, por ejemplo). Cambia esto en el fichero. Debe
contener al menos una línea como la que sigue (el formato se describe
encima de ella):
# Formato del fichero:
# IP_NUMBER HOSTNAME ALIASES
#
# Este es el nombre de tu maquina, en primer lugar, seguido de aliases
#
127.0.0.1 localhost linuxpc.dominio linuxpc
Cuando 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.
/etc/rc*
y
/etc/resolv.conf
?
chmod ugo+r
ifconfig
. Cuando está instalado dicho interface, se verá lo siguiente
en pantalla:
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:0
Durante el arranque también puedes ver qué protocolos se utilizan. En
mi máquina aparece lo siguiente:
IP Protocols: ICMP, UDP, TCP
Para más información sobre cómo instalar el loopback-interface, léete
el NET-HOWTO.
timed out
en tus
ficheros log de term
? Esto significa que tu conexión de
term
no está optimizada. Un pequeño número de esos mensajes nunca
es problema. 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 montón de estos mensajes todo el tiempo, tu conexión se
ralentizará considerablemente. Tienes que ajustar los parámetros
mencionados en la anterior sección
optimizando. 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 el tiempo.
ftp
con puertos redirigidos? Es un
problema habitual con ftp
, que necesita trabajar con los puertos 20 y
21. La única solución es usar una versión TERM
ificada de ftp
o ncftp
. Sin embargo, algunas de estas aplicaciones adaptadas tampoco
funcionarán.