【发布时间】:2018-09-04 08:40:44
【问题描述】:
我一直在使用 Yocto 来为我的 Raspberry Pi 生成一个图像,这也是一个用于交叉编译的 SDK。我想输入要安装在我的图像文件中的软件包并使用以下方法生成图像:
bitbake my-image
并使用以下方法生成 sdk:
bitbake my-image -c populate_sdk
工作流程 afaik 是您获取 bash 文件并为交叉编译设置环境。
但是,出于某种原因,(问题 1) 在我的情况下,sysroots/usr/share/cmake 没有生成 OEToolchainConfig.cmake。
我目前所掌握的内容如下:
#To build SDK, use bitbake meta-toolchain or bitbake my-image -c populate_sdk
inherit core-image
# for populate_sdk to create a valid toolchain with qt5
inherit populate_sdk populate_sdk_qt5
##
inherit distro_features_check
DESCRIPTION = "My image."
LICENSE="CLOSED"
image_KERNEL_MODULES = " \
kernel-modules \
"
#Framebuffer driver for tft
image_DRIVERS = " \
xf86-video-fbdev \
"
image_DESKTOP_SUPPORT = " \
packagegroup-core-boot \
packagegroup-core-x11 \
packagegroup-lxde-base \
localedef \
pointercal \
xinit \
xkeyboard-config \
base-passwd \
liberation-fonts \
"
image_BASIC_TOOLS = " \
apt \
dpkg \
sudo \
tzdata \
dbus \
packagegroup-core-ssh-openssh \
xterm \
networkmanager \
wpa-supplicant \
"
image_DEV_TOOLS = " \
git \
cmake \
gcc \
g++ \
binutils \
binutils-symlinks \
coreutils \
cpp \
cpp-symlinks \
diffutils \
file \
g++ \
g++-symlinks \
gdb \
gdbserver \
gcc \
gcc-symlinks \
gettext \
git \
ldd \
libgcc \
libgcc-dev \
libstdc++ \
libstdc++-dev \
libstdc++-staticdev \
libtool \
make \
perl-modules \
pkgconfig \
python-modules \
python3-modules \
autoconf \
automake \
ccache \
packagegroup-core-buildessential \
glibc-utils \
"
image_DEV_LIBS = " \
wiringpi \
"
image_QT_TOOLS = " \
qtbase \
qtwebengine \
qtwebkit \
"
IMAGE_INSTALL_append = " \
${image_KERNEL_MODULES} \
${image_DRIVERS} \
${image_DESKTOP_SUPPORT} \
${image_BASIC_TOOLS} \
${image_DEV_TOOLS} \
${image_DEV_LIBS} \
${image_QT_TOOLS} \
"
#Maybe consider connman instead of networkmanager
#vc-graphics is problematic with userland..
## SDK stuff, to build sdk use bitbake my-image -c populate_sdk
# Add all static packages: SDKIMAGE_FEATURES += "staticdev-pkgs"
#SDKIMAGE_FEATURES += "staticdev-pkgs"
#SDKIMAGE_FEATURES += "dev-pkgs"
# Dnf issue fix for nativesdk-qt add to local.conf
#PACKAGE_CLASSES = "package_ipk"
# In the target side, add our libs
TOOLCHAIN_TARGET_TASK_append = " wiringpi-dev"
# Needed for cross-compilation / host tasks
TOOLCHAIN_HOST_TASK_append = " nativesdk-packagegroup-qt5-toolchain-host"
#CMake conflicts with the qt packagegroup, cmake is a must, when qt packagegroup is nonexistent
TOOLCHAIN_HOST_TASK_append = " nativesdk-cmake"
REQUIRED_DISTRO_FEATURES = "x11"
IMAGE_LINGUAS ?= " "
LICENSE = "MIT"
export IMAGE_BASENAME = "my-image"
ENABLE_SPI_BUS = "1"
ENABLE_I2C = "1"
do_image_prepend() {
}
这引发了一些问题:
(问题 2) 我看到有些人不使用 TOOLCHAIN_HOST_TASK 或 TOOLCHAIN_TARGET_TASK 并且有些人如何能够将包添加到 SDK。我想知道我是否做错了什么。
(问题 3) 我继承了一些基于其他条目的类,但我不确定继承 populate_sdk 和 populate_sdk_qt5 会帮助我解决什么问题。如果有人可以粗略地解释我做错了什么以及我可以做些什么来改善工作流程,那将是一个很好的知识补充。
提前感谢您的建议。
【问题讨论】:
标签: linux qt cmake yocto bitbake