Ver Mensaje Individual
  #3  
Viejo 10/03/16, 14:23:07
Avatar de Pietre.linux
Pietre.linux Pietre.linux no está en línea
Usuario poco activo
Mensajes: 20
 
Fecha de registro: oct 2015
Localización: Madrid
Mensajes: 20
Modelo de smartphone: Nokia N900 With debian
Versión de ROM: GNU-Linux
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Capitulo 2 Toolchain,kernel y módulos

Que es el kernel?

El kernel es el componente mas importante del sistema operativo, es Linux en si mismo, el sistema, el núcleo, como controla la memoria, la cpu, la compatibilidad con dispositivos, todo

El kernel de Linux lo hizo inicialmente Linus torvalds en 1991 que es una copia de unix por supuesto, el sistema se hizo famoso y miles de personas empezaron a contribuir para que aumentase su compatibilidad.

Actualmente la ultima versión estable del kernel es la 4.4.5 publicada el 9 de marzo
Puedes descargarlo desde
https://www.kernel.org

Pero para procesadores allwinner existe un kernel modificado y optimizado de sunxi,

¿que es sunxi?

Pues hasta donde yo se, es un grupo de personas que han hecho posible que exista Linux en procesadores allwinner, todos los recursos, la información la tienen ellos.

Lo primero que tenemos que hacer es instalar las toolchain de compilación cruzada

Las toolchain son un conjunto de archivos binarios, bibliotecas y herramientas que permiten construir (en nuestro caso, mediante una compilación cruzada) el u-boot y el kernel para una plataforma de destino en concreto.

Para instalar las toolchain y las dependencias de compilación del nucleo escribe lo siguiente:

$ sudo apt-get install -y build-essential bin86 git kernel-package libqt4-dev wget libncurses5 libncurses5-dev qt4-dev-tools libqt4-dev zlib1g-dev libssl-dev gcc-arm-linux-gnueabihf

Con esto ya tenemos lo necesario para compilar el kernel de sunxi:

Primero descargamos el código fuente:

$ git clone -b sunxi-3.4 https://github.com/linux-sunxi/linux-sunxi.git
Clonar en «linux-sunxi»...

Esto ocupa como 1,7 Gb, tomaros un café

Una vez se descarga el código fuente tendremos una carpeta llamada linux-sunxi

$ cd linux-sunxi

Ahora si quereis hay que configurar el kernel. cosa que no aconsejo y ahora explico el por que, para abrir el menu de opciones del kernel teclea:

$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- xconfig

esto abre un menú gráfico muy chulico que nos permite añadir o quitar cosas del kernel, podéis toquetear y probar, pero lo mejor es usar una plantilla definida para el procesador de la Woxter PC97, es decir, una plantilla para el procesador A10

Escribir:

$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- sun4i_defconfig

Ahora el código sabe que tiene que compilar para una cpu A10

Y ahora a compilar el núcleo:

$ make -j$(nproc) ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- uImage modules

Con esto tenemos el kernel, en este caso en formato uImage este archivo se ubica en:
linux-sunxi/arch/arm/boot/uImage

4.3Mb de nada Xdd

Ahora toca compilar los modulos, estos son los drivers del nucleo,para compilarlos ejecuta la siguiente orden:

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=output modules_install

Esto genera los modulos a cargar, estos se ubican en el directorio linux-sunxi/output

Con el kernel y los modulos ya tenemos casi todo para montar una SD que ejecute Linux en la Woxter PC97

Siguiente capitulo:Rootfs
Responder Con Cita