Yocto support in meta-radxa

Hello,

Any plans to add RockPi 3A (B?) to meta-rockchip/meta-radxa yocto layer?

Thanks.

1 Like

Hi, I tried using meta-rockchip from rockchip-linux Github. But they removed the repo, and now you should use a mirror. As machine I used rockchip rk3568-evb, it works but the kernel 4.19 is configured for evb. You can try to replace the kernel recipe by adding the radxa kernel.

This is the mirror from JeffyCN Github:

Are there any other quirks or pitfalls to know of when running the yocto image on the RockPi 3A with machine set to rk3568-evb?

Also could you elaborate what you mean when you say that ‘kernel 4.19 is configured for evb’?

I did try to use the meta-rockchip, but it did not boot (I did not have serial plugged in to access the bootloader and check) and also meta-rockchip does override lots of things without restricting itself to its own soc family, so enabling that layer would cause every build to include its stuff (and kernel, etc) even if you build for a different MACHINE.

The last issue is more pressing to me, since the point is being able to run same software across different hardware. I’ve started with my own BSP layer and appended the recipes to use radxa’s repos instead of rockchip but I haven’t finished (It does not boot). I should have some time over the weekend to connect serial to it and check further.

1 Like

Interesting. So no image with Yocto for now?
I would need it too with Rock3A.

Thanks

So far I haven’t not progressed much. I don’t want this thread to be just complaints … but I see a bit of support from radxa kinda “missing”, which is undertandable since they don’t look like specialized in linux development, so I’ve tried to follow their kernel git history/forks, but this leads to a dead end of a series of forks to someone which made a snapshop (i.e. forked without any history at all) so I cannot split easily what is “radxa specific” from the 4.19 mainline. It is also difficult to do alone when something “doesn’t boot” that it involves so much custom repos (dts, u-boot, linux kernel) that takes long time to debug.
Other side is apparently Rockchip’s side which I would have imagine they would have way more investment to make mainline support or even maintain better quality for the EVBs. The fact that most of rockchip specific codes now lives under “JeffyCN” github account instead of the corporate “rockchip” is tricky. I’m trying to wrap lots of yocto calls to fetch files from JeffyCN and move them around to “expected places” because I cannot just re-publish those files that copyrighted by Rockchip.

I would be more than happy to help out sorting this stuff out as what I’ve been doing for my own projects, but it takes time and effort for me which I only want to be able to use my 3x RockPI3A that I’ve purchased from my own pocket, no commercial interest here. But it get disappointing when you hit some issues (like my thread about CAN bus not working, even though I did exactly what Radxa documented, using same eletronics) and Radxa apparently did not even try to help or comment.

Still I did not drop my project, just is progressing slower than expected.

Hi, I’m trying to create MACHINE=rockpi-3a for meta-radxa. My work starts from the CM3 recentrly added machine. I created a new machine, kernel and bootloader recipes but there is some common issue between RockPi-3A and CM3 recipes:

  1. During u-boot deploy the u-boot.bin is missing after build
  2. Missing mkimage tool from rkbin repo after build and deploy
  3. Missing uEnv.txt and boot.cmd from the u-boot files section for rockpi3 and CM3

I added manually the u-boot.bin image from a buildroot build in the working dir. The yocto build procedure for radxa minimal image successfully finish but during boot hang in “Starting Kernel…” probably because I’m using a wrong u-boot.bin.

Another strange thing… I must declare the MACHINE as rk3566, using and adding rk3568 all dependencies check in bitbake fail.

If someone wish try this mode there I’ll attach the meta-radxa patch.
patch.zip (3.3 KB)

yocto is part of the bsp and can be used as standalone

it uses packages from the bsp folders and if not then it downloads them

you only would have to change the kernel dts and defconfig name

the rootfs it builds can be used also with the other bsp build scripts , so you could throw almost every boot.img against it to get it boot something

the mirrors repo is just a repo with the needed packages for building yocto

you would only need the raxda kernel or config to get it going

getting xorg/wayland going is little annoying

and use the honister meta rockchip from a few months (before march) ago to have the most succes

after march there could be changes in the repo so kernel is not in sync anymore to work out of the box with the availible packages


here you can see how i got it going for another board

Hi! Thank you for your answer, is exactly what I tried to do. First of all I downloaded the meta-rockchip/radxa and I tried to add a new machine configuring a custom kernel recipe (adding the correct radxa kernel with dts and defconfig). But It fail both (using meta-radxa and meta-rockchip), with some patch the build success but when I try to use the radxa kernel (branch stable-4.19-rock3) the kernel hang during boot. It show on the debug console only the message “Starting kernel…”. Maybe I miss something important stuff in deploy stage of the kernel that avoid kernel start? The radxa bootloader correctly recognize dtb and Image, but fail during start. In the zip package there is my machine configuration and the other patch.

i saw the zip package
you didnt look at yocto version honister

use that as base , update kernel ,rkbin and u-boot to more recent versions
build it once
symlink kernel folder to kernel-4.19

place yocto in same folder

change
KERNEL_DEVICETREE
UBOOT_MACHINE =
RK_WIFIBT_FIRMWARES =
KBUILD_DEFCONFIG =

in the yocto config files

build yocto

and instead of

build/mk-image.sh … roofs/… you point the rootfs to the yocto one

ow and use a gcc-10 toolchain

as someone who has spent a lot of time getting the mainline kernel to boot on a cm3 in various ways but without any success so far, i can tell you that the hang at “Starting kernel…” does not seem to have to do with u-boot itself. I am using a known good bootable cm3 sd card where i only swapped the kernel Image for the new one, and it just will not get past “Starting kernel…” - at this point my theory is that maybe i just didnt get the serial output port right and it might actually be booting. However so far hdmi also stayed blank.

