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).

Problema bordes de ventana en metacity 2.26.0-2

Si tienes Debian GNU/Linux testing y actualizas en estos días probablemente te encuentres que las ventanas maximizadas no muestran la decoración (los bordes de ventana).
Esto se debe a un problema con la nueva versión del paquete de metacity, el bug está reportado.

Para ir tirando, el problema lo puedes solucionar con un simple:

[bash light="true"]$ metacity –replace &[/bash]

EDITADO (27/07/2009):
El bug ha sido corregido con el lanzamiento de la versión 2.26.0-3 en testing (ya había sido lanzada hace unos días en unstable)
Las ventanas no perdían la decoración, sino que ignoraban las barras del panel y se escondían detrás de estas.
Actualiza a la nueva versión para solucionar el problema.

Me-Tv, Visor de TV perfectamente integrado en Gnome

Me-tv es un programa con el que podrás ver la televisión digital en tu escritorio Gnome. Tiene soporte para las tarjetas DVB-T, DVB-C, DVB-S y ATSC soportadas por el kernel.

Me-tv puede gravar lo que estás viendo en el momento pero también puede programar una grabación, además también podrás hacer Broadcast a través de Internet.

Puedes encontrarlo aquí y descargarlo de aquí, aunque si lo quieres en paquete .deb solo tendrás para i386, así que he empaquetado uno para amd64 que lo puedes descargar de aquí.

Próximamente subiré una traducción del programa en Gallego.

mini: Actualización VeohProxy (04/03/2009)

A día de hoy el software de VeohProxy no funciona. Veoh ha debido cambiar algo en la forma en la que distribuye sus vídeos. Esta práctica no es nueva, Veoh continuamente “mejorando” (ignorando siempre sus usuarios de GNU/Linux).

Parece ser que el problema es que en el nuevo Veoh Player utiliza un nuevo método para generar claves, y los responsables no dan soporte para la antigua forma de descargar los vídeos.

Los desarrolladores de VeohProxy están trabajando para sacar una nueva versión.

Gerkemsm:

I don’t have time to do this right now and probably won’t have during the next few
months. I’ll have to write my thesis. Sorry..

