The release rootfs image is based on linaro-alip-jessie.If you want to use other distributions, you need to compile and install components we provide.Do not install the deb under rk-rootfs-build directly.

We currently provide several components : Support Packages

The guide below only help you make xserver work.
For more details Please refer to each package's wiki.

Example:ubuntu 16.04

download and extract ubuntu-xenial

sudo tar -xpf ubuntu-base-16.04-core-armhf.tar.gz

copy qemu

sudo apt-get install qemu-user-static
sudo cp /usr/bin/qemu-arm-static usr/bin/

copy host's dns to rootfs

sudo cp -b /etc/resolv.conf  etc/resolv.conf

add the following repository to etc/apt/source.list(for compiling xserver)

deb xenial main universe
deb-src xenial main universe

chroot to target rootfs -m ubuntu/

install desktop

apt-get install lightdm vim git
apt-get build-dep xserver-xorg-core

extract libmali-rk-dev_1.4-4_armhf.deb and libmali-rk-midgard0_1.4-4_armhf.deb(only debian/ubutnu, link by yourself if you are using other distributions) and copy them to target system.
delete origin egl,gles library(For insurance)

rm -rf /usr/lib/arm-linux-gnueabihf/mesa-egl

download xserver

git clone

delete those in

                        [AC_DEFINE(GLAMOR_HAS_GBM_LINEAR, 1, [Have GBM_BO_USE_LINEAR])], []

build xserver
(You can also use 'make install DESTDIR=/opt/x-build' to get files and copy them to a clean system)
(This method is easy but slow, it'better to cross compile xserver under the ubuntu/debian multiarch environment)

./ --prefix=/usr --enable-aiglx --enable-composite --enable-record --enable-xv --enable-xvmc --enable-dga --enable-screensaver --enable-xdmcp --enable-xdm-auth-1 --enable-glx --enable-dri --enable-dri2 --enable-glamor --enable-dri3 --enable-libdrm --enable-present --enable-xinerama --enable-xf86vidmode --enable-xace --enable-xselinux --enable-xfree86-utils --enable-xwayland --enable-systemd-logind --with-systemd-daemon --enable-suid-wrapper --enable-dmx --enable-xvfb --enable-xnest --enable-kdrive --enable-xephyr --enable-xmir --with-sha1=libgcrypt --enable-xcsecurity  --with-log-dir=/var/log
make install

set password

useradd -s '/bin/bash' -m -G adm,sudo rk
echo "Set password for rk:"
passwd rk
echo "Set password for root:"
passwd root

exit chroot

exit -u ubuntu/

copy ttyS2.conf and udev directory to target rootfs from

make image

dd if=/dev/zero of=ubuntu.img  bs=1M count=3000
sudo mkfs.ext4 ubuntu.img
mkdir ubuntu-mount
sudo mount  ubuntu.img ubuntu-mount
sudo cp -rfp ubuntu ubuntu-mount
sudo umount ubuntu-mount
e2fsck -p -f ubuntu.img
resize2fs -M ubuntu.img


There is a ubuntu build script in our rootfs-build repo. It's different from the above example, it unpack the debian packages rather than compile from source.
Please refer to the readme.