Cómo descargar vídeos de Play Cuatro (o nueva versión de PyDownTV)

He publicado una nueva versión de PyDownTV que ahora permite descargar vídeos de Play Cuatro.

Además la nueva versión soporta:

- Soporte para vídeos Comunes de Cuatro (no Play Cuatro)

- Soporte para Extremadura Televisión

- Soporte para EITB

- Soporte para TV Autonómica de Murcia (A la carta)

- Soporte para Giralda TV

- Soporte para Tele Vigo

- Soporte para Intereconomía

- Soporte para Canal Rías Baixas

- Pequeños bugs arreglados

VÍDEO EXPLICACIÓN: DESCARGAR VÍDEOS DE PLAY CUATRO


Enlace | Más Info

Enlace | Página del proyecto en Google Code

Enlace | Código que procesa la descarga desde Play Cuatro

Scripts para Mac y GNU/Linux generador de claves JAZZTEL_XXXX y WLAN_XXXX

El primero se lanza:

$ generar_claves_jazztel_wlan_xxxx <EDDIS> <BSSID>

El segundo captura el BSSID solo y se lanza:

$ generar_claves_jazztel_wlan_xxxx_sin_bssid <ESSID>

Dejo el código de los dos:

* generar_claves_jazztel_wlan_xxxx:

[code lang="bash"]
#!/bin/bash

## Generador de claves JAZZTEL_XXXX y WLAN_XXXX
## aabilio@gmail.com
## License: http://en.wikipedia.org/wiki/WTFPL

function sumar_error ()
{
echo $1
let ERRNO=$ERRNO+1
}

function comprobar_errores()
{
if [ $ERRNO -gt 0 ]
then
echo
echo "Usage: $0 <ESSID> <BSSID>"
echo " Example: $0 WLAN_XXXX XX:XX:XX:XX:XX:XX"
exit 1
fi
}

function sacar_claves ()
{
#Pasar a mayúsculas el wlan_xxxx y coger solo los "xxxx"
ESSId=$(echo -n "$1" | tr 'a-z' 'A-Z' | cut -d_ -f2)
#Pasar a mayúsculas el XX:XX:XX:XX:XX y quitar los dos puntos ":"
BSSId=$(echo -n "$2" | tr 'a-z' 'A-Z' | tr -d :)
#Cogemos del BSSId solo los 8 primeros caracteres:
BSSId8=$(echo -n "$BSSId" | cut -c-8)
#Hacemos la suma md5 de bcgbghgg$BSSId8$ESSId$BSSId (20 primeros caracteres):
#Cambiar "md5" por "md5sum" para GNU/Linux
CLAVE=$(echo -n bcgbghgg$BSSId8$ESSId$BSSId | md5 | cut -c-20)
}

function mostrar_claves ()
{
echo "ESSID: "$1
echo "BSSID: "$2
echo "CLAVE: "$3
}

