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
wget http://cdimage.ubuntu.com/ubuntu-base/releases/16.04/release/ubuntu-base-16.04-core-armhf.tar.gz
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 http://ports.ubuntu.com/ubuntu-ports/ xenial main universe
deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial main universe
chroot to target rootfs
ch-mount.sh
ch-mount.sh -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 https://github.com/rockchip-linux/xserver.git
delete those in configure.ac
AC_CHECK_DECL(GBM_BO_USE_LINEAR,
[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)
./autogen.sh --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
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
ch-mount.sh -u ubuntu/
copy ttyS2.conf and udev directory to target rootfs from rk-rootfs.build
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
update
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.