Android Kernel + Debian Filesystem?


#1

Dear,

I need to use Android BSP’ kernel(3.10.xx). But the target is Linux(here Debian).

I extracted and built Kernel.
To generate boot image, ramdisk(initrd) and rootfs is issues.
I could find Debian BSP here, but its kernel is 4.5.x.

Could you give me some guide in this case how to make boot.img.
Making a new initrd for 3.10.xx kernel, for example.

Thanks


#2

hi,

i don’t understand the reference to 4.5.x kernel. what is that?

It might be possible to get a non graphics Debian/Linux rootfs to work based on the CAF 3.10, but :

  • it will probably require a couple of patches, especially for the kernel config options, you might be able to reuse/customize the file kernel/configs/distro.conf from our release as a starting point
  • the Linux display stack relies on DRM/KMS driver which is completely missing in the CAF 3.10 , so you won’t get any display/graphics.
  • for audio and connectivity you will likely need to customize/patches as well to make sure that standard Linux API/user space will work.

I don’t have a ‘recipe’ to do it, since we have never done that on db410c, but we did it in the past on other platforms.

If you have concrete questions/issues, we can try to help, but your first message has too few information to provide helpful answers.


#3

Dear @ndec,

Sorry for late message.

I want to make Linux BSP for my custom board, a variant of Dragonboard D410c.
Since Android BSP works well, firstly, I would use Android Kernel(3.10.xx).
However, I could not find proper initrd for that kernel version.
I cannot use initrd imag from 96 boards site, they are 4.x kernel.

Therefore I asked some might know how to make initrd img for 3.10.xx kernel.

Thanks


#4

I would think you should be able to reuse our latest initrd. The initrd should not be tied to the kernel version. It contains a simple/basic initial user space. In general the initrd is tied to the user space that will eventually be launched from it. For example, our initrd contains systemd nowadays.

however , you don’t really need an initrd. It is just a convenience in case you need apps/modules very early in the boot, but you should be able to directly mount the rootfs from the kernel, without the initrd. Maybe you should do that first. The initrd can be an ‘empty file’ when calling the mkimage tool. When you don’t use an initrd, you need to specify the exact device path in root= in bootarg (e.g. root=/dev/mmcblk0pxx, not /dev/disk-by/… since these symlinks are created by udev from the initrd.


#5

Dear @ndec,

Thanks for your advice and VERY long time after that.
After other jobs so long, returned this work again.

4.x kernel is preferred to 3.x(Android kernel version) for the future.
However, I have some problem to port 3.x android kernel to 4.x Debian kernel.
Device Tree, for example, and device drivers for display.

That’s why I tried to use 3.xx kernel(from Android BSP) and the latest rootfs(from Debian BSP) together.

I would try once again!

Thanks,
mipsan