sábado, 6 de abril de 2013

Como crear un livecd de Gentoo con DE a nuestro gusto parte (III/III)

Esta ya es la ultima parte de estas tres entradas para crear nuestro propio sistema basado en Gentoo,y bueno lo que vamos ha hacer en esta entrada no es tan tardado,bueno eso depende de que queramos instalar ya que si solo queremos un sistema con el que viene en el livecd de Gentoo minimal no nos tome mucho tiempo pero si queremos KDE nos tomara días(dependiendo de nuestro hardware) y bueno vamos a comenzar:

Tutorial

Nota : Primero necesitas hacer los pasos de la entrada pasada :

Enlace

1.Compilar el kernel:

El kernel es el corazón del sistema, así que necesitamos configurarlo,en la entrada pasada ya descargamos las sources,pero aun no nos sirven de nada si no están compiladas en el sistema,primero que nada necesitamos entrar en el sistema enjaulado(se muestra como en las partes pasadas) , ahora nos pasamos a donde estan las sources:

cd /usr/src/linux
Aquí entraremos al menu de configuración del nucleo,escribimos

make menuconfig

Y entraremos a la configuración:

Esta es la parte mas "difícil" de instalar Gentoo en nuestro disco duro y en este caso un poco mas difícil al crear una .iso portable, así que mejor aqui le paramos :(



No no es cierto solo estoy ambientando para que no nos estresarmos :P.

Primero que nada no debemos preocuparnos,ya que esto es para aprender y para divertirnos un poco creando algo propio(con mucho apoyo de gentoo,porsupuesto) pero no se va ha hechar a perder nada ya que es un sistema enjaulado y el propio sistema enjaulado le podemos hacer un backup por si no nos sale podemos compilar el kernel del backup:

Para hacer backup:

1.Salimos del entorno enjaulado(se mostro como hacer en las entradas pasadas)

2.Hacemos cd a la carpeta donde tenemos las sources,por ejemplo yo las tengo en /root/live-gentoo

su

cd /root/live-gentoo



3.Creamos una carpeta:

mkdir backup-sources
4.Copiamos:

rsync --archive --hard-links sources /backup-sources
Nota:Se tarda un rato

Y de esta manera tenemos una copia de nuestro sistema antes de compilar el kernel,si no nos queda ahora hacemos la jaula en backup-sources,pero primero borramos la otra y creamos otra,para ir viendo hasta que quede.

Bien continuando, la configuración depende de nuestro hardware por lo cual no les puedo ayudar,solo les puedo dar la configuración que necesita para poder correr en modo live :

Un poco de copy & paste:


Archivo: Configuración básica del Kernel
  General setup  --->
    <*> Initial RAM filesystem and RAM disk (initramfs/initrd) support

  File systems  --->
    <*> Ext3 journalling file system support
    <*> Reiserfs support
    <*> JFS filesystem support
    <*> XFS filesystem support
    <*> Kernel automounter version 4 support (also supports v3)

    Miscellaneous filesystems  --->
      <*> SquashFS 4.0 - Squashed file system support

    CD-ROM/DVD Filesystems  --->
      <*> ISO 9660 CDROM file system support

    Pseudo filesystems  --->
      [*] Virtual memory file system support (former shm fs)

  Device Drivers  --->

    Block devices  --->
      <*> Loopback device support
      <*> RAM disk support

    ATA/ATAPI/MFM/RLL support  --->
      <*> Include IDE/ATAPI CDROM support



También les dejo estos manuales de compilación:


Solo es para que se guíen no compilen el kernel ni instalen nada como se muestra en las guías,solo hagan la configuración del kernel:



gentoo.org

Wrong Shell 

También de una vez les recomiendo que configuren los modulos de su tarjeta para que funcione Xorg:

Enlace 
Y la configuracion de Alsa para que tenga sonido y podamos ver videos escuchar musica,etc

Enlace
Acabando de configurar nos salimos y guardamos las configuraciones,

Nota: Otra cosa que se puede hacer es usar la configuración del kernel de un sistema ya listo,por ejemplo el de ubuntu,asiendo make oldconfig,solo que no lo recomiendo por varias cosas,una de ellas es que trae compilado mucho y para que nosotros compilemos lo que compilo canonical nos vamos a tardar horas.

Ya guardada la configuración compilamos;


make && make modules_install

Copiamos el kernel al /boot

32 bits:
 cp arch/i386/boot/bzImage /boot/vmlinuz

 64 bits:


cp arch/x86_64/boot/bzImage /boot/vmlinuz

Creamos un archivo initrd con genkernel:

genkernel initramfs


Esto nos crea un initramfs en nuestro /boot ahora lo renombrados initrd:

 mv /boot/initramfs-genkernel-*  /boot/initrd

Con eso ya podriamos iniciar nuestro sistema,pero no vamos mas aya vamos a instalar Xorg.

2.Primero que nada yo recomiendo hacer pruebas,asi que si nuestro kernel no esta bien de nada nos sirve así que pasa al paso 4 a menos que estes seguro que el kernel servirá sin ningún problema:

Nos metemos en nuestro make.conf y añadimos esto segun tu tarjeta de video:

nano /etc/portage/make.conf

Para todos:

# Para el soporte del ratón, teclado y touchpad SynapticsINPUT_DEVICES="evdev synaptics"

# Para tarjetas nVIDIAVIDEO_CARDS="nouveau"

# Para tarjetas AMD/ATI)VIDEO_CARDS="radeon"

# Para intelVIDEO_CARDS="intel"

Nos aseguramos que este udev en nuestro USE

echo "x11-base/xorg-server udev" >> /etc/portage/package.use


 Compilamos:

emerge xorg-server
Reiniciamos variables de entorno

env-update 
source /etc/profile

Podemos instalar un entorno mínimo para probar con startx


emerge twm xterm 
 3. Instalar nuestro DE

Como dije y he dicho Linux nos deja prácticamente crear un sistema operativo o por lo menos la interfaz grafica maquillarla de una manera brutal,o si no no habria tanto post en Internet de mi escritorio de enero,febrero,abril,etc así que aquí vamos a usar todo ese conocimiento de configuración para ponerle una interaz a este sistema, lo malo es que vamos a hacerlo a texto, a ciegas ya que no hay un lugar que diga clic derecho poner de fondo de pantalla,primero que nada ya tenemos el sistema operativo,ya tenemos el kernel,ya tenemos las X,ya solo falta nuestra interfaz y aplicacciones:

Yo voy a dejarle openbox,cuando pueda le pongo KDE,pero de momento un entorno mínimo esta bien ya que KDE no se que necesito mover para configurarlo,de hecho creo que se tiene que hacer a nivel sources,o sea modificando el código fuente,pero bueno,vamos con openbox:

Pero también nos falta el sonido de alsa:

Nota: Ya debemos tener el kernel listo para esto haya arriba esta la guia:

emerge alsa-utils
Configuramos

alsaconf

Añadimos al inicio a nivel boot

rc-update add alsasound boot

Como dije no quiero nada de KDE o qt asi que antes de todo añado esto a mi USE:

-qt -qt4

Con eso no existe qt para Gentoo,no es que no me guste,pero no lo uso.


Instalamos:


emerge -av openbox


Ahora unos programas:

Nota : Se tarda en instalar,pero podemos hacerlo en dias no tenemos porque hacer esto en un rato,y mientras mas compilemos menos necesitaremos.

tint2

Tutorial

Para poner fondo de pantalla usaremos feh que lo hace desde linea de comandos:

emerge -av feh

Un administrador de archivos: Pacmanfm

emerge -av pacmanfm

Un Navegador : Firefox-Bin

emerge -av firefox-bin

Una terminal: Lxterminal

emerge -av lxterminal

Un login manager: Slim

emerge -av slim 

Lo que se nos ocurra o lo que queramos,de momento dejo solo eso.

Ahora configuramos eso:

Si lo deseamos podemos crear un usuario alterno a root:


useradd -g users -G lp,wheel,audio,cdrom,portage -m nombre_usuario 

Y configuramos su contraseña

passwd nombre_usuario

También instalamos sudo:

emerge -av sudo

Configuramos:

Añadimos wheel al uso de sudo:

sed -i -e 's/# %wheel ALL=(ALL) ALL/%wheel ALL=(ALL) ALL/' /etc/sudoers

Para iniciar slim:

Cambiamos xdm por slim:

sed -i -e 's/DISPLAYMANAGER="xdm"/DISPLAYMANAGER="slim"/'  /etc/conf.d/xdm

Ahora configuramos

nano /etc/slim.conf

Buscamos:

login_cmd           exec /bin/bash -login /usr/share/slim/Xsession %session

Y lo comentamos,ahora descomentamos:

login_cmd           exec /bin/bash -login ~/.xinitrc %session
Para que ejecute lo de nuestro .xinitrc

También le podemos poner un fondo personalizado:

Metemos una imagen a nuestro sistema enjaulado,o varias imagenes (se puede desde el sistema real en modo root) por ejemplo en una careta que se wallpapers y que este en /usr/share/

Ahora borramos el fondo original

/usr/share/slim/themes/default/background.png

Y copiamos uno de nuestras imagenes:

cp /usr/share/wallapers/imagen.png /usr/share/slim/themes/default/background.png

Ahora configuramos nuestro .xinitrc

Para root en mi caso openbox:


echo "exec openbox-session" >> ~/.xinitrc

Para un usuario creado:

echo "exec openbox-session" >> ~nombre_usurio/.xinitrc

chown nombre_usuario ~nombre_usurio/.xinitrc

Y por ultimo configuramos el inicio de openbox:

Para root:

nano ~/.config/openbox/autostart.sh

Para un usuario creado:


nano ~nombre_usuario/.config/openbox/autostart.sh
Cuando terminemos:

chown nombre_usuario ~nombre_usuario/.config/openbox/autostart.sh

Configuracion:


Definimos nuestro idioma:

En mi caso :


setxkbmap latam &

Iniciamos tint2:

tint2 &
Ponemos un fondo de pantalla:

 feh --bg-scale /usr/share/wallapers/imagen.png


 Eso es todo, también podemos instalar conky,un dock,etc,lo que queramos.

Así dejo mi entorno de escritorio,despues le pongo temas de gtk,obmenu,etc,esto solo es una prueba.

Para otros entornos estan en la pagina de Gentoo:

Gnome

LXDE

KDE 

4.Instalar grub y iniciar:

Primero vamos a hacer limpieza para que pese menos nuestra .iso ya que en este momento el directorio que estamos usando debe pesar mas de 2gb,asi que borramos las locales innecesarias:


nano  /etc/locale.nopurge


Yo recomiendo dejar la locale de ingles y nuestra locale,por ejemplo

la-latin1es_MX.UTF-8 UTF-8enen_US.UTF-8

Ya editado ejecutamos:


localepurge && makewhatis -u

También borramos los archivos de extension .keep

find / -xdev -name ".keep" -print -exec rm {} \;
Ahora si instalamos grub

emerge grub
Editamos el menu de configuracion

nano /boot/grub/menu.lst

Y metemos esta configuración,con el nombre que queramos y el tiempo que queramos por ejemplo:

Enlace 
Borramos el enlace simbolico y renombramos grub.conf

Así se puede:

cd /boot/grub/ && cat menu.lst >  grub.conf ; rm menu.lst
 Listo nuestra distribucion.

Salimos

exit
Desmontamos todo,con el script(se mostró en las entradas pasadas)

Nos cambiamos al directorio donde tenemos las sources,el que mencione arriba,por ejemplo:

cd /root/live-gentoo/
Creamos un directorio target


mkdir -p target/files/source
Y copiamos:

rsync --archive --hard-links --quiet source/boot target/

rsync --archive --hard-links source/ target/files/source
Se tarda un rato.

El nombre source fue el que le pusimos en la primera parte de estos tutoriales,puede que le hayan puesto archivos,sources,etc el otro source es que acabamos de crear,no lo renombramos ni nada.

Borramos archivos,para aligerar un poco esto:


rm -rf target/files/source/var/run/*
rm -rf target/files/source/var/tmp/*
rm -rf target/files/source/var/cache/*
rm -rf target/files/source/var/log/*
rm -rf target/files/source/usr/portage
rm -rf target/files/source/etc/portage
rm -rf target/files/source/usr/src
rm -rf target/files/source/root/*
rm -rf target/files/source/tmp/*

Creamos una imagen  squashfs

mksquashfs target/files/source/ target/livecd.squashfs
 Creamos un archivo vacio para que monte los tmp's


 touch target/livecd
Creamos la .iso
mkisofs -no-emul-boot -boot-load-size 4 -boot-info-table -r -b boot/grub/stage2_eltorito -c boot.catalog -o nombre.iso -x files target/
Eso es todo :D

Una .iso de 270.mb

a
Ahora solo la quemamos:

Con brasero y el quemador de discos de Windows 7 no tube problemas con cd's y dvd's muestra todo como debe ser.

Pero con dd para quemar el .iso a un pendrive o memoria externa no me funciono,puede que este mal mi memoria porque no quema ni una .iso de ubuntu que tengo,pero con unetbootin no tube problema al quemar el .iso a un pedrive,eso si no nos muestra nuestro grub no muestra syslinux :(.



Fuentes y referencias:

Creación del .iso y la mayor parte del tutorial:

wiki.cecalc.ula.ve

Configuración de entorno y núcleo

gentoo.org/doc/es/



2 comentarios:

  1. ¡Muchas gracias por enlazarme!! :)

    Genial el post. Es el que más me ha gustado de la serie. Muy completo.

    ResponderBorrar

Los comentarios serán revisados antes de ser publicados.