3 PadreNuestro's y 5 Ave Maria's ...

— [ edit | raw ] migrated from node/501
http://www.gui.uva.es/ Pinchad en software libre: 1. Mirar URL 2. Mirar Frases 3. Mirar Gráficos Amén

Imprimir en una 'winprinter' compartida por un MS Windows

— [ edit | raw ] migrated from node/500
Escenario: trabajas en una oficina y el jefe ha comprado una impresora sin avisar. Y además es una winprinter. Veremos cómo podemos imprimir en una winprinter compartida por red.

El desafío

Al igual que los infames winmodems, también existen winprinters que sólo funcionan en MS Windows, en mi caso me toca sufrir una OKI C3100. Esta impresora en particular salió al mercado en el 2004, y no tiene pinta de que sea soportada en un futuro lejano.

Al jefe, está claro, no le hace ni p$%& gracia que no funcione la dichosa impresora y como siempre recurre a la solución fácil: o imprimen todo quisque o los puestos con GNU/Linux desaparecen.

Qué podemos hacer

El problema que tenemos es que no podemos imprimir directamente en la impresora; pues pongamos algo entre medias que nos comunique con la impresora. El problema de los servidores de impresión tradicionales es que siguen necesitando los drivers para imprimir, mi gozo en un pozo. Gracias a $DEITY un alma caricativa me puso en la buena dirección.

La solución

La cuestión entonces es poner algo que recoja los trabajos y se los encole a la winprinter. Lo malo, sigo necesitando un equipo con MS Windows, pero por lo menos no desaparecerán los puestos con GNU/Linux. Buscando por Google encontré un artículo que trataba sobre cómo crear una impresora Postscript virtual en Windows usando Ghostscript, que es justo lo que estaba buscando. El artículo explica paso a paso (eso sí, en perfecto inglés) como instalar y configurar Ghostscript y RedMon para crear una impresora virtual, de tal forma que se siga este proceso:
Postscript -› Impresora Postscript Virtual -› RedMon -› Ghostscript -› Dispositivo GS mswinpr2 -› Impresora Física

Problemas

La solución no es perfecta, tiene varios problemas:
  • El proceso de traducción a Postscript es bastante pesado.
  • En la cola de la impresora real, los trabajos encolados por la impresora virtual son enormes, mínimo 100 MB cada uno.
  • Perdemos el control sobre la cola de la impresora real.

Puertos en el PIC16F690

— [ edit | raw ] migrated from node/497

A ver, después de tres días de peleas con el PIC16F690 ¡¡¡por fin he conseguido un echo del puerto serie!!!. :-P :-P :-P Los puertos de éste micro son como los de cualquier otro PIC, excepto PORTB, que por lo visto se utiliza también como entrada analógica para los (creo que) cuatro canales analógicos de entrada que tiene el micro.

Oscilador interno del PIC16F690

— [ edit | raw ] migrated from node/498
Bueno, ya metidos con el 16F690, voy a explicar como hacer para poder utilizar el oscilador interno del chip (ahorrando componentes, pines del micro y algo de consumo, aunque de ésto último no estoy del todo seguro) ;)

Apache2 como frontal "seguro" para Zope/Plone

— [ edit | raw ] migrated from node/494

Cómo configurar Apache para mejorar la seguridad de un sitio Zope, utilizando mod_proxy y VirtualHostMonster.

GP2X, primer contacto

— [ edit | raw ] migrated from node/496
Esta receta describe la consola portátil GP2X y da una primera idea de sus posibilidades dentro del mundo del software libre

Introducción

Antes de empezar con la receta diré que esto no es en realidad una receta... :-P es algo así como un review. El soft libre tiene un mercado que avanza muy rápidamente y prueba de ello está en que cada vez más dispositivos vienen con un Linux integrado y se basa en soft libre. Hace tiempo, la empresa koreana Game Park Holdings sacó una consola portátil llamada GP32. Esa consola vio muy pocos juegos comerciales porque la gente se dedicó a desarrollar homebrew para dicha consola. Viendo el "éxito" especial que tuvo esta consola, meses después se decidió a sacar una nueva consola, la GP2X, mucho más potente que su antecesora (de hecho se compara con la Nintendo DS) y directamente para que la gente desarrolle para ella. Se ha denominado "la portátil opensource" (aunque en realidad GamePark Holdings apuesta muy poco por el GPL y el soft en general... como veremos a continuación...). Sea como fuere aquí pretendo contar un poco mis primeras experiencias con esta consolilla para dejar esta receta como "introducción" a una serie de recetas que, espero, sean más "divertidas" que ésta...

