Re: ISO-8859-1 y cp437

2001-11-17 Por tema Javi Roman Espinar
Hue-Bond escribió:
 
 Javi Roman Espinar, [EMAIL PROTECTED]:18:33(+0100):
 
 Se puede pensar que la impresora está configurada con el juego de
 caracteres CP437
 
  Claro.
 
 pero no es asi. He probado con otra impresora que va
 por el puerto paralelo y mediante el tradicional lpr he intentado
 imprimir un fichero lleno de letras ñ, he obtenido una hoja llena de
 signos más-menos como explicaba en el punto 1.
 
  Evidentemente. Una cosa no quita la otra.
 
 --
  David Serrano [EMAIL PROTECTED] - Linux Registered User #87069
 
 --
 To UNSUBSCRIBE, email to [EMAIL PROTECTED]
 with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]


Las dos impresoras funcionan bien desde otros sistemas. El problema lo
tengo tambien con un display de cuatro lineas que se conecta al puerto
serie. Soy incapaz de sacar la ñ. No tengo muy claro si el
character-set de la consola es una cosa (se guarda en la memoria de
video o algo) y otra cosa es el juego de caracteres para la entrada
salida que usa el kernel. Alguien tiene claro esto??

Gracias.



ISO-8859-1 y cp437

2001-11-14 Por tema Javi Roman Espinar
Hola, saludos:


Tengo un problema al intentar imprimir (o visualizar) la letra ñ.
Parece ser que la consola esta bien configurada pues el teclado muestra
la ñ cuado la pulso. El problema surge cuando intento imprimir un
fichero que contiene letras ñ. He conectado una impresora serie al
ttyS0 y he realizado las siguientes pruebas:


1. # printf ñ  /dev/ttyS0

Obtengo en la impresora un carácter (que ahora no encuentro) que es el
signo más y debajo el menos.

2. # printf \xF1  /dev/ttyS0

Supuestamente este código hexadecimal corresponde a la letra ñ segun
el código ISO 8859-1 (Latin 1), que supuestamente es el que tiene la
consola (tenego en el entorno LC_ALL=es_ES). Obtengo en la impresora el
mismo carácter del punto anterior (un signo mas-menos).

3. # printf \xF1  /dev/console

Muestra en la pantalla una ñ efectivamente.

4. # printf \xA5  /dev/ttyS0

He descubierto que mandando ese código hexadecimal al puerto serie
obtengo en la impresora la dichosa ñ. El código hexadecimal
corresponde con la codificación CP437.

No entiendo que pasa. Parece ser que la consola está correctamente
configurada con su mapa de teclado español y su juego de caracteres
ISO-8859-1, pero cuando salgo por el puerto serie se interpretan los
códigos enviados según el CP437.

Se puede pensar que la impresora está configurada con el juego de
caracteres CP437, pero no es asi. He probado con otra impresora que va
por el puerto paralelo y mediante el tradicional lpr he intentado
imprimir un fichero lleno de letras ñ, he obtenido una hoja llena de
signos más-menos como explicaba en el punto 1.



Consola por puerto serie.

2001-05-16 Por tema Javi Roman
Hola a todos, os planteo el siguiente reto:


Tengo un PC si VGA, necesito usarlo mediate el teclado normal pero
que salgan los mensajes
por el puerto serie. Es decir, tengo un display que conecto al puerto
serie y logro ver toda la salida
del sistema por dicho display (compilando con soporte para
serial-console, modificando el lilo.conf
y modificando inittab) , ademas sale el login de entrada en el sistema.
Mi problema es que el teclado
no funciona. Supongo que el kernel esta esperando la entrada por la
linea serie (como es habitual con
un terminal).

¿Que puedo hacer? ¿Es normal esto? ¿ No deberia el driver keyboard.c ser
independiente a que exista
VGA o no?


Por favor, alguna orientacion.



funcion mount y NFS

2001-02-17 Por tema Javi Roman
Hola, estoy intentando montar una un directorio por NFS
mediante un programita. Intento usar la funcion mount de
glibc. Segun man 2 mount es posible esta idea pasando una
estructura como ultimo parametro a la funcion:

int  mount(const char *fespecial, const char * dir , const
   char * tiposf, unsigned long le , const void * datos);

No soy capaz de lograrlo, no se si los campos de la estructura
los relleno mal o que. El mensaje obtenido en el perror es:
argumento invalido. El kernel me indica:

 nfs_read_super: missing data argument



Mi codigo es el siguiente: 

#include stdio.h
#include errno.h
#include netdb.h
#include sys/mount.h
#include netinet/in.h
#include arpa/inet.h /* inet_ntoa */
#include linux/nfs.h
#include linux/nfs_mount.h

int main (int argc, char *argv[])
{
  struct nfs_mount_data ServerNFS;
  struct hostent *host_remoto;

  if (argc  2){
printf(Usage: montafs nombre_host\n);
exit(1);
  }

  if ( (host_remoto = gethostbyname(argv[1])) == NULL){
perror(Host no accesible);
exit(1);
  }

  memset(ServerNFS, 0, sizeof(ServerNFS));
  ServerNFS.version = NFS_MOUNT_VERSION;
  ServerNFS.fd = -1;
  strcpy(ServerNFS.root.data,/mnt);
  ServerNFS.flags = NFS_MOUNT_SOFT;
  ServerNFS.rsize = 8192;
  ServerNFS.wsize = 8192;
  ServerNFS.timeo = 7;
  ServerNFS.retrans = 3;
  ServerNFS.acregmin = 3;
  ServerNFS.acregmax = 60;
  ServerNFS.acdirmin = 30;
  ServerNFS.acdirmax = 60;
  ServerNFS.addr.sin_family = AF_INET;
  ServerNFS.addr.sin_port = 0;
  memcpy(ServerNFS.addr.sin_addr, host_remoto-h_addr,
  host_remoto-h_length);
  strcpy(ServerNFS.hostname, argv[1]);
  ServerNFS.namlen = NAME_MAX;
  ServerNFS.bsize =  0;

  printf (direccion estructura: %p\n, ServerNFS);
  if ( mount(HOSTREMOTO:/mnt, /export, nfs, MS_RDONLY, (void *)
ServerNFS) ){
  perror(\nError en montaje);
  return 1;
  }

  return 0;
}

*

¿Alguien ha usado la funcion mount para esto?
¿Alguna idea?



Gracias.