From postmarketOS
Jump to navigation Jump to search

Libhybris allows devices lacking FLOSS drivers to make full use of their hardware by using the proprietary drivers from Android. Mainlining and using free software drivers is of course the better approach, but it is not possible for all devices. We will not list devices that need hybris as featured devices (see postmarketos.org#83).

Using libhybris with your device

This is a stub copied from chat messages in #postmarketOS. Please extend if you are porting your device to libhybris.

  • convert the halium system.img to a mountable image (basically what the halium install script does)
  • install postmarketOS on the device without user interface and copy the new system.img to the device, to /var/lib/lxc/android/system.img
  • install the hybris related packages:
$ sudo apk add lxc-android \
               xf86-video-hwcomposer \
               xf86-video-hwcomposer-7.1-caf \
               libhybris \
               libhybris-egl \
               libhybris-gles \
               libhybris-libwayland-egl \
               libhybris-7.1-caf \
               wayland-libs-client \
  • start the service:
$ sudo rc-service lxc-android start

Test whether lxc-android works properly and kernel is correctly configured

1) Ensure you installed the packages above, started the lxc-android service and checked that it's running

2) Download the Halium reference rootfs from bshah’s personal server: http://bshah.in/halium/halium-rootfs-20170630-151006.tar.gz

3) Extract to a temporary folder

4) Bind some folders into the halium rootfs

$ mount --bind /dev /tmp/halium-rootfs/dev
$ mount --bind /sys /tmp/halium-rootfs/sys
$ mount --bind /proc /tmp/halium-rootfs/proc
$ mount --bind /system /tmp/halium-rootfs/system
$ ln -s /system/vendor /tmp/halium-rootfs/vendor

5) Chroot into halium

$ chroot /tmp/halium-rootfs /bin/bash

6) Update

$ echo "deb http://repo.halium.org/caf xenial main" >> /etc/apt/sources.list.d/halium-caf.list
$ apt-get update
$ apt-get dist-upgrade

7) Test

$ EGL_PLATFORM=hwcomposer test_hwcomposer

See also