Linux Software Features

From ESS-WIKI
Revision as of 09:42, 11 August 2016 by Winston.huang (talk | contribs) (Gstreamer)
Jump to: navigation, search

Console

Disable serial debug console

Device Tree

Customize device tree

Gstreamer

audio volume control

gst-launch playbin2 uri=file:///tools/Advantech.avi \
video-sink="mfw_v4lsink device=/dev/video17" \
audio-sink="alsasink device=plughw:0" \
volume="volume=0"

SMPTE color bar

gst-launch videotestsrc ! autovideosink

Java

How to install Java

Linux Kernel

Get kernel configs from running OS

You can get the .config file in running Linux OS by the following command.

# zcat /proc/config.gz > current.config

Furthermore, this feature is enabled by CONFIG_IKCONFIG_PROC.

OpenCV

Open source computer vision

Python

Install Python

SSH

SSH connection

Yocto

In this section, we share some tips to use & modify BB files.

How to get multi-sources from GIT server

You can assign a name to distinguish the different GIT URIs, and define different destsuffix to save them respectively. Furthermore, to override SRCREV with the name, you can assign different commit id for each GIT branch.

SRC_URI = " \
    git://git.allseenalliance.org/gerrit/core/alljoyn.git;protocol=https;branch=${GIT_BRANCH};name=router;destsuffix=git/core/alljoyn \     
    git://git.allseenalliance.org/gerrit/services/base.git;protocol=https;branch=${GIT_BRANCH};name=services;destsuffix=git/services/base \
    file://modify_flags_for_yocto.patch"
SRCREV_router = "0d71b216bb3a3cadc615c3eda6f8200093c5e117"
SRCREV_services = "403cda579242701d42d2d7c0da308d63a8f46070"

Skip QA check

You can skip the specific QA check for your packages. For details, check the insane.bbclass bbclass in Yocto Project Reference Manual.

INSANE_SKIP_${PN} += "dev-so"

Create BB file to install pre-built SO binaries

Below is an example to add SO binaries into your image. You may need to modify the blue items for your make install path & library name.

SRC_URI = "file://test.tar.gz"

S = "${WORKDIR}/test"

do_install() {
    install -d ${D}/usr/lib
    cp -axr ${S}/lib*.* ${D}/usr/lib/
}

# Avoid package splitting into run-time and debug components
 INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
# Avoid QA Error for already-stripped
 INHIBIT_PACKAGE_STRIP = "1"
# List the files for Package
 FILES_${PN} += "/usr/lib"
# Put all SO files in main rpm package
 FILES_SOLIBSDEV = ""
 INSANE_SKIP_${PN} += "dev-so"
# Set alias name to satisfy runtime dependencies
 RPROVIDES_${PN} = "libtest-1.00.so"

Install Node-RED packages

For Node-RED package installation, you can refer to the example below. Please note this example is based on the imyller's meta-nodejs layer for Node.js infrastructure.

SRC_URI =  "git://github.com/ADVANTECH-Corp/node-red-contrib-alljoyn.git;protocol=git"
SRCREV = "677333b1ed1a26a966c32d98af073d0b9a2b9088"

S = "${WORKDIR}/git"

# Inherit NPM class
inherit npm-install-global

# Do node-gyp rebuild in do_install() phase
NPM_INSTALL_FLAGS = "--unsafe-perm"

# Skip QA check
INSANE_SKIP_${PN} = "staticdev"