Tutoriales Manuales, tutos, recetas, postres, etc

Respuesta
 
Herramientas
  #1  
Viejo 15/07/14, 15:06:02
Array

[xs_avatar]
Josean94 Josean94 no está en línea
Official support TF | Dev
· Votos compra/venta: (2)
 
Fecha de registro: sep 2012
Localización: Perdido..
Mensajes: 1,204
Modelo de smartphone: Xiaomi Mi8SE
Tu operador: Lowi
Post Compila tu primer Kernel [EXPLICADO]

Antes de nada, aegurarse que teneis un distribucion de linux, que sea de 64Bits.
Yo personalmente recomiendo Ubuntu 12.04 o 13.04 y Linux Mint 15 o 14 version Mate.

Estos son los unicos requisitos prioritarios para este tutorial.
Claro esta que a cuanto mejor CPU y mas RAM tengamos mas rapido nos va a compilar.

Bueno empecemos.


Paso 1: Preparar el Terreno
Una vez instalado el S.O basado en Linux tenemos que instalar las siguientes librerias o herraminetas necesarias, por asi decirlo.

Código:
git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev  build-essential zip curl libncurses5-dev zlib1g-dev ia32-libs  lib32z1-dev lib32ncurses5-dev gcc-multilib g++-multilib
Para instalarlas es tan facil como:
-Abrimos un terminal
-Escribimos sudo apt-get install "librerias"
*Substituir "librerias" por las mecionadas anteriormente*

Una vez echo esto procedemos a lo siguiente.

Paso 2: Las Sources

Antes de nada debemos crear una carpeta para trabajar, para ello haremos lo siguiente:
-Abrimos un terminal
-Creamos una carpeta llamada android: mkdir android
-Entramos en ella: cd android
-Creamos una carpeta llamda kernel: mkdir kernel
-Entramos en ella: cd kernel

Una vez dentro, necesitaremos las toolchains para poder compilar, para ello ejecutamos en el terminal:
Código:
- git clone git://github.com/DooMLoRD/android_prebuilt_toolchains.git toolchains
Una vez echo esto, llego la hora de descargar las sources de nuestro Móvil.
Para ello debemos buscarlas en el github correcto o descargarlas desde la pagina web de devs de la marca del móvil.
Aqui hos dejo unas de ellas:
-HTC Dev
-Samsung
-Sony
-LG

Una vez tengamos las sources de nuestro kernel continuamos.

Paso 3: Obtener el Config

Para poder compilar un kernel necesitamos un archivo llamado config, que es que configura los drivers, opciones, etc del kernel.
Para ello debemos hacer lo siguiente:
-Abrimos un terminal
-Nos vamos a la raiz de las sources: cd android/kernel/"tus_sources"
-Conectamos el telefono al ordenador con la depuracion usb activada y ejecutamos en el terminal: adb pull /proc/config.gz
-Ahora lo descomprimos: gunzip config.gz
-Y lo movemos al destino apropiado:
mv config arch/arm/configs/"tu_config_nombre"_defconfig

Una vez echo esto ya tendremos nuetras sources listas para compilar.

Paso 4: Compilando
Antes de nada tenemos que hacer el prebuild exportando las toolchains.
-Abrimos un terminal
-Nos vamos a la raiz de nuestras sources:
Código:
cd android/kernel/"tus_sources"
-Ejecutamos:
Código:
"export ARCH=arm"
-Ejecutamos:
Código:
"export CROSS_COMPILE=~/android/kernel/toolchains/arm-eabi-linaro-4.6.2/bin/arm-eabi-"
Una vez hecho, hay que decirle que configuracion debemos usar, para ello hacemos lo siguiente:
-En el terminal que tenemos abierto ejecutamos:
Código:
"make "TUCONFIGURACIONNOMBRE"_defconfig"
-Seguidamente ejecutamos:
Código:
"make -j*"
*Substituimos * por el numero de nuecleos de nuestra CPU+1, ejemplo: yo compilo con un CPU de 4 nucleos, ejecuto make -j5

Para usuarios mas avanzados, despues de hacer "make "tu_config_nombre"_defconfig" , podemos ejecutar "make menuconfig" para agregar y/o quitar configuraciones del defconfig.

Una vez echo todo esto, solo deberemos esperar a que termine el proceso y obtendremos nuestro zImage.

Para volver a compilar solo tenis que ejecutar: "make clean"
Este paso os limpiara las sources de datos de otra compilacion.
Y volveis a repetir desde el principio del paso 4.


Esto es todo amigos espero que os haya gustado

Créditos:
Foro-Nexus
Asis_92
Josean94
__________________


Si quieres formar parte de la gran familia que somo Lowi, $$$$$$$$$$ y gana 5€ POR LA CARA!

Responder Con Cita
Gracias de parte de:


  #2  
Viejo 15/07/14, 16:46:13
Array

[xs_avatar]
werty100 werty100 no está en línea
Adicto al flaseo
· Votos compra/venta: (8)
 
Fecha de registro: abr 2011
Mensajes: 2,529
Modelo de smartphone: Xiaomi Mi5 Pro
Tu operador: Jazztel
Paso 3: Obtener el Config

Para poder compilar un kernel necesitamos un archivo llamado config, que es que configura los drivers, opciones, etc del kernel.
Para ello debemos hacer lo siguiente:
-Abrimos un terminal
-Nos vamos a la raiz de las sources: cd android/kernel/"tus_sources"
-Conectamos el telefono al ordenador con la depuracion usb activada y ejecutamos en el terminal: adb pull /proc/config.gz
-Ahora lo descomprimos: gunzip config.gz
-Y lo movemos al destino apropiado:
mv config arch/arm/configs/"tu_config_nombre"_defconfig
En Mediatek no funciona no lo he probado en otro SoC
__________________
Responder Con Cita
  #3  
Viejo 30/10/14, 04:48:52
Array

[xs_avatar]
ice.modding ice.modding no está en línea
Miembro del foro
 
Fecha de registro: mar 2012
Localización: San Miguel de Tucumán
Mensajes: 189
Modelo de smartphone: Moto G3 - XT1543
Tu operador: Personal
Y como se crea el boot.img a partir del zImage?
__________________
Mi blog - Blog ArchlinuxLatinoamerica
Grupo de Linuxeros (Telegram)
Responder Con Cita
  #4  
Viejo 30/10/14, 04:49:35
Array

[xs_avatar]
ice.modding ice.modding no está en línea
Miembro del foro
 
Fecha de registro: mar 2012
Localización: San Miguel de Tucumán
Mensajes: 189
Modelo de smartphone: Moto G3 - XT1543
Tu operador: Personal
Y como se crea el boot.img a partir del zImage?
__________________
Mi blog - Blog ArchlinuxLatinoamerica
Grupo de Linuxeros (Telegram)
Responder Con Cita
  #5  
Viejo 16/11/14, 00:39:45
Array

[xs_avatar]
Facesnights Facesnights no está en línea
Usuario poco activo
 
Fecha de registro: mar 2014
Mensajes: 18
Modelo de smartphone: Thl W8 Beyond
Tu operador: Movistar
me quedo estancado aqui :

-Conectamos el telefono al ordenador con la depuracion usb activada y ejecutamos en el terminal: adb pull /proc/config.gz

me dice que el archivo no se encuentra o que no existe.. tengo un thl w8 beyond si me pudiera decir como pasar de ahi , gracias.
Responder Con Cita
  #6  
Viejo 21/11/14, 11:28:21
Array

[xs_avatar]
Facesnights Facesnights no está en línea
Usuario poco activo
 
Fecha de registro: mar 2014
Mensajes: 18
Modelo de smartphone: Thl W8 Beyond
Tu operador: Movistar
Hola bueas a todos necesito ayuda para resolver unos errores que me da al compilar mi kernel para mtk6589t de mi thl w8 beyond he seguido los pasos del tutorial pero me quedo estancado aqui:




Código:
facesnights@facesnights-VirtualBox:~/android/kernel/opensource/home/builder8/S800A/ALPS.KK1.MP5.V1.3_EASTAEON89_WET_KK/alps/kernel$  make -j3
scripts/kconfig/conf --silentoldconfig Kconfig
CHK include/linux/version.h
CHK include/generated/utsrelease.h
make[1]: «include/generated/mach-types.h» está actualizado.
CC arch/arm/kernel/asm-offsets.s
In file included from include/linux/timex.h:174:0,
from include/linux/sched.h:57,
from arch/arm/kernel/asm-offsets.c:13:
/home/facesnights/android/kernel/opensource/home/builder8/S800A/ALPS.KK1.MP5.V1.3_EASTAEON89_WET_KK/alps/kernel/arch/arm/include/asm/timex.h:15:24:  fatal error: mach/timex.h: No such file or directory
compilation terminated.
make[1]: *** [arch/arm/kernel/asm-offsets.s] Error 1
make: *** [prepare0] Error 2
a ver si me podeis ayudar porque por lo que leo ahi es que no encuentra el archivo mach/timex.h y es que veo que el archivo de asm/timex.h tiene esto en su interior:
Código:
/*
* arch/arm/include/asm/timex.h
*
* Copyright © 1997,1998 Russell King
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* Architecture Specific TIME specifications
*/
#ifndef _ASMARM_TIMEX_H
#define _ASMARM_TIMEX_H


#include <mach/timex.h>


typedef unsigned long cycles_t;


static inline cycles_t get_cycles (void)
{
return 0;
}


#endif
Entonces por lo que yo entiendo este archivo timex.h hace referencia a este #include <mach/timex.h> y ese no lo encuentra no? y el otro error que puede ser?






Bueno estos son los pasos que segui y los resultados:


con el archivo projectconfig.mk que lo cambie de nombre a facesnights_defconfig y me da los siguientes errores :


cuando ejecuto este comando me salen todas la lineas asi como estas:


"make facesnights_defconfig"
Código:

arch/arm/configs/facesnights_defconfig:555:warning: unexpected data
arch/arm/configs/facesnights_defconfig:556:warning: unexpected data
arch/arm/configs/facesnights_defconfig:557:warning: unexpected data
arch/arm/configs/facesnights_defconfig:558:warning: unexpected data
#
# configuration written to .config
#
cuando ejecuto este comando me salen todas la lineas asi como estas:


"make -j3"
Código:

facesnights@facesnights-VirtualBox:~/android/kernel/opensource/home/builder8/S800A/ALPS.KK1.MP5.V1.3_EASTAEON89_WET_KK/alps/kernel$  make -j3
scripts/kconfig/conf --silentoldconfig Kconfig
CHK include/linux/version.h
CHK include/generated/utsrelease.h
make[1]: «include/generated/mach-types.h» está actualizado.
CC arch/arm/kernel/asm-offsets.s
In file included from include/linux/timex.h:174:0,
from include/linux/sched.h:57,
from arch/arm/kernel/asm-offsets.c:13:
/home/facesnights/android/kernel/opensource/home/builder8/S800A/ALPS.KK1.MP5.V1.3_EASTAEON89_WET_KK/alps/kernel/arch/arm/include/asm/timex.h:15:24:  fatal error: mach/timex.h: No such file or directory
compilation terminated.
make[1]: *** [arch/arm/kernel/asm-offsets.s] Error 1
make: *** [prepare0] Error 2
cuando ejecuto este comando me salen todas la lineas asi como estas:


"make menuconfig"
Código:
facesnights@facesnights-VirtualBox:~/android/kernel/opensource/home/builder8/S800A/ALPS.KK1.MP5.V1.3_EASTAEON89_WET_KK/alps/kernel$  make menuconfig
HOSTCC scripts/kconfig/lxdialog/checklist.o
HOSTCC scripts/kconfig/lxdialog/inputbox.o
HOSTCC scripts/kconfig/lxdialog/menubox.o
HOSTCC scripts/kconfig/lxdialog/textbox.o
HOSTCC scripts/kconfig/lxdialog/util.o
HOSTCC scripts/kconfig/lxdialog/yesno.o
HOSTCC scripts/kconfig/mconf.o
HOSTLD scripts/kconfig/mconf
scripts/kconfig/mconf Kconfig
Your display is too small to run Menuconfig!
It must be at least 19 lines by 80 columns.
make[1]: *** [menuconfig] Error 1
make: *** [menuconfig] Error 2
podeis ayudarme a seguir?
Responder Con Cita
  #7  
Viejo 13/12/14, 16:23:08
Array

[xs_avatar]
Kraiter Kraiter no está en línea
Usuario novato en la web
 
Fecha de registro: dic 2014
Mensajes: 4
Tu operador: Movistar

Muy buen tutorial,gracias.
Responder Con Cita
  #8  
Viejo 16/12/14, 17:02:32
Array

[xs_avatar]
gabika318 gabika318 no está en línea
Usuario novato en la web
 
Fecha de registro: dic 2014
Mensajes: 4
Modelo de smartphone: UMI X1 PRO
Tu operador: Movistar
great tut!
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > La Cocina de ROMs > Tutoriales



Hora actual: 09:54:11 (GMT +2)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /