miércoles, 25 de julio de 2012

Instalar drivers AMD Graphics en Fedora 17

Nota: AMD ha publicado  una nueva versión de los drivers que corrige todos estos problemas con el kernel. No elimino el post porque se que existen personas que tienen el kernel 3.4 y no quieren o pueden migrar a uno superior.

NOTA: Si tienes el kernel 3.4.x necesitas instalar este patch para poder seguir los pasos. Entra aqui para ver como. Para hacerlo debes seguir la metodologia de instalación por paquetes.  Puesto que el kernel 3.4 ha modificado algunas cosas que no permiten que se compile de forma correcta el driver.Si este es tu caso y no consigues forma de hacerlo en tu kernel 3.4 entonces puedes instalar el driver en tu kernel más viejo (3.3.x) y seguir los pasos indicados aquí abajo.

------------------------------------------------------------------------------------------

Si tu kernel es el 3.3.x solo debes descargarte el driver de la pagina de AMD.

Luego entras con la terminal en tu carpeta de descargas y ejecutas en modo root:

./amd-driver-installer*.run

Se abre una ventana como esta




El resto es puro "yes to all"... reinicias y todo es color de roza :·)

martes, 24 de julio de 2012

Primer contacto con Goocanvasmm

      En estos días he estado buscando entre los paquetes de Debian alguno que me sirva para crear objetos visuales e interactivos con Gtkmm sin tener que partirme los huevos con sus maricones canvas intratables. En fin he conseguido uno me que me ha maravillado: Goocanvasmm. Esta biblioteca nos permite crear figuras geométricas e imágenes responsivas a eventos (mouse, teclado, etc) de una forma muy sencilla.

Instalando goocanvasmm

Para instalarlo entra a synaptic (o en el gestor de paquetes de tu distro) y escribes "goocanvasmm". Instala el paquete de desarrollo (-dev) y la documentaci'on (-doc). En Debian se ve así:


Configurando Eclipse para goocanvasmm

Para hacerlo puedes ingresar en esta entrada.



Primer programa

Vamos a hacer un programa simple que muestre un cuadro azul y responda al clickeo con un mensaje en consola.


#include <gtkmm.h>
#include <goocanvasmm.h>
#include <cairomm/cairomm.h>
#include <iostream>

using namespace Goocanvas;
using namespace Glib;
using namespace std;


// ventana principal
class Simple : public Gtk::Window
{
public:
    Simple(){
        // Asigna un tamaño a la plantilla raiz
        lienzoCuadrado.set_size_request(640, 480);

        // Establece la ubicación de la plantilla en la pantalla
        lienzoCuadrado.set_bounds(0, 0, 800, 800);

        // Retorna el item root de la plantilla
        RefPtr<Item> root = lienzoCuadrado.get_root_item();

        // Crea un cuadrado y lo asigna a lienzo, recuerda que
        // el lienzoCuadrado solo es el contenedor
        RefPtr<Rect> cuadrado = Rect::create(100, 100, 450, 450);

        // Agrega el cuadrado a la plantilla
        root->add_child(cuadrado);

        // Asigna el color interno del cuadrado
        cuadrado->property_fill_color().set_value("blue");

        // Asocia la señal de clickeo del cuadrado con el método
        // cuadrado_clicked() del objeto actual
        cuadrado->signal_button_press_event ().connect (sigc::mem_fun (this,
                &Simple::cuadrado_clicked));
        
        // Agrega el lienzo a la ventana actual
        add(lienzoCuadrado);
        show_all_children();
    }
    
    /** Método que se ejecuta cuando se clickea el cuadrado **/ 
    bool cuadrado_clicked(const RefPtr<Item>&, GdkEventButton*){
        cout << "Has clickeado el cuadrado" << endl ;    
        return true ;
    }    
protected:
    // Lienzo contenedor del cuadrado
    Canvas lienzoCuadrado;
};


