meta-aglへの道
CES2020 AGL Container Demo: QUICK START
リポジトリの準備
- 8.0.3ベース
- meta-agl
- ブランチ sandbox/ruke47/ces2020_803
- bsp/meta-renesas-rcar-gen3
- ブランチ sandbox/harunobu.kurokawa/integ20191127
- meta-agl-demo
- ブランチ sandbox/ruke47/ces2020_803
- meta-agl-devel
- ブランチ sandbox/ruke47/ces2020_803
- meta-agl
コマンド実行例
$ repo init -b halibut -m halibut_8.0.3.xml -u https://gerrit.automotivelinux.org/gerrit/AGL/AGL-repo $ repo sync $ repo start ces2020_803 bsp/meta-renesas-rcar-gen3 meta-agl meta-agl-demo meta-agl-devel $ cd bsp/meta-renesas-rcar-gen3 $ git merge --ff agl/sandbox/harunobu.kurokawa/integ20191127 $ cd ../../meta-agl $ git merge --ff agl/sandbox/ruke47/ces2020_803 $ cd ../meta-agl-demo $ git merge --ff agl/sandbox/ruke47/ces2020_803 $ cd ../meta-agl-devel $ git merge --ff agl/sandbox/ruke47/ces2020_803 $ cd .. $ repo info -o
- 8.0.3ベース
- ビルド
- 事前
環境変数セットアップ
# Example for bash export AGL_BUILD_DIR="Set your build dir" # optional export DL_DIR="Set your download dir" export SSTATE_DIR="Set you sstate-cache dir"
- HOST
セットアップ
source meta-agl/scripts/aglsetup.sh -m h3ulcb -b ${AGL_BUILD_DIR}/HOST agl-container-demo-host agl-container-lxc agl-pipewire agl-gstrecorder agl-devel
注
- agl-pipewire 現状、セキュリティ設定が、レシピ埋め込みのため、まるごとインテグレーションしておかないと、SMACK先生に阻まれて、GUEST_IVIから音がならない。ただし、ホストは、agl-driverのユーザーセッションは起動しないため、ホストでは、pipewireは、インストールされているが、起動はしない、状態。
- agl-gstrecorder 現状、クラスター連携のコンテナ化はできていないため、ホストのWestonに、recorder機能が必要
- agl-devel 必須ではないが、あったほうがインテグ作業が少し快適
びっとべいく
bitbake agl-container-demo-host
- GUEST_IVI
セットアップ
source meta-agl/scripts/aglsetup.sh -m h3ulcb -b ${AGL_BUILD_DIR}/GUEST_IVI agl-container-demo-ivi agl-demo agl-cluster-demo-support agl-devel
びっとべいく
bitbake agl-demo-platform
- GUEST_IC
セットアップ
source meta-agl/scripts/aglsetup.sh -m h3ulcb -b ${AGL_BUILD_DIR}/GUEST_IC agl-container-demo-ic agl-cluster-demo agl-devel
びっとべいく
bitbake agl-cluster-demo-platform
- 事前
- SDカードの準備
- 4つのパーティションを用意する。
- systemdから、/dev/disk/by-label/でマウントするため、パーティション1にラベル HOSTを、残り3つのパーティションにもそれぞれラベル GUEST_IVI,GUEST_IC , GUEST_OTHERSをつけること。
- SDカードにROOTFSイメージを展開
- HOSTイメージ、ゲストイメージをSDカードに展開する
HOSTイメージの展開例
$ cd $AGL_BUILD_DIR $ cd HOST $ export SDCARD_PATH=/#path_to_sdcard#/HOST $ export ROOTFS=/#path_to_rootfs_for_HOST#/ $ sudo tar --xattrs-include='*' --extract --numeric-owner --preserve-permissions --preserve-order --totals --directory=${SDCARD_PATH} --file=${ROOTFS}
- 手パッチ to GUEST_IVI
- Mapboxナビの設定: /etc/naviconfig.ini
- MOST/UNICENSを使う場合、wireplumber.confの書き換えが必要
パッチ一覧
repo info -o
Manifest branch: refs/tags/halibut/8.0.3 Manifest merge branch: refs/heads/halibut Manifest groups: all,-notdefault ---------------------------- Projects Overview meta-agl * sandbox/ruke47/ces2020_803 ( 3 commits, Tue Jan 7 02:07:11 2020 +0900) - 320f3744 [RCAR] Update graphics driver - 5e20dda4 weston: Disable wayland backend frame - 576d49b3 Fix wayland-backend bug with more than 2 outputs meta-agl-demo * sandbox/ruke47/ces2020_803 ( 1 commit, Wed Dec 25 21:15:32 2019 +0900) - 2c41a10f agl-container-demo: split recipe of sllin driver and service meta-agl-devel * sandbox/ruke47/ces2020_803 (24 commits, Thu Jan 30 12:06:54 2020 +0900) - 34fdd427 agl-container: initial import into meta-agl-devel - 1c617a7e agl-container: base config of LXC container - 7247ea0d agl-container: new packagegroup for agl-container-host - f5c9474c agl-container: new packagegroup for agl-container-lxc-guest - 9b097f00 agl-container: backport lxc 3.2.1 - 6ea7578d agl-container-demo: initial import into meta-agl-devel - caa01996 agl-container-demo: new host image of agl container demo - 9e669054 agl-container-demo: config of guest's rootfs - 051d0598 agl-container-demo: setup lxc-net for host - 04c91ec2 agl-container-demo: setup wayland compositor of host - 2bc01410 agl-container-demo: lxc-net would fail if run before eth0 up - 971580b1 agl-container-demo: enable LIN, Radio and Audio - 25401314 agl-container-demo: enable gstrecord on container - 393e88c0 agl-container-demo: agl-demo-platform for lxc container - dd5adcc3 agl-container-demo: config of IVI demo container - 84275562 agl-container-demo: setup child weston for guest IVI - 73bc477b agl-container-demo: agl-cluster-demo-platform for LXC container - 166b7414 agl-container-demo: config of IC demo container - 97a321c7 agl-container-demo: setup child weston for guest IC - 541cb025 agl-container-demo: enable Radio of Kingfisher - 89ecdcfe agl-container-demo: [HACK] most/unicens (host) - 12bf2345 agl-container-demo: simple container manager, lxc-launcher - 74829e2c agl-container-demo: support demo of rebooting container/system
---------- 賞味期限切れ ----------
テンプレート対応
ごちゃごちゃあるが、ぶっちゃけ、agl-container-demo-host, agl-container-demo-ivi, agl-container-demo-icのどれか一つ+agl-container-lxcを選んでセットアップでOK!
- FEATURES
- agl-container
- BBLAYER: external/meta-virtualization, meta-agl-devel/meta-agl-container
- agl-container-demo
- DEP: agl-container
- BBLAYER: meta-agl-devel/meta-agl-container-demo
- agl-container-demo-host
- DEP: agl-container-demo agl-container-host agl-profile-graphical
- ibDRM問題。Nested westonに必要。
- BBLAYER: meta-agl-devel/meta-agl-container-demo/meta-container-host
- agl-container-demo-ivi
- DEP: agl-container-demo agl-container-guest
- BBLAYER: meta-agl-devel/meta-agl-container-demo/meta-container-ivi
- agl-container-demo-ic
- DEP: agl-container-demo agl-container-guest
- BBLAYER: meta-agl-devel/meta-agl-container-demo/meta-container-ic
- agl-container-demo-others
- DEP: agl-container-demo agl-container-guest
- BBLAYER: meta-agl-devel/meta-agl-container-demo/meta-container-others
- agl-container-guest
- DEP: agl-container
- BBLAYER: meta-agl-devel/meta-agl-container/meta-container-guest
- agl-container-host
- DEP: agl-container
- BBLAYER: meta-agl-devel/meta-agl-container/meta-container-host
- agl-container-lxc
- agl-containerは、lxcだけじゃないよ、ほかもありえるよ、というアピール。
- DEP: agl-container
- BBLAYER: meta-agl-devel/meta-agl-container/meta-virtualization
- agl-container
デモ用AGLセットアップの例
ホスト環境(LXC)
- feature: agl-container-demo-host agl-container-lxc
- target: agl-container-demo-host
ゲスト環境
ゲストIVI
- feature: agl-container-demo-ivi agl-demo
- target: agl-demo-platform
ゲストIC
- feature: agl-container-demo-ic agl-cluster-demo
- target: agl-cluster-demo-platform
レイヤー構成
- meta-agl-devel : 当面はこの配下におく
- meta-agl-container
- meta-container-guest
- recipes-graphics
- wayland
- weston-ini-conf.bbappend
- wayland backend
- weston-init.bbappend
- 起動のためのおまじない各種
- weston-ini-conf.bbappend
- wayland
- recipes-graphics
- meta-container-host
- recipes-platform
- images
- agl-container-host-minimal.bb(仮)
- images
- recipes-platform
- meta-virtualization : Yocto meta-virtualizationの補完レイヤー(バックポート、パッチなど)
- recipes-containers
- lxc
- lxc_3.2.1.bb
- lxc
- recipes-containers
- meta-container-guest
- meta-agl-container-demo
- meta-container-host
- recipes-config
- guests-filesystem
- mount guest filesystems
- guests-filesystem
- recipes-graphics
- wayland
- weston-ini-conf.bbappend
- HDMI-A-2 ON
- weston-ini-conf.bbappend
- wayland
- recipes-platform
- images
- agl-container-demo-host.bb
- images
- recipes-config
- meta-container-ic
- meta-container-ivi
- meta-container-others
- meta-container-host
- meta-agl-container
Packagegroup
- meta-agl-container
- meta-container-host
- packagegroup: agl-container-host
- packagegroup: agl-container-host-networking
- meta-container-host
- meta-agl-container-demo
- packagegroup: agl-container-demo-host
SDカード作成 for CES2020
- パーティション構成
- HOST
- GUEST_IC
- GUEST_IVI
- GUEST_OTHERS
Target ファイルシステムツリー
ゲストのマウントポイント /var/local/lib/containers/guests
h3ulcb:~# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/root 16382888 502180 15025464 4% / devtmpfs 1595268 0 1595268 0% /dev tmpfs 1931524 0 1931524 0% /dev/shm tmpfs 1931524 9044 1922480 1% /run tmpfs 1931524 0 1931524 0% /sys/fs/cgroup tmpfs 1931524 4 1931520 1% /tmp tmpfs 1931524 20 1931504 1% /var/volatile /dev/mmcblk1p4 11780672 29384 11133152 1% /var/local/lib/containers/GUEST_OTHERS /dev/mmcblk1p2 16382888 928028 14599616 6% /var/local/lib/containers/GUEST_IC /dev/mmcblk1p3 16382888 1156464 14371180 8% /var/local/lib/containers/GUEST_IVI tmpfs 386304 0 386304 0% /run/user/1001 tmpfs 386304 0 386304 0% /run/user/1002 tmpfs 386304 0 386304 0% /run/user/0