El día 17 de septiembre del 2000 se llevó a cabo otra de las ya tradicionales (?) reuniones del BALUG. En esta reunión el tema a tratar fue: "Booteando" desde cualquier lado con GNU/Linux APACHURRADO (<8Mb) a cargo de Federico Bareilles.
El resultado de la misma fue la instalación de GNU/Linux en una PC que conforma el standard PC-104. Estas son PCs que miden 9,5 por 9,5 cm. En nuestro caso usamos una de Nucleus NE6060 que es una 486 de 75 MHz con bus interno de 64 bits basada en el chip STPC Client que usa un core de Cyrix (adquirida por ST). La NE6060 tiene 8 Mb de memoria y la que usamos estaba equipada con 8 Mb de DOM (Disk On Module). La instalación, que Federico bautizó como milin, solo ocupa 5.6 Mb. Esto es lo que devuelve df:
milin:~# df Filesystem 1024-blocks Used Available Capacity Mounted on /dev/hda1 7582 5674 1908 75% / |
Nota: El texto anterior y otros usados fueron obtenidos logeandose
a la PC-104 que corre milin a través del /dev/ttyS1 (en el ttyS0
está el mouse desde otro GNU/Linux usando minicom.
También queda RAM como para correr algunas aplicaciones:
milin:~# free total used free shared buffers cached Mem: 6560 3568 2992 3320 196 1852 -/+ buffers: 1520 5040 Swap: 0 0 0 |
En el momento en que se tomó esta medición corría:
milin:~# ps ax PID TTY STAT TIME COMMAND 1 ? S 0:02 init [3] 2 ? SW 0:00 (kflushd) 3 ? SW< 0:00 (kswapd) 39 ? S 0:00 /usr/sbin/syslogd 40 ? S 0:00 /usr/sbin/klogd 42 ? S 0:00 /usr/sbin/inetd 44 ? S 0:00 /usr/sbin/crond -l10 50 ? S 0:00 gpm -t ms 51 1 S 0:00 -bash 52 2 S 0:00 /sbin/agetty 38400 tty2 linux 53 3 S 0:00 /sbin/agetty 38400 tty3 linux 66 S1 S 0:00 -bash 78 S1 R 0:00 ps ax |
Milin está basado en una Slackware 3.x y el kernel es:
milin:~# uname -a Linux milin 2.0.36 #1 Fri Sep 8 11:02:32 ART 2000 i486 |
Que fue recompilado para eliminar cosas innecesarias. La instalación es bastante completa e incluye servidor y clientes de telnet así como soporte para PPP. Durante la reunión hicimos telnet desde una PC corriendo Win95 a la PC-104 utilizando como link dos celulares (usando packet data). Federico también se dió el lujo de leer su correo desde la mini PC haciendo telnet a La Plata, nuevamente usando PPP sobre el celular.
Como lujo incluimos gpm y conectamos un mouse.
Milin está disponible en este servidor: milin.tar.gz.
A continuación se explica como se instaló milin en la PC-104:
1) Se usó una PC que ya tenía GNU/Linux instalado. Esto es necesario para crear el disco de booteo.
2) Se descomprimió el .tar.gz que proveemos en un directorio temporal, en este ejemplo: /test.
3) Se copió el kernel al disquete de booteo:
cp /test/boot/zImage /dev/fd0
también se podría haber usado:
dd if=/test/boot/zImage of=/dev/fd0 bs=1k
4) Se le indicó a este kernel que montara el raíz en /dev/hda1:
rdev /dev/fd0 /dev/hda1
Con esto se obtuvo un disquete de GNU/Linux booteable que al levantar montaba su file system en /dev/hda1.
5) Usando fdisk se particionó el disco de 8 Mb con una partición nativa GNU/Linux.
6) Se formateó el disco con ext2:
mke2fs -m 0 -s 0 -r 0
Notar que se tuvo cuidado en no reservar espacio para el root y en hacer el disco compatible con el kernel 2.0.x que se usaría.
7) Se montó el disco.
8) Se descomprimió el .tar.gz en el disco.
9) Un paso, que no es necesario realizar con el .tar.gz que proveemos, pero que podría ser necesario si nosotros armamos nuestra propia distribución y no lo hicimos antes, es armar el archivo /etc/ld.so.cache. En el mismo se guarda una tabla que dice la versión de cada una de las librerías dinámicas que tenemos instaladas y es usado por el código que carga las librerías dinámicas. En nuestro ejemplo sería:
cd /test chroot /test /sbin/ldconfig
10) Se instaló el disco en la PC-104 y se le conectó una disquetera.
11) Se booteó del disquete armado.
12) Se corrió lilo para hacer booteable al disco.
Con esto obtuvimos un GNU/Linux completamente funcional.
Comentarios by: SET
Handmade HTML using SETEDIT