Tendremos o que utilizar wine para ejecutar Firefox con la extensión de Veoh (ver este post), o virtualizar Windows :(

Más info (en) | Issue 23: Downloading from veoh no longer works

Vídeos de Veoh con atajo de teclado

Primero, si no sabes como ver los vídeos de Veoh en GNU/Linux visita: http://linfox.es/14/07/2008/videos-de-veoh-en-gnulinux/ (Sección de VeohProxy)

Por otra parte, si lo has leído y estás utilizando VeohProxy como yo, igual te molesta, igual que a mi, tener que abrir la terminal, ejecutar VeohProxy, copiar el enlace y después abrir una pestaña de firefox (o tu navegador preferido) y copiarlo…

Pues para esto he creado un pequeño script en bash que simplifica la tarea. Puedes descargar el vídeo con un simple atajo de teclado.

El script en cuestión es este:

#!/bin/sh

#Lanzador.  Elige como quieres descargarlo (firefox, opera, wget, otro lanzador a otro navegador)
#Si quieres abrirlo: vlc, mplayer, kaffeine...
NAVEGADOR=firefox

cd ~
python ${HOME}/VeohProxy-1.51/default.py &;
URL=$(xsel -a | cut -d\/ -f5 | cut -d\? -f1)

if [ $NAVEGADOR = "wget" ]; then
	xterm -e wget http://127.0.0.1:64653/$URL
else
	$NAVEGADOR http://127.0.0.1:64653/$URL
fi

¿Cómo se utiliza?

Simplemente buscas el vídeo que quieres ver, lo abres, y una vez ahí selecionas con doble click todo el enlace del vídeo en la barra de direcciones, y depués presionas <Control>F10 (o el atajo de teclado que hayas elegido).

¿Cómo se instala?

Pues primero te descargas el Script. Le das permisos de ejecución:

$ chmod +x veoh.sh

Lo metes por ejemplo en el directorio del VeohProxy. Y ahora solo te queda crear un atajo de teclado que ejecute el script.

NOTA: Para ejecutar el script necesitas el paquete xsel. En Debian y derivados:

# aptitude install xsel

¿Y el atajo de teclado?

Pues en Gnome puedes hacerlo ejecutando gconf-editor (en otros escritorios tendrá un proceso análogo):

Presionas Alt + F2 y escribes gconf-editor. En la ventana que aparece desplegas la pestaña apps -> metacity –> Global_keybindings. En la parte correspondiente a “run_command_1″ eliges tu atajo, yo he puesto “<Control>F10″.

Después vas a la pestaña apps -> metacity –> keybindings_commands y en la parte correspondiente a “command_1″ pones la ruta a al script, yo por ejemplo “/home/aabilio/VeohProxy-1.51/veoh.sh”

Y con esto ya tendías todo hecho. Se acabó todo el proceso de ejecutar VeohProxy, copiar URL, abrir navegador…

A tener en cuenta: El Script presupone que tienes el directorio de VeohProxy con su nombre original y en tu carpeta personal ($HOME) y que vas a seleccionar la URL completa del vídeo (aunque es totalmente editable).

Cambiando la variable NAVEGADOR del principio del script (NAVEGADOR=firefox) puedes elegir con que descargar el vídeo: con un navegador (firefox, opera..), con wget, o incluso abriéndolo directamente (vlc, mplayer, kaffeine…)

enlace | Script veoh.sh

enlace | Vídeos de Veoh en GNU/Linux

IMPORTANTE | Estado VeohProxy a 4 de Marzo de 2009

Vídeos de Veoh en GNU/Linux

Si estás por aquí seguramente conozcas la web www.veoh.com que reparte vídeos al estilo de stage6 (hoy en día offline) con una calidad muy buena. Esta página permite subir videos de gran tamaño, pero tiene una restricción, y es que si los vídeos superan los 20 minutos, a la hora de visualizarlos, no podrás hacerlo a través de la web, sino que tendrás que hacerlo a través del programa que ellos mismo ponen a disposición para que te bajes y disfrutes de sus vídeo.

Este programa es totalmente gratuito, con esto no ponen ninguna restricción de pago, pero hay un problema para los usuarios de GNU/Linux, y es que el programa VeohTV solo está disponible para Windows y Mac.

Pero gracias a la comunidad disponemos también de recursos para disfrutar de estos vídeos en nuestro sistema operativo favorito. Las alternativas son pocas, pero hay donde elegir, aunque yo me quedo claramente con una.

A continuación me dispongo a enumerar una a una los diferentes software de los que disponemos para visualizar los vídeo de Veoh en GNU/Linux.

Como siempre las pruebas están hechas con un Debian Testing, pero los programas probados son perfectamente compatibles con el resto de distribuciones.

Emular el programa oficial con WINE (no recomendado)

Lo primero que intenté hacer para ver lo vídeos fue emular el programa oficial con WINE, por que parecía que algunas personas esto sí les había funcionado. Si seguís el enlace veréis que dice que tenéis que instalar una versión antigua de todo, pero Veoh no te deja descargar vídeos con esa versión y te manda actualizar. Esta versión si se instala bien con WINE, pero falla al iniciar, al pedirte tu user y pass se cuelga y se cierra. Para mi esta no fue una opción válida y la dejé aparcada. Puede que a ti (o a mi con futuras versiones de VeohTV, este es BETA, me funcione bajo WINE).

ACTUALIZADO A 11 DE MARZO DE 2009:

Ver esta entrada para instalar Veoh Web Player con Wine (la única forma a día de hoy, a parte de virtualizar, para ver vídeos de Veoh en GNU/Linux).

Virtualizando Windows con VirtualBox

También puede utilizar VirtualBox para virtualizar Windows y hacerlo todo desde este SO. Funciona perfectamente.

VeohDownload (no recomendado)

Otra opción, es utilizar VeohDownload, un proyecto en MONO que consiste en una simple ventana en la que tenemos que introducir la URL del vídeo en cuestión y este nos lo descarga (ATENCIÓN: no es la URL entera, sino, la parte posterior a “http://www.veoh.com/videos/” hasta el “?”, ambos no inclusive). El archivo ejecutable lo puedes descargar desde aquí, listo para utilizar. Decir que con este programa no he podido bajar ningún vídeo entero al completo, por algún motivo se me ha cortado la descarga en distintos puntos repetidas veces. Por lo tanto, desde mi experiencia tampoco lo recomiendo.

openVeoh (no recomendado)

La opción que en principio parecía más adecuada es el proyecto openVeoh, que en principio se puede utilizar en modo terminal, y en modo gráfico de la misma manera que funciona el programa oficial, es decir, haciendo click en el enlace de VeohTV del vídeo en veoh.com y directamente se te descargará.

El proyecto se descarga por SVN:

$ svn co https://openveoh.svn.sourceforge.net/svnroot/openveoh openveoh

$ cd openveoh

Tienes que compilar los sockets:

$ make sockets

Depende la versión de compilador que tengas puede que te de problemas. Seguramente los soluciones añadiendo una línea al código de los archivos: Utility.h, HttpdForm.h y MemFile.h.

$ gedit openveoh/src/sockets-cpp/Utility.h

$ gedit openveoh/src/sockets-cpp/HttpdForm.h

$ gedit openveoh/src/sockets-cpp/MemFile.h

Añadir en los tres, al principio del código, después del texto comentado, la siguiente línea:

#include <cstring>

Seguramente ahora te compile todo sin problemas ($ make socktes)

Después compilas todas las partes del proyecto con:

$make

Instalas:

# make install

Para lanzar el programa se hace desde ~/bin/vget, y hay que poner la URL del vídeo desde el principio hasta el “?” (este no incluido). Por ejemplo:

~/bin/vget “http://www.veoh.com/videos/v1184655gP8RTDWA

También puedes hacer click desde Firefox en el vídeo donde de pone “Watch on VeohTV” y el vídeo se descargará automáticamente. Todo se guarda en un directorio en tu HOME, llamado Video/Veoh donde encontrarás hasta una carpeta que contiene las miniaturas de los vídeos descargados para una mejor organización desde Media Centers por ejemplo…

Esta opción tampoco la recomiendo ya que a mi, a pesar de que me pone que me descarga el vídeo, nunca me lo ha descargado. Aunque a otras personas si le ha funcionado.

Veoh-Proxy (recomendado)

Por último, Veoh-Proxy, el que utilizo yo, y que no me ha dado ningún problema. Es un proyecto en python y multiplataforma. Lo único que tienes que hacer es descargarlo:

$ wget http://veohproxy.googlecode.com/files/veohproxy-1.3.zip

Descargar la última versión:

$ wget  http://veohproxy.googlecode.com/files/veohproxy-1.51-src.zip

y descomprimirlo:

$ unzip veohproxy-1.51-src.zip

Para utilizarlo simplemente tienes que ejecutarlo:

$ python veohproxy-1.51-src/default.py

Una vez lanzado tienes que buscar el vídeo que quieres y copiar de la URL la parte posterior a “http://www.veoh.com/videos/” hasta el “?”, ambos no inclusive y pegarla después de “http://127.0.0.1:64653/” en una ventana de Firefox y dale a ENTER y el vídeo comenzará a descargarse. Ejemplo: http://127.0.0.1:64653/v12656051nDn2Seaa

NOTA, si deseas simplificar este proceso mira: Vídeos de Veoh con atajo de teclado.

Estas son las alternativas que conozco para descargar los vídeo de Veoh en GNU/Linux, si conoces alguna más, por favor, házmelo saber.

IMPORTANTE | Estado de VeohProxy a 4 de Marzo de 2009

Solución problema uvcvideo y v4l experimental

Mi problema particular: Tengo una Webcam usb integrada en el portátil (Chicony Electronics) que Debian no lograba hacer funcionar . Y también tengo una sintonizadora dvb-t TVISTO que utiliza el módulo af9015. El módulo que utiliza la Webcam es uvcvideo y tanto este como el de la sintonizadora utilizan v4l, solo que el módulo af9015 utiliza v4l experimental.

Yo ya tenía mi Webcam perfectamente instalada cuando intenté cargar el módulo de la sintonizadora. A parte de que este driver no se cargó correctamente (la versiones para este driver son aun muy verdes para GNU/Linux) la Webcam me dejó de funcionar de repente, y cuando intento volver a compilar uvcvideo e instalarlo, al cargar el módulo me dice que no lo puede cargar, veo los logs y me sale esto:

$ dmesg

uvcvideo: Unknown symbol v4l_compat_ioctl32
uvcvideo: Unknown symbol v4l_compat_translate_ioctl
uvcvideo: Unknown symbol video_devdata
uvcvideo: Unknown symbol v4l_printk_ioctl
uvcvideo: Unknown symbol video_unregister_device
uvcvideo: Unknown symbol video_device_alloc
uvcvideo: Unknown symbol video_register_device
uvcvideo: Unknown symbol video_usercopy
uvcvideo: Unknown symbol video_device_release

Aunque también te puede salir otro tipo de incompatibilidades parecidas…

Por lo visto el problema está en la forma en que código para la sintonizadora trata el fichero “Module.symvers” por el cual se presentan incompatibilidades entre los dos módulos.

Pues bien, el caso es que existe una manera para solucionar el problema de la Webcam (aunque no logré hacer funcionar mi tarjeta dvb-t, y esta solución seguramente no sea la más adecuada…) y esta puede que te funcione en un caso similar donde, a pesar de que no tengas los mismo componentes hardware, si hayas tratado con estos dos drivers.

La solución para que la Webcam vuelva a funcionar pasa por cargar el módulo “uvcvideo” con el fichero Module.symvers de “v4l experimental” que trae el código del driver de la sintonizadora.

La sintonizadora tiene que estar instalada (aunque el módulo no se cargara correctamente, lo importante es que has compilado la nueva versión de v4l) y tienes que eliminar el módulo de uvcvideo anterior:

# rmmod uvcvideo

Volver a obtener el código de uvcvideo (si no dispones de el):

$ svn checkout svn://svn.berlios.de/linux-uvc/linux-uvc/trunk

$ cd trunk

Ahora el paso importante copiar el archivo “Module.symvers” del v4l experimental a este directorio (sustituyendo el actual): El fichero del que hablo está en la ruta donde descargaste el driver de la sintonizadora, en la carpeta v4l, por lo que será algo así (cuidado con el punto final, hay que ponerlo para que copie en el directorio actual ya que suponemos que estamos en la carpeta que contiene los archivos del driver de uvcvideo):

$ cp -f dirección_del_driver/v4l/Module.symvers .

Una vez echo esto compilamos:

$ make

Instalamos:

# make install

Y cargamos el módulo:

# depmod -a

# modprobe uvcvideo

Y ahora si que debería cargar el módulo sin problemas y tu Webcam debería de volver a funcionar.

También decir que en este caso no soy capaz de hacer funcionar mi tarjeta dvb-t, pero puede que tu si y lo único que te pasara es que te haya dejado de funcionar la Webcam. Pues con esta solución se supone que podrías utilizar los dos componentes al mismo tiempo.

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.

Counter-Strike + Debian + Intel X3100

Como todos sabéis se puede jugar al Counter-Strike en GNU/Linux a través de Wine. Pero a lo mejor no fuisteis capaces de instalarlo, o simplemente luego no tiraba con los gráficos, os daba algún error.

Pues si tienes Debian Lenny/Sid, y una Intel X3100 (Intel Corporation Mobile GM965/GL960) es más fácil que nunca.

Instalas Wine desde los repos:

$ su

contraseña:

# apt-get install wine

La versión que tengo yo instalada es la 1.0-rc1-1.

Asegúrate de tener aceleración gráfica, ejecutas el mítico:

$ glxinfo | grep direct

Y si devuelve:

direct rendering: Yes

Todo va bien.

Si no asegúrate de instalar la última versión de los paquetes del controlador de la gráfica:

# apt-get install xserver-xorg-video-intel

La versión 2:2.2.1-2. Me acabo de fijar que hay una nueva 2:2.3.1-1 y con esta no se si irá ya que con estos paquetes nunca se sabe…

Y configura con:

# dpkg-reconfigure xserver-xorg

el /etc/X11/xorg.conf gráficamente. Es un asistente muy fácil en el que en el paso de elegir driver tenéis que escoger el de intel.

Y esto es todo, solo falta instalar el juego. ¿Qué no lo tenéis? Aquí lo podéis encontrar: Counter-Strike (el parche v26 no va muy bien así que si no lo instaláis mejor).

También tenéis que descargar la fuente tahoma y copiarla al wine. La podéis descargar de aquí, y luego navegas a donde la descargaste y la copias:

$ mv tahoma.ttf $HOME/.wine/drive_c/windows/Fonts

Y nada a instalar el counter. Simplemente doble click en el .exe que te descargaste. Y luego es el mítico siguiente > siguiente > siguiente de Windows.

Instalado y a jugar!

EDITADO (12/06/08): En el nuevo Ubuntu recien instalado (8.04) instalando wine desde los repos, instalando el CS y sin ninguna configuración se puede jugar perfectamente, y con los efectos extra activados.

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: