21
Universidad Nacional de Ingeniería Facultad de Electrotecnia y Computación Arquitectura de sistemas operativos. Proyecto: Compilación y configuración del kernel 3.12.6 en openSuse 13.1 Autores: Paula Navarrete Téllez. José Ernesto Silva Herrera. Kevin Alberto Gaitán Mejía. Docente: Narciso Aguilera Grupo: 4T3-co Fecha: 21 de enero del 2014

Proyecto Arquitectura de Sistema Operativo

Embed Size (px)

DESCRIPTION

Compilar el kernel en opensuse

Citation preview

Page 1: Proyecto Arquitectura de Sistema Operativo

Universidad Nacional de Ingeniería

Facultad de Electrotecnia y Computación

Arquitectura de sistemas operativos.

Proyecto: Compilación y configuración del kernel 3.12.6 en openSuse 13.1

Autores:

Paula Navarrete Téllez.

José Ernesto Silva Herrera.

Kevin Alberto Gaitán Mejía.

Docente: Narciso Aguilera

Grupo: 4T3-co

Fecha: 21 de enero del 2014

Page 2: Proyecto Arquitectura de Sistema Operativo

Objetivo general

Elaborar una guía especifica que ayude a cualquier persona con conocimientos básicos en el computación a la compilación y edición del kernel 3.12.6 en la versión de Linux openSUSE 13.1.

Objetivos específicos.

Modificar el kernel para mostrar un mensaje de bienvenida personalizado en cuanto arranque el sistema.

Modificar de manera personalizada el aspecto visual del S.O openSUSE. Lograr que el S.O sea funcional después de las debidas modificaciones.

Reseña histórica de Open Suse 13.1 versión estable.

SUSE Linux es una de las más conocidas distribuciones Linux existentes a nivel mundial, se basó en sus orígenes en Slackware. Entre las principales virtudes de esta distribución se encuentra el que sea una de las más sencillas de instalar y administrar, ya que cuenta con varios asistentes gráficos para completar diversas tareas en especial por su gran herramienta de instalación y configuración YasT.

Su nombre "SuSE" es el acrónimo, en alemán "Software und System-Entwicklung" (Desarrollo de Sistemas y de Software), el cual formaba parte del nombre original de la compañía y que se podría traducir como "desarrollo de software y sistemas". El nombre actual de la compañía es SuSE Linux, habiendo perdido el primer término su significado.

El 4 de noviembre de 2003, la compañía multinacional estadounidense Novell anunció que iba a comprar SuSE LINUX. La adquisición se llevó a cabo en enero de 2004. En el año 2005, en la LinuxWorld, Novell, anunció la liberación de la distribución SuSE Linux para que la comunidad fuera la encargada del desarrollo de esta distribución, que ahora se denomina openSUSE.

La versión inicial fue una versión beta de SUSE Linux 10.0, y la última versión estable es openSUSE 13.1

openSUSE comparte muchas características con SUSE Linux Enterprise, ofreciendo por ejemplo:

AppArmor: otorga permisos a las aplicaciones en función de cómo se ejecutan e in-teraccionan con el sistema.

YaST: una aplicación que openSUSE utiliza para administrar el sistema e instalar software.

Xen: software de virtualización. KDE y GNOME. Compiz: un escritorio 3D que corre sobre Xgl.

La versión 13.1 fue lanzada el 19 de noviembre de 2013. Entre las novedades más destacadas, se encuentran:

Page 3: Proyecto Arquitectura de Sistema Operativo

Un Kernel Linux de la rama 3.11 con varias mejoras, entre las que destacan, la in-clusión de la Administración de energía dinámica (DPM) para toda las series de tar-jetas AMD Radeon (aunque esta característica no se encuentra activada por defecto, se puede habilitar fácilmente agregando radeon.dpm=1 a la línea del Kernel) y me-joras generales en cuanto a rendimiento con las operaciones de disco, con las que se mejora sobre todo, el rendimiento general en sistemas con alta carga.

Mejoras en el sistema de archivos Btrfs, que si bien aún no ha sido propuesto como el sistema de archivos predeterminado en la instalación, debido a lo conservadora que será esta versión, por fin se considera estable para entornos de producción.

Se incluyen muchas mejoras en YaST, especialmente en rendimiento, debido a que ha sido reescrito totalmente en Ruby.

