ROMs y desarrollo Xiaomi MI3 ROMs y desarrollo Xiaomi MI3

Respuesta
 
Herramientas
  #1  
Viejo 01/04/15, 10:13:54
Array

[xs_avatar]
alexret
Usuario invitado
 
Mensajes: n/a

Como compilar un kernel

Requisitos
  • Linux 64Bits (Recomendado Ubuntu o Linux Mint)
  • Hardware decente
  • Internet
  • Ganas de aprender

Abrimos un terminal y copiamos y pegamos
Código:
sudo apt-get install gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev x11proto-core-dev libx11-dev lib32readline-gplv2-dev lib32z-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc
Creamos una carpeta para guardar el código
Código:
mkdir kernel
cd kernel
Ahora descargaremos el código
 Cita:
Una vez lo hayamos descomprimido en la carpeta que anteriormente hemos creado (kernel) abrimos el terminal y nos dirigimos a la carpeta y descargaremos el toolchain (herramienta de compilación)
Código:
cd kernel
git clone https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.X (Sustituimos la X por 6, 7 (recomendado), 8
Cuando haya terminado tendremos todo listo para compilar.
Empecemos a compilar.
Abrimos el terminal y escribimos lo siguiente
Código:
export ARCH=arm
export SUBARCH=arm
export CROSS_COMPILE=arm-eabiX(el que hayamos descargado antes)/bin/arm-eabi-
make clean 
make cancro_user_defconfig 
Si todo ha ido bien no dará ningún error
make
Y con esto empezará a compilar. Si da errores habrá que ir corrigiéndolos, si compila sin problemas pasamos a lo siguiente.

Última edición por alexret Día 16/04/15 a las 15:03:58.
Responder Con Cita
Los siguientes 17 usuarios han agradecido a su comentario:
[ Mostrar/Ocultar listado de agradecimientos ]


  #2  
Viejo 01/04/15, 10:14:27
Array

[xs_avatar]
alexret
Usuario invitado
 
Mensajes: n/a

CREACIÓN BOOT.IMG

Una vez que tengamos el zImage (está en arch/arm/boot )nos descargamos las mkbootin tools https://github.com/xiaolu/mkbootimg_tools
Las descomprimimos y cogemos un boot.img* de una rom Miui (solo he probado con esta rom) y lo metemos en la carpeta de las mkbooting_tools.

*NOTA: boot.img = kernel

Abrimos un terminal y hacemos lo siguiente.

 Cita:
./mkboot boot.img kernel

El kernel es la carpeta donde se van a descomprimir los archivos del boot.img.

Bien, si todo ha salido bien nos saldrá algo como esto
 Cita:
Unpack & decompress boot.img to kernel
kernel : /home/xiaolu/work/initramfs/s4/e330s/kernel/zImage
ramdisk : /home/xiaolu/work/initramfs/s4/e330s/kernel/ramdisk.gz
page_size : 2048
base_addr : 0x00000000
kernel size : 6911360
kernel_addr : 0x00008000
ramdisk_size : 2685222
ramdisk_addr : 0x02000000
second_size : 0
second_addr : 0x00f00000
dtb_size : 1427456
tags_addr : 0x01e00000
cmdline : console=null androidboot.hardware=qcom user_debug=31 maxcpus=2 msm_rtb.filter=0x3F
Unpack completed.
Ahora vamos a arch/arm/boot y cogemos el zImage (OJO, EL zImage NO EL zImage-dtb).
Vamos a la carpeta de las mkbooting_tools y vamos a la carpeta kernel.
Veremos que nos salens varios cosas, veremos un zImage creado del boot.img que hemos desempaquetado antes, lo borramos y ponemos el que hemos copiado anteriormente.
Una vez hecho esto, abrimos un terminal y nos dirigiremos a la ruta de mkbooting_tools y haremos lo siguiente para empaquetar nuestro kernel

 Cita:
./mkboot kernel boot.img
Y nos saldrá algo como esto si todo ha salido bien
 Cita:
mkbootimg from ksuamg5/img_info.
kernel : /home/xiaolu/work/initramfs/s4/e330s/ksuamg5/zImage
ramdisk : /home/xiaolu/work/initramfs/s4/e330s/ksuamg5/new_ramdisk.gz
page_size :
base_addr : 0x00000000
kernel size : 6911360
kernel_addr : 0x00008000
ramdisk_size : 2685222
ramdisk_addr : 0x02000000
second_size :
second_addr :
dtb_size : 1427456
dtb_img : dt.img
tags_addr : 0x01e00000
cmdline : console=null androidboot.hardware=qcom user_debug=31 maxcpus=2 msm_rtb.filter=0x3F
Kernel size: 6911360, new ramdisk size: 3416778, recovery.img: 11759616.
recovery.img has been created.
Bien, pues ya tenemos nuestro kernel listo para probarlo.

En el siguiente paso os explicaré como flashearlo y os daré las instrucciones para meterlo en un zip

Última edición por alexret Día 08/04/15 a las 22:07:17.
Responder Con Cita
  #3  
Viejo 01/04/15, 10:18:24
Array

[xs_avatar]
groche97 groche97 no está en línea
Usuario muy activo
 
Fecha de registro: ene 2013
Mensajes: 3,437
Modelo de smartphone: Xiaomi mi4C
Tu operador: Movistar
A ver si me animo a intentar algo jeje, gracias por compartir estas cosas
Responder Con Cita
  #4  
Viejo 01/04/15, 10:25:50
Array

[xs_avatar]
alexret
Usuario invitado
 
Mensajes: n/a

Mas tarde lo pondré mas "bonito" y si puedo alguna foto. 😁
Responder Con Cita
Gracias de parte de:
  #5  
Viejo 01/04/15, 10:46:06
Array

[xs_avatar]
BitratE BitratE no está en línea
Azote Samsugnero
 
Fecha de registro: feb 2011
Localización: Sabadell
Mensajes: 23,373
Modelo de smartphone: Google Nexus 4, Xiaomi Mi3, RedMi Note 7
Tu operador: Jazztel
¿Has podido compilar el kernel Alex?

Esto debería tener chincheta.
Responder Con Cita
  #6  
Viejo 01/04/15, 10:46:31
Array

[xs_avatar]
forero13 forero13 no está en línea
Usuario muy activo
· Votos compra/venta: (23)
 
Fecha de registro: feb 2013
Mensajes: 2,676
Modelo de smartphone: Xiaomi Mi3
Tu operador: Simyo
Que lástima que a estas alturas no tenga tiempo de meterle mano a fondo al kernel...anda que no me gustaría.

Enorme alexret echando una mano para que la gente empiece con esto!
__________________
Veterano de las primeras guerras chinas...
Responder Con Cita
  #7  
Viejo 01/04/15, 10:47:43
Array

[xs_avatar]
samx69 samx69 no está en línea
Miembro del foro
 
Fecha de registro: jul 2009
Mensajes: 316
Modelo de smartphone: MI3W

Muchas gracias alex!
Has conseguido arreglar el fallo que te daba?
Responder Con Cita
  #8  
Viejo 01/04/15, 11:16:23
Array

[xs_avatar]
alexret
Usuario invitado
 
Mensajes: n/a

 Cita: Originalmente Escrito por BitratE Ver Mensaje
¿Has podido compilar el kernel Alex?

Esto debería tener chincheta.
 Cita: Originalmente Escrito por samx69 Ver Mensaje
Muchas gracias alex!
Has conseguido arreglar el fallo que te daba?

Que va, si es que no hay manera.
Casi todos los errores que me ha dado sin iguales pero este no hay manera de corregirlo.
Dejo el error por si alguien tiene alguna idea
Código:
CC      drivers/input/input-compat.o
 CC      sound/usb/card.o
 CC      sound/usb/clock.o
sound/usb/card.c:61:18: fatal error: card.h: No such file or directory
compilation terminated.
make[2]: *** [sound/usb/card.o] Error 1
make[2]: *** Se espera a que terminen otras tareas....
 CC      net/ipv4/ip_sockglue.o
 CC      drivers/input/input-mt.o
 LD      drivers/input/serio/built-in.o
 CC      drivers/iommu/iommu.o
sound/usb/clock.c:32:18: fatal error: card.h: No such file or directory
compilation terminated.
make[2]: *** [sound/usb/clock.o] Error 1
make[1]: *** [sound/usb] Error 2
make: *** [sound] Error 2
make: *** Se espera a que terminen otras tareas....
 CC      drivers/iommu/msm_iommu.o
Responder Con Cita
Gracias de parte de:
  #9  
Viejo 01/04/15, 11:45:01
Array

[xs_avatar]
samx69 samx69 no está en línea
Miembro del foro
 
Fecha de registro: jul 2009
Mensajes: 316
Modelo de smartphone: MI3W

habría que preguntar a @david_korku o en xda a Bitti09, audahadi, jackeagle...
seguro que pueden ayudar...
Responder Con Cita
  #10  
Viejo 01/04/15, 11:49:03
Array

[xs_avatar]
sidermi sidermi no está en línea
Usuario muy activo
 
Fecha de registro: oct 2010
Localización: Donostia
Mensajes: 3,579
Modelo de smartphone: Xiaomi Mi6, Mi A1, Redmi 4 pro, Redmi 2.
Tu operador: Pepephone
Gracias alexret!!!!
Muy bien explicado.
Responder Con Cita
  #11  
Viejo 01/04/15, 11:54:26
Array

[xs_avatar]
pbr1111 pbr1111 no está en línea
Miembro del foro
 
Fecha de registro: oct 2012
Mensajes: 217
Modelo de smartphone: Pixel 7 Pro

Para hacer el git clone del repo del kernel:
Código:
git clone -b cancro-kk-oss git://github.com/MiCode/Xiaomi_Kernel_OpenSource.git
Muy buen tutorial!
Responder Con Cita
Gracias de parte de:
  #12  
Viejo 01/04/15, 11:56:21
Array

[xs_avatar]
mikelo34 mikelo34 no está en línea
Usuario muy activo
 
Fecha de registro: ago 2012
Localización: BILBAO
Mensajes: 989
Modelo de smartphone: P20PRO
Tu operador: Otra
 Cita: Originalmente Escrito por alexret Ver Mensaje
Que va, si es que no hay manera.
Casi todos los errores que me ha dado sin iguales pero este no hay manera de corregirlo.
Dejo el error por si alguien tiene alguna idea
Código:
CC      drivers/input/input-compat.o
 CC      sound/usb/card.o
 CC      sound/usb/clock.o
sound/usb/card.c:61:18: fatal error: card.h: No such file or directory
compilation terminated.
make[2]: *** [sound/usb/card.o] Error 1
make[2]: *** Se espera a que terminen otras tareas....
 CC      net/ipv4/ip_sockglue.o
 CC      drivers/input/input-mt.o
 LD      drivers/input/serio/built-in.o
 CC      drivers/iommu/iommu.o
sound/usb/clock.c:32:18: fatal error: card.h: No such file or directory
compilation terminated.
make[2]: *** [sound/usb/clock.o] Error 1
make[1]: *** [sound/usb] Error 2
make: *** [sound] Error 2
make: *** Se espera a que terminen otras tareas....
 CC      drivers/iommu/msm_iommu.o
No entiendo mucho.
Tienes todos los paquetes necesarios?

Enviado desde mi MI 3W mediante Tapatalk
__________________
Estoy mirando fijamente a una mosca y para mi, que está tramando algo.
No hace más que frotarse las manos
Responder Con Cita
Gracias de parte de:
  #13  
Viejo 01/04/15, 12:02:24
Array

[xs_avatar]
alexret
Usuario invitado
 
Mensajes: n/a

 Cita: Originalmente Escrito por mikelo34 Ver Mensaje
No entiendo mucho.
Tienes todos los paquetes necesarios?

Enviado desde mi MI 3W mediante Tapatalk
Sí claro, si no no podría ni haber empezado a compilar.
Responder Con Cita
  #14  
Viejo 01/04/15, 12:19:51
Array

[xs_avatar]
Nigthmare Nigthmare no está en línea
Culo inquieto
· Votos compra/venta: (1)
 
Fecha de registro: nov 2010
Localización: Leganés
Mensajes: 2,635
Modelo de smartphone: NOKIA 3310
Tu operador: Pepephone
Yo tengo bastante contacto con un cocinero de roms de samsung. CRISTELO.
Si quieres alex ,se lo pregunto
__________________
Pensamientos tontos los tenemos todos, pero el sabio se los calla
Responder Con Cita
Gracias de parte de:
  #15  
Viejo 01/04/15, 12:20:21
Array

[xs_avatar]
Mikadoss Mikadoss no está en línea
Miembro del foro
 
Fecha de registro: sep 2014
Mensajes: 165
Modelo de smartphone: Mi Note Pro
Tu operador: Pepephone
 Cita: Originalmente Escrito por alexret Ver Mensaje
sound/usb/card.c:61:18: fatal error: card.h: No such file or directory
No soy ningun experto no he compilado nunca un kernel Android pero varias veces en Debian, diria que el kernel esta incompleto y le faltan esos directorios, de ahi el error del make.

Por ejemplo para GNU/Linux nos hacen falta tambien las cabeceras del kernel para compilarlo en caso de ser de repositorios como es el caso con este, estas las conseguimos asi:

aptitude install linux-headers-`uname -r`

Uname -r es el numero o nombre exacto del kernel en cuestion, en mi caso ahora mismo desde LM seria: 3.13.0-24-generic.

Como ya digo de compilarlo desde Android NPI, solo aporto algun dato de como compilarlo desde sistemas GNU/Linux en el que supongo que se comprende Android tambien ;)
Responder Con Cita
Gracias de parte de:
  #16  
