Instalar Gentoo 2005.1

From Luniwiki
Jump to: navigation, search

Obtener CD

Lo primero nos bajamos el CD de algún mirror de gentoo de la URI /releases/x86/2005.1/installcd/install-x86-minimal-2005.1.iso, y lo quemamos. Yo elegi, como no, el de ftp.belnet.be

Preparación Dispositivos

El instalador de Gentoo es un poco peculiar en el sentido que unicamente arranca un live-CD (util para recuperaciones posteriores de los sistemas).

Teclado español

Hay que presionar la tecla ALT + F1 durante el arranque para ver la pantalla de texto y elegir el teclado español (opción 13).

Configuración de la Red

Hay que deshabilitar el wireless para la detección de hardware porque sino no detecta la tarjeta de red (Unicamente la luz del Wireless tiene que estar apagada, sino presionamos el boton para deshabilitarla)

* Network device eth0
eth1 detected, DHCP broadcasting fot IP. ...

Para el instalador cosa curiosa eth0 es la tarjeta wireless y eth1 es la tarjeta de red.

modprobe 8139too

Se puede instalar Gentoo tanto desde Wireless como de wired. La tarjeta de red inalambrica es la eth0, la de red es la eth1. Para configurar la red hay que teclear el comando siguiente:

net-setup ethx (Donde ethx es eth0 o eth1)
net-setup eth0
Aparece un dialogo que nos pregunta el SSID de la red inalabrica y la clave de encriptación si lo estuviera. Verificamos que hay red haciendo ifconfig y iwconfig.

Configuración del disco duro

Yo instalo la partición raiz en una partición de 500Mb (en mi caso hda2) y el LVM pongo el resto (en mi caso hda4). No hay que borrar la partición de 220Mb que permite la ejecución del QuickPlay. Mi tabla de partición es la siguiente:

hda1 NTFS 30G
hda2 Linux 500M bootable
hda3 Desconocido 220M
hda4 Linux LVM 49G

Formateamos la partición raiz con el sistema de ficheros ext3

mkfs -t ext3 /dev/hda2

Si el modulo de LVM no esta cargado le cargamos con

modprobe dm_mod

Para evitar que cuando creemos los LVM intente acceder al CDROM

mkdir -p /etc/lvm
echo 'devices { filter=["r/cdrom/"] }' >/etc/lvm/lvm.conf

Creamos el Physical Volume

pvcreate /dev/hda4

Creamos el Volume Group

vgcreate rootvg /dev/hda4
ignoramos el mensaje de error /etc/lvm/backup: fsync failed: Invalid argument

Creamos los Logical Volumes

lvcreate -n usr -L 5G rootvg
ignoramos el mensaje de error /etc/lvm/backup: fsync failed: Invalid argument
lvcreate -n usr -L 5G rootvg
lvcreate -n var -L 5G rootvg
lvcreate -n home -L 2G rootvg
lvcreate -n tmp -L 2G rootvg
lvcreate -n swap -L 1G rootvg

Damos formato a las particiones y activamos el espacio de paginación

mkfs -t ext3 /dev/rootvg/usr
mkfs -t ext3 /dev/rootvg/var
mkfs -t ext3 /dev/rootvg/home
mkfs -t ext3 /dev/rootvg/tmp
mkswap /dev/rootvg/swap
swapon /dev/rootvg/swap 

Creamos los puntos de montaje de las distintas particiones excepto la raiz

cd /mnt/gentoo
mkdir usr
mkdir var
mkdir home
mkdir tmp

A continuación montamos las particiones

mount /dev/rootvg/usr /mnt/gentoo/usr
mount /dev/rootvg/var /mnt/gentoo/var
mount /dev/rootvg/home /mnt/gentoo/home
mount /dev/rootvg/tmp /mnt/gentoo/tmp

Una vez montado hay que cambiar los permisos de /mnt/gentoo/tmp y de /mnt/gentoo/var/tmp

chmod 1777 /mnt/gentoo/tmp
cd /mnt/gentoo/var
mkdir tmp
chmod 1777 /mnt/gentoo/var/tmp

Preparación Instalación

Descarga del Stage

