Mirror of JeffyCN/meta-rockchip
This repository has been archived on 2022-10-03. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
Jeffy Chen dfaa69579c gstreamer: Update patches
Major changes:
1/ kmssink: Support fullscreen prop
2/ kmssink: Support scaling in modesetting
3/ kmssink: Improve monitor and plane selection
4/ waylandsink: Fix random crash issue
5/ gstreamer1: Fix mutable check error

Change-Id: If4fc9b9e14b218f6c42411d749184ecbb8346e15
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
2022-09-22 16:35:26 +08:00
classes local-git: Fix fetcher failure 2022-03-21 10:39:31 +08:00
conf rockchip-common: Add modesetting/exa for xserver by default 2022-08-18 10:32:59 +08:00
dynamic-layers chromium: Support 105.0.5195 2022-09-16 11:42:24 +08:00
licenses licenses: Update binary license 2020-07-15 15:53:21 +08:00
recipes-benchmark/glmark2 Support honister 2022-01-26 15:06:46 +08:00
recipes-bsp u-boot: Remove external patch 2022-03-20 03:32:45 +08:00
recipes-core Support kirkstone 2022-03-11 17:22:32 +08:00
recipes-devtools Update licenses 2022-04-20 09:07:54 +08:00
recipes-graphics Bump xserver 2022-08-09 18:42:21 +08:00
recipes-kernel rkwifibt-firmware: Bump version 2022-09-21 18:17:12 +08:00
recipes-multimedia gstreamer: Update patches 2022-09-22 16:35:26 +08:00
wic wic: generic-gptdisk: Increase boot partition size 2019-04-17 11:58:01 +08:00
.gitignore Initial version 2019-04-17 11:57:57 +08:00
COPYING.MIT Initial version 2019-04-17 11:57:57 +08:00
LICENSE Initial version 2019-04-17 11:57:57 +08:00
README.md README.md: Update with syntax 2022-07-14 17:28:56 +08:00



Yocto BSP layer for the Rockchip SOC boards

This README file contains information on building and booting the meta-rockchip BSP layers.

Please see the corresponding sections below for details.


This layer depends on:

  • URI: git://git.yoctoproject.org/poky

  • branch: kirkstone

  • URI: git://git.openembedded.org/meta-openembedded

  • layers: meta-oe

  • branch: kirkstone

Table of Contents

I. Configure yocto/oe Environment

II. Building meta-rockchip BSP Layers

III. Booting your Device

IV. Tested Hardwares

V. Supporting new Machine

I. Configure yocto/oe Environment

In order to build an image with BSP support for a given release, you need to download the corresponding layers described in the "Dependencies" section. Be sure that everything is in the same directory.

~ $ mkdir yocto; cd yocto
~/yocto $ git clone git://git.yoctoproject.org/poky -b kirkstone
~/yocto $ git clone git://git.openembedded.org/meta-openembedded.git -b kirkstone

And put the meta-rockchip layer here too.

Then you need to source the configuration script:

~/yocto $ source poky/oe-init-build-env

Having done that, you can build a image for a rockchip board by adding the location of the meta-rockchip layer to bblayers.conf, along with any other layers needed.

For example:

# build/conf/bblayers.conf
  ${TOPDIR}/../meta-rockchip \
  ${TOPDIR}/../poky/meta \
  ${TOPDIR}/../poky/meta-poky \
  ${TOPDIR}/../poky/meta-yocto-bsp \
  ${TOPDIR}/../meta-openembedded/meta-oe \

To enable a particular machine, you need to add a MACHINE line naming the BSP to the local.conf file:

  MACHINE = "xxx"

All supported machines can be found in meta-rockchip/conf/machine.

II. Building meta-rockchip BSP Layers

You should then be able to build a image as such:

$ bitbake core-image-minimal

At the end of a successful build, you should have an .wic image in /path/to/yocto/build/tmp/deploy/<MACHINE>/, also with an rockchip firmware image: update.img.

III. Booting your Device

Under Linux, you can use upgrade_tool: http://opensource.rock-chips.com/wiki_Upgradetool to flash the image:

  1. Put your device into rockusb mode: http://opensource.rock-chips.com/wiki_Rockusb

  2. If it's maskrom rockusb mode, try to enter miniloader rockusb mode:

$ sudo upgrade_tool db \<IMAGE PATH\>/loader.bin
  1. Flash the image (wic image or rockchip firmware image)
$ sudo upgrade_tool wl 0 \<IMAGE PATH\>/\<IMAGE NAME\>.wic # For wic image
$ sudo upgrade_tool uf \<IMAGE PATH\>/update.img # For rockchip firmware image

IV. Tested Hardwares

The following undergo regular basic testing with their respective MACHINE types.

  • px3se evb board

  • rk3308 evb board

  • rk3326 evb board

  • px30 evb board

  • rk3328 evb board

  • rk3288 evb board

  • rk3399 sapphire excavator board

  • rk3399pro evb board

V. Supporting new Machine

To support new machine, you can either add new machine config in meta-rockchip/conf/machine, or choose a similar existing machine and override it's configurations in local config file.

In general, a new machine needs to specify it's u-boot config, kernel config, kernel device tree and wifi/bt firmware:

For example:

KBUILD_DEFCONFIG = "rk3326_linux_defconfig"
KERNEL_DEVICETREE = "rockchip/rk3326-evb-lp3-v10-linux.dtb"
UBOOT_MACHINE = "evb-rk3326_defconfig"
        rkwifibt-firmware-ap6212a1-wifi \
        rkwifibt-firmware-ap6212a1-bt \
        brcm-tools \

If you want to use your own local u-boot and kernel sources, a simple way is to override related configurations in local config file.

For example using the kernel/ and u-boot/ in the same directory of meta-rockchip:

# build/conf/local.conf
SRC_URI:pn-linux-rockchip = " \
        git://${TOPDIR}/../kernel;protocol=file;usehead=1 \
        file://cgroups.cfg \
SRCREV:pn-linux-rockchip = "${AUTOREV}"

SRC_URI:pn-u-boot = " \
        git://${TOPDIR}/../u-boot;protocol=file;usehead=1 \
SRCREV:pn-u-boot = "${AUTOREV}"


  • Jeffy Chen <jeffy.chen@rock-chips.com>