jueves, 24 de marzo de 2011

Chuletillas linuxeras varias

Voy a poner un par de chuletas a modo de recordatorio/ayuda a posibles usuarios que he estado usando estos dias (debian squeeze):


Compilar unos modulos sueltos del kernel. 

Resulta que a veces, quieres habilitar alguna funcion nueva en el kernel que no estaba por defecto o simplemente modificastes el kernel y quieres que coja los cambios.
Por ejemplo en este caso, mi cpu no era capaz de cambiar la frecuencia del procesador dinamicamente segun la carga del sistema, para ello necesitaba modificar el p4-clockmod para que cargara en mi cpu (pentium celeron M). Tras el cambio pertinente (establecer policy->cpuinfo.transition_latency = 10000000):


  1. Agregar los cambios al .config, bien sea con make menuconfig o simplemente con el vim, en el caso de que no estuviera ya cargado el modulo. 
  2. make modules_prepare
  3. make SUBDIR=arch/x86/kernel/cpu/cpufreq/ modules
  4. make SUBDIR=arch/x86/kernel/cpu/cpufreq/ modules_install
Y listo: modprobe p4-clockmod

Tras varias pruebas, le he puesto 800 Mhz de frecuencia minima (1,6Ghz) y me ahorro buena parte de la bateria,ventiladores sin notar ninguna perdida de rendimiento (es lo que tiene usar Linux).

Compilar el kernel

#make menuconfig
#make clean (si es necesario)
#make-kpkg --initrd kernel_image kernel_headers
#dpkg -i ../*.deb (los correspondientes ...)


Desactivar el swap

Tengo 1,5 gigas de ram y no me hace falta tirar de swap practicamente nunca (WindowMaker,mocp,aterm...) y tenia un volumen de 2 gigas de swap. Decidí desactivarlo y quedarme con ese espacio para mis cosas (aparte de desactivarlo directamente en el kernel...).


#swapoff /dev/squeeze/swap
#lvdisplay /dev/squeeze/swap

#lvremove /dev/squeeze/swap
#vi /etc/fstab ...

Y listo 2 gigas mas para repartir para el sistema, aparte de asegurarme que siempre tire de ram.
No olvidarse que para que coja mas de 1Giga de RAM hay que activada la opcion de highram en el kernel (gloriosos 640Kb :D).


Usar el autogroup

Se trata de una funcionalidad que utilizando los cgroups, agrupa por defecto los procesos por tty, haciendo que a nivel de desktop aumente una barbaridad la justicia del reparto del timing en el planificador.Especialmente para gente que usar el ordenador en tarias pesadas. En mi caso ya he compilado el kernel 6 veces (estoy de experimentos) desde que lo uso y es una gozada comprobar como puedes realizar tareas pesadas y seguir usando el sistema como si nada.


Para ello simplemente hay que usar un kernel del 2.6.38 en adelante.


Pasar de ext3 a ext4 un sistema de ficheros

En mi caso está operación la realizé en un filesystem de 250 Gigas al 82%.

Simplemente (importante cada paso...):

#umount /home/datos
#fsck.ext3 -pfv /dev/squeeze/datos
#tune2fs -O extents,uninit_bg,dir_index /dev/squeeze/datos

#fsck.ext4 -yfD /dev/squeeze/datos
#vi /etc/fstab (muy importante el noatime para que se olvide de la fecha de ultimo acceso ...)
 /dev/squeeze/datos /home/datos ext4 defaults,noatime 0 2
#mount /home/datos






Y listo a disfrutar del ext4...
Es importante recalcar que los ficheros antiguos seguiran usando ext3 hasta que no se "actualizen" Se pueden utilizar trucos como usando chattr +e sobre ellos para decirle que usen los extents y con ello se pasen a ext4 pero en mi caso tras hacerlo con unos cuantos miles de fichero me dejó el volumen echo un cristo y tuve que tirar de fsck intensivos, reparando un monton de inconsistencias y preferí dejarlo a medias, los nuevos archivos sin problemas... :D



