Build AGL demo with framebuffer support to launch inside QEMU on ARM #help


andrewzhuk@...
 

Hello All,

My goal is to launch AGL inside virtual environment (KVM+QEMU) on ARM platform with UI.

Target: Raspberry Pi4

Host OS: Gentoo x64

Build Target: aglsetup.sh -m qemuarm64 agl-demo agl-netboot && bitbake agl-demo-platform

I have tested it, and could launch AGL image in nographic mode (no UI), and managed to get console. X server was not started, as expected. So now I want to try out Xvfb + VNC to actually see demo UI. At this point I try to install Xvfb inside yocto layer. I have checked external/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc file and found it enabled.

EXTRA_OECONF += "--with-fop=no \
                 --with-pic \ 
                 ...
                 --enable-xvfb \
                 ...

Next I have updated /agl/build/conf/local.conf

echo 'IMAGE_INSTALL_append = " xserver-xorg-xvfb x11vnc"' >> /agl/build/conf/local.conf

Unfortunately I am getting

Nothing PROVIDES xserver-xorg-xvfb

I have searched for particular package on yocto repository, and did not found any matching. So I am now confused, as I feel it should be there somewhere. As well I am not sure my goal can be achieved at all. So if someone happens to tried this already, please let me now.

Thanks, Andrii Zhuk


Marius Vlad
 

Hi Andrii,

By default the AGL image (well agl-demo-platform) comes with weston, a
wayland compositor.

Assuming that I got correctly what you plan on doing, you will need a
graphical device which should expose (in the VM) to weston a valid
DRM-device capable driver.

The x86 qemu image provides support for vbox (if I'm not mistaken) one
but it can also use a virtio-gpu which can be used to pass it qemu. Not
really sure how this relates to ARM64, maybe the emulation side of
things is targeted for only x86_64.

See
https://docs.automotivelinux.org/docs/en/master/getting_started/reference/getting-started/machines/qemu.html
at the bottom for an example, though it is
a bit old.

On 4/27/20 6:32 PM, andrewzhuk@... wrote:
Hello All,

My goal is to launch AGL inside virtual environment (KVM+QEMU) on ARM
platform with UI.

Target: *Raspberry Pi4*

Host OS: *Gentoo x64*

Build Target: *aglsetup.sh -m qemuarm64 agl-demo agl-netboot && bitbake
agl-demo-platform*

I have tested it, and could launch AGL image in nographic mode (no UI),
and managed to get console. X server was not started, as expected. So
now I want to try out Xvfb + VNC to actually see demo UI. At this point
I try to install Xvfb inside yocto layer. I have checked
/external/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc/ file
and found it enabled.

|EXTRA_OECONF += "--with-fop=no \ --with-pic \ ... --enable-xvfb \ ... |

Next I have updated //agl/build/conf/local.conf/

|echo 'IMAGE_INSTALL_append = " xserver-xorg-xvfb x11vnc"' >>
/agl/build/conf/local.conf |

Unfortunately I am getting

|Nothing PROVIDES xserver-xorg-xvfb |

I have searched for particular package on yocto repository, and did not
found any matching. So I am now confused, as I feel it should be there
somewhere. As well I am not sure my goal can be achieved at all. So if
someone happens to tried this already, please let me now.

Thanks, Andrii Zhuk

--
Marius Vlad


andrewzhuk@...
 

Hi Marius,

You are correct about problems with graphical output on ARM, that was quite a time to figure this out. But it is still a chance to use the framebuffer, which needs no hardware driver. It is slow, but I managed to run other Ubuntu OS VM using QEMU on ARM, redirecting output to virtual X framebuffer output. Then I have used VNC to connect to it successfully.

As long as AGL is based on Linux, that should be pretty possible, that's how I think. There is no Xvfb installed so I am struggling to populate extra packages, build with it, and test. Unfortunately, I am not familiar with yocto as well as I would like.

  • Andrii Zhuk


Marius Vlad
 

Weston (still) has a fbdev backend which you can probably use (and I've
check just now, and it is installed).

Do note, that I've noticed that once weston is enabled
any X11 support is dropped out (for intance weston has a x11 back-end,
but that is not installed). This happens for current AGL/master branch.
And by default, weston is
selected.

Even if you manage to somehow build x11 there's a big chance you won't
be able to run anything due to ivi-shell dependency and implicitly,
weston, so not really sure on the outcome.

On 4/27/20 7:08 PM, andrewzhuk@... wrote:
Hi Marius,

You are correct about problems with graphical output on ARM, that was
quite a time to figure this out. But it is still a chance to use the
framebuffer, which needs no hardware driver. It is slow, but I managed
to run other Ubuntu OS VM using QEMU on ARM, redirecting output to
virtual X framebuffer output. Then I have used VNC to connect to it
successfully.

As long as AGL is based on Linux, that should be pretty possible, that's
how I think. There is no Xvfb installed so I am struggling to populate
extra packages, build with it, and test. Unfortunately, I am not
familiar with yocto as well as I would like.

* Andrii Zhuk

--
Marius Vlad


andrewzhuk@...
 

Thank you Marius, these are very helpful notes. I will try to use weston with fbdev (also found it inside built-ins).

-- Andrii Zhuk