CAT_yocto_common

conf

  • conf/bblayers.conf
BBLAYERS ?= " \
  ${TOPDIR}/../meta-gplv2 \
  ${TOPDIR}/../poky/meta \
  ${TOPDIR}/../poky/meta-poky \
  ${TOPDIR}/../poky/meta-yocto-bsp \
  ${TOPDIR}/../meta-renesas/meta-rz-common \
  ${TOPDIR}/../meta-renesas/meta-rzg1 \
  ${TOPDIR}/../meta-openembedded/meta-oe \
  ${TOPDIR}/../meta-openembedded/meta-networking \        # <= 追加
  ${TOPDIR}/../meta-openembedded/meta-python \
  ${TOPDIR}/../meta-openembedded/meta-multimedia \
  • conf/local.conf
# Package Management configuration
#PACKAGE_CLASSES ?= "package_rpm"
PACKAGE_CLASSES ?= "package_deb"
EXTRA_IMAGE_FEATURES ?= "debug-tweaks"
EXTRA_IMAGE_FEATURES += "read-only-rootfs"
# Enable wayland and disable x11
#DISTRO_FEATURES_append = " wayland"
DISTRO_FEATURES_remove = " x11"
#DISTRO_FEATURES_NATIVESDK_append = " wayland"
DISTRO_FEATURES_NATIVESDK_remove = " x11"
CIP_CORE = "1"
CIP_MODE = "Bullseye"         /* debian11ベース */
IS_RT_BSP = "1"               /* PREEMPT_RT を有効に */
BB_NO_NETWORK = "0"            /* 1 だと追加パッケージはダウンロードできないので0にする */
# INCOMPATIBLE_LICENSE = "GPLv3 GPLv3+"        # GPLv3ソフトを含まない、を外す
# gdb は GPLv3 なので INCOMPATIBLE_LICENSE  をコメントアウトする
# Configuration for USB 3.0
#MACHINE_FEATURES_append = " usb3"

# hostname
hostname_pn-base-files = "cat845"

# local append (ebihara)
PACKAGE_EXCLUDE += " packagegroup-core-ssh-dropbear"

IMAGE_INSTALL_append = " nfs-utils"
IMAGE_INSTALL_append = " openssh"
IMAGE_INSTALL_append = " rsyslog rsync"
IMAGE_INSTALL_append = " mtd-utils mtd-utils-jffs2"
IMAGE_INSTALL_append = " strace gdbserver"
IMAGE_INSTALL_append = " libasan"
IMAGE_INSTALL_append = " procps"
IMAGE_INSTALL_append = " sqlite3"
IMAGE_INSTALL_append = " tree dosfstools psmisc bc curl"
IMAGE_INSTALL_append = " ifupdown init-ifupdown update-rc.d perl-modules"
IMAGE_INSTALL_append = " ntpdate"
IMAGE_INSTALL_remove = " alsa-utils"
IMAGE_INSTALL_remove = " connman connman-client connman-tools connman-tests connman-wait-online"
DISTRO_FEATURES_remove = " connman"
BAD_RECOMMENDATIONS += " connman"
IMAGE_INSTALL_remove += " wpa-supplicant"
BAD_RECOMMENDATIONS += " wpa-supplicant"
 
# timezone
IMAGE_INSTALL_append = " tzdata"
DEFAULT_TIMEZONE = "Asia/Tokyo"

conf/local.conf に なにも append せずデフォルト状態で bitbake core-image-bsp する場合に限り

BB_NO_NETWORK = "1"            /* 1 だと追加パッケージはダウンロードできないので0にする */

としてオフラインでビルドできる。conf/local.conf をいじるならば "0" とする。

いちど bitbake を通した後に INCOMPATIBLE_LICENSE = "GPLv3 GPLv3+" を変更するとエラーだらけになって失敗する。
INCOMPATIBLE_LICENSE = "GPLv3 GPLv3+" を変更するならばyoctoのビルドを最初からやり直すこと。

overlay-rootfs

yoctoでrootfsを構築後に入れ替えたい(上書きしたい)ファイルを my-overlay ディレクトリにまとめておく。

filemy-overlay.tgz
filecore-image-bsp.bbappend ファイルの置き場所は以下を参照

