Pre-built images available

WebOS-Ports - http://webos-ports.org/ - have built the RPi3 image and made it available so you can try webOS OSE more easily if you don't have a suitable build machine yourself. See http://build.webos-ports.org/webosose/

There's a qemux86 image as well. I gather you'll need to build your own qemu with virglrenderer and sdl2 (with opengl enabled) support to use it.

All unofficial, but help yourselves :slight_smile:

7 Likes

To use qemux86 images you need to builld your own qemu.

With Gentoo it's easy, just enable following USE-flags: opengl, virgl and gtk or sdl2.

Then download latest webos-image-qemux86-master-*.vmdk from http://build.webos-ports.org/webosose/qemux86/ and unzip it.

And start qemu like this:
qemu-system-i386 -m 2048M -drive file=/tmp/webos-image-qemux86-master-20180611230313.vmdk,if=virtio -enable-kvm -device virtio-vga,virgl -display sdl,gl=on -show-cursor -usb -device usb-tablet -net nic -net user,hostfwd=tcp::6622-:22

Change -display sdl to -display gtk if you prefer GTK.

You might need to tweak -cpu parameter as well to match with the features your host CPU has (to be able to use KVM), see discussion here:
https://www.mail-archive.com/openembedded-core@lists.openembedded.org/msg109511.html

For Ubuntu you need to rebuild the qemu-kvm .deb packages with necessary options.

First you can try it with the qemu provided by your distribution but in 99.9% it won't work because no distribution ships qemu with opengl and virgl support, e.g. with Ubuntu 18.04 you can do:
apt-get install qemu-kvm
but then when you try to use it like this:
qemu-system-i386 -m 2048M -drive file=webos-image-qemux86-master-20180611230313.vmdk,if=virtio -enable-kvm -device virtio-vga,virgl -display sdl,gl=on -show-cursor -usb -device usb-tablet -net nic -net user,hostfwd=tcp::6622-:22
it will fail with:
SDL1 display code has no opengl support. Please recompile qemu with SDL2, using ./configure --enable-sdl --with-sdlabi=2.0 qemu-system-i386: OpenGL support is disabled

If you try to use GTK:
qemu-system-i386 -m 2048M -drive file=webos-image-qemux86-master-20180611230313.vmdk,if=virtio -enable-kvm -device virtio-vga,virgl -display gtk,gl=on -show-cursor -usb -device usb-tablet -net nic -net user,hostfwd=tcp::6622-:22
qemu-system-i386: -display gtk,gl=on: GTK support is disabled

You can also see
Could not access KVM kernel module: Permission denied qemu-system-i386: failed to initialize KVM: Permission denied
which means that the user you're using isn't included in the kvm group. Just add it in /etc/group, re-login to your desktop environment, verify with groups that kvm is now listed there.

You can drop -device virtio-vga,virgl -display sdl,gl=on and it will boot OK, but instead of the webOS OSE UI you'll get just the text console (with surface-manager.service failed, because of missing support).

To include the necessary support you need to rebuild it.