################################ MAIN ##################################
ERRNO=0
#Comprobamos errores de lanzamiento:
# - Argumentos distinto de dos:
if [ $# -ne 2 ]
then
sumar_error "ERROR EN EL NÚMERO DE PARÁMETROS"
fi

compEssid=0
cEssid=$(echo $1 | tr 'a-z' 'A-Z')
cBssid=$(echo $2 | tr 'a-z' 'A-Z')
#Comprobar primer parámetro en escritura y largura:
echo $1 | tr 'a-z' 'A-Z' | grep ^WLAN_[0-9A-F][0-9A-F][0-9A-F][0-9A-F]$ > /dev/null
if [ $? -ne 0 ]; then let compEssid=$compEssid+1; fi
echo $1 | tr 'a-z' 'A-Z' | grep ^JAZZTEL_[0-9A-F][0-9A-F][0-9A-F][0-9A-F]$ > /dev/null
if [ $? -ne 0 ]; then let compEssid=$compEssid+1; fi
if [ $compEssid -eq 2 ]; then sumar_error "ESSID INVÁLIDO"; fi

#Comprobar segundo parámetro en escritura y largura:
echo $2 | tr 'a-z' 'A-Z' | grep ^[0-9A-F][0-9A-F]:[0-9A-F][0-9A-F]:[0-9A-F][0-9A-F]:[0-9A-F][0-9A-F]:[0-9A-F][0-9A-F]:[0-9A-F][0-9A-F]$ > /dev/null
if [ $? -ne 0 ]
then
sumar_error "BSSID INVÁLIDO"
fi

comprobar_errores
sacar_claves $1 $2
mostrar_claves $cEssid $cBssid $CLAVE
[/code]

* generar_claves_jazztel_wlan_xxxx_sin_bssid:

[code lang="bash"]
#!/bin/bash

## Generador de claves JAZZTEL_XXXX y WLAN_XXXX
## aabilio@gmail.com
## License: http://en.wikipedia.org/wiki/WTFPL

function sumar_error ()
{
echo $1
let ERRNO=$ERRNO+1
}

function comprobar_errores()
{
if [ $ERRNO -gt 0 ]
then
echo
echo "Usage: $0 <ESSID>"
echo " Example: $0 WLAN_XXXX"
exit 1
fi
}

function sacar_claves ()
{
#Pasar a mayúsculas el wlan_xxxx y coger solo los "xxxx"
ESSId=$(echo -n "$1" | tr 'a-z' 'A-Z' | cut -d_ -f2)
#Pasar a mayúsculas el XX:XX:XX:XX:XX y quitar los dos puntos ":"
BSSId=$(echo -n "$2" | tr 'a-z' 'A-Z' | tr -d :)
#Cogemos del BSSId solo los 8 primeros caracteres:
BSSId8=$(echo -n "$BSSId" | cut -c-8)
#Hacemos la suma md5 de bcgbghgg$BSSId8$ESSId$BSSId (20 primeros caracteres):
CLAVE=$(echo -n bcgbghgg$BSSId8$ESSId$BSSId | md5 | cut -c-20)
}

function mostrar_claves ()
{
echo "ESSID: "$1
echo "BSSID: "$2
echo "CLAVE: "$3
}

function obtener_bssid ()
{
echo "BUSCANDO BSSID"
essidToUpper=$(echo $1 | tr 'a-z' 'A-Z');
bssidd=$(/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -s | grep `echo $essidToUpper`)
if [ $? -ne 0 ]
then
echo "NO SE ENCUENTRA EL BSSID para "$essidToUpper
let ERRNO=$ERRNO+1
comprobar_errores
else
echo "BSSID encontrado"
bssid=$(echo $bssidd | awk '{print $2}')
fi
}

################################ MAIN ##################################
ERRNO=0
#Comprobamos errores de lanzamiento:
# - Argumentos distinto de dos:
if [ $# -ne 1 ]
then
sumar_error "ERROR EN EL NÚMERO DE PARÁMETROS"
fi

compEssid=0
cEssid=$(echo $1 | tr 'a-z' 'A-Z')
#Comprobar primer parámetro en escritura y largura:
echo $1 | tr 'a-z' 'A-Z' | grep ^WLAN_[0-9A-F][0-9A-F][0-9A-F][0-9A-F]$ > /dev/null
if [ $? -ne 0 ]; then let compEssid=$compEssid+1; fi
echo $1 | tr 'a-z' 'A-Z' | grep ^JAZZTEL_[0-9A-F][0-9A-F][0-9A-F][0-9A-F]$ > /dev/null
if [ $? -ne 0 ]; then let compEssid=$compEssid+1; fi
if [ $compEssid -eq 2 ]; then sumar_error "ESSID INVÁLIDO"; fi

#Obtenemos el bssid con airport
obtener_bssid $1
cBssid=$(echo $bssid | tr 'a-z' 'A-Z')
#Comprobar segundo parámetro en escritura y largura:
echo $bssid | tr 'a-z' 'A-Z' | grep ^[0-9A-F][0-9A-F]:[0-9A-F][0-9A-F]:[0-9A-F][0-9A-F]:[0-9A-F][0-9A-F]:[0-9A-F][0-9A-F]:[0-9A-F][0-9A-F]$ > /dev/null
if [ $? -ne 0 ]
then
sumar_error "BSSID INVÁLIDO"
fi

comprobar_errores
sacar_claves $1 $bssid
mostrar_claves $cEssid $cBssid $CLAVE
[/code]

DESCARGA:

Enlace | generar_claves_jazztel_wlan_xxxx – Para Mac OS X y GNU/Linux (cambiando “md5″ por “md5sum” en la línea 33 del primer script)

Enlace | generar_claves_jazztel_wlan_xxxx_sin_bssid – Sólo para Mac OS X

Este último capta automáticamente el BSSID de la red que se le pasa como parámetro (ESSID) utilizando el comando para terminal de airport. Por ello es necesario que se este en el radio de acción de la red de la que se desea conocer la clave. Si por el contrario se quiere usar el primero, como segundo parámetro se le tendrá que pasar manualmente la red, que se puede obtener fácilmente con el comando airport -s (que está escondido en la ruta: /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/) o utilizando apps de terceros como KisMAC. En GNU/Linux también se puede obtener fácilmente el BSSID de una red con el comando iwconfig con el flag de buscar scan (por ejemplo: $ sudo iwconfig wlan0 scan)

Descargar vídeos de la nueva Sexta TV (beta)

NOTA: Ver http://linfox.es/2011/07/20/como-bajar-videos-de-la-sexta/

Siguiendo con las descargas de vídeos de las webs de las cadenas de televisión, después de el script para descargar de Antena3.com y la explicación de cómo hacerlo a mano, hoy voy a explicar como bajo yo los vídeos de La Sexta (Sexta TV). Antes utilizaba la extensión para Firefox, DownloadHelper, para descargar directamente los vídeos, pero ahora esto solo, simplemente no funciona.  Hay que realizar los siguiente pasos (perdón por la calidad del sonido):


El programa “rtmpdump” lo podemos descargar para GNU/Linux con el siguiente comando:

svn co svn://svn.mplayerhq.hu/rtmpdump/trunk rtmpdump

Tendríamos que entrar en el directorio que se acaba de crear, compilarlo e instalarlo con:

$ make

# make install

Para utilizarlo;

$ rtmpdump -r “rtmp;//enlace” -o salida

Este programa también tiene su versión para Windows que podéis descargar desde aquí: http://rtmpdump.mplayerhq.hu/download/rtmpdump-2.2e-windows.zip (incluso hay un versión para Android).

No sé como funciona en Windows ya que no lo he probado, pero supongo que funcionará en línea de comandos de la misma manera.

La extensión para Firefox DownloadHelper la podéis instalar desde aquí: https://addons.mozilla.org/es-ES/firefox/addon/3006/

La parte para descargar mediante la primera opción no rtmp la vi en: http://blog.tvalacarta.info/2010/03/04/como-descargar-videos-de-misexta-tv-la-sexta/

Compilar Google ChromeOS en GNU/Linux

No voy a hablar de lo que el Google ChromeOS ya que supongo que a estas alturas todo el mundo estará informado.
En la Web, existen imágenes preparadas para ejecutarse en VMWare o VirtualBox, incluso imágenes ISO, pero aquí se explicará como compilar el código fuente en tú máquina para crearte tu mismo esas imágenes del sistema.

1.- Instalar las Dependencias:

Google aconseja que se utilice:

  • Ubuntu (Hardy 8.04 o siguientes, recomendada Karmic 9.10)
  • Una cuenta con acceso a root  (necesaria para correr chroot y modificar la tabla de montaje)
  • e instalar las dependencias, las cuales son:
  • Python >= 2.4
  • Perl >= 5.x
  • gcc/g++ >= 4.2
  • g++-multilib >=4.2
  • bison >= 2.3
  • flex >= 2.5.34
  • gperf >= 3.0.4
  • pkg-config >= 0.20
  • libnss3-dev >= 3.12
  • libasound2-dev
  • libgconf2-dev
  • libglib2.0-dev
  • libgtk2.0-dev
  • libnspr4-0d >= 4.7.1+1.9-0ubuntu0.8.04.5
  • libnspr4-dev >= 4.7.1+1.9-0ubuntu0.8.04.5
  • msttcorefonts (Fuentes Microsoft)
  • freetype-dev
  • libcairo2-dev
  • libdbus-1-dev

Y opcionales (usadas para pruebas de diseño):

  • wdiff
  • lighttpd
  • php5-cgi
  • sun-java6-fonts (para Lucida)

Las cuales si estás usando Debian o Ubuntu las puedes instalar mediante:

$ sudo apt-get install subversion pkg-config python perl g++ g++-multilib \
bison flex gperf libnss3-dev libgtk2.0-dev libnspr4-0d libasound2-dev \
libnspr4-dev msttcorefonts libgconf2-dev libcairo2-dev libdbus-1-dev

Y las dependencias opcionales:

$ sudo apt-get install wdiff lighttpd php5-cgi sun-java6-fonts

Para otras distribuciones mirar el final de esta página.

Es importante saber que necesitas tener bastante espacio en disco, ya que el código y el sistema que crea ocupa bastante espacio, en google hablan de 10 GiB. Tambien se debe considerar que se necesitará una distribución de 64 Bits por las librerías que hacen falta, si bien puedes compilar en un sistema de 64 bits ChromeOS sin problemas para 32 bits, puede que tengas problemas de compilación o instalación por la ausencia de librerías de 32 Bits (muchas distribuciones ya no disponen de estas).

2.- Obtener el código fuente:

Existen dos maneras de obtener el código, descargándolo directamente desde la web (lo puedes descargar desde aquí) o puedes obtenerlo usando Git. No sé si es por que en el tarball que me baje de la web le faltaban algunos archivos, el caso es que me dio muchos errores de compilación. Por eso os aconsejo que utilicéis Git:

Primero hay que bajarse los “depot_tools”,  para ellos se utiliza svn (si no lo tienes: # aptitude install subversion):

$ svn co http://src.chromium.org/svn/trunk/tools/depot_tools depot_tools

Lo que te bajas son ejecutables que tienes que añadir al PATH:

$ export PATH=`pwd`/depot_tools:”$PATH”

Evidentemente la línea anterior está diseñada para que funcione tal cual acabas de hacer lo de línea anterior. Deberías incluso editar tu “.bashrc” para añadir al PATH ese directorio permanentemente. OJO: Si no sabes que estás haciendo, simplemente ejecuta las líneas tal cual, la próxima vez que reinicies el PATH será el de siempre, sin este nuevo directorio, pero podrás trabajar ahora, y no correrá peligro de que destroces nada.

Una vez obtenido los depot_tools, instalas Git (si no lo tenías instalado):

$ sudo apt-get install git-core

Creas una carpeta para guardar el código, entras en ella, y te bajas el mismo:

$ mkdir chromiunos

$ cd chromiunos

$ gclient config http://src.chromium.org/git/chromiumos.git

$ gclient sync

$ cd

Y si te quieres y a tomar un café, esto puede tardar bastante, aunque desde google digan que tardará entre unos 10-20 minutos.

3.- Compilar el código fuente:

  • Lo primero y opcional es crear el siguiente enlace simbólico, si estás siguiendo los pasos tal cual, sin tener casi ni idea, mejor que lo hagas:

$ ln -s /usr/local/chromiumos/chromiumos.git ~/chromiumos

Evidentemente tienes que cambiar el /usr/local/chromiumos/ por el lugar donde tengas el chromiumos.git (donde hayas hecho el git), si has seguido el manual paso a paso (y la primera vez que abriste la terminal estabas en tu directorio HOME), haz:

$ ln -s ~/chromiumos/chromiumos.git ~/chromiumos

  • Lo segundo es hacer un repositorio local (puedes utilizar un mirror en internet, pero si de esta manera tarda, más lo hará si usas un mirror). Así que nos vamos al directorio de scripts:

$ cd ~/chromiumos/src/scripts

$ ./make_local_repo.sh

Esto creará un repositorio local en ~/chromiumos/repo

Esto tarda una barbaridad, el que avisa no es traidor.

  • Ahora tenemos que crear el entorno de compilación:

$ ./make_chroot.sh

Compilemos ChromiunOS:

Primero tenemos que crear el siguiente directorio:

$ mkdir -p ~/chromiumos/src/build/x86/local_assets

$ cd ~/chromiumos/src/build/x86/local_assets

Y descargar el siguiente ZIP (que NO tenemos que descomprimir):

$ wget “http://build.chromium.org/buildbot/archives/chromium-chromiumos-r32516/chrome-linux.zip”

$ cd ~/chromiumos/src/scripts

Antes hicimos una jaula con “make_chroot”, ahora tendremos que entrar en ella para compilar con:

$ ./enter_chroot.sh

Podemos crear una contraseña para usuarios compartido con:

$ ./set_shared_user_password.sh (preguntará la contraseña para introducir)

Y nada, solo queda poner a construir todo, pero antes vamos a corregir un error en uno de los archivos, concretamente vamos a:

$ cd ~/chromiumos/src/platform/chrome/

y editamos el fichero:  copy_chrome_zip.sh (con tu editor favorito):

$ nano copy_chrome_zip.sh

Buscamos la línea que dice:

BASE_FROM=”http://chrome-web/buildbot/snapshots/chromium-rel-linux-chromiumos”

y la cambiamos por:

BASE_FROM=”http://build.chromium.org/buildbot/snapshots/chromium-rel-linux-chromiumos/”

(aunque puede que en la versión que te descargaste ya esté arreglado el problema).

NOTA para aquellos que lleguen aquí por el error, si el error era del tipo:

Checking for latest build of Chrome
Downloading http://chrome-web/buildbot/snapshots/chromium-rel-linux-chromiumos/LATEST
–2009-11-20 08:10:42–  http://chrome-web/buildbot/snapshots/chromium-rel-linux-chromiumos/LATEST
Resolving chrome-web… failed: Name or service not known.
wget: unable to resolve host address `chrome-web’
make: *** [build-stamp] Error 1

dpkg-buildpackage: failure: debian/rules build gave error exit status 2

Si! se soluciona cambiando esa línea en ese fichero ;)

Ale! todo preparado, a construir:

$ cd ~/chromiumos/src/scripts

$ ./build_platform_packages.sh

$ ./build_kernel.sh

Este es otro aviso de estos de que lo que estás haciendo ahora mismo, tarda bastante.

  • Y por último, creamos la imagen (por fin):

$ ./build_image.sh

Una vez tenemos la imagen podemos hacer varias cosas con ella. Primeros salimos de la jaula escribiendo en la terminal “exit”.

1.- Copiar la imagen a una memoria USB:

$ ./image_to_usb.sh –from=~/chromiumos/src/build/images/SUBDIR –to=/dev/USBKEYDEV

- Donde SBUDIR es el directorio creado por ./build_image.sh

- y USBKEYDEV es el punto de montaje de la memoria (normalmente /dev/sdb – OJO! NO poner la partición: sdb1, sdb2, …, sdbn)

2.- Copiar la imagen al Disco Duro:

Inicia el PC desde el USB que acabas de crear y presiona Ctrl+Alt+T para abrir una terminal, donde ejecutas:
$ /usr/bin/chromeos-install
En este paso te preguntará la contraseña que introdujiste en un paso anterior.
Desaconsejo esto TOTALMENTE para la gente que no sepa exactamente que está haciendo.

3.- Convertir la imagen para VMWare o VirtualBox:

Necesitas tener instalado qemu:

$ sudo aptitude install qemu

Para crear la imagen:

./image_to_vmware.sh –from=~/chromiumos/src/build/images/SUBDIR \
–to=~/chromiumos/src/build/images/SUBDIR/ide.vmdk

- SUBDIR es el directorio creado por ./build_image.sh

NOTA: La imagen de VMWare puede sufrir alguna limitación, según google no tendrás acceso a una terminal virtual, tendrás una lenta respuesta del teclado…

– — –

MÁS NOTAS para navegantes, si quieres deshacerte del chroot (del cual ya saliste hace unos pasos), no le hagas un “rm -rf” sobre el directorio “chroot” lo correcto es que ejecutes (desde el directorio de scripts):

$ ./make_chroot.sh –delete

4.- Abrir la imagen con VirtualBox:

Abrimos VirtualBox, creamos una nueva máquina, le damos a siguiente, le pones el nombre que quieres y en “Tipo de sistema operativo” eliges GNU/Linux. En “Versión” yo puse “Ubuntu 64 Bits” ya que ChromiumOS está basado en este. Siguiente.

Le dais el tamaño de memoria base que queráis (no necesita mucho), y siguiente.

En disco duro le dais a utilizar uno existente, y le dais a la carpeta que aparece a la derecha del cuadro de inserción. En las pestañas de arriba le dais “Añadir” y buscáis la imagen que acabáis de crear, llamada “ide.vmdk” que está en el directorio “~/chromiumos/src/build/images/SUBDIR” (SUBDIR es el directorio creado por ./build_image.sh).

Seleccionáis la imagen que acabáis de añadir y le dais a “Seleccionar” y Siguiente. Finalizar.

Y PUNTO! Todo preparado para arrancar la imagen y probar el nuevo (y aun muy simple Google ChromeOS).

Mover instalación de Debian a otra partición

Ayer decidí probar la nueva versión de Ubuntu. Y para ello pensé en mover mi instalación de Debian a otra con más espacio (ya que se me estaba quedando corta) e instalar en esa Ubuntu. Para ello realicé una serie de pasos que se me ocurrienron y que voy a compartir por si alguien quiere hacer algo similar y le puede servir de ayuda.

Lo primero que voy a hacer es contar como tenia mi disco duro antes para que sirva de referencia:

Un disco duro de mas o menos 200 GB en el cual tenía cinco particiones: dos primarias que se repartían mas de 100GB y tres lógicas.

sda1: 68GB

sda3: 83GB

sda2:

sda5: 14GB

sda6: 4GB

sda7: 14GB

El objetivo es:

1.- Mover Debian, que esta en la partición sda7, a sda1.

2.- Instalar Ubuntu 8.04 en sda7.

3.- Dejar lo demás como está (sda3, Partición de datos; sda5, Mandriva; y Swap)

Para empezar a mover los archivos necesito o bien iniciar sesión mediante un LiveCD o en una partición que no entre en juego con lo que quiero hacer (decidí iniciar desde un LiveCD).

Una ver cargado, lo primero para pasar la instalación de Debian a sda1 es darle formato a sda1 (ext3). Para esta labor por ejemplo puedo iniciar Gparted.

# gparted

Le doy con el botón derecho a /dev/sda1 y selecciono borrar, después le doy a formatear como y se elige de entre las opciones ext3. Una vez hecho esto se le da a aplicar.

Esto todo también se puede hacer desde una terminal:

# mkfs.ext3 /dev/sda1

Una vez retocado la partición destino procedemos a copiar los archivos. Para ello utilizaremos el simple comando cp -ax

-a: para que copie de la forma archivo, y recursivo.

-x: para que copie solo en función del sistema de archivos actual (para no entrar en bucles con las particiones montadas)

Pero para copiar datos de una partición a otra desde el LiveCD estas tienen que estar montadas en el sistema de archivos del mismo, así creamos los directorios pertinentes:

$ mkdir /media/new && mkdir /media/old

Y montamos las particiones del disco en las mismas:

# mount /dev/sda1 /media/new && mount /dev/sda7 /media/old

(lógicamente old hace referencia a donde está Debian ahora y new a donde lo vamos a copiar)

Ahora si que ya podemos proceder a la copia de toda la partición:

# cp -ax /media/old/* /media/new

Me fui a tomar unos cuantos colacaos y después de un buen rato todos los datos estaban pasados…

Pues nada, a la segunda parte: Instalar Ubuntu.

# reboot

Metemos el CD de Ubuntu y lo instalamos (para el que no sepa intalar Ubuntu, que por otra parte si estás leyendo esto no creo que tengas ese problema, hay miles de tutos de cómo instalarlo por la web)

Lo instalé en /dev/sd7 con la ventaja de que ya me detectó otros Sistemas Operativos y me creo el nuevo GRUB.

Aunque aun así hay que hacer la modificación del GRUB incluyendo la nueva partición en la que está instalado (en el nuevo GRUB que generó Ubuntu):

# gedit /boot/grub/menu.lst

Y cambiamos en donde pone root=/dev/sda7 por root=/dev/sda1

Yo no he tenido que hacer más cambios debido a que he instalado Ubuntu, pero si lo que quieres es solo mover la instalación tendrías que retocar bastante el GRUB o volver a generarlo (sobre esto también hay miles de HOWTOs en la web).

Por último, si quieres que te monte automáticamente la nueva partición de Ubuntu en Debian, solo hay que modificar el fstab:

# gedit /etc/fstab

Yo personalmente he añadido esta línea:

/dev/sda7 /media/ubuntu ext3 defaults 0 2

Claro está que tienes que estar creado el directorio Ubuntu dentro de /media:

# mkdir /media/ubuntu

Como se puede ver, mover toda una partición a otra (toda una instalación de un SO) tampoco es tan traumático ni complicado, solo hay que poner un ojo a lo que se hace y tener un poco de paciencia mientras se copian todos los datos.

Instalar Looking Glass desde Debian GNU/Linux

Si quieres probar el proyecto de Looking Glass y utilizas Debian (o derivados) aquí explicaré la forma de instalarlo.

Para Debian existen paquetes para instalarlo pero antes debemos añadir los repositorios correspondientes, así que con vuestro editor favorito editáis el /etc/apt/sources.list

Por ejemplo:

$ su

# gedit /etc/apt/sources.list

Y añadimos las siguientes líneas (cambiar el testing por stable o unstable según vuestra versión):

# Repositorio para Looking Glass
deb http://javadesktop.org/lg3d/debian testing contrib

Después actualizamos:

# apt-get update

E instalamos:

# apt-get install lg3d-core

Nos saldrán por pantalla las correspondientes licencias de los paquetes que estamos instalando y solo le tenemos que dar a aceptar para que continúe el proceso.

Ahora es cuando seguramente tengas problemas, puede que te de un problema con un contenido parecido a este (si no el mismo):

Setting up lg3d-core (1.0.0) …
/usr/share/lg3d/bin/postinstall: line 10: /bin/arch: No such file or directory
/usr/share/lg3d/bin/../bin/add-lg-to-gdm: line 28: /bin/arch: No such file or directory
Success. LG has been added as a gdm session.
/usr/share/lg3d/bin/postinstall: line 43: cd: /usr/share/lg3d/bin/../lib/linux-/lg3d-x11/programs/Xserver: No such file or directory
chown: cannot access `Xorg’: No such file or directory
chgrp: cannot access `Xorg’: No such file or directory
chmod: cannot access `Xorg’: No such file or directory
dpkg: error processing lg3d-core (–configure):
subprocess post-installation script returned error exit status 1
Errors were encountered while processing:
lg3d-core
E: Sub-process /usr/bin/dpkg returned an error code (1)

Pues esto es debido a que no encuentra en /bin el ejecutable arch, que es llamado desde el archivo postinstall que se lanza después de instalar el paquete lg3d-core.

Para arreglar esto tenemos dos opciones:

Primera:

Crear en /bin un archivo llamado arch con el siguiente contenido:

#!/bin/bash

uname -m

Y después dale permisos de ejecución:

# chmod +x /bin/arch

Todo esto lo puedes hacer con este comando:

# echo ‘#!/bin/bash’ > /bin/arch && echo ‘uname -m’ >> /bin/arch && chmod +x /bin/arch

Después vuelve a lanzar el archivo postinstall:

# /usr/share/lg3d/bin/postinstall

El problema también incluía un error al dar permisos a unos archivos que lo solucionamos a mano. Navegamos al directorio de el archivo en cuestión:

# cd /usr/share/lg3d/lib/linux-i686/lg3d-x11/programs/Xserver/

Y ejecutamos:

# chown root Xorg && chgrp root Xorg && chmod 4711 Xorg

Con esto ya estaría solucionado.

Segunda forma:

En vez de crear el archivo, lo que podemos es añadir un pedazo de código al archivo postintall. Para ello vamos al directorio que lo contiene:

# cd /usr/share/lg3d/bin/

Y abrimos el archivo:

# gedit postinstall

Lo que tendríamos que hacer es asociar la llamada arch a el comando ‘uname -m’. Podríamos simplemente crear una variable con el nombre arch y darle el valor `uname -m` justo después de la línea 10, pero para hacerlo mejor utilizaremos un if. Para ellos añadimos justo debajo de la línea ARCH=`/bin/arch` (la 10) lo siguiente:

if [ "$ARCH" == "" ]; then
ARCH=`uname -m`
fi

Después guardamos y ejecutamos el postintall:

# ./postintall

EDITADO:

Como podemos leer aquí en un comentario de thomas864, también deberíamos editar el archivo setup de la misma ruta, para ello:

# gedit setup

Editamos debajo de la línea 68 cuyo contenido es: export ARCH=`/bin/arch` poniendo lo mismo que antes:

if [ "$ARCH" == "" ]; then
ARCH=`uname -m`
fi

Después solo nos queda como en el paso primero darle los permisos aquellos que no se habían dado debido a que no encontraba el fichero en la ruta, navegando primero a la ruta que contiene el fichero:

# cd /usr/share/lg3d/lib/linux-i686/lg3d-x11/programs/Xserver/

# chown root Xorg && chgrp root Xorg && chmod 4711 Xorg

Y con esto ya estaría todo, podemos reiniciar nuestro gdm y en la pantalla de login escoger la sesión que se creo de Looking Glass y entrar en esta sin ningún problema y “disfrutar” de este proyecto, aunque para mi es bastante pobre.

Os dejo una captura de pantalla:

Bluetooth integrado de Toshiba Satellite U300 – 13H en GNU/Linux

Si tienes un Toshiba Satellite U300 – 13H seguramente sepas que viene con bluetooth integrado, que bajo Vista (el OS con el que te venden este portátil funciona perfectamente, supongo por que no lo he probado) pero que GNU/Linux ni lo huele.

Básicamente sabe que está ahí presente pero no es capaz de iniciarlo.

Para muchos, este problema se solucionaba con instalar los Toshiba Utils,

En Debian: # apt-get install toshutils

y luego iniciaba el bluetooth ejecutando un programa que se llama dmabt (que lo puedes encontrar aquí, al final de la página) y todo listo. El problema es que para el U300 -13H no vale esta solución por que dispone de una BIOS diferente.

Para ello necesitamos utilizar el proyecto omnibook. Pero hay que reconocer que con este proyecto yo logré que funcionara el bluetooth pero la gente del proyecto avisa de los portátiles compatibles y este no aparece en la lista, y ellos mismos se lavan las manos diciendo que lo usemos para estos casos bajo nuestra responsabilidad y no garantizan éxito alguno e incluso avisa de un posible mal funcionamiento del ordenador si utilizamos su código.

Bueno vamos al tema. Como indica la entrada primero voy a explicar cómo hacer funcionar el BT en un U300 – 13H, sin embargo después indicaré como puedes instalar mediante el proceso seguro el BT en otros portátiles totalmente si compatibles.

Para el Toshiba U300 – 13H

Primero lo que necesitamos es obtener el código de omnibook y solo lo podemos obtener mediante subversion (para ello necesitamos tenerlo instalado: # apt-get install subversion bajo Debian/Ubuntu)

Una vez tenemos subversión vamos a una terminal y si queremos (para tener todo ordenado) creamos un directorio, por ejemplo:

$ mkdir omnibook

$ cd omnibook

Como indicamos en el comando navegamos hasta el directorio omnibook recientemente creado y ejecutamos el comando para obtener el código:

$ svn co https://omnibook.svn.sourceforge.net/svnroot/omnibook/omnibook/trunk

Con este comando obtenemos el código en la carpeta trunk. Navegamos a este directorio y compilamos el código (necesitamos tener instaldo gcc, make, build-essential, en Debian: # apt-get install gcc make build-essential)

$ cd trunk

$ make

Luego lo instalamos mediante el comando:

# make install (o $ su -c “make install” o si tienes sudo instalado $ sudo make install)

Ahora necesitamos copiar el módulo a nuestro kernel, para ello ejecutamos:

# cp omnibook.ko /lib/modules/`uname -r`/kernel/drivers/misc

Generemos los módulos:

# depmod -a

Y añadimos el módulo al kernel:

# modprobe omnibook ectype=14

Este último es el paso arriesgado, esto no indican en su web:

WARNING: Forced load on an unsupported machine may cause unpredictable result. You have been warned…

Por último para que se cargue el módulo al iniciar el OS tenemos que añadirlo al /etc/modules, bien añadiendo a mano mediante una editor al final del archivo:

# vi /etc/modules

y añadir omnibook ectype=14, presionar ESC y escribir :wq (para guardar y salir)

o bien ejecutando esta línea en la terminal (son comillas simples normales, no curvadas):

# echo ‘omnibook ectype=14′ >> /etc/modules

Y con esto ya estaría todo, probablemente en la bandeja del sistema te aparecería el símbolo del bluetooth y si ejecutas:

$ hcitool dev

te econtrarás algo parecido a esto:

Devices:

hci0 XX:XX:XX:XX:XX:XX

Para activar y desactivar el BT tienes estos dos comandos:

Activar:

# echo 1 > /proc/omnibook/bluetooth

Desactivar:

# echo 0 > /proc/omnibook/bluetooth

Para saber si está activado o desactivado:

# cat /proc/omnibook/bluetooth

(y te devolverá algo en Inglés como) Bluetooth presente y activado o desactivado.

Ahora bien, para trabajar con el BT puedes instalar los paquetes de bluetooth, bluez, y su utilizas gnome, gnome-bluetooth (desde synaptic en Debian/Ubuntu). Para compartir ficheros necesitas ejecutar Aplicaciones > Accesorios > Compartición de Archivos por Bluetooth.

Por último aclarar que a mi esto me ha funcionado, y supongo que si tienes el mismo modelo de portátil a ti también te funcionará. No me ha dado problemas hasta el momento pero puede que a ti si, por eso piensa bien antes si aplicar estos cambios en tu portátil.

Después del corte explicaré como instalar el BT para otros modelos compatibles mediante omnibook.

EDITADO: ¡ATENCIÓN! (28/04/2008)

A mi la primera vez esto me funcionó pero ahora por motivos ajenos tuve que reinstalar y todo funciona bien menos cuando reinicio e intento entrar en el modo gráfico, que después de poner mi nombre de usuario y contraseña el ordenador se me apaga.

SI os pasa esto, no os asustéis, simplemente entrar en modo de prueba de fallos (tango en gráfico como en terminal) y eliminar la línea del /etc/modules que se refiere a omnibook (o comentarla poniendo delante el símbolo #) reinicia y ya estará todo solucionado. También puedes hacer esto montando la partición desde otro OS o desde un LiveCD mismo.

Entonces, ¿Renunciamos al bluetooth? Pues yo diría que no. Ya que he probado que solo se te apaga el ordenado cuando ejecutas el módulo al inicio, si lo cargas una vez iniciado no afecta al comportamiento del PC.

Por lo tanto lo que podéis hacer es iniciarlo a mano cada vez que lo queráis utilizar. Esto se hace simplemente ejecutando en una terminal como root el siguiente comando:

# modprobe omnibook ectype=14

Y se activaría (te aparece el símbolo del bluetooth)

Si veis que no os vais a acordar de esta línea podéis crearos un simple script que ejecute la misma y le dais un nombre del que os acordéis. Os pongo un ejemplo:

Creáis un archivo con el nombre blueon y le añadís el siguiente contenido (son dobles comillas normales):

#!/bin/bash

su -c “modprobe omnibook ectype=14″

Le dais permisos de ejecución:

$ chmod +x blueon

y lo movéis a /usr/local/bin

# mv blueon /usr/local/bin

Luego simplemente se cargará el módulo cuando queráis ejecutando en terminal:

$ blueon

NOTA: Si lo ejecutas como root no te pedirá contraseña y si lo ejecutas como user normal te pedirá las contraseña de root para ejecutarlo.

NOTA2: Si eres de los de Ubuntu que no tienes cuenta de root puedes cambiar el su -c del script por sudo quitar las dobles comillas y en vez de pedir la contraseña de root te pedirá la tuya. Al igual que con su -c, si ejecutas desde terminal solo $ blueon te pedirá tus contraseña desde el script y si ejecutas $ sudo blueon primero te pedirá la contraseña y después ejecutará el script que cargará el módulo)

POSIBLES PROBLEMAS: Pues por ejemplo si una vez cargado el módulo del bluetooth tenemos que, por algún motivo, reiniciar el sistema gráfico, al volver a hacer loggin se nos volverá a apagar el ordenador.

Esto parece un coñazo pero por ahora es con lo único que ha funcionado mi bluetooth y pocas veces no pasará que una vez iniciado el módulo tengamos que reiniciar las X.

EDITADO 2: ¡ATENCIÓN! (04/05/2008)

Hace unos días comentaba que tuve que volver a instalar a compilar omnibook y que a partir de ahí me dió problemas en el arranque. Esto puede ser debido a cambios en la versión del módulo. He llegado a esta conclusión después de volver a compilar el módulo con la versión anterior (que guardaba en mi portátil) y con el mismo ectype=14 y al arrancar no se me apagaba el PC.

En cambió descargué la versión actualizada y si lo hacía (como comentaba en el anterior EDITADO). Pero se me dio por hacer una cambio en el ectype de estar versión y puse un 12 (que la primera vez de todas no me había funcionado) y ahora va bien y al arrancar no se apaga, como funcionaba todo al principio sin complicaciones.

Resumiendo, para no liar más, ahora mismo con la revisión 274 de omnibook he cargado el módulo con el ectype 12 y me va perfectamente (como al principio de todo con el ectype 14 para las revisiones anteriores ); Con el ectype 14 sigue funcionando en esta revisión pero el PC se apaga al inicio (como comentaba en el EDITADO anterior)

Sigue leyendo

¿Cual es el sistema operativo mas seguro?

 

pwn2own.jpg

Pues a la vista del concurso de seguridad PWN2OWN dentro de la Conferencia de seguridad CanSecWest, el sistema operativo mas seguro es…. Ubuntu 7.10. Hasta hay todo normal, Mac y Linux siempre son los favoritos en ganar estos concursos, pero en este caso, el primero en caer fue Mac OSX 10.5.

La prueba consistía en tres ordenadores con un sistema operativo distinto: VAIO VGN-TZ37CN con Ubuntu 7.10, Fujitsu U810 con Windows Vista Ultimate SP1 y finalmente el nuevo MacBook Air con Mac OSX 10.5.2. Cada día se pondría mas fácil ya que el primer día, el hacker tenía que tratar de entrar en el ordenador sin la colaboración del usuario, es decir, sin ningún programa ejecutado. Ese día aguantaron los 3 SO sin ningún problema. El segundo día, era posible manejar los ordenadores, es decir, que se podría crear una web con código malicioso y abrirla desde el navegador. Según cuentan, en esta prueba, el MacBook Air solo pudo aguantar 2 minutos hasta caer ante el hacker gracias a un fallo de seguridad en Safari.

El hacker (quizás esté mejor dicho cracker) fue Charlie Miller, uno de los mejores hackers del iPhone. Como premio se llevó $10000 y el ordenador que hackeó, el MacBook Air.

Ahora mi pregunta es ¿En Windows Vista usaron Internet Explorer o Firefox? Si fuera firefox se entiende bastante bien que halla aguantado tanto, en cambio, si se usara Internet Explorer creo que sería mas fácil de entrar en él.

Toshiba U300 – 13H y GNU/Linux

Bien, creo que ha pasado el tiempo suficiente para que pueda hablar sobre cómo funciona GNU/Linux en mi último portátil.
El ordenador en cuestión es un Toshiba Satellite U300 – 13H cuyas características podéis comprobar en la web de Toshiba, y que os resumo rápidamente:

toshiba

  • Procesador Intel® Core™2 Duo T7250 2,0 GHz (Caché de 2º nivel : 2 MB)
  • 2.048 (1.024 + 1.024) MB DDR2 RAM (667 MHz)
  • Capacidad formateado : 200 GB
  • DVD Super Multi (Doble Capa)
  • Pantalla Toshiba TruBrite® WXGA TFT 13,3 ” (1.280 x 800)
  • Intel® GMA X3100 hasta 358 MB de memoria con 2 GB de RAM (Compartida)
  • Webcam integrada de 1,3 Megapixels, Bluetooth™, Wi-Fi™, Módem internacional V92, Ethernet LAN
  • Intel® Turbo Memory (1 GB)

Mi necesidad de un nuevo ordenador que cumpliera todas mis expectativas de trabajo (estudio) sobre todo me llevaron a comprarme este ordenador. En lo que me basaba de ante mano para comprar un nuevo ordenador era sobretodo que fuera ligero, y esté desde luego lo es, pero que a la vez pudiera trabajar a la perfección con el (y este punto también lo cumple). El segundo factor era que me durara durante un tiempo bastante largo, es decir, que cumpliera con unas características más o menos potentes (y aunque ya se sabe que el campo de hardware cambia muchísimo en muy poco tiempo, creo que este característica la cumple bastante bien). Y el tercer y último requisito era que funcionara bajo GNU/Linux ya que a estas alturas no voy a volver a Windows por supuesto. Y este último punto lo cumple bastante bien y es en el que me voy a centrar en esta entrada.

Dividiré el post en diferentes secciones de hardware para su mejor entendimiento:
Antes que nada aclarar que las distribuciones probadas son Ubuntu 7.10, Debian Etch, Sabayon 3.4f (estás tres se mantienen hoy en día), OpenSuse 10.2, OpenSuse 10.3, Linux Mint 2.2.

  • Procesador Intel® Core™2 Duo T7250 2,0 GHz (Caché de 2º nivel : 2 MB
  • 2.048 (1.024 + 1.024) MB DDR2 RAM (667 MHz)
  • Capacidad formateado : 200 GB
  • DVD Super Multi (Doble Capa)
  • Pantalla Toshiba TruBrite® WXGA TFT 13,3 ” (1.280 x 800)

Prácticamente no tengo nada que decir, funcionan a la perfección en todas las distros probadas. Nada que añadir.

  • Webcam integrada de 1,3 Megapixels

Funciona a la perfección con v4l2, sin ningún tipo de configuración especial en Ubuntu, tanto en amsn, kopete, cheese, Ekiga, etc… (al igual que en Linux Mint y OpenSuse, en Debian mirar aquí)

  • Bluetooth™

Pues el bluetooth no es reconocido por ninguna distro, eso si, tengo que decir que tenía de antes un dispositivo USB que si reconoce y que funciona a la perfección con los paquetes de bluez y bluetooth analyzer.

EDITADO: Solución para el Bluetooth integrado…

  • Wi-Fi™, Módem internacional V92, Ethernet LAN, …

Tanto la WIFI como la tarjeta de red son reconocidos por todas las distros sin mayores problemas. Ubuntu lo hace a través de su Gestor de Controladores Restringidos instalando el Intel(R) PRO/Wireless 3945 Network Connection Driver for Linux. En Debian lo tuve que instalar a mano, pero fácil y sencillo, nada del otro mundo.

  • Intel® GMA X3100

Aquí llegaron los mayores problemas (que en realidad no fueron tanto) aunque ya sabía que los iba a tener, era demasiado nueva la tarjeta. Tanto Linus Mint como OpenSuse no tuvieron problemas en detectarla y configurarla correctamente, tanto con efectos, como reproducción de vídeo, como con juegos (con aceleración 3D). En Debian funciona con Vesa y nada más (ahí tampoco me interesa tener nada más) y Ubuntu no la configuró bien, nada de aceleración, mala configuración de resolución, etc…
Busqué por foros un paquete para la tarjeta hasta que encontré uno que os lo dejo aquí por si os sirve (aunque Ubuntu ya actualizo los paquetes y con los de ahora ya debería de funcionar perfectamente).
¿Qué pasó con este paquete? Pues me solucionó gran parte de los problemas: resolución bien, efectos también (con el paquete xserver-xgl), pero sigo sin tener aceleración por lo tanto no me tira ni con el Supertux… ¿Solución a esto? Esperar a la nueva versión de Ubuntu en la que se incluirán los nuevos drivers para la X3100 o buscar intentar instalar los de la web de http://intellinuxgraphics.org/ (no encontré nada que me interesase).
Encontré un paquete por la web de un chico que los empaqueto los nuevos drivers, los podéis obtener añadiendo a vuestro sources.list ($ sudo vi /etc/apt/sources.list)estos repositorios:

deb http://ppa.launchpad.net/tommy-hudec/ubuntu gutsy main
deb-src http://ppa.launchpad.net/tommy-hudec/ubuntu gutsy main

Pero tienen u problema, todo funciona MUY LENTO, yo no los tengo instalados.

  • Sonido, micrófono y demás cosas a comentar

Pues el sonido en Ubuntu me dio problemas, la versión de ALSA no hacía funcionar mis altavoces, lo solucioné con esta versión. ¿Cómo instalar?

Primero descomprimir el paquete:

$ tar -jxvf alsa-driver-1.0.15rc3.tar.bz2

Ir al directorio:

$ cd alsa-driver-1.0.15rc3/

Configure:

$ ./configure –with-cards=hda-intel && make

Instalar:

$ sudo make install

Copiar el módulo a la a tu kernel:

$ sudo cp ./modules/snd-hda-intel.ko /lib/modules/$( uname -r )/ubuntu/media/snd-hda-intel/

Generando el módulo

$ sudo depmod -a

Para acabar, reiniciamos:

$ sudo reboot

Con esto ya estaría arreglado el sonido. Muy posiblemente si instalar un nuevo kernel (una actualización) tendrás que volver a generar el módulo, copiarlo y todo esto (simplemente puedes seguir las instrucciones desde el principio).

Por el resto: Altavoces perfectos, micrófono no probado y todos los puertos funcionan a la perfección. Mención especial para el lector de tarjetas 5 en 1 que monta la tarjeta (por lo menos la SD, que es la que he probado) nada más introducirla; en Ubuntu, en el reto no la he probado.

  • CONCLUSIÓN:

Pues en general todo funciona como debe, al menos en la distribución que uso diariamente (que desde hace un tiempo es Ubuntu), salvando el problema que tengo con el chip gráfico, que con los actuales drivers tengo efectos con Compiz Fusion, pero no tengo aceleración. Esperaré a la siguiente versión de Ubuntu para instalar los drivers para la X3100. Recuerdo que con OpenSuse no tuve que configurar nada ya que todo funcionaba a la perfección desde el primer minuto, así que si esta es tu distro, puedes adquirir este portátil sin problemas.

Para acabar dejo una captura de pantalla de mi ordenador con tema Mac4lin. Nos vemos.

captura_Desktop

KDE4 inutilizable

KDE

Para que mentir soy fan de Gnome, y este es el escritorio que utilizo diariamente, pero los que me conocen saben que soy objetivo.

Porque me sobran los gigas y porque a parte soy el mítico fan de Gnome y Amarok al mismo tiempo, tengo también instalado KDE en mi portátil. Y para que negarlo, me gustan los cambios y de vez en cuando (muy de vez en cuando) me meto en kde para “fuchicar”.

También me gusta probar, y por ello me decidí a instalar KDE4 en mi PC y tengo que decir que por ahora y para mí (ya se que acaba de salir) es inutilizable.

¡En 20 minutos se me ha colgado dos veces!

El funcionamiento es lentísimo, no puedo tener tres aplicaciones abiertas, los iconos del escritorio se desplazan como si fueran fantasmas (los tengo posicionados en una parte del escritorio y al mover otros, y claro está sin seleccionar los demás estos se vienen detrás como si anhelaran al que estoy moviendo). Y disculpen mi ignorancia pero ¿en KDE se puede mover la imagen de fondo de escritorio? Por que también me pasa que al mover los iconos el fondo de escritorio se viene conmigo junto con alguno de los iconos que también se mueven y el resto se queda en blanco.

Las ventanas de las aplicaciones van dejando estelas blancas tras su paso al moverlas.

Por el momento parecen todos fallos de tipo “gráfico” y bien sé que mi X3100 no es que esté perfectamente soportada en GNU/Linux pero es que en Gnome lo único que no puedo hacer es jugar a juegos en pantalla completa.

Una pregunta, ¿en KDE el amarok sigue funcionando aunque lo cierres? Por que estaba probando mi “másqueun” reproductor favorito y voy a su icono al lado del reloj le doy al botón derecho y después cerrar. Efectivamente el icono desaparece, pero la música sigue sonando… Digo, igual este Amarok deja de sonar al acabar la canción (vaya característica mas estúpida), pues no, acaba la canción y sigue sonando otra. Compruebo:

ps auxw | grep amarok

Y ahí está:

aabilio 7582 3.2 1.7 129500 36616 ? Sl 19:33 0:01 amarokapp

En fin, tampoco quiero seguir profundizando en el tema, también por que no probé mucho más. Si, me cansé y a los 20 minutos tras el segundo cuelge y no volví a probar.

Tras el primero tengo que decir que me surgieron dudas sobre los paquetes instalados: “que funcione tan mal tiene que ser por que le falte algo…” así que como dije antes, ya que me sobran gigas, voy a instalar todo lo que aparezca en synaptic que ponga KDE4 y voy a instalar todas las actualizaciones que me acaban de aparecer tras volver a iniciar.

Nada, sigue funcionando igual de mal. Bah! puede ser que necesite reiniciar (seguro que avisaría, pero sabe dios). Reinicio.

Nada, sigue funcionando igual.

Se me enciende una luz y al mismo tiempo que me digo que seguramente no tenga nada que ver me pregunto ¿y si es incompatible con la antigua versión de KDE que tenía instalada? Venga a desinstalar… sigue funcionando mal, reinicio y NADA, igual, otra vez igual.

Tras esto que me queda de conclusión, que el nuevo KDE es bonito (no me gustaba nada el anterior*) pero de momento inutilizable. Y repito, sé (por que se han encargado de metérnoslo en la cabeza) que esta solo es la primera etapa de la versión 4 de KDE.

*Lo que me parece feo es la versión “recién instalada” de KDE, pero claro más feo es el “Out of the Box” de Gnome , pero este sé como configurarlo para ponerlo más bonito y de KDE no tengo ni idea.

*KDE4 fue probado en un Satellite U300-13H con Ubuntu Ubuntu 7.10. Estoy probando con OpenSuse, ya contaré la experiencia.