ROMs y desarrollo Xiaomi MI3 ROMs y desarrollo Xiaomi MI3


 
Herramientas
  #1  
Viejo 01/04/15, 10:13:54
Avatar de alexret
alexret
Usuario invitado
Mensajes: n/a
 
Mensajes: n/a
Mencionado: comentarios
Tagged: hilos
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
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
Avatar de alexret
alexret
Usuario invitado
Mensajes: n/a
 
Mensajes: n/a
Mencionado: comentarios
Tagged: hilos
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
Avatar de groche97
groche97 groche97 no está en línea
Usuario muy activo
Mensajes: 3,437
 
Fecha de registro: ene 2013
Mensajes: 3,437
Modelo de smartphone: Xiaomi mi4C
Versión de ROM: La ROM de turno
Tu operador: Movistar
Mencionado: 2 comentarios
Tagged: 0 hilos
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
Avatar de alexret
alexret
Usuario invitado
Mensajes: n/a
 
Mensajes: n/a
Mencionado: comentarios
Tagged: hilos
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
Avatar de BitratE
BitratE BitratE no está en línea
Azote Samsugnero
Mensajes: 23,373
 
Fecha de registro: feb 2011
Localización: Sabadell
Mensajes: 23,373
Modelo de smartphone: Google Nexus 4, Xiaomi Mi3, RedMi Note 7
Versión de ROM: LollipOS build 1 Mi3
Tu operador: Jazztel
Mencionado: 282 comentarios
Tagged: 1 hilos
¿Has podido compilar el kernel Alex?

Esto debería tener chincheta.
Responder Con Cita
  #6  
Viejo 01/04/15, 10:46:31
Avatar de forero13
forero13 forero13 no está en línea
Usuario muy activo
Mensajes: 2,676
Compra y venta: (23)
 
Fecha de registro: feb 2013
Mensajes: 2,676
Modelo de smartphone: Xiaomi Mi3
Tu operador: Simyo
Mencionado: 11 comentarios
Tagged: 0 hilos
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!
Responder Con Cita
  #7  
Viejo 01/04/15, 10:47:43
Avatar de samx69
samx69 samx69 no está en línea
Miembro del foro
Mensajes: 316
 
Fecha de registro: jul 2009
Mensajes: 316
Modelo de smartphone: MI3W
Mencionado: 6 comentarios
Tagged: 0 hilos
Muchas gracias alex!
Has conseguido arreglar el fallo que te daba?
Responder Con Cita
  #8  
Viejo 01/04/15, 11:16:23
Avatar de alexret
alexret
Usuario invitado
Mensajes: n/a
 
Mensajes: n/a
Mencionado: comentarios
Tagged: hilos
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
Avatar de samx69
samx69 samx69 no está en línea
Miembro del foro
Mensajes: 316
 
Fecha de registro: jul 2009
Mensajes: 316
Modelo de smartphone: MI3W
Mencionado: 6 comentarios
Tagged: 0 hilos
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
Avatar de sidermi
sidermi sidermi no está en línea
Usuario muy activo
Mensajes: 3,579
 
Fecha de registro: oct 2010
Localización: Donostia
Mensajes: 3,579
Modelo de smartphone: Xiaomi Mi6, Mi A1, Redmi 4 pro, Redmi 2.
Versión de ROM: AndroidOne
Versión de Radio: Rock FM
Tu operador: Pepephone
Mencionado: 29 comentarios
Tagged: 2 hilos
Gracias alexret!!!!
Muy bien explicado.
Responder Con Cita
  #11  
Viejo 01/04/15, 11:54:26
Avatar de pbr1111
pbr1111 pbr1111 no está en línea
Miembro del foro
Mensajes: 217
 
Fecha de registro: oct 2012
Mensajes: 217
Modelo de smartphone: Pixel 7 Pro
Mencionado: 2 comentarios
Tagged: 0 hilos
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
Avatar de mikelo34
mikelo34 mikelo34 no está en línea
Usuario muy activo
Mensajes: 989
 
Fecha de registro: ago 2012
Localización: BILBAO
Mensajes: 989
Modelo de smartphone: P20PRO
Tu operador: Otra
Mencionado: 5 comentarios
Tagged: 0 hilos
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
Responder Con Cita
Gracias de parte de:
  #13  
Viejo 01/04/15, 12:02:24
Avatar de alexret
alexret
Usuario invitado
Mensajes: n/a
 
Mensajes: n/a
Mencionado: comentarios
Tagged: hilos
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
Avatar de Nigthmare
Nigthmare Nigthmare no está en línea
Culo inquieto
Mensajes: 2,635
Compra y venta: (1)
 
Fecha de registro: nov 2010
Localización: Leganés
Mensajes: 2,635
Modelo de smartphone: NOKIA 3310
Tu operador: Pepephone
Mencionado: 47 comentarios
Tagged: 0 hilos
Yo tengo bastante contacto con un cocinero de roms de samsung. CRISTELO.
Si quieres alex ,se lo pregunto
Responder Con Cita
Gracias de parte de:
  #15  
Viejo 01/04/15, 12:20:21
Avatar de Mikadoss
Mikadoss Mikadoss no está en línea
Miembro del foro
Mensajes: 165
 
Fecha de registro: sep 2014
Mensajes: 165
Modelo de smartphone: Mi Note Pro
Tu operador: Pepephone
Mencionado: 4 comentarios
Tagged: 0 hilos
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
Avatar de alexret
alexret
Usuario invitado
Mensajes: n/a
 
Mensajes: n/a
Mencionado: comentarios
Tagged: hilos
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
Avatar de carmos
carmos carmos no está en línea
Usuario muy activo
Mensajes: 2,018
Compra y venta: (1)
 
Fecha de registro: dic 2009
Mensajes: 2,018
Modelo de smartphone: Xiaomi Mi8 128GB
Versión de ROM: MIUI V10
Tu operador: Lowi
Mencionado: 13 comentarios
Tagged: 2 hilos
muy bueno!!!
Responder Con Cita
  #18  
Viejo 01/04/15, 18:54:45
Avatar de david_korku
david_korku david_korku no está en línea
Miembro del foro
Mensajes: 152
 
Fecha de registro: jul 2014
Mensajes: 152
Tu operador: Movistar
Mencionado: 5 comentarios
Tagged: 1 hilos
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
Avatar de alexret
alexret
Usuario invitado
Mensajes: n/a
 
Mensajes: n/a
Mencionado: comentarios
Tagged: hilos
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
Avatar de BitratE
BitratE BitratE no está en línea
Azote Samsugnero
Mensajes: 23,373
 
Fecha de registro: feb 2011
Localización: Sabadell
Mensajes: 23,373
Modelo de smartphone: Google Nexus 4, Xiaomi Mi3, RedMi Note 7
Versión de ROM: LollipOS build 1 Mi3
Tu operador: Jazztel
Mencionado: 282 comentarios
Tagged: 1 hilos
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   HTCMania > Foros Xiaomi > Otros modelos de Xiaomi antiguos > Xiaomi MI3 > ROMs y desarrollo Xiaomi MI3


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 05:22:48 (GMT +2)

Cookies settings
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007