Viejo 01/04/15, 12:26:32
Array

[xs_avatar]
alexret
Usuario invitado
 
Mensajes: n/a

 Cita: Originalmente Escrito por Nigthmare Ver Mensaje
Yo tengo bastante contacto con un cocinero de roms de samsung. CRISTELO.
Si quieres alex ,se lo pregunto
Cualquier ayuda es bien recibida.

 Cita: Originalmente Escrito por Mikadoss Ver Mensaje
No soy ningun experto no he compilado nunca un kernel Android pero varias veces en Debian, diria que el kernel esta incompleto y le faltan esos directorios, de ahi el error del make.

Por ejemplo para GNU/Linux nos hacen falta tambien las cabeceras del kernel para compilarlo en caso de ser de repositorios como es el caso con este, estas las conseguimos asi:

aptitude install linux-headers-`uname -r`

Uname -r es el numero o nombre exacto del kernel en cuestion, en mi caso ahora mismo desde LM seria: 3.13.0-24-generic.

Como ya digo de compilarlo desde Android NPI, solo aporto algun dato de como compilarlo desde sistemas GNU/Linux en el que supongo que se comprende Android tambien ;)
Lo sé, pero en Android eso no hace falta, o al menos en los tutoriales que he seguido no me ha hecho falta.
Sobre mi error, como he dicho, me han salido varios como ese y los he corregido, pero ese en concreto es muy puñetero y no hay manera.
Responder Con Cita
Gracias de parte de:
  #17  
