Kernels/Compilation/Script (Italiano)
NUOVO ed altro ancora in arrivo: è disponibile uno script bash testato a fondo che automatizza l'intero processo di compilazione manuale elencato di seguito e che incoraggia la filosofia "bleeding edge" quando si tratta dell'ultimo kernel Linux. Questo script permette di usare makepkg con un metodo alternativo, facile e sicuro. Include un'opzione facile da usare per patchare un rilascio MAINLINE(RC) del Kernel. Test recenti del kernel mainline con patch linux-3.1-rc3-git1 (24 Agosto 2011) dimostrano la riuscita della compilazione e dell'installazione. (uname -a: Linux Galicja 3.1.0-rc3-git1-ARCHMOD #1 PREEMPT Wed Aug 24 03:08:37 CEST 2011 x86_64 Genuine Intel(R) CPU 575 @ 2.00GHz GenuineIntel GNU/Linux
).
Procedure:
- Scaricare lo script (vedere link dopo Procedure).
- Prima di aprire o eseguire inizialmente il file
linux_kernel.sh
, accedere a root (#) ed usare chmod per dare i permessi di esecuzione appropriati (755):
# chmod 755 linux_kernel.sh
- Scaricare i sorgenti del kernel stabile, mainline (rc) e gli snapshot (git/patch) dal sito del Kernel Linux ponendo i file nella cartella opportuna (
/usr/src
).
- Aprire
linux_kernel.sh
ed inserire con attenzione di soltanto 5 variabili che sono richieste per eseguire lo script, quindi salvare il file (Vedere esempi di area input dopo Procedure).
- Una volta inseriti i valori e scaricati i sorgenti, eseguire lo script da root (#):
# ./linux_kernel.sh
- Durante l'esecuzione saranno necessarie una o due pause in cui si richiede un breve intervento dell'utente, le quali si verificheranno all'inizio (primo minuto). L'attuale fiel
.config
del kernel verrà estratto e copiato da/proc/config.gz
alla cartella del nuovo kernel, 'menuconfig' sarà invocato automaticamente e il valore CONFIG_LOCALVERSION in.config
sarà riutilizzato. Si tenga presente che questo script non sovrascriverà o eliminerà mai alcun file originale (solo soft-link) senza prima avvertire o terminare automaticamente. Ci sono diversi controlli e verifiche presenti in esso per garantire un'esecuzione sicura. Lo script funziona MOLTO bene, quindi, buon divertimento!
Scaricare lo scipt
linux_kernel.sh su Google Docs (ultimo aggiornamento: Mercoledì 24 Agosto 2011, 10:53 CET)
Esempio di input area dello script BASH linux_kernel.sh per le 5 variabili richieste:
#========================================================================== # Enter 5 Kernel Variable Values Here (You MUST fill in ALL values after "="): # Directory Name holding "mainline", "stable" and/or "snapshot"(patch) source files from kernel.org # Must end with "/" kern_src_dir=/usr/src/ # File Name of "mainline" or "stable" Linux Kernel (Must be downloaded and reside in the "kern_src_dir" (/usr/src/) kern_file_name=linux-3.1-rc3.tar.bz2 # Is a Patch file involved? YES or NO (Must be CAPITALIZED Letters) patch=YES # If patch=YES, File Name of "snapshot" patch (Ex. patch-2.6.37-rc1-git12.bz2) residing in "kern_src_dir" (/usr/src/) # If patch=NO, then this value does NOT matter. If you wish, enter NONE (patch=NONE) patch_file_name=patch-3.1-rc3-git1.bz2 # To build the kernel in a multithreaded (faster) way, the -j option is used with the 'make' program # It is BEST to give a number to the -j option that corresponds to TWICE the number of processors in the system # ( Ex. Machine with 1 processor: jval=2, Machine with 2 processors: jval=4, etc.) # To disable this option, enter the value zero ("0"): ( Ex. jval=0 ) jval=0 #==========================================================================
Esempio di output al termine dello script:
*Summary of Changes - File(s) Created and/or Deleted* 8 File(s) Created: /usr/src/linux-3.1-rc3-git1-KNL/ /boot/vmlinuz-3.1-rc3-git1-ARCHMOD /boot/kernel30-3.1-rc3-git1-ARCHMOD.img /lib/modules/3.1.0-rc3-git1-ARCHMOD/ /usr/src/linux /usr/src/linux-3.0 /boot/System.map-3.1-rc3-git1 /boot/System.map 3 File(s) Deleted: /boot/System.map /usr/src/linux /usr/src/linux-3.0 *SUCCESS - Main Processes COMPLETE* *NVIDIA users, please make additional NECESSARY adjustments* *Please Configure /boot/grub/menu.lst accordingly and you are done. Then REBOOT & TEST!*