Basically just follow instruction from:
https://help.ubuntu.com/community/UpdatingADeb

  1. add deb-src source in /etc/apt/sources.list and run sudo apt-get update

  2. sudo apt-get build-dep qemu
    that will install quite a few -dev dependencies:
    The following NEW packages will be installed: acpica-tools autoconf automake autopoint autotools-dev build-essential debhelper device-tree-compiler dh-autoreconf dh-strip-nondeterminism dpkg-dev g++ g++-7 gcc gcc-7 ibverbs-providers libaio-dev libaio1 libasan4 libasound2-dev libatomic1 libattr1-dev libbluetooth-dev libbrlapi-dev libc-dev-bin libc6-dev libcaca-dev libcacard-dev libcacard0 libcap-dev libcap-ng-dev libcilkrts5 libcurl4-gnutls-dev libdrm-dev libfdt-dev libfdt1 libfile-stripnondeterminism-perl libgcc-7-dev libgl1-mesa-dev libgles2 libglib2.0-dev libglib2.0-dev-bin libglu1-mesa-dev libglvnd-core-dev libglvnd-dev libgmp-dev libgmpxx4ldbl libgnutls-dane0 libgnutls-openssl27 libgnutls28-dev libgnutlsxx28 libibverbs-dev libibverbs1 libidn2-0-dev libidn2-dev libiscsi-dev libiscsi7 libitm1 libjpeg-dev libjpeg-turbo8-dev libjpeg8-dev liblsan0 libmpx2 libncursesw5-dev libnl-route-3-200 libnspr4-dev libnss3-dev libnuma-dev libopengl0 libp11-kit-dev libpcre16-3 libpcre3-dev libpcre32-3 libpcrecpp0v5 libpixman-1-dev libpng-dev libpthread-stubs0-dev libpulse-dev libquadmath0 librados-dev librados2 librbd-dev librbd1 librdmacm-dev librdmacm1 libsasl2-dev libsdl1.2-dev libsdl1.2debian libseccomp-dev libslang2-dev libspice-protocol-dev libspice-server-dev libspice-server1 libstdc++-7-dev libtasn1-6-dev libtext-unidecode-perl libtinfo-dev libtool libtsan0 libubsan0 libunbound2 libusb-1.0-0-dev libusbredirparser-dev libusbredirparser1 libx11-dev libx11-xcb-dev libxau-dev libxcb-dri2-0-dev libxcb-dri3-dev libxcb-glx0-dev libxcb-present-dev libxcb-randr0 libxcb-randr0-dev libxcb-render0-dev libxcb-shape0-dev libxcb-sync-dev libxcb-xfixes0-dev libxcb1-dev libxdamage-dev libxdmcp-dev libxen-4.9 libxen-dev libxenstore3.0 libxext-dev libxfixes-dev libxshmfence-dev libxxf86vm-dev linux-libc-dev m4 make mesa-common-dev nettle-dev pkg-config po-debconf tex-common texinfo uuid-dev x11proto-core-dev x11proto-damage-dev x11proto-dev x11proto-dri2-dev x11proto-fixes-dev x11proto-gl-dev x11proto-xext-dev x11proto-xf86vidmode-dev xfslibs-dev xorg-sgml-doctools xtrans-dev zlib1g-dev

  3. sudo apt-get install fakeroot devscripts
    Install few more tools used later

  4. apt-get source qemu
    will download necessary sources and apply the ubuntu patches

  5. cd qemu-2.11+dfsg/
    apply following patch:

--- debian/control-in.orig 2018-06-12 11:10:13.982959884 +0000
+++ debian/control-in 2018-06-12 11:11:10.298273843 +0000
@@ -42,8 +42,12 @@
# --enable-gnutls
gnutls-dev,
# gtk ui is almost the same as sdl but adds bloat
-# --disable-gtk
-## --with-gtkabi=2.0
+# --enable-gtk
+# --with-gtkabi=3.0
+# --enable-opengl
+# --enable-sdl
+# --with-sdlabi=2.0
+# --enable-virglrenderer
# libgtk2.0-dev, libvte-dev (>> 0.18.0~),
# vte is used together with gtk
# --disable-vte

patch -p0 < qemu-opengl-virgl.patch
debchange -i

  1. install few more additional dependencies:
    sudo apt-get install liblzo2-dev libbz2-dev libsnappy-dev libgtk-3-dev libsdl2-dev libepoxy-dev libgbm-dev libdrm-dev libvirglrenderer-dev

  2. rebuild the package
    debuild -us -uc -i -I

  3. check the configure output that all expected options are now enabled:
    SDL support yes (2.0.8)
    GTK support yes (3.22.30)
    GTK GL support yes
    ...
    virgl support yes

you can check this later in the build log qemu_2.11+dfsg-1ubuntu9_amd64.build
9) if everything went well, you now have bunch of .deb packages in the directory above qemu-2.11+dfsg

For the webOS OSE testing all you need is the qemu-system-x86 package:
sudo dpkg -i qemu-system-x86_2.11+dfsg-1ubuntu9_amd64.deb