Hi,
can anyone tell me if you can have Yocto on Rock 3A?
I see there is something for Rock 4, but I have a lot of Rock 3A’s.
Is it an architecture problem on 3A?

Thanks so much for any help

There is a lack of a supported BSP, having said that I made a mainline based bsp based on meta-rockchip I could probably share.

ok, PhoenixMage thanks a lot ,
I would be grateful if you could send me a link.

Try this, no promises

Hi, it’s hard but I managed to eliminate many errors.
Now at the end of the construction it gives me this error, whether I use the base or the minimal.

~/yocto/poky/build$ bitbake -k core-image-base
/usr/lib/python3.6/importlib/_bootstrap.py:219: ImportWarning: can’t resolve package from spec or package, falling back on name and path
return f(*args, **kwds)
Loading cache: 100% | | ETA: --:–:--
Loaded 0 entries from dependency cache.
Parsing recipes: 100% |##################################################################################################################################| Time: 0:01:44
Parsing of 935 .bb files complete (0 cached, 935 parsed). 1726 targets, 102 skipped, 0 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies

Build Configuration:
BB_VERSION = “2.0.0”
BUILD_SYS = “x86_64-linux”
NATIVELSBSTRING = “universal”
TARGET_SYS = “aarch64-poky-linux”
MACHINE = “rock-3a”
DISTRO = “poky”
DISTRO_VERSION = “4.0.11”
TUNE_FEATURES = “aarch64 armv8-2a crypto cortexa55”
TARGET_FPU = “”
meta-rockchip = “kirkstone:69e81905e0b0dc1c59b4ccf5ed63b4d0a7608acf”
meta = “kirkstone:7949e786cf8e50f716ff1f1c4797136637205e0c”
meta-arm
meta-arm-toolchain = “kirkstone:96aad3b29aa7a5ee4df5cf617a6336e5218fa9bd”
meta-poky = “kirkstone:fc697fe87412b9b179ae3a68d266ace85bb1fcc6”

Initialising tasks: 100% |###############################################################################################################################| Time: 0:00:03
Sstate summary: Wanted 3 Local 0 Mirrors 0 Missed 3 Current 1403 (0% match, 99% complete)
NOTE: Executing Tasks
ERROR: u-boot-1_2023.07-rc3-r0 do_populate_lic: QA Issue: u-boot: The LIC_FILES_CHKSUM does not match for file://Licenses/README;md5=5a7450c57ffe5ae63fd732446b988025
u-boot: The new md5 checksum is 2ca5f2c35c8cc335f0a19756634782f1
u-boot: Here is the selected license text:
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
SPDX-License-Identifier: GPL-2.0

** U-Boot is Free Software. It is copyrighted by Wolfgang Denk and**
many others who contributed code (see the actual source code and the
git commit messages for details). You can redistribute U-Boot and/or
modify it under the terms of version 2 of the GNU General Public
License as published by the Free Software Foundation. Most of it can
also be distributed, at your option, under any later version of the
GNU General Public License – see individual files for exceptions.


GNU Lesser General Public License v2.1 or later LGPL-2.1+ Y lgpl-2.1.txt http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt
eCos license version 2.0 eCos-2.0 eCos-2.0.txt http://www.gnu.org/licenses/ecos-license.html
BSD 2-Clause License BSD-2-Clause Y bsd-2-clause.txt http://spdx.org/licenses/BSD-2-Clause
BSD 3-clause “New” or “Revised” License BSD-3-Clause Y bsd-3-clause.txt http://spdx.org/licenses/BSD-3-Clause#licenseText
IBM PIBS (PowerPC Initialization and IBM-pibs ibm-pibs.txt
** Boot Software) license**
ISC License ISC Y isc.txt https://spdx.org/licenses/ISC
MIT License MIT Y mit.txt https://spdx.org/licenses/MIT.html
SIL OPEN FONT LICENSE (OFL-1.1) OFL-1.1 Y OFL.txt https://spdx.org/licenses/OFL-1.1.html
X11 License X11 x11.txt https://spdx.org/licenses/X11.html
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
u-boot: Check if the license information has changed in /home/microtech/yocto/poky/build/tmp/work/rock_3a-poky-linux/u-boot/1_2023.07-rc3-r0/git/Licenses/README to verify that the LICENSE value “GPL-2.0-or-later” remains valid [license-checksum]
ERROR: u-boot-1_2023.07-rc3-r0 do_populate_lic: Fatal QA errors were found, failing task.
ERROR: Logfile of failure stored in: /home/microtech/yocto/poky/build/tmp/work/rock_3a-poky-linux/u-boot/1_2023.07-rc3-r0/temp/log.do_populate_lic.32492
ERROR: Task (/home/microtech/yocto/poky/meta-rockchip/recipes-bsp/u-boot/u-boot_2023.07-rc3.bb:do_populate_lic) failed with exit code '1’
NOTE: Tasks Summary: Attempted 3479 tasks of which 3478 didn’t need to be rerun and 1 failed.

Summary: 1 task failed:
/home/microtech/yocto/poky/meta-rockchip/recipes-bsp/u-boot/u-boot_2023.07-rc3.bb:do_populate_lic
Summary: There were 2 ERROR messages, returning a non-zero exit code.

I tried putting this in the local.conf file

LIC_FILES_CHKSUM = “file://LICENSE;md5=5a7450c57ffe5ae63fd732446b988025”

This license solves me, but it gives me errors of other 4Licenses.
I have no distro file at the end.

Thanks PhoenixMage