Descargar y preparar el ultimo kernel
Copiamos el link del ultimo kernel estable (el que esta en el boton amarillo grande que dice "Latest Stable Kernel") desde www.kernel.org y lo descargamos en /usr/src
Se descomprime el kernel
Se crea el link simbolico linux a las fuentes
Se configuran las variables de entorno
-march=native: genera el binario utilizando todo el conjunto de instrucciones del procesador actual, generalmente estos binarios NO funcionan en otro PC. Podemos ver las flags activas por este switch con el comando:
Un ejemplo de que se activa con y sin este switch en un procesador "AMD FX(tm)-4100 Quad-Core Processor":
-O2: optimiza el codigo, gcc activa casi todas las opciones
de optimizacion soportadas manteniendo relativamente estable el balance
espacio - velocidad, esta opcion incrementa el tiempo de compilacion y
el rendimiento del binario
-pipe: acelera la compilacion usando tuberias en vez de archivos temporales
por ultimo se verifican las fuentes:
Configurar el kernel
Comenzamos con una configuracion que sabemos que funciona, la del kernel actual del sistema, la obtenemos mediante el comando:
Ahora se ingresa a la configuracion del kernel mediante alguno de los siguientes comandos:
make menuconfig (ncurses) o make xconfig (QT) o make gconfig (GTK)
Opciones a modificar (obviamente se me deben estar pasando algunas):
Compilacion e instalacion
Preparado y configurado el kernel ahora hay que compilar, se usa el comando:
siendo X = cantidad de nucleos + 1, en el caso del "AMD FX(tm)-4100
Quad-Core Processor" sera 5, aqui es donde dependiendo del PC utilizado
podemos esperar unos minutos o ir a hacer otra cosa.
Una vez terminada la compilacion se instala el kernel mediante el comando:
Una vez terminado esto tenemos el kernel instalado, la imagen initrd creada y grub actualizado
Reducir el initrd (opcional)
Se instala dracut:
y se utiliza para crear un initrd especifico para iniciar el PC
actual con la opcion -H, le pasamos la version del kernel nuevo (aunno
hemos reiniciado) mediante -kver y le decimos que sobreescriba el initrd
actual con --force
A modo de ejemplo dejo mis initrd:
la version pasada con kver se puede ver haciendo "ls /boot"
Reiniciar
Solo resta reiniciar el sistema
Código:
cd /usr/src
aria2c https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.10.tar.xz
Código:
tar xvfJ linux-3.10.tar.xz
Código:
rm linux ln -s linux-3.10 linux
Código:
export CFLAGS="-march=native -O2 -pipe" export CXXFLAGS="$CFLAGS" export COPTFLAGS="$CFLAGS"
Código:
gcc -march=native -E -v - </dev/null 2>&1 | grep cc1
Código:
[open@suse]:~$ gcc -march=native -E -v - </dev/null 2>&1 | grep cc1 /usr/lib64/gcc/x86_64-suse-linux/4.7/cc1 -E -quiet -v - -march=bdver1 -mcx16 -msahf -mno-movbe -maes -mpclmul -mpopcnt -mabm -mlwp -mno-fma -mfma4 -mxop -mno-bmi -mno-bmi2 -mno-tbm -mavx -mno-avx2 -msse4.2 -msse4.1 -mlzcnt -mno-rdrnd -mno-f16c -mno-fsgsbase --param l1-cache-size=16 --param l1-cache-line-size=64 --param l2-cache-size=2048 -mtune=bdver1 [open@suse]:~$ gcc -E -v - </dev/null 2>&1 | grep cc1 /usr/lib64/gcc/x86_64-suse-linux/4.7/cc1 -E -quiet -v - -mtune=generic -march=x86-64 [open@suse]:~$
-pipe: acelera la compilacion usando tuberias en vez de archivos temporales
por ultimo se verifican las fuentes:
Código:
cd linux make mrproper
Comenzamos con una configuracion que sabemos que funciona, la del kernel actual del sistema, la obtenemos mediante el comando:
Código:
zcat /proc/config.gz > .config
make menuconfig (ncurses) o make xconfig (QT) o make gconfig (GTK)
Opciones a modificar (obviamente se me deben estar pasando algunas):
-
General Setup:
- Local version - append to kernel release -> -open
- Kernel compression mode -> bz2
-
Processor type and features:
- Processor family -> Opteron/Athlon64/Hammer/K8 (en mi caso xq tengo un AMD64, Core 2/newer Xeon para intel, Intel Atom obviamente para un atom o Generic-x86-64 si no sabes que poner)
- SMT (Hyperthreading) scheduler support -> deshabilitar si el micro no tiene hyperthreading
- MCE features -> deshabilitar las que no corresponden, en mi caso Intel
- Dell laptop support -> es una laptop Dell? sino desmarcar
- microcode loading support -> = que MCE features
-
Power management and ACPI options:
-
CPU Frequency scaling:
- Default CPUFreq governor -> conservative si es una laptop
-
CPU Frequency scaling:
-
Device Drivers:
-
Graphics support:
- Laptop Hybrid Graphics - GPU switching support -> tengo esto? sino lo deshabilito
- Bootup logo -> hace aparecer un tux por nucleo detectado durante el inicio (como se puede ver en algunos liveCD)
- Driver varios, se pueden quitar los que no tenemos
-
Graphics support:
-
kernel hacking:
- Compile the kernel with debug info -> sacar
- Remote debugging over FireWire early on boot -> sacar
- Remote debugging over FireWire with firewire-ohci -> sacar
- KGDB: kernel debugger -> sacar, a no ser que quieras debuguear el kernel por consola serial con gdb
-
Security options:
- NSA SELinux Support -> shoo con esta cosa
- TOMOYO Linux Support -> sacar
- AppArmor support -> lo uso para Skype, si no lo usas, se puede sacar
Compilacion e instalacion
Preparado y configurado el kernel ahora hay que compilar, se usa el comando:
Código:
make -j X
Una vez terminada la compilacion se instala el kernel mediante el comando:
Código:
make modules_install && make install
Reducir el initrd (opcional)
Se instala dracut:
Código:
zypper in dracut
Código:
dracut -H -kver 3.10.0-open --force
Código:
-rw------- 1 root root 6.5M Jul 2 16:29 initrd-3.10.0-open /* Generado con dracut */ -rw-r--r-- 1 root root 12M Jun 27 17:55 initrd-3.7.10-1.16-desktop /* Generado con mkinitrd */
Reiniciar
Solo resta reiniciar el sistema
Código:
systemctl reboot
FUENTE: http://www.forosuse.org/forosuse/showthread.php?t=30117
Comentarios
Publicar un comentario