int main(int argc, char* argv[]){
  Gtk::Main app(&argc, &argv) ;
  
  // Inicializa goocanvas. Es necesario en todo programa que use esta biblioteca 
  Goocanvas::init("Ejemplo simple goocanvasmm", "1.0", argc, argv) ;
  
  Simple ventana ;
  
  Gtk::Main::run(ventana) ;
}

El resultado es este:




Puedes descargar el fichero del ejemplo desde aquí. En el directorio en el cual se instaló la documentación de goocanvasmm (en mi caso "/usr/share/doc/goocanvasmm/examples") encontraras varios ejemplos. También los puedes descargar de aquí. Otros Links útiles: // Referencia de la biblioteca http://developer.gnome.org/goocanvasmm/1.90/

Configurando Eclipse para Goocanvasmm

Para hacerlo se hacen los mismos pasos que cuando configuramos gtkmm. Solo que en vez de seleccionar, en la lista del pkg-config, la biblioteca gtkmm-2.4 seleccionamos Goocanvasmm.


En caso de que la biblioteca goocanvasmm no aparezca en la lista hay una forma de forzarlo:

Editando uno de los ficheros de metadatos que si aparezcan en el listado y agregarle los metadatos de goocanvasmm.

Según el manual de pkg-config:
"pkg-config retrieves information about packages from  special  metadata files.  These  files  are named after the package, and has a .pc extension."
Estos ficheros .pc se ubican en "/usr/lib/pkgconfig".

Abre goocanvasmm-1.0.pc en modo super usuario.
       sudo gedit /usr/lib/pkgconfig/goocanvasmm-1.0.pc

Luego escoge el fichero relacionado con alguna biblioteca que sí se liste en eclipse.
Yo en mi caso edité el de gtkmm-2.4 y su fichero se llama ¨gtkmm-2.4.pc¨.
      sudo gedit /usr/lib/pkgconfig/gtkmm-2.4.pc

Debes añadir las Libs y las Cflags del fichero de goocanvasmm al de gtkmm.
En mi caso el fichero gtkmm-2.4.pc quedó así:


prefix=/usr
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
datarootdir=${prefix}/share
datadir=${datarootdir}
includedir=${prefix}/include

docdir=${datarootdir}/doc/gtkmm-2.4
doxytagfile=${docdir}/reference/gtkmm-2.4.tag
htmlrefdir=${docdir}/reference/html
htmlrefpub=http://library.gnome.org/devel/gtkmm/unstable/

Name: gtkmm
Description: C++ binding for the GTK+ toolkit
Version: 2.20.3
URL: http://www.gtkmm.org/
Requires: goocanvas giomm-2.4 >= 2.24 pangomm-1.4 >= 2.26 gtk+-2.0 >= 2.20.0 gtk+-unix-print-2.0 atkmm-1.6 gdkmm-2.4
Libs: -L${libdir} -lgtkmm-2.4 -lgoocanvasmm-0.1
Cflags: -I${includedir}/gtkmm-2.4 -I${libdir}/gtkmm-2.4/include -I${includedir}/goocanvasmm-0.1 -I${libdir}/goocanvasmm-0.1/include


Las letras rojas indican las Libs y Cflags agregadas. Puedes descargar el fichero de aquí.

Luego de hacer esto se guardan los cambios, realizas los pasos de configuración de gtkmm y ya puedes compilar tus programas hechos en eclipse utilizando goocanvasmm.


martes, 17 de julio de 2012

Cambiar brillo de pantalla de laptop HP G6 en Debian

