Building Chromium, VLC and X11VNC using Yocto

From Wiki-DB
Jump to navigationJump to search

Please read the Yocto tutorial before you proceed. The following instruction were tested on our DHCOM i.MX6 computer on module with Yocto stable branch Dizzy.

The following steps provide a step by step guide to build a image with

  • Chromium: The open-source web browser from Google with HTML5 and WebGL support.
  • VLC Media Player: The famouse portable, free and open-source media player and streaming media server provided by the VideoLAN project.
  • X11VNC: Enables to view remotely and to interact (mouse, keyboard) with X displays.

Configure Sources

Clone meta-browser

Clone the branch master of meta-browser inside the yocto/sources directory:

$ git clone -b master https://github.com/OSSystems/meta-browser.git 

Note: Verified with chromium sources version 38.0.2125.101

Edit your yocto configuration files

1. Edit yocto/build/conf/bblayers.conf to add the meta-browser layer at the end:

 ${BSPDIR}/sources/meta-browser \

2. Verified example yocto/build/conf/local.conf:

MACHINE ??= 'dhcomimx6dl'
DISTRO ?= 'poky'
PACKAGE_CLASSES ?= "package_ipk"
EXTRA_IMAGE_FEATURES = "debug-tweaks tools-debug ssh-server-openssh eclipse-debug"
USER_CLASSES ?= "buildstats image-mklibs image-prelink"
PATCHRESOLVE = "noop"
BB_DISKMON_DIRS = "\
    STOPTASKS,${TMPDIR},1G,100K \
    STOPTASKS,${DL_DIR},1G,100K \
    STOPTASKS,${SSTATE_DIR},1G,100K \
    ABORT,${TMPDIR},100M,1K \
    ABORT,${DL_DIR},100M,1K \
    ABORT,${SSTATE_DIR},100M,1K" 
PACKAGECONFIG_append_pn-qemu-native = " sdl"
PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl"
ASSUME_PROVIDED += "libsdl-native"
CONF_VERSION = "1"
PREFERRED_PROVIDER_jpeg = "libjpeg-turbo"
PREFERRED_PROVIDER_shlib = "libjpeg-turbo"
PREFERRED_PROVIDER_jpeg-native = "libjpeg-turbo-native"
PREFERRED_PROVIDER_virtual/mesa = "mesa"
PREFERRED_PROVIDER_virtual/libgl = "gpu-viv-bin-mx6q"
PREFERRED_PROVIDER_mesa-driver-swrast = "mesa-gl"

BB_NUMBER_THREADS = '2'
PARALLEL_MAKE = '-j 2'

#DL_DIR ?= "${BSPDIR}/downloads/"
ACCEPT_FSL_EULA = ""

LICENSE_FLAGS_WHITELIST = " commercial_libav commercial_x264 commercial"

IMAGE_INSTALL_append = " \
	chromium \
	gst-plugins-base \
	gst-plugins-gl \
	gst-fsl-plugin \
	gstreamer1.0-plugins-imx \
	libfslcodec \
	alsa-lib \
	fsl-alsa-plugins \
	pulseaudio \
	libfslvpuwrap \
	libfslparser \
	mpeg2dec \
	vlc \
	x11vnc"

Bitbake!

Bitbake an image like core-image-x11(you need to be in your yocto/build directory):

 $ MACHINE=dhcomimx6dl . ./setup-environment build
 $ bitbake core-image-x11

Note: Bitbake fails with an dependency error. To fix the build edit 'tmp/sysroots/dhcomimx6dl/usr/lib/libQtGui.la' and run bitbake again.

-dependency_libs=' -lEGL -lGAL -DLINUX=1 -DEGL_API_FB=1 -lQtCore -lpthread '
+dependency_libs=' -lEGL -lGAL -lQtCore -lpthread '

Test your image

execute chromium:

 $ google-crome

execute VLC media player:

 $ vlc

start X11VNC (on default port 5900 is used):

 $ x11vnc &

Note: Connection was verified with ssvnc (sudo apt-get install ssvnc) using SSH.

External References