Hace ya varios meses que no meto nada en el blog, tal vez porque no tenia nada que decir, bueno, os cuento mis ultimo avances del pequeño Linux empotrado con microplaca Alix.
Como sabreis, el sistema no lleva disco duro sino que utiliza en su lugar una tarjeta Compact flash, que hace las funciones de disco duro, en mi caso he adquirido una de 8Gb, donde tengo espacio de sobra para poner todo lo que quiera 🙂
La principla desventaja de las memeria flash es que no puede rescribirse de manera indefinida, sino que “solo” pueden sobreescribirse unos miles de veces, segun dicen desde 300.000 hasta varios millones de veces, es por ello que el el sistema, la voyage Linux, monta el disco en modo solo lectura, si bien permite con la simple orden “remountrw” montar con permisos de escritura, y con “remountro” volver a montar solo lectura.
Por ello debemos de pensar que si las apliaciones necesitan escribir en disco vamos a tener que tenerlo en cuenta.
Directorio escribibles en RAM
Como muchas aplicaciones necesitan escribir para funcionar, la voyage Linux, monta un partición en memoria, donde si que se pude escribir, si bien esta limitada por la RAM a unos pocos megas, y ademas no es persistente ya que cuando se reinicie el aparato se perdera toda la información.
El truco que hace es el siguiente, existe una directorio llamado /ro donde esta la información que se copiara en el arranque al directorio “volatil” y escribible el /rw, el scritpt que copia dicho directorio es /etc/init.d/mountall
la ultima linea hace la copia mediante tar , en concreto tar -C /ro -cf - . | tar -C /rw -xf - > /dev/null 2>&1
Y luego desde el sistema de fichero cuando se requiere que un fichero o directorio sea escribible, lo que se hace es un link simbolico al directorio /rw, lo podemos ver por ejemplo en el directorio /var
/var# ls -l
total 28
drwxr-xr-x 2 root root 4096 Jul 3 06:25 backups
drwxr-xr-x 6 root root 4096 Jun 26 16:34 cache
drwxr-xr-x 2 root root 4096 Jun 26 23:20 ccxstream
drwxr-xr-x 14 root root 4096 Jun 28 18:57 lib
drwxrwsr-x 2 root staff 4096 Oct 28 2006 local
lrwxrwxrwx 1 root root 12 Apr 15 00:28 lock -> /rw/var/lock
lrwxrwxrwx 1 root root 11 Apr 15 00:28 log -> /rw/var/log
lrwxrwxrwx 1 root root 12 Apr 15 00:28 mail -> /rw/var/mail
drwxr-xr-x 2 root root 4096 Feb 17 01:22 opt
lrwxrwxrwx 1 root root 11 Apr 15 00:28 run -> /rw/var/run
lrwxrwxrwx 1 root root 13 Apr 15 00:28 spool -> /rw/var/spool
lrwxrwxrwx 1 root root 11 Apr 15 00:28 tmp -> /rw/var/tmp
drwxr-xr-x 3 root root 4096 Jun 30 23:27 www
Como instalar SAMBA
Una de la funciones interesantes que puede desempeñar nuestro pequeño linux empotrado es el de compartir ficheros en la red, así puede compartir directorios de la memoria compact flash, y de dispositivos conectado por USB.
El camino que segui para hacerlo funcionar fue el siguiente:
#remountrw
#apt-get install samba
#remountro
Vale hasta aqui seria todo perfecto, pero el problema es que cuando tiras a arrancar el samba se queja que no puede escribir (o abrir en modo escritura) los fichero que se encuentran en /var/lib/samba, sin embargo si que funciona perfectamente si ejecutas remountrw, así pues debemos de convertir esos fichero en escribibles.
INSTRUCCIONES para hacer un directorio escribible y que funcione samba
0.- Habilitamos la escritura e instalamos samba
#remountrw
apt-get install samba
1.- Copiar el directorio /var/lib/samba a /ro/var/lib/samba
tar -C /var/lib/samba -cf - . | tar -C /ro/var/lib/samba -xf -
2.- Hacer un link de /rw/var/lib/samba a /var/lib/samba
mv /var/lib/samba /var/lib/samba.ori
ln -s /rw/var/lib/samba a /var/lib/samba
3.- Crear un script para reescribir los ficheros si modificamos algo que queremos que persista.
echo "tar -C /rw/var/lib/samba -cf - . | tar -C /ro/var/lib/samba -xf -" >/usr/local/bin/recopysambafiles
chmod +x /usr/local/bin/recopysambafile
4.- Reiniciamos el servidor
reboot
5.-Creamos un usuario para acceder
adduser nasuser
smbpasswd -a nasuser
remountrw
/usr/local/bin/recopysambafile
remountro
/etc/init.d/samba restart
Y probamos, deberia de funcionar 🙂 La proxima entrada será como hacer funcionar el amule, el lector avanzado podra intuir que es basicamente lo mismo pero con los directorio que necesite escribir, y así efectivamente es.