jueves, 30 de mayo de 2013

Usando make localmodconfig en Debian

Algo que he venido haciendo a través del tiempo usando linux es compilar el kernel, aquí en debian lo hacia a pie (sin crear los .deb) y usaba "make xconfig" para configurar el kernel más fácilmente.

Pero un poco antes de la versión 3 del kernel cambió el modo en que venía funcionando la compilación del kernel de esta manera (a pie).

Usando "make xconfig" deshabilitaba muchas cosas que no utilizaba en el kernel, más sin embargo todavía quedaban muchas otras que no tenía idea y las dejaba tal cual, además que xconfig se vale de las librerías de QT para funcionar, anteriormente no eran muchas las dependencias (qt3) pero ahora son muchas más (qt4) por lo que dejó también de ser una opción.

Esto me llevó a crear los paquetes .deb (que en realidad es más fácil que hacerlo a pie xD) y cambiar xconfig por gconfig que utiliza las librerías de GTK y tiene muchas menos dependencias (hasta ahora).

Con esto me animé a probar el comando "make localmodconfig" que ya lo había visto desde hace tiempo, pero nunca me había atrevido a usar.

Información sobre como funciona este comando se puede encontrar en Internet, con ejemplos y explicaciones (sobre todo en ingles), pero para comentar brevemente más o menos lo que hace es detectar que módulos tenemos cargados en el sistema y habilitarlos en el kernel (archivo .config) prácticamente todo lo demás que no sea necesario queda deshabilitado.

En el primer intento casi todo funcionaba, no podía montar el pendrive (usb) ni montar la partición de windows o montar una carpeta a través de samba, y os-prober tampoco funcionaba, tomé la previsión con la parte del usb pero obvio me falto algo, había leído que el comando deshabilitaba el soporte usb, me fije que no, lo que deshabilita es el HID por esta razón no funciona, pero yo lo activé, al igual que active el soporte para los archivos de windows vfat y ntfs, pero quedo faltando algo.

Para solucionar esto leí que había que montar un pendrive a la hora de ejecutar el comando "make localmodconfig" (tiene sentido ya que con esto se cargan los módulos necesarios) pero probé de nuevo habilitando en el kernel FUSE y de esta manera funciono el usb y podía montar la partición de windows más no montaba la carpeta a través de samba.

Así que me fui a lo seguro, desde el kernel de debian monte un pendrive, monte windows y monte samba, con esto vi las diferencias de la configuración, lo que me quedo faltando fue CIFS, que al activarlo todo funciono de nuevo.

La razón por la que comento todo lo anterior es que al correr el comando pueden quedar muchas cosas sin funcionar, como ven hay que cargar los módulos para que estos queden activos, entonces hay que estar pendiente de que estos módulos que comenté estén activados en el kernel, así como cualquier otro modulo que se necesite.

Sin más todo quedaría así:

1.- make localmodconfig

2.- make gconfig

3.- make-kpkg clean && make-kpkg --initrd kernel_image kernel_headers

En el paso 1 corremos el comando con lo que necesitemos ya montado, pendrive, samba etc.

En el paso 2 hacemos los ajustes que deseemos y activamos los que nos pueda quedar faltando, como el soporte vfat y ntfs.

En el paso 3 creamos los paquetes .deb.

Bueno ya con esto deberíamos de tener un kernel solo con lo que necesitamos :)

No hay comentarios: