|
Tutoriales Manuales, tutos, recetas, postres, etc |
|
Herramientas |
#1
|
||||
|
||||
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 -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 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" Código:
"export ARCH=arm" Código:
"export CROSS_COMPILE=~/android/kernel/toolchains/arm-eabi-linaro-4.6.2/bin/arm-eabi-" -En el terminal que tenemos abierto ejecutamos: Código:
"make "TUCONFIGURACIONNOMBRE"_defconfig" Código:
"make -j*" 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!
|
Gracias de parte de: | ||
|
#2
|
||||
|
||||
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
__________________
|
#3
|
||||
|
||||
Y como se crea el boot.img a partir del zImage?
__________________
|
#4
|
||||
|
||||
Y como se crea el boot.img a partir del zImage?
__________________
|
#5
|
||||
|
||||
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. |
#6
|
||||
|
||||
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 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 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 # "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 "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 |
#7
|
||||
|
||||
Muy buen tutorial,gracias.
|
#8
|
||||
|
||||
great tut!
|
Estás aquí | ||||||
|