Instalación

Preparando el sistema

En primer lugar, es necesario dejar espacio libre para Linux. No he sido capaz de encontrar algún software que me permitiese redimensionar la partición de Mac OS X, por lo que he optado por eliminar la partición y crear unas nuevas. El procedimiento más sencillo es crear 2 particiones desde la instalación de Mac OS X e instalarlo en la segunda, de manera que el OpenFirmware arranque YaBoot y nos permita seleccionar si queremos iniciar Linux o Mac OS X.
Si instalamos Mac OS X delante, tendremos que seleccionar la partición de Linux usando el menú de arranque de OpenFirmware, el cual es increiblemente lento.
Una vez que tengamos el disco duro preparado, el siguiente paso será descargar una imagen iso para realizar la instalación. Al tratarse de un hardware aún muy nuevo, es recomendable utilizar la última iso disponible. Desde mi punto de vista, lo mejor es bajarse la iso genérica, que no contiene stages, y el tarball de la stage 1. De esta manera conseguiremos una instalación más optimizada y personalizada desde el principio. Tanto la iso como el tarball pueden descargarse desde cualquiera de los mirrors de Gentoo.

Comenzando la instalación

El siguiente paso es arrancar el iBook con el cd que acabamos de grabar. Introducimos el cd, reiniciamos y mantenemos pulsada la tecla "C". Si todo va bien, deberíamos ver el YaBoot. Con pulsar intro será suficiente para que el live-cd arranque correctamente.

Configurando la red

Ahora configuraremos la red, que nos hará falta mas adelante:
  • Configuración con dhcp
  • dhcpcd eth0
  • Configuración manual
  • ifconfig eth0 dirección_ip
  • route add default gw ip_del_gateway
  • echo "nameserver ip_del_dns" >> /etc/resolv.conf

Particionando el disco duro

Ahora es el momento de particionar el disco duro:
  • mac-fdisk /dev/hda
Lo único que cabe resaltar del proceso de particionamiento, es que será necesario crear una partición de bootstrap para el YaBoot (tecla b en el mac-fdisk). En cuanto al tamaño y al número de particiones, lo considero algo muy subjetivo, así que cada cual opte por lo que más le guste ;-). Una vez hayamos creado las particiones, debemos de formartearlas. Recomiendo el sistema de ficheros ext3, ya que es un sistema de ficheros robusto y en cualquier momento podemos montarlo como ext2 para ahorrar batería. Para ello ejecutamos:
  • mkfs.ext3 /dev/hdaX
Donde X es el número de cada particion[es] que queramos formatear.
La partición de bootstrap de YaBoot no debe ser formateada ni montada.

Preparando el entorno chroot

Ahora que ya hemos creado y formateado la[s] particion[es], vamos a montarla[s].
  • mount /dev/hda4 /mnt/gentoo
Evidentemente, si hemos hecho varias particiones repetimos el proceso con el resto de particiones y sus respectivos puntos de montaje. Una vez montadas, descomprimimos el tarball con la stage 1 (si hemos bajado un cd sin stages, podemos pasar el stage por red mediante sftp, links...):
  • tar xvvjpf stage1-ppc-YYYYMMDD.tar.bz2 -C /mnt/gentoo
El switch f es fundamental, ya que sin él no se conservarían los permisos necesarios.
Lo último que tenemos que hacer antes de entrar en el chroot es montar /proc, copiar /etc/resolv.conf y configurar el nombre de nuestra máquina.
  • Montamos /proc
  • mount --bind /proc /mnt/gentoo/proc
  • Copiamos /etc/resolv.conf
  • cp /etc/resolv.conf /mnt/gentoo/etc
  • Configuramos el nombre de nuestra máquina
  • echo "nombre" > /mnt/gentoo/etc/hostname

Entrando en el chroot

En este momento tenemos todo listo para adentrarnos en el chroot y comenzar con la construcción de nuestro sistema. Para ello tecleamos:
  • Entrando en el chroot
  • chroot /mnt/gentoo/
Una vez dentro, tenemos que actualizar las variables de entorno. Tecleamos:
  • Regenerando /etc/profile.env y /etc/ld.so.conf
  • env-update
  • Tomando las variables de /etc/profile
  • source /etc/profile

Actualizando el árbol del Portage

El siguiente paso es actualizar el árbol del Portage:
  • emerge sync