Se añaden las herramientas para desarrollo GCC 4.8, la última versión de glibc, C11, Intel TSX Lock Elision, SDL2 y Qt 5.1.

Se añade soporte total para las arquitecturas AArch64 o ARM 64-bit, creando inclu-so una distribución completamente nueva para AArch64 y también se han actualiza-do las imágenes para que se puedan construir a partir de un único archivo fuente de KIWI.

Soporte para montar los buckets de Amazon S3 como un sistema de archivo local. Se añade Samba 4.1 el cuál mejora notablemente la interacción con sistemas de do-

minios Windows. Añadidas las últimas versiones de Apache, PHP y MariaDB. En cuanto a entornos de escritorio, todos han sido debidamente actualizados a las

versiones más estables recientes a la fecha, como un KDE actualizado a la rama 4.11 que será de largo soporte, GNOME3 actualizado a la versión 3.10 con impor-tantes mejoras en general y más actualizaciones para el resto de entornos como Xfce, LXDE, E17, awesome, entre otros.

Asimismo se incluyen versiones actualizadas de toda la paquetería en general, entre las más populares se encuentran LibreOffice 4.1, Gimp 2.8.6, Firefox 24, Thunder-bird 24, entre muchas otras que luego se pueden fácilmente actualizar y/o cambiar.

Herramientas

Yast

YaST (acrónimo de Yet another Setup Tool, cuya traducción aproximada es "Otra Herramienta de configuración más”  es una aplicación para la distribución de Linux openSUSE, así como las versiones comerciales de SUSE Linux, que facilita la administración del sistema y la instalación de software. 

Zypper

zypper es una utilidad de línea de comandos fácil de usar, que se basa en una librería para la gestión de paquetes llamada libzypp. Entre otras cosas zypper permite gestionar los repositorios, localizar, instalar, eliminar o actualizar paquetes y puede ser usado de forma autónoma o desde scripts.

Compilación e instalación kernel 3.12.6 en opensuse 13.1

Page 4: Proyecto Arquitectura de Sistema Operativo

Obtener las fuentes del kernel

Copiamos el link del ultimo kernel estable (el que esta en el boton amarillo grande que dice "Latest Stable Kernel en este caso el 3.12.6") desde www.kernel.org y lo descargamos en /usr/src

cd /usr/src

sudo wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.12.6.tar.xz

Instalar las herramientas necesarias para la compilación

/**/sudo zypper install ncurses-devel

/*librerias qt4 para xconfig*/sudo zypper install libqt4-devel

/*compilador de C*/sudo zypper install gcc

/**/sudo zypper install xhost

/*sirve para crear el paquete de instalacion rpm del kernel*/sudo zypper install rpm-build

Page 5: Proyecto Arquitectura de Sistema Operativo
Page 6: Proyecto Arquitectura de Sistema Operativo
Page 7: Proyecto Arquitectura de Sistema Operativo

Descomprimir las fuentes del kernel en /usr/src/

sudo tar -Jxvf linux-3.12.6.tar.xz -C /usr/src/

Modificación del main.c

En primera instancia tomamos en cuenta este archivo ya que fue una de las recomendaciones del profesor y al realizar las respectivas modificaciones tuvimos éxito a la hora de mostrar el mensaje.

En consola nos dirigimos a la ubicación de main.c y lo abrimos con nano como super usuario.

cd /usr/src/Linux-3.12.6/init/

sudo nano main.c

Creamos una función mensaje_pantalla que mostrara un mensaje personalizado de bienvenida al arrancar. Mandaremos a mostrar el mensaje con pr_alert antes de la función “asmlinkage void __init start_kernel(void)”

Page 8: Proyecto Arquitectura de Sistema Operativo

Mandamos a llamar la función antes de la función “load_default_modules” que se encuentra localizada al final del archivo “main.c” y la razón de esto es que después de varios test de “prueba/error” era el único lugar donde se imprimia y funcionaba la función mdelay la cual es la que permitia apreciar el mensaje por 25 segundos.

Ahora editamos el archivo Makefile para agregarle extraversion

cd /usr/src/Linux-3.12.6/sudo nano Makefile

EXTRAVERSION = _proyecto

Page 9: Proyecto Arquitectura de Sistema Operativo

Configurar el kernel

Antes de seguir tenemos que estar seguros de que estamos en la dirección: “/usr/src/Linux-3.12.6/”

Si es la primera vez no es necesario ejecutar este comando, lo que hace es limpiar los archivos .o y otros archivos temporales.

sudo make mrproper

Lo que haremos es copiar la configuración de nuestro kernel actual(2.11.6) al kernel que vamos a compilar (3.12.6)

sudo cp /boot/config-`uname -r` .config

Compilacion del kernel por rpm.

sudo make rpm

si pregunta configuraciones “NEW” a todas les damos que no “n”, estas son configuraciones que nuevas del kernel

Page 10: Proyecto Arquitectura de Sistema Operativo
Page 11: Proyecto Arquitectura de Sistema Operativo

Instalar el kernel compilado.

cd /usr/src/packages/RPMS/x86_64/lssudo rpm -ivh kernel-3.12.6-proyecto_4_desktop-5.x86_64.rpm

Crear la imagen (initrd) para el nuevo kernel y ajustar grub para que la encuentre.

El grub es un gestor de arranque múltiple, desarrollado por el proyecto GNU que se usa comúnmente para iniciar uno, dos o más sistemas operativos instalados en un mismo equipo. Ejecutamos el comando mkinitrd para que el grub encuentre el sistema instalado con el nuevo kernel instalado y modificado.

Ingresamos como root

mkinitrd -- crear la imagen del kernel para poder iniciarlo

nano /boot/grub2/grub.cfg –- agregar printk.time=0 para deshabilitar timestamps de los printk

Page 12: Proyecto Arquitectura de Sistema Operativo

Pasos para cambiar imagen de fondo splash e inicio de sesión

La imagen que cambiares es la siguiente:

El splash es la imagen que aparece mientras el sistema está cargando.

1) Escoger que imagen se desea poner y editarla en 4 diferentes resoluciones 1280x1024 1600x1200 1920x1080 1920x1200

