back

Se volessimo ora ottenere tutti i CONFIG_* relativi ai moduli che abbiamo attualmente implementati nel nostro attuale kernel possiamo passare all'attuale script l'output di lsmod ottenendo qualcosa di simile:

#!/bin/bash
#
# find_all_CONFIG.sh
#
# N.B. per il corretto funzionamento dello script bisogna avere
# un link "linux" in /usr/src che punta alla directory dei sorgenti.
#
for i in $(lsmod | cut -f 1 -d " ")
do
  if [ -z "$(find -L /usr/src/linux -type f -name Makefile | xargs grep -w $i)" ]
  then
	echo "CONFIG: il modulo '$i' non è presente nel kernel, almeno
non con questo nome" else echo "$(find -L /usr/src/linux -type f -name Makefile | xargs grep -w $i)" fi done | grep CONFIG | cut -f 2 -d "(" | cut -f 1 -d ")" | sort -u

sempre con la coscienza che un modulo che è stato implementato nel kernel, ad es. con module-assistant e dunque non presente nei sorgenti, non avrà un'opzione CONFIG_* relativa. Lo script lo segnala, ma è buona cosa riguardare i moduli mancanti (quelli che lo script segnala come "non presenti" nel kernel), in quanto potrebbero essere presenti con un altro nome (v. capitolo "make menuconfig").

Per inserire ora questa configurazione nel file .config del kernel basterà selezionare le opzioni relative nel menu (make menuconfig), aiutandosi con la funzione cerca ("/").

N.B.: questi passaggi sono sicuramente interessanti dal punto di vista tecnico; in ogni caso, come ci si può immaginare è dura inserire a mano i 387 CONFIG trovati con find_all_CONFIG.sh (nel mio caso). Lo script vuole più che altro mostrare come teoricamente ciò sarebbe possibile. Con le configurazioni di base (sia quella dl nostro kernel attuale, che make defconfig) gran parte di questi moduli "essenziali" sono già correttamente inseriti e se tutto funziona, non vi dovrete preoccupare di altro. Se siete alle prime armi è vivamente consigliato non lanciarsi subito a compilazioni impossibili, ma eseguire i punti principali (in sostanza, l'attuale configurazione più i moduli del file system e del controller del disco -> "File System, controller del disco e initrd") cosi da ottenere magari anche un kernel fotocopia dell'attuale, ma compilato da voi. Potrete poi pian piano studiarne i dettagli e scoprire la moltitudine di possibilità per ottimizzare il vostro kernel personale.

Implementare moduli nel kernel non presenti nei sorgenti del kernel Linux

Questi moduli sono ottenibili tramite i repository ufficiali di debian. Sono dei moduli che non sono inclusi di base nel Kernel ma che possono essere aggiunti, per esempio, per utilizzare un tipo particolare di hardware. Sono soliti terminare con il suffisso -source (nei repository).

back