Esto tardará un rato (dependiendo de nuestra conexión). En este momemento, sería una buena idea irse a tomar un café.

Configurando /etc/make.conf

Enseguida comenzaremos a compilar y construir el sistema, pero antes tenemos que realizar unos ajustes que serán cruciales para ajustar el rendimiento y personalizar el sistema. Todos estos parámetros se configuran en /etc/make.conf. Se trata del USE y las CFLAGS. Comenzaremos por las CFLAGS:
Las CFLAGS son las flags que se le pasarán al compilador durante la construcción de los paquetes que luego se instalarán en nuestro sistema. Las más recomendables para un procesador G4 (que además coinciden con las mías) son:
  • CFLAGS recomendadas para G4
  • -O2 -pipe -mcpu=7450 -maltivec -mabi=altivec
Para configurar nuestro sistema con estas CFLAGS, podemos ejecutar el siguiente comando:
  • echo "CFLAGS=\"-O2 -pipe -mcpu=7450 -maltivec -mabi=altivec -mtune=7450\"" >> /etc/make.conf
Para aprovechar el soporte para altivec en las aplicaciones es necesario que el kernel que estemos usando tenga dicho soporte.
El USE es una variable que contiene ciertas palabras clave que afectarán al soporte que tendrán los paquetes compilados en nuestro sistema. Por ejemplo: si un paquete puede tener soporte para KDE, se compilará con dicho soporte en caso de que nuestro USE contenga la palabra clave "kde". Al contrario que las CFLAGS, el USE no depende del procesador, sino de las preferencias del usuario; de manera que el valor de USE en mi sistema, sólo puede servir a modo de ejemplo (aunque podría ser perfectamente válido para otra persona que use KDE). Veámos ahora mi USE a modo de ejemplo:
  • USE="altivec alsa crypt cscope dga encode fbcon flash gd gphoto2 imagemagick imap innodb ipv6 java javascript joystick lame lcms mad maildir mpeg ncurses net qtmt radeon ruby samba socks5 spell tiff usb vim-with-x xml xml2 xvid zlib -gnome -mozilla -esd"
En el USE, "palabra" significa dar soporte a esa característica y "-palabra" significa eliminarlo. El significado de cada una de las palabras clave puede encontrarse en /usr/portage/profiles/use.desc y /usr/portage/profiles/use.local.desc.
El USE se puede definir en varios sitios y es heredable. Su valor final se puede ver ejecutando emerge info.

Comenzando a construir el sistema

Por fin hemos llegado al momento de empezar a compilar. Durante la primera fase, un script se encargará de todo:
  • Lanzado bootstrap.sh
  • cd /usr/portage
  • ./scripts/bootstrap.sh
Este proceso llevará bastante tiempo (más aún que emerge sync), así que sería recomendable irse a tomar un café y una par de cervezas.

Construyendo el sistema base

El siguiente paso también será bastante sencillo. Con esto tendremos compilado un sistema base y casi listo para arrancar. Ejecutamos:
  • emerge system
Una vez más, será un proceso largo (alrededor de 1.5 veces la duración del bootstrap). También en este caso sería una buena idea irse a tomar algo, dos o incluso tres cervezas serían idóneas. No hay que preocuparse por las dos cervezas del punto anterior, en el tiempo transcurrido nuestro cuerpo ya habrá eliminado el alcohol que contenían.

Otros paquetes útiles

Cuando emerge system haya terminado es un buen momento para instalar varios paquetes prácticamente indispensables: el cron, el logger y el gestor de arranque. Recomiendo vixie-cron, metalog y YaBoot, aunque hay otras alternativas. Veamos como instalarlos:
  • Instalando vixie-cron, metalog y YaBoot
  • emerge vixie-cron metalog yaboot

Añadiendo servicios al arranque

Ahora añadiremos los servicios que necesitemos ejecutar en el inicio. Los siguientes deberían ser suficientes para la mayoría de los usuarios:
  • Añadiendo net.eth0, vixie-cron y metalog al arranque
  • rc-update add net.eth0 default
  • rc-update add vixie-cron default
  • rc-update add metalog default

Últimos pasos

Ya casi tenemos un sistema listo para arrancar. Lo único que falta es compilar un kernel y configurar el gestor de arranque. Estos pasos se explicarán en la sección dedicada a la configuración del kernel.
¡Validar XHTML! ¡Validar CSS!