Now you can try it again:
qemu-system-i386 -m 2048M -drive file=webos-image-qemux86-master-20180611230313.vmdk,if=virtio -enable-kvm -device virtio-vga,virgl -display sdl,gl=on -show-cursor -usb -device usb-tablet -net nic -net user,hostfwd=tcp::6622-:22
it will show something like:
gl_version 43 - core profile enabled
depending on the graphics card in your system and what drivers you're using, for me this is with default Xubuntu 18.04 install with
VGA compatible controller: NVIDIA Corporation GP106 [GeForce GTX 1060 6GB] (rev a1)

glxinfo | grep "OpenGL core profile version"
OpenGL core profile version string: 4.3 (Core Profile) Mesa 18.0.0-rc5

or gl_version 45 - core profile enabled with VGA compatible controller: Intel Corporation HD Graphics 520 (rev 07)

glxinfo | grep "OpenGL core profile version"
OpenGL core profile version string: 4.5 (Core Profile) Mesa 18.0.0-rc5

and it should work fine. There are some issues in the emulator and it isn't
officially supported yet, but at least you can see how it looks now (almost
the same as on raspberrypi3). With GTK UI there are few more issues, the
resolution isn't set correctly and the cursor isn't rendered inside QEmu
window.

Don't forget to repeat this procedure every time the system qemu is upgraded (so that you get all the new fixes from your distribution and keep the modified qemu-system-x86 package compatible with the rest for qemu packages).

6 Likes

Great :slight_smile: I really appreciate your work.

Build #7 from https://github.com/webosose/build-webos/commit/49bc5a3b6db920fdc2d7c4ac457aa2e5bfa8f704 just finished building, new images are available again on http://build.webos-ports.org/webosose/

3 Likes

Thanks @jama.
i will replace webOS OSE image for my RPi3.

Hi, I had been trying to use the Raspberry Image into my PI 3 B+ (latest model)
Source: http://build.webos-ports.org/webosose/

For some reason, it is not booting up (green led is not turning on).

Tried to build image on AWS and facing same problem

Note: I verified the same SD card (64GB SanDisk Class 10) with a Raspbian Stretch, and it works fine

Is this a problem with respect to PI model?

Any suggestions will be helpful!

Thanks

webOS OSE currently doesn't support B+ version, you need to use older PI 3 B.

1 Like

@jama's comment is correct and you can use raspberrypi 2 as well. I recommend that you use raspberrypi3 B.

1 Like

Build #17 from https://github.com/webosose/build-webos/commit/d6c1d92a6f2b582ffd02b612ae29cad512128fbc just finished building, new images are available again on http://build.webos-ports.org/webosose/

4 Likes

Thank you sir..

May i know how to change back to F1 button for Menu?.

Both my air mouse keyboard do not have Windows button. I cannot get Menu button with Mouse cursor.

@jama Did you target all the devices when you compile qemu or specified something at --target-list?

I just figured out that should do with i386 and x86_64.

Actually a image for webos downloaded from github is working through ssh. But when I am trying through UI (with HDMI cable), there is nothing to see on screen. Is there any setting to enable HDMI support with webOS.

I've built the same set of qemu* packages and ubuntu src debs are doing, but if you have everything else in the same version from the system, it's enough to install only the i386 package from local build.

1 Like

Build #27 from https://github.com/webosose/build-webos/commit/c9a4d66ece8b1860153f5d2e87259d3bfc9f8bc3
finished building, new images are available again on http://build.webos-ports.org/webosose/

This site can’t be reached.

Can i get mirror link?. Thanks.

There is no mirror, but it's back online now.

1 Like

Thank you sir ^_^v #Downloaded

Build #69 from https://github.com/webosose/build-webos/commit/a68c4c7a2081853ed11efefeeb27da812e7fd00e finished building, new images available again on http://build.webos-ports.org/webosose/

1 Like

Build #79 from https://github.com/webosose/build-webos/commit/322f0c58960957f5432d162bd22db246d5eea614 finished building, new images available again on http://build.webos-ports.org/webosose/

Next build will be based on newer Yocto 2.6 Thud, stay tuned.

Build #84 from https://github.com/webosose/build-webos/commit/375821d1a6baf4dff4308c10b9096bd610651aa1 finished building, new images available again on http://build.webos-ports.org/webosose/

This one is finally based on Yocto 2.6 Thud.

1 Like