Dentro de nuestro mirror descargamos el archivo situado en la URI /releases/x86/2005.1/stages/x86/stage1-x86-2005.1.tar.bz2. Para elle utilizamos el navegador web en modo caracter links2

cd /mnt/gentoo
links2 http://ftp.belnet.be/mirror/

Para descomprimir el fichero utilizamos el comando

tar xvfjp stage...bz2

Instalar Portage

Descargamos la ultima versión de portage de nuestro mirror en la URI snapshots/portage-latest.tar.bz2

cd /mnt/gentoo
links2 http://ftp.belnet.be/mirror/

para descomprimir el fichero utilizamos el comando

tar xvfj portage-latest -C /mnt/gentoo/usr

Opciones de compilación

Editamos el fichero /mnt/gentoo/etc/make.conf Cambiamos las variables por

CHOST="i686-pc-linux-gnu"
CFLAGS="-march=pentium3 -O2 -pipe -fomit-frame-pointer"
MAKEOPTS="-j2"

Añadir los mirrors en make.conf

mirrorselect -i -o >> /mnt/gentoo/etc/make.conf
mirrorselect -i -r -o >> /mnt/gentoo/etc/make.conf

Antes de entrar el nuevo entorno

Tenemos que copiar la información de los DNS y montar el sistema de ficheros /proc

cp -L /etc/resolv.conf /mnt/gentoo/etc/resolv.conf
mount -t proc none /mnt/gentoo/proc

Entramos en el nuevo entorno

chroot /mnt/gentoo /bin/bash
env-update
source /etc/profile

Actualizamos el portage

emerge --sync 

Actualizamos la variable USE

USE="-gtk -gnome acpi avi bluetooth qt kde dvd alsa cdr dvdr userlocales
-emacs ethereal gpm hal informix oracle pcmcia radius ssl usb wifi win32codecs vorbis xmms"

Quitar la generación de las locales

Para que glibc, cuando se compile no vuelva a generar todas las locales añadimos esta linea al archivo /etc/portage/package.use

echo "sys-libs/glibc userlocales" >> /etc/portage/package.use

Y en el fichero /etc/locales.build dejamos lo siguiente

en_US/ISO-8859-1
en_US.UTF-8/UTF-8
fr_FR/ISO-8859-1
fr_FR@euro/ISO-8859-15
fr_FR.UTF-8/UTF-8
es_ES/ISO-8859-1
es_ES@euro/ISO-8859-15
es_ES.UTF-8/UTF-8

Stage 1

Creamos el bootstrap del sistema

cd /usr/portage
scripts/bootstrap.sh

Y a encontrar un juego, dura bastante,...

Stage 2

Ejecutamos el comando

emerge --emptytree system

Y esto si que dura y dura,...

Compilación del Kernel

Elección de la zona horaria

Yo he elegido Madrid, para ello machacamos el archivo /etc/localtime

ln -sf /usr/share/zoneinfo/Europe/Madrid /etc/localtime

Descarga de los fuentes

Descargamos los fuentes con el comando

emerge gentoo-sources

Luego vamos al repertorio /usr/src

cd /usr/src/linux

Luego configuramos el kernel, o cogemos mi .config

make menuconfig

Y a continuación compilamos

make && make modules_install

A continuación en el archivo /etc/modules.autoload.d/kernel-2.6, añadimos los modulos siguientes

dm-mod
8139too

Para poder ver todos los modulos de nuestro kernel hacemos

find /lib/modules/<versión del kernel>/ -type f -iname '*.o' -or -iname '*.ko'

Configuración del sistema

Crear fstab

Rellenamos el fichero /etc/fstab

/dev/hda2           /        ext3     defaults,noatime    1 2
/dev/rootvg/usr     /usr     ext3     defaults,noatime    0 1
/dev/rootvg/var     /var     ext3     defaults,noatime    0 1
/dev/rootvg/tmp     /tmp     ext3     defaults,noatime    0 1
/dev/rootvg/home    /home    ext3     defaults,noatime    0 1
/dev/rootvg/swap    none     swap     sw                  0 0
/dev/cdroms/cdrom0  /cdrom   iso9660  noauto,ro           0 0
proc                /proc    proc     defaults            0 0
shm                 /dev/shm tmpfs    nodev,nosuid,noexec 0 0

