Home > Chromium OS, Linux, Rockchip RK31xx, Rockchip RK32xx, Testing > Linux Kernel Source Code and Chromium OS Overlay for Rockchip RK3288

Linux Kernel Source Code and Chromium OS Overlay for Rockchip RK3288

A few days ago, we’ve seen Chromium OS running on Rockchip RK3288 development platform. I’ve been informed the source code could have already been released via the newly registered rkchrome github account with Linux kernel 3.10.30 and the overlay files to build Chromium OS for RK3288. There’s also a u-boot repository but it is currently empty.  This Linux kernel can also boot Rockchip RK3188 based Radxa Rock development board, but more tests are needed to see if it’s really usable.

I’ll have a look at the Linux kernel, and try to build it, and leave the Chromium OS part for later or other people.

Linux_3.10_Rockchip_RK3188_RK3288Let’s retrieve the source code:

git clone https://github.com/rkchrome/kernel.git
cd kernel

We’ve got two kernel config files related to Rockchip in arch/arm/config:

ls arch/arm/configs/ | grep rock
rockchip_chromium_defconfig
rockchip_defconfig

But since this is a recent 3.10 kernel with support for Flattened Device Tree support, and multi-platform support, there’s not much to be seen in these files, and we have to go to arch/arm/boot/dts/ where we can find several rk3188 and rk3288 related files:

cd arch/arm/boot/dts/
ls rk*
rk3188-clocks.dtsi   rk3188-tb.dts       rk3288-fpga.dts      rk3288-tesco.dts
rk3188.dtsi          rk3288-chrome.dts   rk3288-p977.dts      rk616.dtsi
rk3188-lr097.dts     rk3288-clocks.dtsi  rk3288-pinctrl.dtsi  rk808.dtsi
rk3188-pinctrl.dtsi  rk3288.dtsi         rk3288-tb.dts

dtsi files contains parameters relevant to the SoC and common to all hardware platforms. dts files are device specific. All dts file seem to include an LCD display so they may all be for tablets.

Let’s try to build the kernel with one of the default config in Ubuntu 14.04:

make ARCH=arm rockchip_defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j8

The build actually failed due to some inlining issues such as:

arch/arm/mach-rockchip/pm.h:161:20: error: inlining failed in call to always_inline ‘rkpm_set_ctrbits’: function body not available

But each time, editing the code to remove the inline declaration, e.g. “extern inline void” to “extern void,” fixed the build, and eventually I could get a zImage that in theory can boot RK3188 or RK3288 based devices.

If you want to generate the dtb (Device Tree Binary) file from the dts you can run something like:

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- rk3288-tb.dtb

Thanks to Omegamoon for the tip.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

  1. Marius
    April 23rd, 2014 at 22:21 | #1

    Now this is indeed exciting, to have a kernel with device tree support.
    This means that at least in theory all you’d have to do to get it working on a new device would be to extract the device tree from that device and voila. Pretty amazing if it works.

  2. Menno
    April 24th, 2014 at 23:09 | #2

    Thats very interessting. Is it correct that also the VPU & GPU drivers are supported within this alternative linux version? If that is correct maybe that we can port it to the Rk3188 and RK3066?

  3. April 25th, 2014 at 09:39 | #3

    @Menno
    As usual the kernel GPU drivers are available. I haven’t checked if the user space GPU binary blobs were available in the Chromium OS overlay, but in any case, we should be able to get them once RK3288 Chromium OS devices are available for sale. I doubt these will be usable in RK3066/RK3188 as it is another generation of Mali GPU.

    3D GPU acceleration is already working in RK3066 / RK3188 in Linux anyway.

  4. May 16th, 2014 at 14:10 | #4

    @cnxsoft
    That’s true for the GPU but not for the VPU, the latter will make possible video acceleration so, for example, we will be able to watch a video in fullscreen.

    Do you know if binary blobs are available for the VPU, composed of on2 hantro encoder and decoder? :)

  5. May 16th, 2014 at 15:01 | #5

    @tonikasch
    Binary blobs? They’ll be somewhere in the firmware anyway.
    I hope their Chromium OS support includes VPU support as well, but I have not checked in details.

  6. July 4th, 2014 at 10:47 | #6

    They’ve now added u-boot, coreboot and a GPU directories – https://github.com/rkchrome/

  7. Marius
    September 7th, 2014 at 00:05 | #7

    Now this looks interesting:

    http://lists.infradead.org/pipermail/linux-arm-kernel/2014-August/280395.html

    Note the email of the person doing the commit.

  8. m][sko
    September 7th, 2014 at 00:22 | #8

    @Marius
    you know if you see email from samsung/google/chrome
    it can be company hired for some project

    and rockchip really need to step in this bussines

    Samsung has 5000 developers on android

  9. Marius
    September 7th, 2014 at 00:49 | #9

    I was just pointing out that the Chromium guys are working on mainline RK3288 support which mean there’s probably a company out there that’s going to use Chromium on a device equipped with a RK3288 SOC.

    As for developers well yes, Samsung has lots of them I’m sure but then again Sasmsung can afford to and Samsung does all kind of Android customization.

  10. September 7th, 2014 at 09:51 | #10

    @Marius
    I’ve been told some Rockchip employees work in Google offices…
    Based on these commits, I would not been surprised if a Rockchip RK3288 based Chromebook / Chromebox was announced soon.

    Rockchip also works with Google designing a new SoC for project Ara (https://plus.google.com/app/basic/stream/z13ifrqgluulhb01s23eu5ozxrvzjn4cy).

  1. May 18th, 2014 at 12:00 | #1