Building Chromium, VLC and X11VNC using Yocto
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/nitrogen6x/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
- Capture Sceen Content with VLC media player: http://www.howtogeek.com
- SSVNC (SSL/SSH VNC viewer): http://www.karlrunge.com/x11vnc/ssvnc.html