Configuramos nombre de máquina

El nombre de máquina se configura en el fichero /etc/conf.d/hostname y el nombre de dominio en /etc/conf.d/domainname

rc-update add domainname default

Esto es para añadir el script de arranque domainname para el level default En el fichero /etc/hosts

127.0.0.1 localhost bacterio.luniel.com bacterio

Configuración de la red

Si queremos una ip fija, en el fichero /etc/conf.d/net

config_eth0=( "192.168.0.2 netmask 255.255.255.0" )
routes_eth0=( "default gw 192.168.0.1" )

Si queremos que se configure por dhcp.

config_eth0=( "dhcp" )
dhcp_eth0="nontp nonis"

Si deseamos que eth0 se inicie automaticamente al arrancar

update-rc add net.eth0 default

En mi caso prefiero Arrancarlas a mano,... (o mas tarde con un demonio)

Seguridad

Cambiamos la contraseña de root passwd Y le damos permiso a root para conectarse a las consolas

echo "tts/0" >> /etc/securetty

Ficheros de configuración varios

/etc/rc.conf.d
/etc/conf.d/keymaps
/etc/conf.d/clock

Pcmcia

Para instalar las pcmcia

USE="-X" emerge pcmcia-cs 
rc-update pcmcia default

LVM

No hay que olvidar de instalar los programas para gestionar los lvm's

emerge lvm2

Syslog del sistema

emerge syslog-ng
rc-update add syslog-ng default

Cron

emerge vixie-cron
rc-update add vixie-cron default

Cliente dhcp

emerge dhcpcd

Instalar Gestor de arranque GRUB

emerge grub

Editamos /boot/grub/grub.conf

# Cual título arrancar por defecto. 0 es el primero, 1 el segundo, etc.
default 0
# Cuantos segundos esperar antes de arrancar el título por defecto.
timeout 30
# Una bella, hermosa imagen para ensalzar las cosas un poco :)
# Coméntela si no tiene una tarjeta gráfica instalada 
splashimage=(hd0,0)/grub/splash.xpm.gz
# Partición donde se encuentra la imagen del kernel (o sistema operativo) 
title=Gentoo Linux 2.6.13-r5
root (hd0,1)
kernel /boot/kernel-2.6.13-gentoo-r5 root=/dev/hda2 vga=0x318 vesafb:mtrr,ywrap
# Las siguientes cuatro líneas sólo se usan en caso de arranque dual con un sistema Windows.
# En este caso, Windows reside en la partición /dev/hda6.
title=Windows XP
rootnoverify (hd0,0)
makeactive
chainloader +1

A continuacion instalamos el bootloader

grub
grub> root (hd0,1)
grub> setup (hd0)
grub> quit

Post Instalación

Cambiar gcc 3.3.6 a 3.4.4

Primero hay que volver a sincronizar emerge emerge --sync Luego hay que desenmascar gcc3.4. Editamos el fichero /etc/portage/package.keywords y añadimos

sys-devel/gcc-config -x86
sys-devel/gcc-config ~x86
sys-libs/glibc -x86
sys-libs/libstdc++-v3 -x86

Instalación de Gcc 3.4.4

A continuación instalamos gcc, Y nos vamos a tomar un cafe,...

emerge -v gcc

A continuación si ejecutamos el comando gcc-config -l tenemos la salida siguiente

[1] i686-pc-linux-gnu-3.3.6 *
[2] i686-pc-linux-gnu-3.3.6-hardened
[3] i686-pc-linux-gnu-3.3.6-hardenednopie
[4] i686-pc-linux-gnu-3.3.6-hardenednopiessp
[5] i686-pc-linux-gnu-3.3.6-hardenednossp
[6] i686-pc-linux-gnu-3.4.4 
[7] i686-pc-linux-gnu-3.4.4-hardened
[8] i686-pc-linux-gnu-3.4.4-hardenednopie
[9] i686-pc-linux-gnu-3.4.4-hardenednopiessp
[10] i686-pc-linux-gnu-3.4.4-hardenednossp

