PDA

Ver la Versión Completa : KERNEL Compila tu propio KERNEL RK


pirinvk
31/12/13, 10:46:32
PREPARANDO EL ENTORNO DE TRABAJO en ubuntu 13

Este entorno que vamos a crear deja tu PC listo para compilar kernels de rockchip

debes estar conectado a internet

GPL JB MaxwellPlus: https://s3.amazonaws.com/tabletfirmwares/GPL/MaxwellPlus_JB_GPL.tar.gz

abre el terminal:

sudo apt-get install root-system-bin

sudo passwd (cambia tu pass)

sudo apt-get install openjdk-6-jre-headless

sudo apt-get install openjdk-7-jre-headless

java -version (ver version instalada)

sudo apt-get update

sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib mingw32 openjdk-6-jdk openjdk-7-jdk tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 git

sudo apt-get install libc6:i386 libgcc1:i386 gcc-4.4-base:i386 gcc-4.6-base:i386 libstdc++5:i386 libstdc++6:i386

sudo apt-get install git-core gnupg flex bison gperf libsdl-dev libesd0-dev build-essential zip curl libncurses5-dev zlib1g-dev gcc-multilib g++-multilib sharutils lzop

sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev pngcrush schedtool

sudo apt-get install libgmp-dev libmpfr-dev libmpc-dev libc6-dev

sudo apt-get install sharutils


sudo apt-get update

reinicia PC


descargar toolschains y herramientas:

abre otro terminal:

git clone https://android.googlesource.com/platform/prebuilt

sudo apt-get install libusb-1.0-0-dev
gcc-o rkflashtool rkflashtool.c-lusb-1.0-O2-W-Wall-s

para usar las toolschains:
export PATH=~/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin:$PATH

ver toolschains usadas:
which arm-eabi-gcc




EMPEZAMOS A COMPILAR

primero extrae el zip del GPL en la carpeta personal o donde te venga bien
abre terminal:

1º entrar en la raiz del GPL: cd ~/(raiz kernel)

2ºusar la toolschains: export PATH=~/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin:$PATH

3ºcargar configuracion: make bq_MaxwellPlus_defconfig

4ºentrar en la configuracion grafica del gpl: make menuconfig

5ºmake -j2 kernel.img (2 porque tengo un doble nucleo)

6ºse creara un kernel.img en la raiz del gpl listo para flashear

7ºusa el boot.img que esta dentro de la carpeta MaxwellPlus en la raiz del gpl

8ºya puedes flashear juntos el boot.img y el kernel.img


si kieres compilar un kernel para mi rom Cyanogenmod hay k usar el GPL de la Maxwell2lite y cambiar configuraciones en el paso del menuconfig.

yufuven
31/12/13, 10:59:20
Ole! Muy bien explicado pirinvk, a lo mejor podrias hacer un script para preparar el entorno más rapidamente, pero asi ya le sirve a cualquiera.
Muchas gracias por la info!!

andromp
31/12/13, 11:14:36
Preparado para ubuntu 13? Pero funcionará en cualquier linux no?

pirinvk
31/12/13, 11:22:17
supogo k si..pero lo mismo hacen falta mas librerias...yo uso ubuntu con el entorno xfce k tu me enseñaste!!

andromp
31/12/13, 13:49:32
Yo tengo debian con XFCE, que supongo que todos los paquetes de ubuntu estarán en debian, el problema es si alguna versión de un paquete en debian podria hacer que esto no funcione bien, habrá que probar

jcarlos001
04/01/14, 15:40:18
Mil gracias por la información, pirinvk