Viejo 01/04/15, 13:56:27
Array

[xs_avatar]
carmos carmos no está en línea
Usuario muy activo
· Votos compra/venta: (1)
 
Fecha de registro: dic 2009
Mensajes: 2,018
Modelo de smartphone: Xiaomi Mi8 128GB
Tu operador: Lowi
muy bueno!!!
__________________
Mis androides:
HTC Magic - HTC Desire - Samsung Galaxy S - LG Optimus Black - Motorola RAZR Maxx - Samsung Galaxy S2 - Samsung Galaxy S4 - Xiaomi Mi3 64GB - Xiaomi Mi5 ADVANCED 64GB - Xiaomi Mi5S Plus 6/128GB - Xiaomi Mi8 6/128GB
Responder Con Cita
  #18  
Viejo 01/04/15, 18:54:45
Array

[xs_avatar]
david_korku david_korku no está en línea
Miembro del foro
 
Fecha de registro: jul 2014
Mensajes: 152
Tu operador: Movistar

 Cita: Originalmente Escrito por alexret Ver Mensaje
Que va, si es que no hay manera.
Casi todos los errores que me ha dado sin iguales pero este no hay manera de corregirlo.
Dejo el error por si alguien tiene alguna idea
Código:
CC      drivers/input/input-compat.o
 CC      sound/usb/card.o
 CC      sound/usb/clock.o
