martes, 5 de febrero de 2008

EMPEZANDO SYSTEMA LFS

ULTIMA MODIFICACION 19-MARZO-2008


Bueno chicos, vamos a empezar por una de las cosas por las que tengo mas ilusion, nuestro propio systema linux, adaptado a billy

En estos momentos, BILLY va por buen camino, tengo instalado el sistema base, con las X instaladas, y los programas provisionales de billy (pruebabilly, X11vnc y sacar) ya instalados, A parte tambien ya esta instalado el programa camstream, que es el que me dejara ver lo que ve billy cuando se mueva

En este punto billy utiliza 120 Mb de memoria de programa mas los 300 Mb por pasar el arbol a memoria

Voy a explicar que pasos mas o menos siguiendo

Vas la la pagina del proyecto LFS (teclea en google mientras pongo el enlace)
practicamente si sigues los pasos, no vas a tener problemas, eso si si eres novato en linux, mejor que no lo intentes, hasta que aprendas a desenvolverte en la consola

te lees de la pagina del proyecto BLFS, el tema de los PATH y similares, luego instalas las X(del proyecto BLFS) (xfree, que pide menos instalacion)

No hace falta ni administrador de ventanas, XFree ya lleva uno, (cosa que no sabia, es menos estetico, pero para billy va bien)

Luego ir quitando poco a poco, lo que no sea necesario (normalmente donde mas abultado es el directorio es en /usr/

Actualmente estamos en 350MB y 22 segundos de arranque desde el cargador (desde disco duro), contando el tiempo de pasar imagen a memoria y arrancar X, x11vnc y el programa de control de billy. !Rapido !, esto es en un ordenador normal, Ahora ya estoy en una fase mas avanzada, y ya arranco directamente en un disco duro conectado a la placa base definitiva, Aqui los tiempos se an quedado (por ahora en unos 70 segundos), por lo que me he dado cuenta, la mayoria depende a la memoria, que es lenta

Se va a tener que cambiar el sistema de arranque desde pendrive, ya que estas placas tienen un problema con el arranque USB, que es muy lento, se va a probar a poner un adaptador IDE a FLASH, a ver que tal va

CREANDO BILLY:
Para evitar problemas, estoy haciendo lo siguiente. estoy pasando todos los archivo que quito, a un archivo de imagen de unos 800 MB, el cual monto en /eliminados, dentro del cual tengo los directorios igual que el sistema base, lo que son directorios que no quiero, los enlazo a esta imagen, los que son archivos de locale, o cosas similares, simplemente los paso sin eliminar, al mismo directorio donde estava, pero en la imagen

cada vez que hago algun cambio que yo creo inportante, reinicio sin la imagen montada y veo si va bien, si no la monto y todo vuelve a funcionar


ACCIONES:

Como crear imagen
1º: dd if=/dev/zero of=billy.img bs=1k count=800000
En pocas palabras le he dicho que cree un archivo de imagen de unos 800000 bytes con el nombre de billy.img. (bs=1k:los bloques creados son de 1k) (count=800000:crea 800000 bloques)
2º: mke2fs -m0 billy.img. En este punto te dice que no es un sistema normal de bloques y te pide continuar, tu le dices que si
3º mount -o loop billy.img /eliminados : Le dices que monte la imagen en el directorio eliinados


Esto tambien se utilza para crear la imagen de billy cuando en el arranque la pasas a memoria.Para hacer esto necesitas

Despues de haber eliminado lo que quieres, debes de saber que tamaño mas o menos se va a quedar tu arbol (lo haces desde otro SO o liveCD), debes de darte cuenta, que no debes contarlo con /proc montado, porque te dara una mala informacion ya que es un directorio virtual que apunta al sistema y abulta bastante

Sigues los pasos 1, 2 y 3 igual, pero a la imagen le das otro nombre,y la creas con un tamaño mas o menos mas grande al que has calculado, lo unico que te puede pasar es que te quedes corto y no te quepa

luego comprimes la imagen con gzip -9c billy.img > billy.img.gz : la opcion de -9c le indica que comprima lo maximo (puedes utilizar la 1c que es mas rapida) el ">" le indica que pase la compresion a billy.img.gz


ARRANCAR EL SYSTEMA EN MEMORIA

Por el momento solo se arrancarlo, una vez que el systema ya arrancado, antes de las X. Yo lo que he hecho es una vez acaba con rc5.d (nivel de ejecuion con X), en el ultimo script le añadi uno mio, con esto

#!/bin/bash
mke2fs -m 0 /dev/ram0   Esto formatea la memoria con un sistema de ficheros ext3
gzip -dc billy.img.gz > /dev/ram0
mount /dev/ram0 /billy (/billy es un directorio para montar solo)
chroot /billy /usr/bin/arranque (con esto le dices que pase al arbol que hay en /billy y que ejecute /usr/bin/arranque

El script arranque una de las cosas que tiene son algunos PATHS necesarios, mas la orden de montar /proc, que para algunas cosas es necesario, y de arrancar X luego vere si realmente hace falta

por ahora es lo que he averiguado, si alguien tiene alguna sugerencia o alguna pega con lo aqui escrito que me envie algun e-mail y le contestare

lunes, 4 de febrero de 2008

Comandos utiles para creacion y mantenimiento

En esta seccion voy a poner ciertos comando utiles en la creacion de un sistema lfs o para gestionar el que esta creado

fuser -u /boot :Devuelve los procesos que estan utilizando boot, y si a parte usas
fuser -km /boot :Mata los procesos que utiliza ese directorio
fdisk -l :Muestra todos los dispositivos de almacenamiento que detecta el kernel
who :Muestra los usuarios conectados
psaux, pstree, top, :Muestra los procesos ejecutados con el usuario en curso
sleep (X) :Pausa de (X) segundos en ejecutar un comando
du -s /(directorio) :Muestra en consola el total de bytes utilizados en ese directorio
df :Muestra los dispositivos montados, y los directorios donde estan montados
set, env, :Muestra las variables de entorno definidas
cat /proc/version :Muestra el nucleo y version de gcc utilizados
cat /proc/filesystem :Muestra los tipos de sistemas de archivos soportados
sync :Vacia el bufer actual (va bien cuando trabajas con dispositivos usb)
export PS1='\w \u ' : pone el prompt de shell,con el directorio actual
ls -l : lista los archivos de un directorio, con la informacion añadida de donde apunta los enlaces simbolicos, o duros
more (archivo) : es igual que el cat, pero lo deja ver poco a pòco si el archivo es grande
stty 12900 modifica la velocidad del puerto serie
mount -w -o remount (direCtorio) : remonta como de lectura escritura, un directorio que era de solo lectura