Para cambiar ejecutamos el comand

gcc-config i686-pc-linux-gnu-3.4.4
source /etc/profile

Para recompilar el sistema se tendria que utilizar el comando

emerge -e system

Si queremos recompilar el sistema y todos los otros programas (es buen momento porque todavia no hemos instalado programas gordos

emerge -e system && emerge -e world

Quitar Gcc 3.6.6

Primero Ejecutamos el comando siguiente

emerge -pv --update --deep world --tree

Que nos tendria que permitir verificar que no hay dependencias con el gcc anterior. Antes de quitarlo instalamos el paquete gentoolkit

emerge gentoolkit
emerge -C =gcc-3.3.6 (para sacar el numero exacto de versión hacemos gcc-config -l)
revdep-rebuild (Para arreglar las librerias que se hayan podido quedar huerfanas)
revdep-rebuild (Hasta que diga que ya no hay ningun problema)

En este momento ya podemos cambiar el fichero /etc/make.conf a la arquitectura de nuestro Centrino

CFLAGS="-O2 -march=pentium-m -pipe -fomit-frame-pointer"

Y si lo deseamos volver a compilar todo con los parametros del centrino,ademas tambien se tendria que volver a compilar el kernel

emerge -e system && emerge -e world

Recompilar el kernel

Tenemos que recompilar el kernel con nuestro nuevo compilador para que sea compatible con los modulos externos que luego compilaremos.

cd /usr/src/linux
make clean
make && make modules_install
modules-update
cp /usr/src/linux/arch/i386/boot/bzImage /boot/kernel-2.6.13-gentoo-r5

Instalar ifplugd

ifplugd es un demonio que permite configurar y desconfigurar de una manera automatica las interfaces de red. En este caso lo utilizaremos para configurar de forma automatica eth0 (la interfaz de red) cuando se la pinche a una red.

emerge ifplugd
rc-update add ifplugd default

El fichero de configuración esta localizado en /etc/conf.d/ifplugd.conf. De momento no he conseguido hacer funcionar ifplugd con la interfaz inalambrica y el WEP

Instalar Wireless

Hay que desmascar, los 3 paquetes:

echo "net-wireless/ipw2200-firmware ~x86" >> /etc/portage/package.keywords
echo "net-wireless/ieee80211 ~x86" >> /etc/portage/package.keywords 
echo "net-wireless/ipw2200 ~x86" >> /etc/portage/package.keywords
emerge ipw2200-firmware ieee80211 ipw2200

Nos va a decir que ejecutemos un script par cambiar los fuentes del kernel. Luego repetimos el ultimo comando.

luego con los comandos iwconfig y ifconfig configuramos el enlace inalambrico

En el archivo /etc/modules.autoload.d/kernel-2.6 añadimos la linea

ipw2200 led=1

Nota: En caso de cambio de kernel hay que volver a reinstalar el modulo ipw2200, por lo que se tendria que hacer una vez arrancada la máquina con el nuevo kernel.

rmmod ipw2200
rmmod ipw2200-firmware
rmmod ieee80211
emerge -C ipw2200-firmware ieee80211 ipw2200 
emerge ipw2200-firmware ieee80211 ipw2200
modprobe ipw2200 led=1

XWindows

Hay que instalar las X para empezar.

emerge xorg-x11

Nota: En mi caso como anteriormente habia hecho un emerge -e world, y el modulo pcmcia tenia que volverse a compilar, ya estaban compiladas. El comando siguiente nos permitira ver si ya tenemos el servidor X Compilado.

emerge -pv xorg-x11

Para intentar configurar las X tenemos una herramienta, automatica que permite generar el archivo xorg.conf

Xorg -configure
X -config /root/xorg.conf.new

En este punto podemos variar el fichero hasta que X-Server arranque correctamente con la resolución que esperamos,... Una vez safisfecho podemos poner la configuración del servidor X. El fichero tiene que estar localizado en /etc/X11/xorg.conf. Aqui esta el mío.

Referencias

--Daniel Simao 20:50, 2 Nov 2005 (CET)