sound/usb/card.c:61:18: fatal error: card.h: No such file or directory
compilation terminated.
make[2]: *** [sound/usb/card.o] Error 1
make[2]: *** Se espera a que terminen otras tareas....
 CC      net/ipv4/ip_sockglue.o
 CC      drivers/input/input-mt.o
 LD      drivers/input/serio/built-in.o
 CC      drivers/iommu/iommu.o
sound/usb/clock.c:32:18: fatal error: card.h: No such file or directory
compilation terminated.
make[2]: *** [sound/usb/clock.o] Error 1
make[1]: *** [sound/usb] Error 2
make: *** [sound] Error 2
make: *** Se espera a que terminen otras tareas....
 CC      drivers/iommu/msm_iommu.o
Ese error que yo sepa significa que le falta el header card.h , referenciado desde card.c con "#include "card.h"". ¿ Tienes en la carpeta sound/usb el archivo card.h ?. ¿Estás compilando como root o como un usuario?

Edito: Añado. No te mates mucho porque uno de los miembros del equipo que hicieramos para Cyanogenmod ya ha compilado el kernel y lo tiene funcionando con una custom rom 5.0.2 . Pronto lo anunciará el supongo así que mejor no digo más

Última edición por david_korku Día 01/04/15 a las 19:53:13.
Responder Con Cita
Los siguientes 8 usuarios han agradecido a david_korku su comentario:
[ Mostrar/Ocultar listado de agradecimientos ]
  #19  
