lunes 16 de noviembre de 2009

Compilar el kernel (2.6.31.6)

El kernel es el núcleo del sistema, compilar el kernel no es una tarea sencilla ni mucho menos necesaria. Las distribuciones actuales proveen kernels genéricos preparados para ejecutarse sobre una gran variedad de hardware sin problemas y con una buena colección de módulos para mejorar aun más este soporte.

Sin embargo, compilar el kernel puede ser útil en ciertas circunstancias, como por ejemplo:
  1. Activar funciones no activadas por defecto en el kernel de la distribución
  2. Usar opciones experimentales
  3. Mantener el kernel actualizado
  4. Optimizar/ajustar el kernel a nuestro hardware
  5. Por el placer de aprender

Si no necesitas hacer nada de lo anterior te recomiendo que no compiles el kernel manualmente. En mi caso lo he hecho para poder activar el nuevo sistema de ficheros experimental btrfs, sobre el que hablaremos en el próximo artículo.

  • Instalar las fuentes
El kernel se distribuye en forma de código fuente que podemos encontrar en http://www.kernel.org

Descargaremos y descomprimimos la versión más actual (la 2.6.31.6 a día de hoy) con la orden:
$ wget -c ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.31.6.tar.bz2
$ tar xvfj
linux-2.6.31.6.tar.bz2

Si no lo hemos hecho aun, necesitaremos instalar algunos paquetes para poder compilar:
$ sudo aptitude install build-essential libncurses5-dev


  • Configurar las opciones
Usaremos la configuración del kernel actual como base para la configuración del nuevo:
$ cp /boot/config-`uname -r` ~/linux-2.6.31.6/.config

Ahora lanzaremos el menu de configuración del kernel:
$ cd ~/linux-2.6.31.6/ && make menuconfig

Menu de configuración de las opciones del kernel

Nota: si teneis errores diciendo que falta alguna libreria, compilador o utilidad de desarrollo, la instalais y volveis a lanzar el comando.

Nota: existen varios tipos de menús de configuración del kernel, tanto gráficos como en modo texto. En el archivo README del kernel teneis una explicación más detallada.

No voy a alargarme aquí explicando todas las pantallas y opciones pero os recomiendo que os tomeis vuestro tiempo, leais la ayuda y ajusteis al máximo las opciones a vuestro sistema. Un buen consejo es que si no sabemos lo que hace una opción es mejor no tocarla.

  • Compilar kernel y módulos
Para compilar el kernel, una vez repasadas las opciones:
$ make

Empezaremos a ver mensajes por pantalla que nos informan del progreso de la compilación. En función de la potencia del hardware y de las opciones marcadas en el kernel este proceso puede tardar mucho rato (en mi sistema tardó 1 hora 40 minutos en compilar el kernel y los módulos con las opciones por defecto).

Para instalarlo ejecutaremos:
$ sudo make install modules_install

Generamos un archivo initrd con:
$ sudo update-initramfs -c -k 2.6.31.6

Los módulos quedarán instalados en /lib/modules/2.6.31.6, el kernel y el archivo initrd en /boot/vmlinuz-2.6.31.6 y /boot/initrd.img-2.6.31.6 respectivamente.


  • Actualizar grub1 (Versiones 9.04 y anteriores)
Ahora vamos a crear una entrada en el menu del grub para poder elejir el nuevo kernel:
$ sudo gedit /boot/grub/menu.lst

Recomiendo duplicar la sección de Ubuntu cambiando el número del archivo del kernel y la linea initrd por los nuevos), en mi caso por ejemplo quedó así (resalto los cambios que he hecho en rojo para que lo veais mejor):

[...]
title Ubuntu Jaunty 9.04
root (hd0,1)
kernel /boot/vmlinuz-2.6.28-16-generic root=/dev/sda2 ro splash locale=es_ES vga=792
initrd /boot/initrd.img-2.6.28-16-generic
quiet

title
Linux 2.6.31.6 - manual
root (hd0,1)
kernel
/boot/vmlinuz-2.6.31.6 root=/dev/sda2 ro splash locale=es_ES vga=792
initrd
/boot/initrd.img-2.6.31.6
quiet
[...]


La parte que he añadido es la segunda, y el resto del archivo de configuración del grub se deja sin alterar.

Una vez guardardo el archivo reiniciamos y seleccionamos el nuevo kernel, si todo ha ido bien ejecutamos uname -r y veremos algo así:

$ uname -r
2.6.31.6


  • Actualizar grub2 (Versiones 9.10 y posteriores)
En el caso de que estemos usando grub2 (versiones Karmic y posteriores de Ubuntu) la forma de modificar el menú de arranque es algo diferente.