$ cd $WORK      ( $ cd ~/yocto と同義)
$ cat meta-renesas/meta-rz-common/recipes-core/images/core-image-bsp.bbappend
MY_OVERLAY_DIR = "${TOPDIR}/../my-overlay"

do_copy_overlay() {
        echo "Running overlay copy"
        cp -a ${MY_OVERLAY_DIR}/* ${IMAGE_ROOTFS}/
        echo "ttySC10" >> ${IMAGE_ROOTFS}/etc/securetty
        echo "172.16.1.4:/home  /media/nfs      nfs     noauto,ro       0 0" >> ${IMAGE_ROOTFS}/etc/fstab
        echo "/dev/mmcblk0p1    /boot           auto    noauto,ro       0 0" >> ${IMAGE_ROOTFS}/etc/fstab
}
 
ROOTFS_POSTPROCESS_COMMAND += "do_copy_overlay;"
$ cd $WORK      ( $ cd ~/yocto と同義)
& tar xvf my-overlay.tgz
$ tree ../my-overlay/
my-overlay
|-- etc
|   |-- default
|   |   `-- ssh
|   |-- network
|   |   |-- if-pre-up.d
|   |   |   `-- init-resolvconf
|   |   |-- if-up.d
|   |   |   `-- eth0irq_affinity
|   |   `-- interfaces
|   |-- rc.local
|   |-- ssh
|   |   `-- sshd_config
|   `-- udhcpc.d
|       `-- 50default
|-- home
|   `-- root
|       |-- kernel_write.sh
|       |-- setting.sh
|       `-- update-rc.d
|-- media
|   |-- mtd3
|   |-- nfs
|   |-- sd
|   |-- sda1
|   `-- sda2
|-- root -> home/root
`-- usr
    |-- libexec
    |   `-- openssh
    |       `-- sshd_check_keys
    |-- local
    |   `-- bin
    |       |-- dateset.sh
    |       `-- rommode
    `-- sbin
$ bitbake -c clean core-image-bsp
$ bitbake core-image-bsp

起動後に実機上で実行

#!/bin/sh
rommode rw

cp update-rc.d /usr/sbin

echo "[Install]" >> /lib/systemd/system/rc-local.service
echo "WantedBy=multi-user.target" >> /lib/systemd/system/rc-local.service
systemctl enable rc-local

systemctl disable systemd-networkd
systemctl unmask networking
systemctl enable networking
systemctl start networking
sync
rommode ro

カスタムレイヤの追加

yocto カスタムレイヤーの追加

$ cd work
$ source poky/oe-init-build-env
(buildに移動)
$ bitbake-layers show-layers            レイヤの確認
$ bitbake-layers create-layer ../meta-cat845        meta-cat845 が作られる
kaihatsu@debian11:~/yocto_cat845_v307/build$ ls ../
build  meta-cat845  meta-openembedded  meta-renesas         my-overlay
extra  meta-gplv2   meta-qt5           meta-virtualization  poky
$ bitbake-layers add-layer ../meta-cat845
$ bitbake-layers show-layers
NOTE: Starting bitbake server...
layer                 path                                      priority
==========================================================================
meta-gplv2            /home/kaihatsu/yocto_cat845_v307/build/../meta-gplv2  1
meta                  /home/kaihatsu/yocto_cat845_v307/build/../poky/meta  5
meta-poky             /home/kaihatsu/yocto_cat845_v307/build/../poky/meta-poky  5
meta-yocto-bsp        /home/kaihatsu/yocto_cat845_v307/build/../poky/meta-yocto-bsp  5
meta-rz-common        /home/kaihatsu/yocto_cat845_v307/build/../meta-renesas/meta-rz-common  15
meta-rzg1             /home/kaihatsu/yocto_cat845_v307/build/../meta-renesas/meta-rzg1  15
meta-oe               /home/kaihatsu/yocto_cat845_v307/build/../meta-openembedded/meta-oe  6
meta-python           /home/kaihatsu/yocto_cat845_v307/build/../meta-openembedded/meta-python  7
meta-multimedia       /home/kaihatsu/yocto_cat845_v307/build/../meta-openembedded/meta-multimedia  6
meta-cat845           /home/kaihatsu/yocto_cat845_v307/meta-cat845  6

レイヤの削除

コマンドは無い。 build/conf/bblayers.conf から該当行を削除する

関連

CAT845_yocto CAT845_yocto_sdwrite

自動リンク