RK3188 : Kernel installation madness

Myy myy at miouyouyou.fr
Wed Jul 6 10:04:27 PDT 2016


Greetings,

I asked on the ARM Community Forum how to compile and flash a new kernel 
on a RK3188 device ( https://community.arm.com/thread/10159 ) and I was 
told that the ARM LKML would be the best place for that kind of 
questions. I sent a mail to the arm-lkml but, in the same ARM Community 
Forum thread, I was again told that arm-linux-kernel would be best 
suited for that kind of questions. So here I am.

I currently own a Cube GT2 tablet, which uses a RK3188 chip.
My goal is to install a new (4.7.x) kernel on this device. However, 
between the facts that the NAND driver still requires some reverse 
engineering and the fact that I do not know how kernels are booted on 
that kind of hardware, I'm stuck.

So my current objectives are :
- Load a modified initrd image.
- Load a modified initrd containing the graphic driver (if possible), 
the Wifi driver, wpa_supplicant and sshd, with the currently installed 
kernel.
- Replace the kernel with a new stock kernel, using the same initrd.

So my current questions are :
- Where does the system loads the initrd images from ?
    I extracted the android boot image stored in the boot partition, 
using rkflashkit, replaced the initrd, repacked the image and reflahsed 
it but, STILL, when returning on Android, it clearly seems that a 
different initrd file was used. Same thing when flashing the modified 
image to the "kernel" partition too.
- How to pack kernels and initrd ?
    There's a ton of rk3188 3.0.36+ kernels available on Github that do 
NOT compile. The only kernel I was able to compile is the official one. 
Of course, when trying to boot from my new kernel, the systems started a 
reboot loop, with no informations about what went wrong... I do not 
understand what rkcrc do and the kernel inside the Android boot Image do 
not have any standard Linux Kernel header. So, what is the official 
procedure for packing AND unpacking kernels and initrd images ?

The param file of my tablet is as follows :

FIRMWARE_VER:4.1.1
MACHINE_MODEL:U30GT 2
MACHINE_ID:007
MANUFACTURER:RK30SDK
MAGIC: 0x5041524B
ATAG: 0x60000800
MACHINE: 3066
CHECK_MASK: 0x80
KERNEL_IMG: 0x60408000
#RECOVER_KEY: 1,1,0,20,0
CMDLINE:console=ttyFIQ0 androidboot.console=ttyFIQ0 init=/init 
initrd=0x62000000,0x00800000 
mtdparts=rk29xxnand:0x00002000 at 0x00002000(misc),0x00006000 at 0x00004000(kernel),0x00006000 at 0x0000A000(boot),0x00010000 at 0x00010000(recovery),0x00020000 at 0x00020000(backup),0x00040000 at 0x00040000(cache),0x00400000 at 0x00080000(userdata),0x00002000 at 0x00480000(kpanic),0x00100000 at 0x00482000(system),- at 0x00582000(user)

There seems to be some fragments of documentation about how to load some 
LiveSD system, but I don't know if it's possible with this tablet. And 
quite frankly, half of the documentation is badly put together.

Best regards,

-- 
Myy



More information about the linux-arm-kernel mailing list