Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

CES2020 AGL Container Demo: QUICK START

(ほぼ完成。あと少し)

  1. リポジトリの準備

    1. 8.0.3ベース
      1.  meta-agl
        • ブランチ sandbox/ruke47/ces2020_803
      2.  bsp/meta-renesas-rcar-gen3
        • ブランチ sandbox/harunobu.kurokawa/integ20191127
      3. meta-agl-demo
        • ブランチ sandbox/ruke47/ces2020_803
      4. meta-agl-devel
        • ブランチ sandbox/ruke47/ces2020_803
    2. コマンド実行例

      Code Block
      languagetext
      $ 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


  2. ビルド
    1. 事前
      1. 環境変数セットアップ 

        Code Block
        # 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"


    2. HOST
      1. セットアップ

        Code Block
        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


        1. agl-pipewire 現状、セキュリティ設定が、レシピ埋め込みのため、まるごとインテグレーションしておかないと、SMACK先生に阻まれて、GUEST_IVIから音がならない。ただし、ホストは、agl-driverのユーザーセッションは起動しないため、ホストでは、pipewireは、インストールされているが、起動はしない、状態。
        2. agl-gstrecorder  現状、クラスター連携のコンテナ化はできていないため、ホストのWestonに、recorder機能が必要
        3. agl-devel  必須ではないが、あったほうがインテグ作業が少し快適
      2. びっとべいく

        Code Block
        bitbake agl-container-demo-host


    3. GUEST_IVI
      1. セットアップ

        Code Block
        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


      2. びっとべいく

        Code Block
        bitbake agl-demo-platform


    4. GUEST_IC
      1. セットアップ

        Code Block
        source meta-agl/scripts/aglsetup.sh -m h3ulcb -b ${AGL_BUILD_DIR}/GUEST_IC agl-container-demo-ic agl-cluster-demo agl-devel


      2. びっとべいく

        Code Block
        bitbake agl-cluster-demo-platform
    手パッチ to

  3. SDカードの準備
    1. 4つのパーティションを用意する。
    2. systemdから、/dev/disk/by-label/でマウントするため、パーティション1にラベル HOSTを、残り3つのパーティションにもそれぞれラベル GUEST_IVI

    1. リブートデモアプリのインストール(現時点、未公開。コード整理中)
    2. Mapboxナビの設定: /etc/naviconfig.ini
    3. MOST/UNICENSを使う場合、wireplumber.confの書き換えが必要
    制約事項
    1. コンテナを起動には /dev/sdaの存在が前提。USBメモリ等を挿しておくこと。,GUEST_IC , GUEST_OTHERSをつけること。
  4. SDカードにROOTFSイメージを展開
    1. HOSTイメージ、ゲストイメージをSDカードに展開する
    2. HOSTイメージの展開例

      Code Block
      $ 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}


  5. 手パッチ to GUEST_IVI
    1. リブートデモアプリのインストール(現時点、未公開。コード整理中)
    2. Mapboxナビの設定: /etc/naviconfig.ini
    3. MOST/UNICENSを使う場合、wireplumber.confの書き換えが必要

進捗状況

  • repo info -o

    Code Block
    languagetext
    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セットアップの例

  • ホスト環境(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
              • 起動のためのおまじない各種
      • meta-container-host
        • recipes-platform
          • images
            • agl-container-host-minimal.bb(仮)
      • meta-virtualization : Yocto meta-virtualizationの補完レイヤー(バックポート、パッチなど)
        • recipes-containers
          • lxc
            • lxc_3.2.1.bb
    • meta-agl-container-demo
      • meta-container-host
        • recipes-config
          • guests-filesystem
            • mount guest filesystems
        • recipes-graphics
          • wayland 
            • weston-ini-conf.bbappend
              • HDMI-A-2 ON
        • recipes-platform
          • images
            • agl-container-demo-host.bb
      • meta-container-ic
      • meta-container-ivi
      • meta-container-others

Packagegroup

  • meta-agl-container
    • meta-container-host
      • packagegroup: agl-container-host
      • packagegroup: agl-container-host-networking
  • 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


Code Block
languagetext
themeRDark
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