这对我来说似乎很明显,但我找不到任何解决方案。假设我想添加或更改适用于所有 yocto 配方的编译器标志/选项。可以在某处添加全局标志而不更改配方?
我编写了一个Python3应用程序,它使用PyQt5作为GUI,它可以在每个桌面系统上运行良好.现在我想在硬件制造商提供的嵌入式Linux(特别是:Yocto BSP)上运行它.由于没有PyQt5,而是在BSP上运行qt5和python3包,我想(以某种方式)制作应用程序的独立可执行文件.另外,我没有编写bitbake配方和创建自定义BSP的经验,也没有找到任何现有的PyQt5配方.
到目前为止我尝试过的(并没有成功):
make报告了我无法解决的未定义引用(链接器错误)(因为我对c ++不是很熟悉).现在,让python/pyqt5应用程序在包含非常有限的软件包的嵌入式Linux系统上运行的最佳方法是什么?
我试图将文件夹放入文件系统的根目录.在文档中(例如这里),他们主要使用变量,因此文件和文件夹的SRC_URI结果存储在/usr/bin或者某些东西中,但从不存在/.
所以这是我的食谱:
DESCRIPTION = "Example for adding files and folders to rootfs"
SRC_URI += "file://example_folder"
SRC_URI += "file://example_file"
LICENSE = [...]
do_install() {
install -d ${D}/rootfolder
cp -r ${WORKDIR}/example_folder ${D]/rootfolder/
install -m 0755 ${WORKDIR}/example_file ${D}/rootfolder
}
Run Code Online (Sandbox Code Playgroud)
这只是do_install我尝试的很多变种中的一种.它们中的每一个都导致Error: example not found in the base feeds [...]文件和文件夹中的任何一个或者文件和文件夹没有放在根目录中,而是/usr/bin如上所述.
我正在为英特尔爱迪生构建Yocto图像.
图像的一个组件是u-boot,带有Edison特定的补丁.默认情况下,Edison的UART端口用于u-boot控制台.我想禁用此功能,但仅限于串行接口(u-boot也会侦听USB并且需要保留).
我主要担心的是UART端口上的" 按任意键停止自动引导 "功能.我需要此端口来连接可能在主设备启动过程中发送内容的附件.
我该如何处理这个问题?是否有环境变量,或者我是否需要修改源?
提前致谢!
我正在尝试在嵌入式系统(Yocto Linux)上运行D-Bus,并从我的应用程序代码连接到它.
我打电话时收到以下错误 dbus_bus_get(DBUS_BUS_SESSION, &err);
Using X11 for dbus-daemon autolaunch was disabled at compile time, set your DBUS_SESSION_BUS_ADDRESS instead
Run Code Online (Sandbox Code Playgroud)
我意识到我需要启动第dbus-daemon一个,所以我从命令行运行dbus-launch.这打印出一个值,DBUS_SESSION_BUS_ADDRESS但我怎么能以编程方式导出它?
谢谢您的帮助
我试图/var/log坚持我的fido构建.poky的默认设置是,有一个符号链接,/var其中包含点log -> volatile/log.volatile是一个安装在tmpfs上.
到目前为止,我发现符号链接应该由base-files配方创建:
volatiles = "log tmp"
do_install () {
...
for d in ${volatiles}; do
ln -sf volatile/$d ${D}${localstatedir}/$d
done
...
Run Code Online (Sandbox Code Playgroud)
我附加了基本文件配方,因此没有创建链接,但它仍然在我的rootfs中出现.那么它来自哪里?我怀疑它可能fs-perms.txt与它有关.但我试图创造一个没有
${localstatedir}/log link volatile/log
Run Code Online (Sandbox Code Playgroud)
线,它仍然创建了该链接.有线索吗?
我正在尝试在yocto上构建自定义图像.当我创建一个图像时,我在glibc-locale中遇到错误(do_package步骤).
错误是
ERROR: glibc-locale-2.24-r0 do_package: QA Issue: glibc-locale: Files/directories were installed but not shipped in any package:
{
"a lot of file in /usr/lib/gconv, /usr/share/i18n paths"
}
Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
glibc-locale: 820 installed and not shipped files. [installed-vs-shipped]
ERROR: glibc-locale-2.24-r0 do_package: Fatal QA errors found, failing task.
ERROR: glibc-locale-2.24-r0 do_package: Function failed: do_package
ERROR: Logfile of failure stored in: /home/test/rpi/build/tmp/work/cortexa7hf-neon-vfpv4-poky-linux-gnueabi/glibc-locale/2.24-r0/temp/log.do_package.30243
ERROR: …Run Code Online (Sandbox Code Playgroud) 在我的项目中,我想为汽车级 Linux 发行版采用现有的 Yocto 设置,并为我们自己的组件添加一些带有配方的层。
在他们的 gerrit 站点上有一个公开可用的清单文件 。我想做的是基本上
<manifest>
<include url="<url of AGL manifest>" />
<remote name="mysite" fetch="ssh://gerrit.mysite.com" />
<project name="mylayer1" path="mylayer1" />
<project name="mylayer2" path="mylayer2" />
</manifest>
Run Code Online (Sandbox Code Playgroud)
目的是repo init指向我的清单的命令首先获取“包含”清单中提到的所有存储库,然后继续获取我自己的所有元层。
问题是该include元素用于在repo init命令行上指定的同一存储库中包含其他清单。
我可以简单地将他们的清单复制到我自己的存储库中,使用不同的名称,并在旁边创建我自己的清单。或者我可以复制他们的文件并进行编辑。
但是维护它会很痛苦并且极易出错。特别是上游清单不仅用于指定存储库,还用于将每个存储库固定到特定提交,作为 Yocto 中的一种版本控制形式。
我不敢相信这么明显的用例还没有被考虑和解决。
那么,冒着因“太宽泛”或请求建议而被关闭的风险,有人已经解决了这个问题吗?如果是这样,如何?
我正在使用Yocto 使用食谱https://github.com/CogentEmbedded/meta-opencl/blob/master/meta-ocl-common/recipes安装clBLAS库(https://github.com/clMathLibraries/clBLAS)-graphics / clblas / clblas_git.bb
但是我每次都会收到以下警告,并且.so文件不在生成的映像中。
WARNING: QA Issue: clblas: Files/directories were installed but not shipped in any package:
/usr/lib
/usr/lib/libclBLAS.so.2.12.0
/usr/lib/libclBLAS.so.2
/usr/lib/libclBLAS.so
/usr/lib/.debug
/usr/lib/pkgconfig
/usr/lib/cmake
/usr/lib/.debug/libclBLAS.so.2.12.0
/usr/lib/pkgconfig/clBLAS.pc
/usr/lib/cmake/clBLAS
/usr/lib/cmake/clBLAS/clBLASTargets-debug.cmake
/usr/lib/cmake/clBLAS/clBLASConfigVersion.cmake
/usr/lib/cmake/clBLAS/clBLASTargets.cmake
/usr/lib/cmake/clBLAS/clBLASConfig.cmake
Please set FILES such that these items are packaged. Alternatively if they are unneeded, avoid installing them or delete them within do_install.
clblas: 14 installed and not shipped files. [installed-vs-shipped]
Run Code Online (Sandbox Code Playgroud)
如何克服此警告并使目标/usr/lib文件夹中存在.so文件?
我有一个简单的python应用程序,它可以:
包装要求:
certifi==2018.4.16
chardet==3.0.4
idna==2.6
influxdb==5.0.0
pynmea2==1.12.0
pyserial==3.4
python-dateutil==2.7.3
pytz==2018.4
requests==2.18.4
six==1.11.0
urllib3==1.22
Run Code Online (Sandbox Code Playgroud)
上面是通过使用以下命令生成的:
pip3 install pynmea2 pyserial influxdb
在OpenEmbedded Layers Index我已经找到pyserial的Python3包中。这暗示着我可能需要做的事情pip3 install pynmea2 influxdb。
在考虑所有上述pip依赖关系的情况下,如何继续编写应用程序的配方?
我没有找到有关编写python应用程序食谱的任何教程。(相反,Node应用程序确实在yocto的Wiki页面上有一些指导。
在检查meta-python层中的一些配方后,我发现了一些.inc文件,但不确定如何处理
yocto ×10
bitbake ×3
linux ×3
openembedded ×2
dbus ×1
embedded ×1
intel-edison ×1
pyqt5 ×1
python ×1
python-3.x ×1
repo ×1
u-boot ×1