Come configurare un kernel Linux basato sui moduli attualmente in uso?


15

Sono disposto a creare un kernel minimale con solo le cose necessarie per la mia macchina; così ho iniziato compilando il kernel da zero, usando la configurazione predefinita e aggiungendo cose che so per certo che ho (cioè: scheda Ethernet, scheda WiFi, ...).

Ma ci sono molte altre cose non così facili da sapere (ad esempio il timer del watchdog), quindi mi sono imbattuto in AutoKernConf che presumibilmente rileva l'hardware della macchina e genera un file di configurazione del kernel con le impostazioni per i dispositivi trovati.

Il problema è che conteneva diverse impostazioni ripetute e anche alcune che non ho (sto usando un laptop Dell e una delle cose che "ha trovato" era una specie di Toshiba).

Così ho finito per costruire un kernel con la configurazione che è venuta fuori dal make allmodconfigcomando, che è un kernel con la maggior parte delle cose compilate come moduli.

Avvio in quel kernel ed esecuzione lsmodposso vedere tutti i moduli del kernel in uso (quelli realmente necessari) e vorrei sapere se esiste uno strumento o un modo per analizzare l'elenco e convertirlo nella corrispondente configurazione del kernel file.

O come mappare ognuno con le opzioni appropriate nel kernel in modo da poterle impostare manualmente.

La ringrazio molto per il vostro tempo.

Risposte:


19

Se stai usando Linux 2.6.32 e versioni successive, potresti voler dare un'occhiata a "localmodconfig" make target. Fa praticamente quello che chiedi: determina quali moduli hai in esecuzione e genera un .config assicurandoti che quei moduli siano costruiti. Il target "localyesconfig" compilerà questi moduli staticamente nel kernel anziché crearli.

Maggiori informazioni disponibili qui: Facile configurazione del kernel locale .


Grazie mille, stavo usando una variante 2.6.33 in modo da poter usare quel bersaglio.
Carla,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.