######################################################################## # Comppilazione del kernel NEW_KERNEL # d0t 20 11 04 # Per commenti, parolacce e quant'altro: 3v3rt3x@gmail.com ######################################################################## Il seguente documento si propone semplicemente di definire dei passi semplici per la compiplazione del kernel di OpenBSD. Ovviamente i file di configurazione dovranno essere analizzati e definiti in relazione all'uso che si deve fare dell'host su cui OBSD girera'; leggere la documentazione (ottima!) sul web per ulteriori approfondimenti. Per la stesura di questo "how-to" si e' usata una macchina: CPU - Intel i386 [Celeron 1200Mhz] RAM - 256 MBytes HD - 20 GBytes KBD - Italiana SchedaVideo - Intel 8xx Chipset Video BI Monitor - IBM 15/17 pollici la procedura funziona (poiche' testata) anche su macchine "sparc64". Il kernel si comporra' di dua parti ognuna data da un relativo file di configurazione: -> Configurazione INdipendente dalla piattaforma "/usr/src/sys/conf/GENERIC" -> Configurazione DIpendente dalla piattaforma "/usr/src/sys/arch/i386/conf/GENERIC" "/usr/src/sys/arch/sparc64/conf/GENERIC" "/usr/src/sys/arch/macppc/conf/GENERIC" pertanto per continuare definiamo una convenzione per cui: # PLATFORM_dir = /usr/src/sys/arch/i386/conf -Directory che contiene i file di configurazione dipendenti dalla piattaforma # CONFIGURATION_dir = /usr/src/sys/conf -Directory che contiene i file di configurazione NON dipendenti dalla piattaforma # OUTPUT_dir = /user/src/sys/arch/i386/compile/ -Directory che conterra il nostro kernel compilato # SOURCES_dir = /usr/src/sys -Directory con i sorgenti del sistema Inseriamo le variabili sopra definite nel nostro "~/.bash_profile" #-----------------------------------------# # Variabili per compilazione kernel #-----------------------------------------# PLATFORM_dir = /usr/src/sys/arch/i386/conf CONFIGURATION_dir = /usr/src/sys/conf OUTPUT_dir = /usr/src/sys/arch/i386/compile/ SOURCES_dir = /usr/src/sys #-----------------------------------------# # Fine variabili per compilazione kernel #-----------------------------------------# diamo quindi un: # source ~/.bash_profile quindi, agiamo: # cd $PLATFORM_dir il file di kernel possiamo chiamarlo come vogliamo, certamente manteniamo una minima coerenza: # cp GENERIC NEW_KERNEL.i386 # vi NEW_KERNEL.i386 ^ |-> Qui facciamo le modifiche per cio' che concerne la | piattaforma hardware | |-> ***ATTENZIONE*** | ------------------------- | Ricordasi di modificare il path all'interno della riga | include "../../../conf/GENERIC" | | sostituendola con quella corretta | include "../../../conf/NEW_KERNEL" # cd $CONFIGURATION_dir # cp GENERIC NEW_KERNEL # vi NEW_KERNEL ^ |-> Qui facciamo le modifiche per cio' che concerne le funzionalita' del kernel Per disabilitare una funzionalita' del kernel, poniamo un "#" davanti alla riga che definisce la funzionalita' stessa. Per abilitare, ovviamente, rimuoviamo dalla riga della funzionalita' oggetto, il "#". ######################################################################## # Compilazione del kernel NEW_KERNEL ######################################################################## Per compilare il nuovo kernel eseguiamo i seguenti passi: Creiamo la directory che conterra' il nuovo kernel # mkdir $OUTPUT_dir Andiamo nella directory con il kernel pltform-dependent # cd $PLATFORM_dir Configuriamo i vari file del kernel tra loro per verificare eventuali errori di scelta dei moduli # config -s $SOURCES_dir -b $OUTPUT_dir NEW_KERNEL.386 Andiamo nella directory dove abbiamo messo il nuovo kernel # cd $OUTPUT_dir Compiliamolo # make clean && make depend # make Bene! Creiamo una directory che contenga tutte le immagini che ci possono essere utili e che all'uopo possiamo utilizzare semplicemente con un reboot. # cd / # mkdir /my_kernels # mv bsd /my_kernels/bsd.org # mv $OUTPUT_dir/bsd /my_kernels/bsd.new # ln -sf my_kernels/bsd.new ./bsd OK!, pronti per il tripudio intenstinale ??? # reboot se tutto ok --> GOOD !! se tutto nok --> boot> /my_kernels/bsd.org