Si instalaste Debían en tu laptop hp y os estais quedando ciego porque el brillo de pantalla es muy alto y además no le funciona el wifi, el teclado especial ni casi nada, entonces la solución es simple:

 Instala un kernel más nuevo, puesto que el que trae Debian por defecto (2.6) no tiene soporte para el hardware muy reciente de estas laptops. Para ello puedes elegir dos caminos
  1. Instalar el kernel (3.3.7) actualizado, compilado y empaquetado compilado por mi:
  • Descargalo desde alguno de estos links: Link1 o Link2
  • Descomprimelo en donde quieras.
  • Luego abres la terminal y te metes en la ruta donde están los ficheros .deb que descomprimiste
  • Allí adentro escribes: dpkg -i *.deb
  • Reinicias la maquina y en el grub elijes la nueva entrada con el kernel más nuevo. LISTO
  • NOTA: Si la pantalla está en negro solo debéis presionar la tecla de subir brillo (F3)

      2.  El segundo camino es que USTED mismo compile el kernel.  Pero solo debe tener en cuenta que hay que compilarlo para core2, activar todas las opciones para el soporte de los procesadores sandy bridge y marcar el soporte nativo de la interfaz wifi.

Procedimiento para configurar y compilar kernel (en este caso el 3.3.5).

1) Obtener los fuentes. Descarga desde aquí la versión que quieras.

2) Instalar paquetes para compilar:
#apt-get install make fakeroot libncurses5-dev gcc kernel-package initramfs-tools libc6-dev libqt4-dev

3) Copiar y descomprimir los fuentes del kernel a la carpeta /usr/src 
#cp linux-3.3.5.tar.bz2 /usr/src

// Nos cambiamos por el terminal a la carpeta /usr/src
#cd /usr/src
// Se descomprimen los fuentes  en la carpeta /usr/src
#bzip2 -df linux-3.3.5.tar.bz2
// se genera un archivo llamado  linux-3.3.5.tar
#tar -xf  linux-3.3.5.tar
// se genera una carpeta llamada  linux-3.3.5

4) Configuración de los fuentes (configuración para la laptop): para ello se realiza el siguiente procedimiento
- Nos cambiamos al dir que contiene los fuentes (linux-3.3.5)
- Luego ejecutamos como root el comando :
   #make xconfig
  // Configuración wifi:{
       Ingrese a Edit = > Find
       Escriba en el cuadro de busqueda: "rtl" sin las comillas.
       Active la opción que indique el modelo de su interfaz wifi. La mia es RTL8188CE. Si no te aparece marca todas las opciones
     

 }
// Configuración de video:{
      Escribe core2 y marca la opción.
      Escribe bridge y marca Intel Sandy-Bridge Integrated MC
} 


Se pueden hacer otras configuraciones. Pero con estas bastan.

Luego de configurar los fuentes se genera un archivo de extensión .config en la carpeta donde estan los fuentes.

5) El paso siguiente es compilar los fuentes, lo cual realizaremos ejecutando el siguiente comando:
#fakeroot make-kpkg --initrd kernel-image kernel-headers

6) Luego de que finalize la compilacion(si no hay errores), se generan 2 archivos .deb en el directorio
superior que se llaman:
linux-image-3.3.5-xxxx.deb y linux-headers-3.3.5-xxxx.deb

para instalarlos debe usar el comando dpkg.
#dpkg -i *.deb

9) Finalmente nos queda reiniciar el pc y seleccionar en
el menu del gestor de arranque el nuevo kernel.

Si te sigue sin funcionar entonces que debes incluir más módulos en la etapa de configuración del kernel.

El modelo de mi laptop (donde funciona correctamente) es  Hp Pavilion g6 1c791r

A disfrutar de Debian 8·)


lunes, 16 de julio de 2012

Gtkmm y Eclipse CDT en linux

Aquí mostraré los pasos con los que logré configurar eclipse para poder programar con gtkmm en GNU/Linux = > los windowseros que se jodan ;·)

Antes que nada necesita tener instalado gtkmm y pkg-config. Para ello ve a Synaptic y busca los siguientes paquetes:
  • "libgtkmm-{version}-dev". En mi caso la versión es "2.4"  es decir: "libgtkmm-2.4-dev". Si aparece la versión 3.x el proceso es el mismo. 

  •   pkg-config