El make localmodconfig
comando sigue siendo la herramienta adecuada para el trabajo. De hecho make localmodconfig
correscripts/kconfig/streamline_config.pl
.
Entrada de archivo
Al leer el streamline_config.pl
código fuente (perl), hay una característica no documentada my $lsmod_file = $ENV{'LSMOD'};
que permite la entrada de archivos para la detección del módulo cargado en lugar de la salida del lsmod
comando.
CD en vivo
Porque localmodconfig usa la salida lsmod
para detectar los módulos cargados. Ejecutamos un Ubuntu Live CD en cada una de las diferentes configuraciones de hardware, abrimos un terminal ( Ctrl+ Alt+ T), ejecutamos lsmod
y guardamos su salida.
Salida concatenada
Al concatenar los lsmod
archivos de salida mientras se eliminan las líneas de encabezado consecutivas, puede crear rápidamente un archivo de entrada que cubra todos los módulos del núcleo necesarios. Nos gusta revisar la lista de módulos a mano y usar una receta más manual:
$ cd linux-3.11.0/
o vaya al directorio donde ejecutará su comando make
$ lsmod > lsmod.txt
crea un archivo de texto con sus módulos cargados
$ nano lsmod.txt
abrirá el editor de nano texto, por supuesto, puedes usar tu aplicación de editor favorita
Agregue los módulos deseados que aún no están allí, al final de este archivo (vea por ejemplo el final de esta respuesta) y guárdelo cuando esté listo.
Nota: utilice espacios, no pestañas para que coincidan con las posiciones del tabulador de columna.
$ make LSMOD="lsmod.txt" localmodconfig
esto le dirá a localmodconfig que use su archivo lsmod.txt como entrada para la detección de módulos cargados
Con respecto a Steven Rostedt, el autor de steamline_config.pl, por sugerir una notación más corta en el paso 5.
Ejemplo de qué agregar y no agregar a lsmod.txt (paso 4):
Debido a que la placa principal Intel D33217CK tiene sensores térmicos Intel que nos gustaría leer, agregamos estas líneas:
x86_pkg_temp_thermal 13810 0
intel_powerclamp 14239 0
Pero no queremos ejecutar máquinas virtuales en este hardware, es por eso que omitimos estas líneas:
kvm_intel 128218 0
kvm 364766 1 kvm_intel
Tiene un adaptador Ethernet Gibabit de Apple (Broadcom) conectado a su puerto Thunderbolt, por lo que agregamos:
tg3 152066 0
ptp 18156 1 tg3
pps_core 18546 1 ptp
Creemos que no necesitamos duplicación de volumen, y por lo tanto no agreguemos:
dm_mirror 21715 0
dm_region_hash 15984 1 dm_mirror
dm_log 18072 2 dm_region_hash,dm_mirror
Y tampoco necesitamos salida de gráficos (el texto servirá en un servidor sin cabeza), por lo que no incluimos:
i915 589697 3
i2c_algo_bit 13197 1 i915
drm_kms_helper 46867 1 i915
drm 242354 4 i915,drm_kms_helper
Para otra máquina necesitamos este controlador de ethernet Realtek adicionalmente:
r8169 61434 0
mii 13654 1 r8169