Target Ubuntu OS Version: 20.04, 18.04
...
...
Host PC Environment: Ubuntu20.04
Run below command on Host Ubuntu PC
sudo apt-get install qemu-user-static
...
title | Select the package to download based on the desired file system |
---|
wget https://cdimage.ubuntu.com/ubuntu-base/releases/20.04/release/ubuntu-base-20.04.4-base-arm64.tar.gz
or wget https://cdimage.ubuntu.com/ubuntu-base/releases/focal/release/ubuntu-base-20.04.4-base-arm64.tar.gz
wget http://cdimage.ubuntu.com/ubuntubase/releases/18.04.5/release/ubuntu-base-18.04.5-basearm64.tar.gz
|
In the following example, please replace "version" as below name as you need
ubuntu-base-20.04.4-base-arm64: 20.04.4
...
title | Initial preparation |
---|
mkdir 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> passwd <name> passwd root chown -R root:root /bin/su chmod u+s /bin/su |
Expand | ||
---|---|---|
| ||
start on stopped rc or RUNLEVEL=[12345] stop on RUNLEVEL [!12345] respawn exec /sbin/getty -L 115200 ttyLP0 vt102 |
Expandvim /etc/init.d/ttyS0.conf |
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
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
Expand | ||
---|---|---|
| ||
|
Copy the Wayland 1.18.0 source code from VLP Yocto build folder to SD card.
i.e. build/tmp/work/aarch64-poky-linux/wayland/1.18.0-r0/wayland-1.18.0/
Expand | ||
---|---|---|
| ||
|
Copy the wayland-protocol1.20.0 source code from VLP Yocto build folder to SD card.
i.e. build/tmp/work/aarch64-poky-linux/wayland-protocols/1.20-r0/wayland-protocols-1.20/
Expand | ||
---|---|---|
| ||
|
Copy the weston8.0.0 source code from VLP Yocto build folder to SD card.
i.e. build/tmp/work/aarch64-poky-linux/weston/8.0.0-r0/weston-8.0.0/
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
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 SD card.
...
...
Expand | ||
---|---|---|
| ||
|
Copy the library files to SD card.
i.e. meta-rz-features/recipesgraphics/mali/files/mali_pkg_eval_vx.x.tar.gz
Expandinstall library to reference board |
Expand | ||
---|---|---|
| ||
/usr/lib/aarch64-linux-gnu/
|
sudo apt install glmark2-es2-wayland
Only root user can launch weston service, please switch to root user in advance
insmod mali_kbase.ko
export XDG_RUNTIME_DIR=/usr/lib/
export RUNLEVEL=3
weston --tty 1 &
Run glmark2 test
glmark2-es2-wayland --fullscreen
In this section, we will copy codec related files from original VLP Yocto build.
i.e. core-image-qt-smarc-rzg2l.tar.bz2 or core-image-weston-smarc-rzg2l.tar.bz2
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"
copy codec drivers |
|
copy gstreamer related lib |
|
...
...
replace "lib64" as "lib/aarch64-linux-gnu"
...
...
install gstreamer dependency |
apt install gstreamer1.0-libav gstreamer1.0-plugins-bad |
login as root and insmod drivers |
insmod /root/modules/mali_kbase.ko insmod /root/modules/mmngr.ko insmod /root/modules/mmngrbuf.ko insmod /root/modules/uvcs_drv.ko insmod /root/modules/vspm.ko insmod /root/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 |
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
unzip core-image-qt-smarc-rzg2l.tar.bz2 to folder "yocto"
(For other version of Qt, you can modify Yocto meta-qt5\recipes-qt\qt5, please inqury Qt company for higher version QT integration)
...
cp -rd usr/share/qt5 /usr/share/
cp -rd usr/lib64/qt5 /usr/lib/aarch64-linux-gnu/
cp -rd usr/lib64/libQt* /usr/lib/aarch64-linux-gnu/
cp -rd usr/lib64/pkgconfig/Qt* /usr/lib/aarch64-linuxgnu/pkgconfig/
export QT_QPA_PLATFORM=wayland
...
...
Start Weston RZ-G/RZ-G2 BSP Porting Ubuntu#Start Weston desktop
Then run the Qt example in /usr/share/qt5/examples
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
compile 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
...
...
...
...
...
...
...
...