Primero editaremos el archivo de opciones generales de grub para asegurarnos de que aparece el menu de selección de sistema operativo y que tenemos tiempo de elegir el nuevo kernel (si en tu sistema ya se muestra el menu de grub2 saltate este paso):

$ gksu gedit /etc/default/grub

Y nos aseguraremos de comentar (poniendo un "#" delante) la linea:
#GRUB_HIDDEN_TIMEOUT=0

Como el nuevo formato de configuración no es muy conocido yo os recomiendo que saqueis una copia de una de las entradas actuales de vuestro grub leyendo el archivo /boot/grub/grub.cfg. En mi caso las siguientes lineas corresponden a una entrada en el menu:

menuentry "Ubuntu, Linux 2.6.31-14-generic" {
recordfail=1
save_env recordfail
set quiet=1
insmod ext2
set root=(hd0,1)
search --no-floppy --fs-uuid --set fcc3f8cd-346f-4337-b75d-dff91753f1d3
linux /boot/vmlinuz-2.6.31-14-generic root=UUID=fcc3f8cd-346f-4337-b75d-dff91753f1d3 ro quiet splash
initrd /boot/initrd.img-2.6.31-14-generic
}

Nota: los identificadores de particiones y los nombres de archivo serán diferentes en cada caso, usad los vuestros, no copieis estos!

Ahora añadiremos la entrada manual copiando la información anterior al final del archivo /etc/grub.d/40_custom y modificando los nombres del archivo del kernel y del initrd por los que hemos creado nostotros:
$ gksu gedit /etc/grub.d/40_custom

En mi caso al final del archivo añadí estas lineas (resalto los cambios que he hecho en rojo para que lo veais mejor):
menuentry "Linux 2.6.31.6 - manual" {
recordfail=1
save_env recordfail
set quiet=1
insmod ext2
set root=(hd0,1)
search --no-floppy --fs-uuid --set fcc3f8cd-346f-4337-b75d-dff91753f1d3
linux /boot/vmlinuz-2.6.31.6 root=UUID=fcc3f8cd-346f-4337-b75d-dff91753f1d3 ro quiet splash
initrd /boot/initrd.img-2.6.31.6
}

Como veis lo único que he cambiado es la etiqueta de la entrada, la referencia al archivo del kernel y al archivo del initrd.

Finalmente actualizaremos el grub2 con la orden:
$ sudo update-grub

Debemos ver que aparece el nuevo kernel que hemos introducido, reiniciamos y seleccionamos el nuevo kernel, si todo ha ido bien ejecutamos uname -r y veremos algo así:

$ uname -r
2.6.31.6


  • Más información
http://www.kernel.org
Como compilar el kernel de ubuntu

  • Artículos relacionados
Compilar el kernel (2.6.25)

lunes 9 de noviembre de 2009

Internet en tu disco duro con wget

wget es un comando de consola que nos permitirá descargar a nuestro disco duro casi cualquier cosa que esté en internet a través de los protocolos HTTP y FTP.

Es rápido, potente, soporta cientos de opciones, puede usarse en scripts, descargar un listado de direcciones guardado en un archivo y muchas cosas más.

Algo que wget aun no puede hacer es descargar de servidores tipo RapidShare o MegaUpload, para ese tipo de servicios podeis usar Tucan.

En este artículo vamos a ver una serie de ejemplos prácticos que cubrirán la mayoría de las necesidades de cualquier usuario.


  • Instalación
Empezaremos por instalarlo, al estar en los repositorios oficiales es tan sencillo como:
$ sudo aptitude install wget

Una vez instalado podemos ver un completo listado de opciones y un manual de uso con las órdenes:
$ wget --help
$ man wget


  • Descargar un único archivo
La función más básica de wget es descargar un único archivo, para lo cual sólamente le pasaremos como opción la dirección del archivo a descargar:

$ wget $URL

Substituyendo $URL por la dirección del archivo que queramos descargar. En la siguiente imagen vemos a wget descargando las fuentes del kernel:

wget descargando


  • Cancelar y reanudar descargas
Para cancelar una descarga bastará con pulsar Ctrl+C desde la linea de comandos, si queremos recuperar la descarga y que continue desde el punto donde lo había dejado usaremos el parámetro -c

$ wget -c $URL

  • Descargar una web entera
Usa este comando con cuidado, el contenido de una web a menudo es mucho más extenso de lo que parece. El siguiente comando descargará todo el contenido de la web http://www.gnu.org/ y convertirá los enlaces de manera que se podrá navegar off-line por los archivos descargados:

$ wget --convert-links -r http://www.gnu.org/

  • Descargar un directorio ftp
Al trabajar con ftp las opciones se simplifican y para descargar por ejemplo todo el contenido de ftp://ftp.kernel.org/pub/linux/kernel/ bastará con ejecutar la orden:

$ wget -r ftp://ftp.kernel.org/pub/linux/kernel/

  • Descargar una lista de direcciones contenidas en un archivo