2) Después de una larga indagación entontramos en el foro de openSUSE que esta era la dirección para copiar las nuevas imágenes.

“http://forums.opensuse.org/showthread.php/479517-Splash-Screen”

Copiar la nueva imagen en cada carpeta según su resolución en /usr/share/wallpapers/openSUSEdefault/contents/images/

sudo cp /home/ernesto/Desktop/fondo.jpg /usr/share/wallpapers/openSUSEdefault/contents/images/1920x1200.jpg

Page 13: Proyecto Arquitectura de Sistema Operativo

3) Movernos al directorio donde está la imagen en cache y la eliminamos desde consolasudo rm /home/proyecto_aso/.kde4/cache-linuxkevin.site/ksplashx/ksplashx-suse-1366x768-backgroud.jpg

Page 14: Proyecto Arquitectura de Sistema Operativo

4) Reiniciar para ver los cambios

Pasos para cambiar el icono del lanzador de aplicaciones

“El lanzador de aplicaciones Es una herramienta que contiene todos los programas instalados en el sistema divididos por categorías y permite su ejecución inmediata”

1) Click derecho sobre el icono de opensuse y damos click en preferencias del lanzador de aplicaciones.

Page 15: Proyecto Arquitectura de Sistema Operativo

2) Damos click en el icono, seleccionamos “Otros iconos” y después en el botón examinar el cual nos abrirá un cuadro de dialogo donde buscaremos el icono (128x128) en formato PNG que deseamos poner y le damos en aceptar.

3) Damos click en aceptar

Pasos para cambiar el splash de inicio

1) Escoger que imagen se desea poner como fondo y logo, editarla en 4 diferentes resoluciones

1280x1024

Page 16: Proyecto Arquitectura de Sistema Operativo

1600x1200 1920x1080 1920x1200

2) Ir al directorio /usr/share/plymouth/themes/openSUSE/ y sustituir las 8 imágenes PNG, 4 de fondo y 4 de logo.

3) Ejecutar el comando mkinitrd como root

Page 17: Proyecto Arquitectura de Sistema Operativo

4) Reiniciar la computadora

Page 18: Proyecto Arquitectura de Sistema Operativo

Tips/Sugerencias

Si desea hacer una configuración hay varias formas de hacerlo make menuconfig MENU BASADO EN TEXTO Y DIALOGOS DE COLORES

xhost +

sudo make xconfig –--realiza algo y da error por hacerlo en modo root

make xconfig GRAFICO (QT) PARA KDE