Re: ISO-8859-1 y cp437
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
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.
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
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.