Ampliar un volumen logico

Esos 2 gigas que me sobraban del swap decidí repartirlos, de momento le puse 1Gigas al volumen root /, con el fin de poder compilar tranquilamente los kernels (procedimiento de memoria).

Para aumentar un volumen, el procedimiento se hace al contrario que para reducirlo por motivos "logicos".
Quiere decir, para aumentarlo primero hay que aumentar el volumen y despues el sistema de ficheros y para reducirlo hay que reducir primero el sistema de ficheros y despues el volumen, es completamente lógico si conoces como funciona un poco  la historia.
Tambien he de decir que para aumentarlo no hace falta desmontar el volumen, siendo necesario este paso para disminuir sin embargo.

Pues bien para aumentarlo basicamente, ver cuanto hay libre en el grupo:

#vgdisplay squeeze:
....
  Free  PE / Size       611 / 2,61 GiB

#df -h /

Tenemos mas de 2 gigas libres en el grupo de volumenes, vamos a darle 1 gigas al volumen /.

#lvresize -L +1G -v squeeze/root

Despues ampliar el FS (no lo vayas a hacer al reves que la lias bien liada ...). Simplemente le decimos que se expanda al tamaño del volumen (tamaño maximo):

#resize2fs -p squeeze/root

#df -h /


Y listo.
Lo dicho, unas chuletillas a modo de recordatorio de como repartir espacio entre volumentes, re/compilar el kernel, activar autoescalado del procesador y pasarse a ext4...



Un saludo!

jueves, 3 de marzo de 2011

Pasando página

Ha decir verdad, tengo varias cosas en el tintero que deberia/podria publicar pero la falta de ganas de escribir pueden con ello.

Se podría decir que he estado estos dos ultimos años aprendiendo ingles casi a tiempo total y la verdad el resultado ha sido espectacular, tanto a nivel personal como profesional.
Hablo con fluidez,calculo que conozco 25k de las 40k palabras (antes andaria por las 8k), entiendo perfectamente "normalmente" y he aprendido muchisimo sobre la cultura anglosajona (EEUU,UK,Australia,Singapur...).

Mi próxima meta, es la realización de un sueño que primeramente exigía aprender ingles.
Desde hace 10 años, que empecé con la informática y con el mundo GNU/Linux, he soñado en poder algun dia entender completamente como funciona un SO, poder explicar con todo lujo de detalles que está realizando el SO e incluso contribuir a nivel mundial parcheando el kernel.
En una palabra, convertirme en un kernel hacker. :)


Y ese es mi nuevo proyecto, para los años venideros. De momento estudiando y mejorando muchos conceptos con muchas ganas.

Entre otras cosas, he aprendido estos ultimos años que es necesario plasmar tus conocimientos/trabajo bajo dominio público con el fin de que las empresas puedan valorarte objetivamente.

Con el fin de ponerme en contacto con el software libre tengo en mente realizar los próximos trabajos:

-Vimperator: Publicar los plugins personales y desarrollar el manejo de varias ventanas por pestaña.
-rt73: Implementar el autosuspendido del driver usb cuando no está en uso y eliminar la race condition que hace que cuelgue el SO cuando se desconecta y conecta fisicamente el adaptador.
-mocp: Soporte para flac y que al guardarse la playlist y falle al leer un tag salta al siguiente track, asi como un comando para realizar esto en cualquier momento, no únicamente al salir.
-Escribir/colaborar/leer constantemente acerca de temas propios de los SO's, kernel tuning y estar al tanto de las novedades dentro del kernel.

Todo esto es posible que lo realize en un blog aparte, únicamente para temas profesionales, pues este es de caracter general e impersonal.


Como dice el dicho:
"Ten cuidado con lo que deseas porque puede que se cumpla".