[[PageOutline]] = Yocto Linux = Gateworks supports Yocto Linux for the Ventana Product Family Board Support Package. Yocto is a linux build system that is used by many Embedded Linux Distributions (ie Angstrom, Poky, and more). Yocto is a linux build system derived from Yocto and offers stable snapshot and excellent documentation. Gateworks Pre-Built Yocto Binaries: [wiki:Yocto/Building#Pre-CompiledBinary Binaries] External References: * [https://www.yoctoproject.org/documentation Yocto Documentation Home] * [http://www.yoctoproject.org/docs/latest/ref-manual/ref-manual.html Yocto Project Reference Manual] * [http://www.yoctoproject.org/docs/latest/mega-manual/mega-manual.html Yocto Project Mega-Manual] * [http://www.yoctoproject.org/docs/current/bsp-guide/bsp-guide.html Yocto BSP Guide] * [https://wiki.yoctoproject.org/wiki/How_do_I Yocto FAQ] * [https://www.yoctoproject.org/docs/latest/bitbake-user-manual/bitbake-user-manual.html Bitbake User Manual] == FSL Community BSP == The [http://freescale.github.io FSL Community BSP] is a community driven project to provide and maintain a Board Support Package meta layer to be used with [http://www.openembedded.org/wiki/OpenEmbedded-Core OpenEmbedded-Core] and [https://www.yoctoproject.org/tools-resources/projects/poky Poky]. It is comprised of three layers on top of [http://www.openembedded.org/wiki/OpenEmbedded-Core OpenEmbedded-Core] and [https://www.yoctoproject.org/tools-resources/projects/poky Poky]: - [http://git.yoctoproject.org/cgit/cgit.cgi/meta-freescale meta-freescale] - provides the base BSP support and the board support for Freescale i.MX and QorIQ reference boards; - [https://github.com/Freescale/meta-freescale-3rdparty meta-freescale-3rdparty] - provides support for 3rd party and partner boards; - [https://github.com/Freescale/meta-freescale-distro meta-freescale-distro] - provides images recipes, demo recipes, and packagegroups used to ease the development with Yocto Project. These layers take priority over (via layer configuration): - [http://git.yoctoproject.org/cgit.cgi/poky poky] - [http://cgit.openembedded.org/meta-openembedded/ OE core] The Gateworks Yocto BSP utilizes the FSL Community BSP layers but adds two more layers: - [https://github.com/dv1/meta-gstreamer1.0 meta-gstreamer1.0]: * Gstreamer package backports - [https://github.com/Gateworks/meta-gateworks meta-gateworks]: - changes to recipes in other layers (bbappends) suitable for pushing upstream: * gstreamer1.0-plugins-imx - add patch to support tw6869 PCIe capture device used on avc8000nano ''(submitted upstream)'' * imx-kobs - add a patch to support split MTD partitions ''(submitted upstream)'' * init-ifupdown - use nl80211 for wpa_supplicant driver instead of deprecated wext ''(submitted upstream)'' * hostapd - add AC support to hostapd-2.2 (alterred defconfig) ''(submitted upstream)'' - changes to recipes in other layers (bbappends) not suitable to push upstream * u-boot-fw-utils - add install script that configures fw-utils dynamically per board (nand vs microSD/MMC) * gpsd - disable startup on boot (by removing initscript) * cryptodev - load cryptodev module on boot - Gateworks contributed packages: * hostapd-conf - script for easily generating hostapd.conf file * gateworks-test - test script for simple loopback of audio and video * gsc-update - GSC firmware update utility * gst-gateworks-apps - example gstreamer RTSP server application * gwsoc - utility for GW16113 PSoC I/O expansion card * compat-wireless - updated wireless drivers for iwlwifi/ath9k/ath10k/ar3k/intel-ibt * gateworks-image-minimal - core-image-base + a bunch of basic test tools and wireless/networking * gateworks-image-test - gateworks-image-minimal + gateworks-test gstreamer1.0-plugins-imx * gateworks-image-multimedia - gateworks-image-multimedia + imx-test, alsa-utils, alsa-lib, alsa-state and gstreamer '''Latest Supported Release''' Yocto 2.3 (Pyro): * see also: http://www.yoctoproject.org/docs/latest/ref-manual/ref-manual.html#moving-to-the-yocto-project-2.0-release * Misc changes: - gcc 4.9.2 -> 6.3.0 - bluez4 -> bluez5 (changed in Yocto 2.0) - uClibc 0.9.3 -> musl 1.1.16 (changed in Yocto 2.2) - midori browser -> ephiphany browser (changed in Yocto 2.0) - libmad -> libmpg123 (MP3 audio decoder lib changed as the mad project is no longer maintained) (changed in Yocto 2.2) - udev -> eudev (for compatibility when using sysvinit with newer kernels) (changed in Yocto 2.1) - Vivante GPU kernel driver (galcore) built as loadable kernel module (allowing flexibility to use an older kernel with a newer graphics release) * removed: - gstreamer-0.10 (removed in Yocto 2.0) - apm/apmd (not applicable on ARM) - iperf (Removed in Yocto 2.3) (use iperf3) - multimedia/gui: imx-test (broken recipe) - gui: midori (replaced with ephiphany browser) - meta-fsl-demos: fsl-gpu-sdk - mad (MAD MP3 Decoder) - replaced with mpg123 * added: - python modules: audio/compile/compression/contextlib/ctypes/difflib/distutils/email/fcntl/html/image/importlib/netserver/numbers/pkgutil/plistlib/pprint/setuptools/shell/subprocess/unittest/zlib - cdparanoia - pango - pulseaudio-server - gstreamer: 34 additional gstreamer plugins providing more codec/source/sink/muxer elements * Codecs: - openjpegenc/openjpegdec (OpenJPEG JPEG2000 codec) - vp8enc/vp8dec (On2 VP8 codec) - vp8enc/vp9dec (On2 VP9 codec) - fluiddec (Fluidsynth MIDI decoder) - amrwbdec (AMR-WB audio decoder) - webpenc/webpdec (WEBP image decoder) - opusenc/opusdec (Opus audio codec) - voaacenc (AAC audio encoder) - rsvgdec (SVG image decoder) - voamrwbenc (AMR-W8 audio encoder) - mpg123audiodec (mpg123 MP3 audio decoder) - amrnbenc/dec (AMR-NB audio codec) - dtlsenc/dec (DTLS codec) - dtlssrtpenc/dec (DTLS-SRTP codec) - x264enc/dec (Software H264 codec) - wavpackenc/dec (Wavpack audio codec) - srtpenc/dec (SRTP codec) * Sources / Sinks: - curlsftpsink (Curl SFTP sink) - assrender (ASS/SSA Render) - sdpsrc (SDP Source) - socketsrc (TCP socket source) - jackaudiosrc/jackaudiosink - rtspclientsink (RTSP Record client) - rtmpsrc/sink (RTMP) - openalsrc/sink (OpenAL audio) - cdiocddasrc (CD Audio source) - cdparanoiasrc (CD Audio source, Paranoia IV) - mmssrc (MMS streaming source) - dv1394src (Firewire DV video source) - hdv1394src (Firewire HDV video source) - dc1394src (Firewire IIDC video source) - dvdreadsrc (DVD source) - alsamidisrc (ALSA MIDI source) - kmssink (KMS video sink) - hlssink (HTTP Live streaming sink) - vcdsrc (VCD source) * Muxer / Demuxer: - splitmuxsrc/splitmuxsink (Split Muxing / Demuxing Bin) - streamiddemux (Streamid demux) - dtlssrtpdemux (DTLS SRTP demux) - mxfmux (MFX muxer) - hlsdemux (HLS demuxer) * Stream parsers - opusparse (Opus audio parser) - jpeg2000parse (JPEG 2000 parser) - parsebin * RTP Payload: - rtpopuspay/depay (RTP Opus package payload) - rtph261pay/depay (RTP H261 payload) - rtph265pay/depay (RTP H265 payload) - rtpvp9pay/depay (RTP VP9 payload) * Misc: - videoframe_audiolevel - rsndvdbin - rsvgoverlay (RSVG overlay) - textoverlay (Text overlay) - timeoverlay (Time overlay) - clockoverlay (Clock overlay) - textrender (Text renderer) - rtponviftimstamp (ONVIF NTP timestamps RTP extension) - rtponvifparse (ONVIF NTP timestamps RTP extension) - netsim (Network Simulator) - concat - playbin3/decodebin3 - modplug * typefindfunctions (automated stream parsing types) - application/dash+xml (mpd) - application/ttml+xml - audio/x-mod (umx) - application/x-subtitle-vtt (vtt) * changed: - udev -> eudev - note gstreamer1.0-plugins-ugly-mad (replaced by mpg123 - can add it back with PACKAGECONFIG _=mad) - note libfslcodec-mp3 (now provided by imx-codec) - note fsl-alsa-plugins -> imx-alsa-plugins - note usbutils-ids package missing - ids baked into lsusb * fixes: - /etc/network/interfaces configured for nl80211 wpa-driver - AC3 codec support - Tearing Artifacts in display out under certain circumstances Gateworks Yocto Information: * [wiki:Yocto/Building#Pre-CompiledBinary Pre-Compiled Binaries] * [wiki:Yocto/Building Building/Installing Yocto Linux for the Ventana Family] * [wiki:Yocto/packages Building/Installing Packages for Yocto / Yocto for the Ventana Family ] * [wiki:Yocto/SDK SDK For Developers] * [wiki:Yocto/NativeCompile Native Compiling - SDK] * [https://github.com/Gateworks/meta-gateworks Source Code] presented as an Yocto Layer * [https://github.com/Gateworks/meta-gateworks/commits/master Gateworks Yocto BSP layer changelog] - Create a Github account and you can follow changes to our repositories to be updated when commits occur * [wiki:Yocto/images Explanation of our images] * [wiki:Yocto/packages Add and remove packages] * [wiki:Yocto/services Configure services] * [wiki:Yocto/Wireless Setup Wireless communication] * [wiki:Yocto/Video_Out Ventana Video Output] * [wiki:Yocto/Video_In Ventana Video Input] * [wiki:Yocto/gstreamer GStreamer Information for Video / Audio] * [wiki:Yocto/qt QT in Yocto] == Kernel Support == We aim to provide the following in our default kernel configurations used for our Yocto BSP: * up-to-date Wireless drivers via linux-backports * commonly used 802.11ac / 802.11n / 802.11a/b/g Qualcomm / Atheros chip based cards * commonly used USB based wireless devices * commonly used USB based bluetooth host controllers * on-board embedded peripherals (ie i2c and spi based peripherals used on our boards) * Gateworks expansion peripherals In other words we specifically do not typically include support for PCI sound-cards, PCI video-capture cards, and a full suite of USB based peripherals. We try to include support for peripherals commonly used with our boards. = Pre-built images Prebuilt images are located on our [http://trac.gateworks.com/wiki/Yocto/Building Building] page. There is a EULA associated with some of the software/drivers contained in these images, hence why they are not available for download on dev.gateworks.com.