El hardware

Bueno, básicamente disponemos de un sistema basado en dos procesadores ARM, 32M de RAM y otros 32M de flash interna, socket para tarjetas SD, puerto USB 2.0, pantalla LCD de 320x240, joystick digital, 10 botones y unos cuantos puertos interesantes como son el de TV-OUT o el JTAG. El main core (llamado MagicEyes o MP2520F) tiene como núcleo dos CPU's que van a 200MHz (dopables):
  • ARM920T (Rev 1)
  • ARM940T (Rev 2)
El que ejecuta la chicha, (o host) es el ARM920, el otro se emplea para el tratamiento de gráficos 2D y "cierta" aceleración 3D. Antes de que alguno pregunte porqué no se usan los dos en modo SMP hay que decir que el ARM940 viene sin MMU y tiene algunas instrucciones especiales para el acceso a la memoria, por eso no se ha portado un núcleo SMP para este micro. El controlador de USB es un NET2272 con soporte para Microsoft’s Media Transfer Protocol (MTP), es decir: DRM (nos han chuleao!!). Para la salida de TV dispone de un CX25784, que genera señales PAL y NTSC de hasta 720x480. Hay que decir que la consola no tiene un conector para enchufar directamente la tele, hay que comprarse un cable... En cuanto al audio... un chip AC'97 llamado WM9711L bastante chulo.

El software

Pues un Linux de toda la vida, concretamente un 2.4.25 compilado con gcc 2.95.3, es el núcleo que ejecuta la maquinita. Viene con una mínima cantidad de módulos. En el gestor de eventos encontramos a hotplug. En cuanto a librerías, tenemos unas cuantas: libSDL (incluyendo SDL_image, SDL_mixer y SDL_ttf), libjpeg, libncurses (¿para qué?), libogg, libpng, libvorbisdec, a parte de librerías típicas del sistema. Tenemos unas cuantas utilidades GNU como grep, fgrep, egrep, doexec, fdisk, ftp, hostname, ipcalc, netstat, nohup, who, etc... Viene con servidores típicos como telnetd (q miedo!), ftpd, samba, thttpd, etc. Una utilidad interesante que trae es el mplayer de toda la vida, portado y GPL (no tienen más remedio, les obliga la licencia...). Después viene un reproductor de música y un visualizador de imágenes y texto y los... impresentables de GPH no lo tienen liberado (al igual que el menú de la consola)... me parece una cutrez pero bueno.

Cómo funciona

Muy simple, dispone de un cargador del núcleo (tipo lilo o grub) llamado U-BOOT que soporta múltiples plataformas. El cargador arranca el linux y comienza un arranque como el de cualquier otro sistema basado en GNU/Linux, salvo que no hay más que un runlevel y un único usuario. El último comando del script de arranque es el menú de la GP2X (que no es más que un ejecutable como otro cualquiera).

Primeros cacharreos

Lo más básico que podemos hacer: conectarnos por puerto serie y ver "qué hace" la consola. Fácil: utilizad algún programa como minicom (paquete Debian) y configurad el puerto de la siguiente forma:
115200 8N1
Ahora encendéis la consola y (con el último fw, 2.1.1 a fecha de hoy) saldrá:
U-Boot 1.0.0 (Apr 20 2006 - 12:51:09)

U-Boot code: 03E00000 -> 03E49610  BSS: -> 03E82208
IRQ Stack: 03ea3204
FIQ Stack: 03ea4204
DRAM Configuration:
Bank #0: 00100000 63 MB
Flash:  0 kB
NAND:Probing at 0x9c000000
Flash chip found:
         Manufacturer ID: 0xEC, Chip ID: 0x76 (Samsung K9F1208 64Mb)