Suponiendo que tengamos las direcciones que queremos descargadas guardadas en un archivo llamado direcciones.txt la orden para descargarlas todas sería:

$ wget -i direcciones.txt

  • Mantener un mirror de una dirección de internet
Podemos mantener un mirror es decir, una copia exacta, de un sitio de internet mediante la orden:

$ wget --mirror $URL

Esto puede ser útil para manatener copias locales de repositorios, hacer copias de seguridad de nuestras propias webs publicadas...

  • Descargar todas las imágenes de una página web
Se trata de especificar las extensiones que queremos obtener usando el parámetro -A, por ejemplo:

$ wget -r -l12 --no-parent -A.jpg $URL

Descargará recursivamente todos los archivos con extensión jpg de la dirección $URL.

  • Entorno gráfico
Existen varios frontends gráficos para facilitar el uso de wget, adaptados a diferentes escritorios y la mayoría de ellos disponibles en los repositorios.

Gwget: frontend escrito en GTK+ especialmente diseñado para usar con el escritorio GNOME. Para instalarlo bastará con usar:

$ sudo aptitude install gwget

Gwget

Kget: frontend escrito en Qt y pensado especialmente para usarse con el escritorio KDE. Para instalarlo bastará con ejecutar el comando:

$ sudo aptitude install kget

Kget

  • Más información
Pagina del manual de wget: http://www.gnu.org/software/wget/manual/wget.html
Gwget
Kget

  • Artículos relacionados

lunes 2 de noviembre de 2009

Gnome-shell: la nueva interfaz de usuario de Gnome

Gnome-shell es un completo rediseño de las funciones de interacción entre Gnome y el usuario. Actualmente permite el lanzamiento de programas, abrir documentos, gestionar las aplicaciones y los espacio de trabajo abiertos y hacer búsquedas tanto de aplicaciones como de documentos.

Visión general de la interfaz gnome-shell

Es un sistema en pleno desarrollo y se espera que con el tiempo se le vayan añadiendo más funcionalidades como notificaciones, gestión de contactos, applets...

La interfaz de gnome-shell está formada por:
  1. El panel superior
  2. El menu actividades
  3. El área de espacios de trabajo
Aqui podeis ver un video de como trabaja gnome-shell:


Funcionamiento general de gnome-shell


  • Instalación
Gnome-shell está en los repositorios de Karmic, así que su instalación será tan fácil como:
$ sudo aptitude install gnome-shell

Para ejecutarlo usaremos:
$ gnome-shell --replace

Al ejecutarlo se desactivará el panel de Gnome, pues gnome-shell ya aporta un panel, se desactivará el cambiador de escritorios, gnome-shell organiza las aplicaciones en espacios de trabajo, y se desactivará compiz, gnome-shell tiene algunos efectos básicos aunque no es esa su principal función.


  • El panel superior
El panel superior es un reemplazo del tradicional panel de Gnome. Contiene el menu Actividades el icono y el nombre de la aplicación con el foco, un reloj con calendario y el área de notificación con el applet de gestión de usuarios, desde el que podremos acceder a la configuración del sistema y apagar o reiniciar el ordenador.

Panel de Gnome-shell

El panel también aporta un cambiador de ventanas pulsando la combinación de teclas Alt+Tab y un lanzador de aplicaciones con la típica combinación Alt+F2.

  • El menu actividades
El menú de actividades es el corazón de Gnome-shell, contiene un cuadro de búsqueda de aplicaciones y documentos, un lanzador de aplicaciones con las aplicaciones más usadas y acceso al menú general de Gnome, acceso al menú lugares y a los documentos usados recientemente, así como previsualizaciones de todos estos elementos.

Menú de Gnome-shell

Para activar este menú solo tendremos que pulsar sobre el botón Actividades del panel superior o llevar el ratón a la esquina superior izquierda de la pantalla.

  • El área de espacios de trabajo
En esta zona encontramos los espacios de trabajo (o escritorios virtuales) y una representación de cada una de las aplicaciones abiertas. Podemos añadir y quitar espacios de trabajo pulsando sobre los botones "+" y "-" así como cambiar las aplicaciones de uno a otro simplemente arrastrandolas con el ratón.

Espacios de trabajo


  • Conclusiones
Aunque se trata de un sistema muy nuevo y en un estado muy temprano de desarrollo se ha comportado de manera bastante estable, dando una coherencia a toda la interacción entre el usuario y su escritorio. Una vez nos acostumbramos a su manera de trabajar se hace muy práctico y mejora la experiencia especialmente a aquellos usuarios que suelen trabajar con muchas aplicaciones abiertas a la vez.

En una sola aplicación se incluye un panel, un menú, un dock, gestor de espacios de trabajo, cambiador de aplicaciones... en general reune toda la gestión del escritorio en un solo programa.

