Running Chromium Browser on the Renesas RZ/G2L Evaluation Board

by sahana_s in Circuits > Electronics

41 Views, 0 Favorites, 0 Comments

Running Chromium Browser on the Renesas RZ/G2L Evaluation Board

1200px-Renesas_RZG2L_EVK.jpg

Hey everyone! In this Instructable, I'll walk you through how to boot embedded Linux on a Renesas RZ/G2L Evaluation Board Kit, and then install and launch the Chromium (HTML5) browser on it.

This is a great project for students learning embedded Linux because you'll touch:

  1. Yocto/Linux image building
  2. Bootloader flashing
  3. Board bring-up over serial console
  4. Running a real GUI browser on embedded hardware

By the end, you'll have your RZ/G2L board displaying a live webpage on an HDMI monitor, controlled with a USB mouse and keyboard!

Supplies

Hardware:

  1. RZ/G2L Evaluation Board Kit
  2. USB Type-C cable (USB-PD compatible) + USB-PD charger (15W+, 5V/3A)
  3. USB Type-microAB cable (for serial console)
  4. Micro HDMI cable (needed since we're using core-image-weston, the graphical image)
  5. microSD card (8GB+ recommended)
  6. USB hub + USB mouse + USB keyboard (to control Chromium)

Software (on your Linux Host PC):

  1. Ubuntu 22.04 LTS (64-bit), ~250GB free disk space
  2. Tera Term (if using Windows PC for serial console)
  3. FTDI VCP driver

Set Up Your Build Environment

On your Ubuntu 22.04 Host PC, install the required packages:

sudo apt-get update
sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \
build-essential chrpath socat cpio python3 python3-pip python3-pexpect xz-utils \
debianutils iputils-ping libsdl1.2-dev xterm p7zip-full libyaml-dev libssl-dev \
bmap-tools


Set your git identity (needed to apply patches during the build):

git config --global user.email "you@example.com"
git config --global user.name "Your Name"


The VLP build only works on Ubuntu 22.04, Ubuntu 24.04 is not supported. If you're on a newer OS, you can build inside a Docker container running Ubuntu 22.04 instead.

Download & Unpack the Base Linux Package (VLP)

1000264704.png

Create an account on the Renesas RZ MPU download page and grab the RZ MPU Verified Linux Package v4.0.1 files. You'll need:

  1. RTK0EF0045Z0021AZJ-v4.0.1.zip -> contains rz_vlp_v4.0.1.tar.gz (Yocto recipes) https://www.renesas.com/document/gde/smarc-evk-rzg2l-rzg2lc-linux-start-guide-rev100?r=1467981
  2. (Optional but recommended for reproducible builds) oss_pkg_rz_v4.0.1.7z - open-source packages for an "offline" build https://www.renesas.com/en/document/swo/open-source-packagesosspkgrzv4017z?r=25573698

Unpack it:

mkdir ~/rzg_vlp_v4.0.1
cd ~/rzg_vlp_v4.0.1
cp ../<download_folder>/*.zip .
unzip ./RTK0EF0045Z0021AZJ-v4.0.1.zip
tar zxvf ./RTK0EF0045Z0021AZJ-v4.0.1/rz_vlp_v4.0.1.tar.gz

Build the Base Image (without Chromium First)

Initialize the Yocto build environment:

TEMPLATECONF=$PWD/meta-renesas/meta-rz-distro/conf/templates/rz-conf/ \
source poky/oe-init-build-env build


Build the base core-image-weston (this is required because Chromium needs the Weston graphics/Wayland compositor, it's the only image HTML5 supports)

MACHINE=smarc-rzg2l bitbake core-image-weston


Once done, you'll see something like:

NOTE: Tasks Summary: Attempted 7427 tasks of which 16 didn't need to be rerun and all succeeded.

Your output files will be in build/tmp/deploy/images/smarc-rzg2l/

Add the Chromium (HTML5) Package

Now let's layer Chromium132 on top. Download RTK0EF0193Z00003ZJ_v4.0.0.1.zip and unpack it into your working directory:

cd ~/rzg_vlp_v4.0.1
cp ../<download_folder>/RTK0EF0193Z00003ZJ_v4.0.0.1.zip .
unzip ./RTK0EF0193Z00003ZJ_v4.0.0.1.zip
tar zxvf ./RTK0EF0193Z00003ZJ_v4.0.0.1/rzg_bsp_chromium132_v4.0.0.1.tar.gz


Add the required Yocto layers:

bitbake-layers add-layer ../meta-clang
bitbake-layers add-layer ../meta-lts-mixins
bitbake-layers add-layer ../meta-browser/meta-chromium
bitbake-layers add-layer ../meta-openembedded/meta-networking
bitbake-layers add-layer ../meta-browser-hwdecode


Now enable Chromium by adding these lines to ~/rzg_vlp_v4.0.1/build/conf/local.conf

IMAGE_INSTALL:append = " chromium-ozone-wayland "
IMAGE_INSTALL:append = " ntp "
IMAGE_INSTALL:append = " ttf-sazanami-gothic ttf-sazanami-mincho "
IMAGE_INSTALL:append = " adwaita-icon-theme-cursors "

Rebuild the Image With Chromium Included

MACHINE=smarc-rzg2l bitbake core-image-weston

This rebuild will take a while too since it's compiling the whole browser stack. Once finished, your Chromium-enabled rootfs/image will be in build/tmp/deploy/images/smarc-rzg2l/

Tip: RZ/G2L has been tested by Renesas with both the Graphics and Codec library combo for Chromium132, so for the smoothest video/graphics performance, consider adding those optional packages too

Flash the MicroSD Card

Prepare your microSD card using the wic image method (easiest route):


sudo fdisk -l # find your SD card, e.g. /dev/sdb
sudo umount /dev/sdb1
sudo umount /dev/sdb2
sudo bmaptool copy core-image-weston-smarc-rzg2l.wic.gz /dev/sdb

This single command writes both the FAT32 boot partition and the Ext4 rootfs partition in one go

Hardware Setup & Serial Console

Screenshot 2026-10-05 000459.png
Screenshot 2026-10-05 000521.png
  1. Connect a USB Type-microAB cable from your PC to the board's debug/console port.
  2. Open Tera Term (Windows) and set up serial communication:Speed: 115200 bps
  3. Data: 8-bit, Parity: None, Stop bit: 1, Flow control: None
  4. Connect the USB-PD power cable and press the power button to boot

SCIF Download mode (to flash): SW11 = OFF ON OFF ON

SW1: SW1-1 = ON (normal operation), SW1-2 = OFF (eMMC) / ON (microSD)

Normal boot mode (after flashing): SW11 = OFF OFF OFF ON

Write the Bootloader (First-Time Setup Only)

If this is a fresh board, you'll need to:

  1. Set the board to SCIF Download mode via the boot switches.
  2. Download Flash Writer to RAM over serial.
  3. Use Flash Writer's XLS2 command to write the two bootloader files (bl2_bp...srec and fip...srec) to flash
  4. Switch the board back to normal boot mode switch position
  5. On first boot into U-Boot, run:
=> env default -a
=> saveenv

to set clean default environment variables

This is a one-time step, once your board can boot into U-Boot normally, you won't need to repeat it unless you re-flash the chip.

Boot Linux!

1000264747.png

Insert your flashed microSD card into the board's SD slot and power on. You should see the kernel boot log scroll by, ending in a login prompt:

Poky (Yocto Project Reference Distro) 3.1.33 smarc-rzg2l ttySC0
BSP: RZG2L/RZG2L-SMARC-EVK/3.0.7
LSI: RZG2L
Version: 3.0.7
smarc-rzg2l login: root
root@smarc-rzg2l:~#

Launch Chromium!

1000264706.png

Connect your USB hub + mouse + keyboard and your micro HDMI cable to a monitor. Then, from the serial console (logged in as root), run:

chromium --no-sandbox https://www.renesas.com

Or to open a local HTML file stored on the board:

chromium --no-sandbox /home/root/mypage.html

If you're launching from a Wayland terminal directly on the board instead of over serial, drop the --no-sandbox flag

chromium https://www.renesas.com

You should now see Chromium rendering a full webpage on your monitor, controllable with your mouse and keyboard!


Troubleshooting Tips:

Build fails with "Bullseye" package errors -> Try switching CIP_MODE in local.conf, or disable CIP Core packages entirely

No ethernet detected on boot -> Normal in this image if you haven't configured a network driver, Chromium can still load local HTML files

SDK/SPDX build errors -> There's a known fix for populate_sdk with SBoM support, patch populate_sdk_base.bbclass as described in the official release notes


What You Learned:

How to build a full embedded Linux image using Yocto/bitbake

How to layer additional software (Chromium) onto a base BSP

How to flash and boot an SD card on Renesas RZ/G2L hardware

How to bring up a GUI browser application on embedded Linux


Next Steps:

Build a kiosk-mode web dashboard that auto-launches Chromium on boot

Try the hardware video decode features for playing video in-browser

Combine this with a touchscreen for an interactive IoT display

Explore running Qt applications instead of Chromium for lighter-weight GUIs