1 flash chips found. Total nand_chip size: 64 MB
Get Environment from NAND offset 0x70000 ...
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial

NAND read: device 0 offset 0x1a0000, size 0x40000 ...  262144 bytes read: OK

NAND read: device 0 offset 0x80000, size 0xb0000 ...  720896 bytes read: OK
### main_loop: bootcmd="bootm"
Hit any key to stop autoboot:  0
## Booting image at 01000000 ...
   Image Name:   GP2X-F100 2.1.1
   Created:      2006-10-30   8:12:53 UTC
   Image Type:   ARM Linux Kernel Image (gzip compressed)
   Data Size:    618462 Bytes = 604 kB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
   Uncompressing Kernel Image ... OK

Starting kernel ...

MMC/SD Card Detected
MMC/SD Slot initialized
Partition check:
 mmcsda: p1
Register SD: 976MsB
mount...1
mount...2:
Reading data from NAND FLASH without ECC is not recommended
Freeing init memory: 280K
INIT:  version 2.84 booting
\<7\>**\>\>ecc error unfixed on chunk 3268:0
 Started device management daemon v1.3.25 for /dev
\<7\>**\>\>ecc error unfixed on chunk 3844:0
Mount image directory, if not mounted...
You must set heads sectors and cylinders.
You can do this from the extra functions menu.
You must set heads sectors and cylinders.
You can do this from the extra functions menu.
Partition table size is 4096
Loopback device setup...
losetup: ioctl: LOOP_CLR_FD: No such device or address
MSDOS FS: IO charset utf8
MSDOS FS: IO charset utf8
Apply LCD Timing
Using /lib/modules/2.4.25/kernel/drivers/usb/gadget/net2272.o
net2272: Set 2272 bus timing
USB SUSPEND MODE
net2272: PLX NET2272 USB Peripheral Controller
net2272: irq 222, mapped mem c280c000, chip rev 0011
net2272: running in 16-bit, byte normal bus mode
net2272: version: 2006 April 5, v3
net2272: unbind
Si estamos conectados por el puerto serie, podemos usar las siguientes teclas para controlar la consolilla:
I --> Joy UP
J --> Joy LEFT
K --> Joy DOWN
L --> Joy RIGHT
Intro --> Joy CENTER
D --> Vol -
F --> Vol +
Q --> L
E --> R
W --> Y
A --> A
S --> B
Z --> X
C --> Select
V --> Start

Conclusiones

Pues, aunque tiene muchas cosas mejorables (sobre todo en la parte soft), este dispositivo parece muy interesante y puede tenernos muchas horas y horas entretenidos cacharreando con él... hay hasta un X11 para la consola;y si no nos gusta cacharrear hay que decir que tiene muchísimos emuladores portados al sistema y cómo no... el mplayer en el bolsillo ;-).

Enlaces

Página oficial GP2X Wiki GP2X: dónde empezar, datasheets, etc. Comunidad alemana GP2X: todo tipo de descargas

Papanatas del software propietario

— [ edit | raw ] migrated from node/495
Hace unos días en The Inquirer(es) pude leer un par de artículos en los que se planteaban, por un lado que "Windows Vista no es una opción", y por otro lado en respuesta al primer artículo que "Linux no es una opción". Ambos artículos caían en los típicos estereotipos y uno anda ya demasiado leído en estos temas como para dar mayor importancia al asunto.

Servidor TFTP con inetd en Debian

— [ edit | raw ] migrated from node/492

Cómo instalar y configurar servidor y cliente en Debian GNU/Linux y derivados

Hacking serio básico: Introducción a los "shellcodes" (I)

— [ edit | raw ] migrated from node/493

Cómo programar una shell code para utilizar en tus xploits (Parte 1)

Control del puerto paralelo con ppdev

— [ edit | raw ] migrated from node/490

Cómo leer y escribir en un puerto paralelo desde un programa C utilizando el driver ppdev y la llamada al sistema ioctl