Automatic VGA output mode

0 comment
Me acabo de comprar una pantalla LCD de 1600x900. El problema esta cuando llego con mi laptop sin pantalla y lo conecto a otro monitor con otra resolución.
la solucion un xrandr como en el post anterior, pero en un script que se ejecuta luego de iniciar la sesión gráfica de usuario.


default_mode=1600x900

hight_mode=$(xrandr | awk '{print $1}'| grep VGA -C 1 | grep x)
if [ $hight_mode = $default_mode ]
     then
         echo "Greetings. System started" | festival --tts
     else
         echo "Setting VGA mode" | festival --tts
xrandr --output VGA --mode $hight_mode
fi



lo que hace esto es tomar la mayor resolución disponible de la linea VGA  preguntar si es igual a la por defecto que es en mi casa.  si es la misma hacer nada.
si son distintas setiar la meyor disponible.

festival lo uso para que el pc me diga lo que ocurre ya que si falla no tendre pantalla para ver.

Read LPT from python

1 comment

Continio jugando con el LPT, esta vez la idea es lograr una lectura usando python. 

Por razones que varios conoces esto no se puede hacer directamente desde el lenguaje, 

desconozco si existe algún método distinto para hacerlo, pero creo que no.

La idea es crear un wrapper a algunas funciones de la libreria sys/io.h 

específicamente las funciones ioperm, inb y outb. 

para ello se crea un archivo pylpt.i (he nombrado al modulo)


%module pylpt
%{
#include <stdio.h>
#include <sys/io.h>
#include <stdlib.h>
%}

int ioperm (unsigned long int __from, unsigned long int __num, int __turn_on);
unsigned char inb (unsigned short int port);
void outb (unsigned char value, unsigned short int port);


Seguido de un Makefile para poder compilar los módulos usando swig 




all: _pylpt.so

_pylpt.so: pylpt_wrap.o
      gcc -o _pylpt.so -shared pylpt_wrap.o 

pylpt_wrap.o: pylpt_wrap.c
      gcc -fpic -c pylpt_wrap.c -I/usr/include/python2.5/ -I/usr/local/include

pylpt_wrap.c: pylpt.i
      swig -python pylpt.i

clean:
      rm _pylpt.so pylpt_wrap.o pylpt_wrap.c pylpt.py




Y finalmente un programita en python que prueba las funciones, 

solo tengo probada la lectura del puerto. Que es lo que necesito por el momento.



import pylpt

BASE = 0x378
STATUS = BASE+1

def main():
    print 'Entring Program'
    print pylpt.ioperm(BASE,3,1)
    while True:
       print pylpt.inb(STATUS)  
    print BASE
    print 'Exiting Program'
    return


if __name__ == '__main__':
    main()

Dos monitores (dual-head) con xrandr

0 comment

Seguramente muchos han tenido algun tipo de problema cuando conectan su portatil a un data. 

indagando llegue a esta solucion. usar la aplicacion xrandr. 

esta permite encender, apagar la salida VGA, como tambien modificar modos y resoluciones. 

en resumen 

para activar la salida vga 

$ xrandr --output VGA --mode 1280x800

para apagarla

$ xrandr --output VGA --off

Ahora como en muchos casos los datas soportan solo hasta la resolucion de 1024x768, tambien podemos 

activarlo usando distintas resoluciones para la linea LVDS y VGA.

$ xrandr --output LVDS --mode 1280x800 --output VGA --mode 1024x768

como la ultima opcion es la que uso muchas veces, creo un lanzador en el menu. 

que se ve asi 



existe mas informacion de como hacer escritorio extendido en este link 

esto no requiere de reiniciar las X cada vez que conectamos un data en la maquina

 

Ppalma Copyright © 2008 D'Black by Ipiet's Blogger Template