He seguido los pasos y consigo compilar el kernel (en mi caso el de la BQ Maxwell 2 Plus que me proporcionó jsevi83: https://github.com/fefifofum/android...maxwell2_stock)

Ahora estaba intentando integrar unos drivers para ver si consigo que funcione una antena WIFI externa, en concreto una TP-Link TL-WN722N.

Compilo los drivers (http://drvbp1.linux-foundation.org/~mcgrof/rel-html/backports/) y los instalo en el kernel, pero no sé cómo generar la imagen una vez he instalado los drivers. Si vuelvo a ejecutar make -j2 kernel.img creo que se olvida de los drivers recién instalados y vuelve a generar la imagen original.

¿Alguna ayuda?

pirinvk
04/01/14, 16:03:45
ufff..pues no se...yo solo trabajo desde los drivers del gpl...nunca he añadido drivers externos....
pero supongo que tendras que añadir algun modulo .ko a la rom para que funcione...pero no me hagas caso ya k no lo he hecho nunca...

jcarlos001
04/01/14, 17:40:03
El módulo .ko ya lo tengo generado, pero cuando intento insertarlo en el kernel (insmod modulo.ko), me da el siguiente error:

cfg80211: exports duplicate symbol __ieee80211_get_channel (owned by kernel)

Por eso estaba intentando integrar todos los drivers en el núcleo y así evitar duplicidades

pirinvk
06/01/14, 02:54:57
emm....y si ese modulo lo metes en la rom lo actiivas desde el init.rc o en el build.prop....
ya te digo k no lo he hecho antes....y me vendra bien aprenderlo para intentar usar una realteck o ranink que tengo...
estare atento..e intentare ayudar en medida de mis posibilidades.....

jcarlos001
08/01/14, 17:50:52
El problema parece ser que los drivers que estoy intentando usar (COMPAT-WIRELESS) necesitan que el kernel haya sido compilado con CONFIG_CFG80211=m, mientras que el kernel que uso yo tiene esta opción a "y" (lo que implica que se integre en el kernel, cuando debiera ser un módulo).

Estoy intentando modificar este valor mediante menuconfig y el archivo Maxwell2_Plus_defconfig pero no hay manera ... de aquí al manicomio :loco:

Por cierto, no sé si estoy liando el hilo que iniciaste. Si te parece abro uno nuevo para no mezclar temas.

pirinvk
08/01/14, 23:30:24
no hace falta que abras hilo.....

pero para ponerlo en M solo tienes k cambiar la y por la M en el apartado adecuado del menuconfig o directamente en el _defconfig...xq dices que no hay manera? con la M deberia ser compilado como modulo..

jcarlos001
10/01/14, 09:54:34
Parece que no admite ese valor. Debe tener dependencias con otros valores y no consigo habilitarlo como módulo.

Estoy trasteando a través de menuconfig a ver si consigo algo...

lmemperador
12/01/14, 00:38:51
damn no tengo linux instalado
vale con una maquina virtual con algun linux en virtual box (oracle) sobre un pc win 7 64 ultimate?

lo intentare

jcarlos001
12/01/14, 16:25:49
Sí. Así lo tengo yo.

Virtual Box con Ubuntu 13 instalado. Si sigues los pasos descritos en este hilo no debería darte problemas.

npir
12/01/14, 18:03:54
Muy buena iniciativa pirinvk, yo sigo peleandome con la cocina, cuando tengo un ratito, pero vamos, que avanzo más bien poco.

lmemperador
12/01/14, 19:34:32
Sí. Así lo tengo yo.

Virtual Box con Ubuntu 13 instalado. Si sigues los pasos descritos en este hilo no debería darte problemas.

gracias mil

jcarlos001
14/01/14, 00:22:38
Bueno, voy un paso adelante y dos para atrás:
- Ya he conseguido compilar el kernel con CONFIG_CFG80211=m. Este valor tiene dependencia de otro (CONFIG_RK_CFG80211). Basta con desmarcar esta última opción y ya deja instalar como módulos los que no me dejaba.
- Obtengo el kernel.img ... pero, ¿y ahora?

He probado a poner este fichero junto con el boot.img y flashearlos juntos pero no parece que haga nada. La tablet sigue teniendo WIFI (que creo que no debería, porque ahora el soporte WIFI es un módulo que tengo que instalar aparte) y si intento instalar los drivers de la antena USB sigue dando el mismo error.

Supongo que alguno de los pasos no lo estoy haciendo bien. ¿Alguna ayuda?

Mil gracias a todos!

pirinvk
14/01/14, 09:49:42
a ver si esto te puede ayudar......

http://www.htcmania.com/showthread.php?t=222722

jcarlos001
15/01/14, 17:00:48
Lo logré!!! :platano:

El problema que tenía era que no encontraba el método para generar el fichero boot.img partiendo del kernel recién compilado. Pero como siempre, si buscas lo suficiente, seguro que hay alguien que habrá hecho algo similar.

Os adjunto un enlace a una aplicación que sirve para, entre otras cosas, generar el fichero boot.img
https://www.dropbox.com/s/km0af5xg3oihnno/%5BVonDroid.com%5D-RK3xxx_firmware_tools_4.0.33.00.rar

Os explico cómo lo he hecho yo por si a alguien le puede venir bien.
1. Descomprimid el fichero donde queráis (cuidado con que en la ruta no haya espacios en blanco).
2. Ejecutar la aplicación "START.exe"
3. Pulsar "Single tools"
4. Dentro de "Boot tools" pulsar "Select file" y seleccionar el fichero boot.img de la rom que estéis modificando.
5. Pulsar "Extract". La aplicación genera el árbol de directorios correspondiente a la información contenida en el boot.img.
6. Acceder al directorio <path donde se ha instalado la aplicación>\temp\boot\boot.img.dump
7. Sustituir el fichero "kernel" que hay en el directorio anterior por el zImage generado por nosotros al compilar el kernel (renombrarlo como "kernel", claro está).
8. De nuevo en la aplicación, pulsar sobre el botón "Build". Se generará un fichero new_boot.img en el directorio raíz de la aplicación.
9. Ahora ya sí se puede utilizar este fichero para flashearlo en la tablet.

lmemperador
16/01/14, 18:13:15
yo no he podido hacerlo, como me temia
soy un poco melon jeje
:D
por lo que veo

gracias de todas maneras pirinvk

jcarlos001
17/01/14, 22:27:04
Si tienes dudas concretas, pregunta. A ver si te podemos ayudar!

npir
18/04/14, 23:20:59
Se me ha colado el mensaje

andromp
21/04/14, 17:30:35
Tutorial muy claro y sencillo, lo estoy haciendo en ubuntu 14.04 y se cumplen todas las dependencias, voy por la parte de usar las toolchains, lo que no entiendo es eso de que para compilar kernel CM hay que "cambiar configuraciones en el paso del menuconfig."

npir
22/04/14, 05:01:24
Iros preparando

http://img.tapatalk.com/d/14/04/22/2a9eqane.jpg

jcarlos001
22/04/14, 10:49:10
Tutorial muy claro y sencillo, lo estoy haciendo en ubuntu 14.04 y se cumplen todas las dependencias, voy por la parte de usar las toolchains, lo que no entiendo es eso de que para compilar kernel CM hay que "cambiar configuraciones en el paso del menuconfig."
Yo necesitaba cambiar la configuración antes de compilar porque quería incluir unos drivers que no vienen incluidos en el kernel. Y el problema con el que me encontraba era que dichos drivers eran incompatibles con los que venían en el kernel. Por eso lo de trastear con menuconfig para habilitar o deshabilitar lo que necesitaba.

Si no necesitas cambiar ningún parámetro, no tienes que hacer ese paso.

andromp
22/04/14, 18:46:34
Ya pero igualmente necesito las sources de pirinvk pues él tiene las sources modificadas y optimizadas para la maxwell plus 1

npir
27/04/14, 10:19:04
La cosa marcha, unos cambios más y puede quedar un buen kernel.

http://img.tapatalk.com/d/14/04/27/ytu4ugep.jpg

npir
27/04/14, 21:51:36
Seguimos avanzando y esto promete

http://img.tapatalk.com/d/14/04/28/yty8e3ud.jpg

lmemperador
22/05/14, 16:26:00
Seguimos avanzando y esto promete

http://img.tapatalk.com/d/14/04/28/yty8e3ud.jpg

podrias ayudarnos con el kernel de kit kat npir? lo que nos pasa es que no carga apagada y no muestra bien el porcentaje de bateria, pone que esta siempre cargando la tablet

http://www.htcmania.com/showthread.php?t=829263&page=5

gracias de antemano