我一直在和Yocto玩,以便为我的Raspberry Pi生成一个图像,这也是一个用于交叉编译的SDK。我希望输入要安装在映像文件中的软件包,并使用以下方法生成映像:
bitbake my-image并使用以下方法生成sdk:
bitbake my-image -c populate_sdk工作流afaik是为交叉编译创建bash文件和环境。
但是,由于某种原因,(问题1)在 OEToolchainConfig.cmake中没有在sysroots/usr/share/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会给我带来什么帮助。如果有人能粗略地解释我做错了什么,我能做些什么来更好地处理工作流程,那么这可能是对知识的一个很好的补充。
谢谢你提前提出建议。
发布于 2018-08-24 10:40:23
试图回答(问题1):
我对poky-2.5的发现是,对于我的x86_64目标,OEToolchainConfig.cmake放在开发包中(即x86_64包)。
因此,试着:
TOOLCHAIN_HOST_TASK_append = " nativesdk-cmake-dev"不确定这是否是个bug。
https://stackoverflow.com/questions/49487458
复制相似问题