Viejo 01/04/15, 20:02:09
Array

[xs_avatar]
alexret
Usuario invitado
 
Mensajes: n/a

 Cita: Originalmente Escrito por david_korku Ver Mensaje
Ese error que yo sepa significa que le falta el header card.h , referenciado desde card.c con "#include "card.h"". ¿ Tienes en la carpeta sound/usb el archivo card.h ?. ¿Estás compilando como root o como un usuario?

Edito: Añado. No te mates mucho porque uno de los miembros del equipo que hicieramos para Cyanogenmod ya ha compilado el kernel y lo tiene funcionando con una custom rom 5.0.2 . Pronto lo anunciará el supongo así que mejor no digo más
Pues la verdad es que no me fijé en eso, porque como me dio mas problemas antes y los solucioné pues no lo miré. Si eso luego lo vuelvo a mirar.
Siempre compilo como usuario.

Eso es un grandísimo avance!! Eso lo tengo que probar. Esperando me hallo.
Responder Con Cita


  #20  
Viejo 01/04/15, 21:19:52
Array

[xs_avatar]
BitratE BitratE no está en línea
Azote Samsugnero
 
Fecha de registro: feb 2011
Localización: Sabadell
Mensajes: 23,373
Modelo de smartphone: Google Nexus 4, Xiaomi Mi3, RedMi Note 7
Tu operador: Jazztel
 Cita: Originalmente Escrito por david_korku Ver Mensaje
Ese error que yo sepa significa que le falta el header card.h , referenciado desde card.c con "#include "card.h"". ¿ Tienes en la carpeta sound/usb el archivo card.h ?. ¿Estás compilando como root o como un usuario?

Edito: Añado. No te mates mucho porque uno de los miembros del equipo que hicieramos para Cyanogenmod ya ha compilado el kernel y lo tiene funcionando con una custom rom 5.0.2 . Pronto lo anunciará el supongo así que mejor no digo más
Fantástica noticia.

¿Lo ha compilado y ha tenido que adaptarlo para Lollipop?
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Foros Xiaomi > Otros modelos de Xiaomi antiguos > Xiaomi MI3 > ROMs y desarrollo Xiaomi MI3

Herramientas


Hora actual: 06:17:18 (GMT +2)



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

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