This guide describes how to make Ubuntu rootfs to work on RZ/G2L, RZ/G2LC, RZ/G2UL evaluation board kit.
There are many steps to make the Ubuntu environment, but the following package includes shell scripts that make the process easy.
Notice
The Ubuntu environment created by using the scripts can be used only for evaluation purpose.
Ubuntu is a registered trademark of Canonical Ltd. Users need to follow Ubuntu IPR policy. For more information, please refer to Ubuntu "Intellectual property rights policy".
Target Ubuntu OS Version: 20.04, 18.04
Target reference board: RZ/G2L,/G2LC,/G2UL SMARC
Host PC Environment: Ubuntu20.04
Run below command on Host Ubuntu PC
sudo apt-get install qemu-user-static
Expand | |
---|---|
|
...
|
...
|
In the following example, please replace "version" as below name as you need
ubuntu-base-20.04.4-base-arm64:
...
20.04.4
...
ubuntu-base-18.04.5-base-arm64:
...
ExpandInitial preparation |
ExpandCreate a new script file |
18.04.5
...
Expand | ||
---|---|---|
| ||
$ mkdir ~/work $ cd ~/work $ mkdir root $ sudo tar -xpf ubuntu-base-<version>-base-arm64.tar.gz -C root $ sudo cp /usr/bin/qemu-aarch64-static ./root/usr/bin/ $ sudo cp -b /etc/resolv.conf root/etc/resolv.conf |
Expand | ||
---|---|---|
| ||
|
$ chmod
...
+x
...
ch-mount.sh
...
$ ./ch-mount.sh
...
-m
...
root/
...
# chmod -R 777 /tmp
...
# apt-get update
...
# apt-get
...
install
...
language-pack-en-base
...
sudo
...
ssh
...
net-tools
...
network-manager
...
ethtool
...
ifupdown
...
isc-dhcp-client
...
openssh-server
...
iputils-ping
...
rsyslog
...
bash-completion
...
htop
...
resolvconf
...
dialog
...
vim
...
Expand | |
---|---|
|
...
|
...
| |
# useradd -s '/bin/bash' -m -G adm,sudo <name> |
...
Expand | ||
---|---|---|
| ||
start on stopped rc or RUNLEVEL=[12345] stop on RUNLEVEL [!12345] respawn exec /sbin/getty -L 115200 ttyLP0 vt102 |
# echo "auto eth0" > /etc/network/interfaces.d/eth0
...
# echo "iface eth0 inet dhcp" >> /etc/network/interfaces.d/eth0
...
# echo "nameserver 8.8.8.8" >> /etc/resolv.conf
...
# echo "nameserver 8.8.4.4" >> /etc/resolv.conf
...
Expand | ||
---|---|---|
| ||
# apt-get install pkg-config |
exit
./ch-mount.sh -u root/
cd root
tar -cjf rootfs.tar.bz2 ./*
Prepare a SD card with ext4 partition: Learning/Linux#Partitioning and Formatting an SD Card
extract ubuntu .bz2 package to SD card
sudo tar -xvf rootfs.tar.gz -C /media/xxx/rootfs
...
Copy the Wayland 1.18.0 source code from VLP Yocto build folder to
...
rootfs
As currently you are still in QEMU environment, you can open a new Terminal window to copy VLP source code to rootfs.
Run below command in new Terminal:
$ sudo cp ~YOUR_VLP_FOLDER/
...
build/tmp/work/aarch64-poky-linux/wayland/1.18.0-r0/wayland-1.18.0
...
/ ~/work/root/home/xxx/vlp_deploy/
Expand | ||
---|---|---|
| ||
# cd /root/home/xxx/vlp_deploy/wayland-1.18.0 |
...
|
...
Copy the wayland-protocol1.20.0 source code from VLP Yocto build folder to
...
rootfs
Run below command in new Terminal:
$ sudo cp ~YOUR_VLP_FOLDER/
...
build/tmp/work/aarch64-poky-linux/wayland-protocols/1.20-r0/wayland-protocols-1.20
...
/ ~/work/root/home/xxx/vlp_deploy/
Expand | ||
---|---|---|
| ||
# cd /root/home/xxx/vlp_deploy/wayland-protocols-1.20 |
...
|
...
Copy the weston8.0.0 source code from VLP Yocto build folder to
...
rootfs.
Run below command in new Terminal:
$ sudo cp ~YOUR_VLP_FOLDER/
...
build/tmp/work/aarch64-poky-linux/weston/8.0.0-r0/weston-8.0.0
...
/ ~/work/root/home/xxx/vlp_deploy/
Expand | ||
---|---|---|
| ||
|
...
|
...
If the configuration is correct, it will display below messages
User defined options
libdir : /usr/lib/aarch64-linux-gnu
prefix : /usr
sysconfdir : /etc
backend-drm-screencast-vaapi : false
color-management-colord : false
remoting : false
xwayland : false
...
Expand | ||
---|---|---|
| ||
# ninja -C build/ |
...
Please refer to the StartupGuide.txt document in meta-rz-features/recipes-graphics/mali/files/mali_pkg_eval_vx.x.tar.gz
Copy the driver mali_kbase.
...
ko from VLP Yocto build folder to
...
rootfs.
Run below command in new Terminal:
$ cp ~YOUR_VLP_FOLDER/build/tmp/work/smarc_rzg2l-poky-linux/kernel-
...
module-mali/
...
rxx-p0/image/lib/modules/5.10.
...
xx-cip1-yocto-standard/extra
...
/mali_kbase.ko ~/work/root/home/xxx/vlp_deploy/modules
Copy the library files to
...
rootfs.
Run below command in new Terminal:
$ cp ~YOUR_VLP_FOLDER/meta-rz-features/
...
meta-rz-graphics/recipes-graphics/mali/files/mali_
...
um_eval_vx.x.x.tar.gz
...
sudo apt install glmark2-es2-wayland
Only root user can launch weston service, please switch to root user in advance
insmod mali_kbase.ko
...
weston --tty 1 &
Run glmark2 test
glmark2-es2-wayland --fullscreen
![]() | ![]() |
---|---|
![]() |
| ||
# cd /home/xxx/vlp_deploy/ |
...
* /usr/lib/aarch64-linux-gnu/ |
In this section, we will copy codec related files from original VLP Yocto build.
...
Expandcopy gstreamer related lib |
Expandmodify omx plugin configuration |
Expandinstall gstreamer dependency |
Expandlogin as root and insmod drivers |
ExpandSpecify gstreamer location |
ExpandLaunch weston |
ExpandPlay Video |
Run below command in new Terminal:
copy codec drivers |
$ sudo cp ~YOUR_VLP_FOLDER/build/tmp/work/smarc_rzg2l-poky-linux/core-image-qt/1.0-r0/rootfs/lib/modules/5.10.201-cip41-yocto-standard/extra/* \ |
copy gstreamer related lib |
$ sudo cp -rd ~YOUR_VLP_FOLDER/build/tmp/work/smarc_rzg2l-poky-linux/core-image-qt/1.0-r0/rootfs/usr/bin/gst-* ~/work/root/usr/bin/ |
...
Pleaes copy this .bz2 file to Ubuntu SD card and run below instruction on reference board
unzip core-image-qt-smarc-rzg2l.tar.bz2 or core-image-weston-smarc-rzg2l.tar.bz2 to folder "yocto"
Expandcopy codec drivers |
-poky-linux/core-image-qt/1.0-r0/rootfs/usr/lib64/gstreamer-1.0/ ~/work/root/usr/lib/aarch64-linux-gnu/ |
modify omx plugin configuration |
sudo vi ~/work/root/etc/xdg/gstomx.conf replace "lib64" as "lib/aarch64-linux-gnu" [omxh264dec]
type-name=GstOMXH264Dec
core-name=/usr/lib/aarch64-linux-gnu/libomxr_core.so
component-name=OMX.RENESAS.VIDEO.DECODER.H264
·····
[omxh264enc]
type-name=GstOMXH264Enc
core-name=/usr/lib/aarch64-linux-gnu/libomxr_core.so
component-name=OMX.RENESAS.VIDEO.ENCODER.H264
···· |
You can port Qt by following 3 methods
In this section, we will copy Qt5.6.3 related files from original VLP Yocto build.
i.e. core-image-qt-smarc-rzg2l.tar.bz2
Pleaes copy this .bz2 file to Ubuntu SD card and run below instruction on reference board
...
Run below command in new Terminal:
(For other version of Qt, you can modify Yocto meta-qt5\recipes-qt\qt5, please inqury Qt company for higher version QT integration)
ExpandPort Qt lib |
Start Weston RZ-G/RZ-G2 BSP Porting Ubuntu#Start Weston desktop
...
Copy Qt lib |
$ sudo cp -rd ~YOUR_VLP_FOLDER/build/tmp/work/smarc_rzg2l-poky-linux/core-image-qt/1.0-r0/rootfs/usr/share/qt5 ~/work/root/usr/share/ |
You can download qt5 source to reference board and compile on board.
Or cross compile qt5 on PC
Or compile qt5 in PC QEMU
Here we compile qt5 on board
...
Collapsecompile qt5 |
download qt5 source code by git (ignore) mkdir qt5-build cd qt5-build make make install (rsync to SD) |
We suggest to compile the qt5 with scrips
Notes: About the flags parameter in configure of Qt5. -qpa should be set as wayland or wayland-egl. We didn't support xcomposite-egl option
apt-get install qt5-default qtwayland5
Notes: The above installation commands can only run part of Qt functions. If you need more functions, you need to continue installing Qt related packages.
exit
./ch-mount.sh -u root/
sudo tar cjf rootfs.tar.bz2 root .
Prepare a SD card with ext4 partition: SD Card Loading and Booting
extract ubuntu rootfs package to SD card
sudo tar -xvf rootfs.tar.gz -C /media/xxx/rootfs
Only root user can launch weston service, please switch to root user in advance
Please connect a USB mouse before starting weston
insmod mali_kbase.ko
export XDG_RUNTIME_DIR=/usr/lib/
export RUNLEVEL=3
weston --tty 1 &
Run glmark2 test
glmark2-es2-wayland --fullscreen
|
|
---|---|
|
login as root and insmod drivers |
insmod /home/xxx/vlp_deploy/modules/mali_kbase.ko insmod /home/xxx/vlp_deploy/modules/mmngr.ko insmod /home/xxx/vlp_deploy/modules/mmngrbuf.ko insmod /home/xxx/vlp_deploy/modules/uvcs_drv.ko insmod /home/xxx/vlp_deploy/modules/vspm.ko insmod /home/xxx/vlp_deploy/modules/vspm_if.ko |
Specify gstreamer location |
export GST_PLUGIN_SCANNER=/usr/lib/aarch64-linux-gnu/gstreamer-1.0/gst-plugin-scanner export GST_PLUGIN_PATH=/usr/lib/aarch64-linux-gnu/gstreamer-1.0 |
Launch weston |
weston –tty 1 & |
Play Video |
gst-launch-1.0 filesrc location=/root/video/sintel_trailer-720p.mp4 ! qtdemux ! queue ! h264parse ! omxh264dec ! waylandsink
gst-launch-1.0 filesrc location=/root/video/sintel_trailer-720p.mp4 ! qtdemux name=d d. ! queue ! h264parse ! omxh264dec ! waylandsink d. ! queue ! faad ! alsasink device=plughw:0,0 |
Start Weston Start Weston desktop
export QT_QPA_PLATFORM=wayland
export QT_PLUGIN_PATH=/usr/lib/aarch64-linux-gnu/qt5/plugins/
Then run the Qt example in /usr/share/qt5/examples
This section introduce how to develop Qt application on PC.
bitbake core-image-qt -c populate_sdk
The generated installation file is located at:
build/tmp/deploy/sdk/poky-glibc-x86_64-core-image-qtaarch64-smarc-rzg2l-toolchain-3.1.14.sh
Install this SDK to PC, default folder is /opt/poky/3.1.14
setup SDK runtime environment
source /opt/poky/3.1.14/environment-setup-aarch64-poky-linux
Add Device |
---|
...
|
---|
Add new Kit |
...
|
Add Qt version |
...
|
Add compiler |
...
|
Add debuggers |
...
|
Select kit to build Qt project |
...
| |
example to run qt calculator project |
|
...
Table of Contents |
---|