「Raspberry Pi活用/Yocto設定」の版間の差分

ナビゲーションに移動 検索に移動
編集の要約なし
 
(同じ利用者による、間の53版が非表示)
= 参考 =
tools-debug
 
* https://docs.yoctoproject.org/brief-yoctoprojectqs/index.html
* https://wiki.yoctoproject.org/wiki/Releases
 
= Yocto環境取得 =
 
<nowiki>
~/yocto$ git clone git-b scarthgap https://git.yoctoproject.org/poky
~/yocto$ cdsource poky/oe-init-build-env
~/yocto/poky$ git checkout kirkstone
//~/yocto/poky$ git checkout scarthgap
~/yocto/poky$ cd ..
~/yocto$ git clone git://git.yoctoproject.org/meta-raspberrypi
~/yocto$ cd meta-raspberrypi
~/yocto/meta-raspberrypi$ git checkout kirkstone
~/yocto/meta-raspberrypi$ cd ..
~/yocto$ . poky/oe-init-build-env
~/yocto/build$ bitbake-layers add-layer ../meta-raspberrypi
</nowiki>
 
== gitで通信できる場合 ==
 
<nowiki>
~/yocto/build$ bitbake-layers layerindex-fetch -b scarthgap meta-raspberrypi
</nowiki>
 
== gitで通信できない場合 ==
 
<nowiki>
~/yocto/poky$ git clone -b scarthgap https://git.yoctoproject.org/meta-raspberrypi
~/yocto/poky$ bitbake-layers add-layer meta-raspberrypi
</nowiki>
 
== layerの確認 ==
 
<nowiki>
bitbake-layers show-layers
</nowiki>
 
= 設定変更 =
 
~/yocto/build/conf/local.conf
MACHINE ?= "raspberrypi4-64"
</nowiki>
 
<nowiki>
DL_DIR ?= "${TOPDIR}/downloads"
</nowiki>
 
https://meta-raspberrypi.readthedocs.io/en/latest/ipcompliance.html
 
= ビルド =
 
core-image-base
 
== 最小構成 ==
 
<nowiki>
~/yocto/build$ bitbake core-image-minimal
</nowiki>
 
== X環境 ==
~/yocto/build$ bitbake core-image-sato -c clean
 
<nowiki>
~/yocto/build$ bitbake core-image-sato
~/yocto/build$ bitbake core-image-sato -c listtasks
</nowiki>
 
= SDカードへの書き込み =
 
<nowiki>
$ sudo bmaptool copy --bmap core-image-minimal-raspberrypi4-64.rootfs.wic.bmap core-image-minimal-raspberrypi4-64.rootfs.wic.bz2 /dev/SDX
//$ sudo bmaptool copy core-image-sato-raspberrypi4-64.wic.bz2 /dev/SDX
</nowiki>
 
= QEMUを使用する場合 =
 
~/yocto/build/conf/local.conf
 
<nowiki>
MACHINE ?= "qemuarm64"
bitbake-layers show-layers
</nowiki>
 
<nowiki>
== SDK ==
$ bitbake core-image-base
$ runqemu qemuarm64 nographic
</nowiki>
 
= SDK =
 
== ビルド ==
 
<nowiki>
~/yocto/build$ bitbake core-image-sato -c populate_sdk core-image-base
//~/yocto/build$ bitbake meta-toolchain
</nowiki>
 
== インストール ==
 
<nowiki>
~/yocto/build/tmp/deploy/sdk/poky-glibc-x86_64-core-image-satobase-cortexa72cortexa57-raspberrypi4-64qemuarm64-toolchain-45.0.174.sh
</nowiki>
 
== 環境設定 ==
 
<nowiki>
$ .source /opt/poky/45.0.174/environment-setup-cortexa72cortexa57-poky-linux
</nowiki>
 
== 使用方法 ==
 
<nowiki>
</nowiki>
 
== レイヤー自作アプリの追加 ==
 
= デバッグ =
 
<nowiki>
git clone -b kirkstone https://git.openembedded.org/meta-openembedded
bitbake-layers add-layer meta-oe
bitbake-layers add-layer meta-python
</nowiki>
 
local.conf
 
<nowiki>
CORE_IMAGE_EXTRA_INSTALL += " python3 apache2 gdb gdbserver"
DISTRO_FEATURES += " debuginfod"
</nowiki>
 
=== debuginfod ===
 
local.conf
 
<nowiki>
gdb /bin/cat
</nowiki>
 
ホスト
 
<nowiki>
oe-debuginfod
</nowiki>
 
=== gdbserver ===
 
local.conf
 
<nowiki>
IMAGE_GEN_DEBUGFS = "1"
IMAGE_FSTYPES_DEBUGFS = "tar.bz2"
 
EXTRA_IMAGE_FEATURES:append = " tools-debug"
</nowiki>
 
<nowiki>
mkdir debugfs
cd debugfs
tar xjf build/tmp/deploy/images/qemuarm64/core-image-minimal-qemuarm64.rootfs.tar.bz2
tar xjf build/tmp/deploy/images/qemuarm64/core-image-minimal-qemuarm64.rootfs-dbg.tar.bz2
</nowiki>
 
<nowiki>
build-dir/tmp/sysrootfs/host/usr/bin/architecture/architecture-gdb
</nowiki>
 
<nowiki>
gdbserver localhost:1234 /bin/gzip -help
</nowiki>
 
<nowiki>
cd debugfs
aarch64-poky-linux-gdb
(gdb) set sysroot debugfs
(gdb) set substitute-path /usr/src/debug debugfs/usr/src/debug
(gdb) target remote IP-of-target:1234
</nowiki>
 
~/.gdbinit
 
<nowiki>
bitback bash
bitbake -c devshell bash
cd ..
scp packages-split/bash/bin/bash target:/bin/bash
cp -a packages-split/bash-dbg/* path/debugfs
</nowiki>
 
=== ターゲット上でのみデバッグ ===
 
local.conf
 
<nowiki>
EXTRA_IMAGE_FEATURES:append = " tools-debug"
IMAGE_INSTALL:append = " packagename-dbg"
EXTRA_IMAGE_FEATURES:append = " dbg-pkgs"
 
DEBUG_BUILD = "1"
</nowiki>
 
= USBブート =
 
local.conf
 
<nowiki>
CMDLINE_remove = "root=/dev/mmcblk0p2"
CMDLINE_append = "root=/dev/sda2"
</nowiki>
 
== NFSルート ==

ナビゲーション メニュー