[General Questions and Answers] ParovLGB:
Hello everyone,

I read all the topics related but, unfortunately, it did not solve my problem.

I have a cubieboard (allwinner A10) and a screen that doesn't have HDMI input, instead it has DVI input. Therefore, I use a hdmi>dvi connector and i lose all the EDID, and Android doesn't show up (note: if i a specify some resolution in script0.bin, Android shows up in small resolution).

I have to specify the resolution in the firmware, but unfortunately the kernel distributed by Cubieboard is 3.0.52 and doesn't contain mine (1280x1024). Therefore, I have to build my own Android firmware with a recent kernel... and i fail every time, for months. (note: with gnu/linux i don't have any issue, i juste have to specify the resolution in kernel arguments on a txt file.. because the kernel is ulterior).

Please look at my method hereunder and tell me if you see some problems. Thanks in advance.

***

After lots of searches, i think that unpacking and repacking an existing livesuit image is the "easiest" way to upgrade the android kernel.

PHASE 1 : unpacking a stock livesuit android image

I use the "imgRePacker" utility (forum.xda-evelopers.com/showthread.php?t=1753473) and I unpack the "tvbox_2.2_8188eu.img" image from cubieoard.org. Now i have to change the files boot.fex and boot.fex.iso before repacking this livesuit image. Boot.fex and boot.fex.iso are the same file and are the "boot.img" containing bootheader, kernel and ramdisk (innovantesindia.com/wordpress/2011/04/18/bootimage-and-recovery-image-unveiled/).

I copy one of these two files and use the "split_bootimg.pl" to unpack it. I get kernel and ramdisk ; so i juste have to replace the old kernel by the new and execute "mkbootimg".

PHASE 2 : building a recent kernel

As the commit who interests me is your, i download a kernel containing it : the "sunxi-v3.0.76-r0" (github.com/jwrdegoede/linux-sunxi/releases/tag/sunxi-v3.0.76-r0). I unzip it and modify the sun4i_defconfig file to put maximum in the kernel and not in modules (because i'll send the modules later via adb, so maximum of things have to be in kernel). I modify the kernel cmdline by "console=ttyS0,115200 rw init=/init loglevel=5".

Then i execute

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- sun4i_defconfig

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j5 uImage modules

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=output modules_install

FINAL PHASE : repacking with new kernel

The gzipped kernel is zImage in arch/arm/boot. I copy this file in the phase 1 directory and i execute

tools/mkbootimg --base 0x40000000 --kernel zImage --ramdisk boot.img-kernelramdisk.gz --cmdline 'console=ttyS0,115200 rw init=/init loglevel=5' -o new-recovery.img

Now i copy thenew-recovery.img file and put it in the imgRePacker folder instead of boot.fex and boot.fex.iso. I repack the image and flash it in the cubieboard and ... The cubieboard has its red the green led on but doesn't boot more .. I can't communicate with it via adb because it's not even recognized by windows (because it isn't booted).....

***

Please ! Can you help me ? Do you see any problem in my method ?

Thanks in advance.