Chromium を追加する
blog
2019-4-1 12:42 JST

Chromium を追加する

構築しようと思っているシステムが GUI をもっているなら、Chromium は比較的簡単に追加できます。

■ github から meta-browser を clone

https://github.com/OSSystems/meta-browser.git にある meta-borwser をclone します。なお、meta-chromium はすでに開発がとまっておりmeta-browser に取って代わったようなので使用しないようにしましょう。

$ git clone https://github.com/OSSystems/meta-browser.git
■ bblayers.conf に meta-browser 追加する

次の例は Freescale の環境に追加した例

LCONF_VERSION = "6"

BBPATH = "${TOPDIR}"
BSPDIR := "${@os.path.abspath(os.path.dirname(d.getVar('FILE', True)) + '/../..')}"

BBFILES ?= ""
BBLAYERS = " 
  ${BSPDIR}/sources/poky/meta 
  ${BSPDIR}/sources/poky/meta-yocto 
  
  ${BSPDIR}/sources/meta-openembedded/meta-oe 
  ${BSPDIR}/sources/meta-openembedded/meta-gnome 
  
  ${BSPDIR}/sources/meta-fsl-arm 
  ${BSPDIR}/sources/meta-fsl-arm-extra 
  ${BSPDIR}/sources/meta-fsl-demos 
  ${BSPDIR}/others/meta-browser 
"
■ local.conf に chromium を追加する

local.conf の IMAGE_INSTALL に chromium を append しています。この例では IMAGE_INSTALL_append を使っていますが、文法的には IMAGE_INSTALL .= と同じです。スペースを入れたいなら += を使うのでこちらの方がスマートかもしれません。

Chromium は libav を必要とし、 libav は x.264 を必要とします。x.264 はライセンス上の制限があるため、それに同意したことを示すためにlocal.conf に LICENSE_FLAGS_WHITELIST を追加する必要があります。次に更新された local.conf を示します。

MACHINE ??= 'imx6qsabresd'
DISTRO ?= 'poky'
PACKAGE_CLASSES ?= "package_rpm"
EXTRA_IMAGE_FEATURES = "debug-tweaks"
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"
CONF_VERSION = "1"

IMAGE_INSTALL_append = " chromium"

LICENSE_FLAGS_WHITELIST = "commercial_libav commercial_x264"
#LICENSE_FLAGS_WHITELIST = "non-commercial"

BB_NUMBER_THREADS = '2'
PARALLEL_MAKE = '-j 2'
#DL_DIR ?= "${BSPDIR}/downloads/"
DL_DIR ?= "/share/downloads/"
SSTATE_DIR ?= "/share/sstate-cache/"

ACCEPT_FSL_EULA = ""
■ fsl-image-gui
$ bitbake fsl-image-gui

■ ライセンスエラー

x.264 を含むライブラリをコンパイルするとライセンスエラーが発生します。

ERROR: Nothing PROVIDES 'x264' (but /opt/Yocto/rootfs_builder/sources/poky/meta/recipes-multimedia/libav/libav_0.8.8.bb DEPENDS on or otherwise requires it)
ERROR: x264 was skipped: because it has a restricted license not whitelisted in LICENSE_FLAGS_WHITELIST
ERROR: Required build target 'libav' has no buildable providers.
Missing or unbuildable dependency chain was: ['libav', 'x264']|         ^

このエラーを単純に解決する方法はlocal.conf に LICENSE_FLAGS_WHITELIST を追加することです。しかし、勿論、ライセンス問題を回避したわけではありません。商用に使うためには、正しくライセンスの問題を回避する必要があります。