Como puntos débiles cabe resaltar la nula capacidad de configuración de gnome-shell y su incapacidad de trabajar junto a compiz.


  • Más información
http://live.gnome.org/GnomeShell


  • Artículos relacionados
Compiz a fondo
Metacity con Composite

lunes 26 de octubre de 2009

Actualizando a Ubuntu Karmic RC

A pocos días del lanzamiento oficial de la versión definitiva de Ubuntu Karmic Koala (9.10) tenemos ya disponible la versión RC (release candidate) que a menos que se encuentren graves fallos de seguridad o estabilidad se convertirá sin cambios importantes en la versión definitiva.

Aunque sigue siendo una versión de desarrollo y no se recomienda su uso en entornos críticos es posible ya su uso cotidiano en sistemas de escritorio.


  • Descargas
http://releases.ubuntu.com/releases/9.10/ (Ubuntu Desktop, Server, and Netbook Remix)
http://releases.ubuntu.com/kubuntu/9.10/ (Kubuntu Desktop and Netbook)
http://cdimage.ubuntu.com/xubuntu/releases/9.10/beta/ (Xubuntu)
http://cdimage.ubuntu.com/ubuntustudio/releases/9.10/beta/ (UbuntuStudio)
http://cdimage.ubuntu.com/mythbuntu/releases/9.10/beta/ (Mythbuntu)
http://cdimage.ubuntu.com/edubuntu/releases/9.10/beta/ (Edubuntu)

Para otras opciones de descarga consulta http://wiki.ubuntu.com/Mirrors


  • Instalación
En esta ocasión en lugar de una instalación limpia he actualizado una Ubuntu Jaunty (9.04) montada sobre un portátil Compaq Presario M220, con gráfica ATI.

El proceso de actualización se inicia ejecutando desde una consola:
$ update-manager -d

El resto es solo ir siguiendo las instrucciones de pantalla pues no se nos hará ninguna pregunta importante. Una vez finalizada la actualización se habrán mantenido todos los archivos de usuario, las configuraciones y los programas instalados, a la vez que podremos empezar a disfrutar de todas las novedades presentes en Karmic.

Tras la actualización el sistema tenía exactamente el mismo aspecto que antes, todo el hardware fue perfectamente reconocido (especialmente gráfica y wifi que en algunas ocasiones pueden dar problemas):

Aspecto del escritorio tras la actualización

  • Novedades
Dado que no se van a incorporar nuevas características a Karmic vamos a hacer un repaso general a todas las novedades de esta nueva versión de Ubuntu:
  1. Núcleo del sistema: último kernel disponible 2.6.31, nuevo gestor de arranque grub2, arranque más rápido gracias a upstart (unos 25 segundos en un PC de potencia media), sistema de ficheros ext4 por defecto, nuevas animaciones de arranque mediante sistema xsplash.



  2. Escritorio: últimas versiones de los 3 escritorios más utilizados, Gnome 2.28, KDE 4.3 y Xfce 4.6.1

    Gnome 2.28.1

  3. Administración: nueva utilidad de mantenimiento del sistema Computer Janitor, Ubuntu Software Center una aplicación que intenta facilitar la gestión de software desde los repositorios, Ubuntu One el sistema de almacenamiento on-line de Ubuntu es instalado por defecto.

    Ubuntu Software Center

  4. Aplicaciones de usuario: Empathy substituye a pidgin como sistema de mensajería, navegador Firefox 3.5

    Gestor de mensajería instantanea Empathy

  5. Apariencia: se han añadido nuevos fondos de pantalla, temas de escritorio, animaciones de arranque y rediseño del sistema de notificaciones.

    Nuevo tema de iconos Humanity

  6. Desarrollo: se incorpora el compilador gcc 4.4 y el sistema de desarrollo Quickly que facilitará a los programadores la creación de nuevas aplicaciones y su distribución en paquetes .deb

    $ gcc --version
    gcc (Ubuntu 4.4.1-4ubuntu8) 4.4.1
    Copyright (C) 2009 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


Y muchos otros cambios que podeis revisar en http://www.ubuntu.com/getubuntu/releasenotes/910overview


  • Errores
No he encontrado ningun error importante en esta versión y el proceso de actualización transcurrió sin problemas excepto por un paquete que se resistió a actualizarse y fue necesario quitarlo manualmente tras la actualización.


  • Más información
  • Artículos relacionados
Ubuntu 9.04 Jaunty Jackalope
Ubuntu One: 2Gb de almacenamiento online gratuito
Instalando Karmic Koala Alpha1
Instalando Karmic Koala Alpha2
Instalando Karmic Koala Alpha3
Instalando Karmic Koala Alpha5
Instalando Karmic Koala Alpha6