如何在 Yocto 中正确构建 mDNS? [英] How does one get everything right to build mDNS in Yocto?

查看:72
本文介绍了如何在 Yocto 中正确构建 mDNS?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有人可以帮助我设置在 Yocto 中构建 mDNS 和/或纠正我可能犯的任何其他错误?
我之前成功构建了 mDNS 并在嵌入式 Linaro 中运行Linux.
这是一篇非常详细的帖子,试图在提供足够的方面犯错信息.正如一位响应者在我最近看到的论坛消息中写道:"欢迎来到约克托.这是你的一瓶威士忌和 Advil……"

Can someone help me in setting up the recipe to build mDNS in Yocto and/or correct any other mistakes I may have made?
I previously successfully built mDNS and got it running in Linaro embedded Linux.
This is a pretty detailed post, to try to err on the side of giving enough information. As one responder wrote in a forum message that I saw recently: "Welcome to Yocto. Here's your bottle of whiskey and Advil..."

在 Linaro Linux 中构建:我从 Apple 获得了 mDNS 的这个 .tar:https://opensource.apple.com/tarballs/mDNSResponder/mDNSResponder-878.200.35.tar.gz
遵循这一点:https://github.com/balaji-reddy/mDNSResponder.
我为我的 mDNS 内容创建了一个基本文件夹/mDNS/并在那里提取了 .tar,创建一个 mDNSResponder-878.200.35/文件夹.我做了 cd 到那个.
它使用以下命令在 Linaro 中为我轻松构建:make os="linux";-C "mDNSPosix"

Building in Linaro Linux: I had obtained this .tar of mDNS from Apple: https://opensource.apple.com/tarballs/mDNSResponder/mDNSResponder-878.200.35.tar.gz
Following this got it going: https://github.com/balaji-reddy/mDNSResponder .
I made a base folder /mDNS/ for my mDNS stuff and extracted the .tar there, creating an mDNSResponder-878.200.35/ folder. I did cd into that.
It build readily for me in Linaro using the command: make os="linux" -C "mDNSPosix"

我在/mDNS/mDNSR-878.200.35/mDNSPosix/build/prod/中有 8 个文件:
40,592 libdns_sd.so
55,960 libnss_mdns-0.2.so
370,288 mDNSClientPosix
448,608 mdnsd
374,616 mDNSIdentify
387,904 mDNSNetMonitor
373,960 mDNSProxyResponderPosix
379,768 mDNSResponderPosix
然后,仍然在 mDNSResponder-878.200.35/,我做了:
make install os="linux"-C "mDNSPosix"

I got 8 files in /mDNS/mDNSR-878.200.35/mDNSPosix/build/prod/ :
40,592 libdns_sd.so
55,960 libnss_mdns-0.2.so
370,288 mDNSClientPosix
448,608 mdnsd
374,616 mDNSIdentify
387,904 mDNSNetMonitor
373,960 mDNSProxyResponderPosix
379,768 mDNSResponderPosix
Then, still in mDNSResponder-878.200.35/, I did:
make install os="linux" -C "mDNSPosix"

除其他外,此安装启动了一个恶魔运行.它也复制libdns_sd.so 和 libnss_mdns-0.2.so 到/lib/,它应该在路径中.
这些行包含在安装输出中:
--------------------------------------------------------------**
启动 Apple Darwin 多播 DNS/DNS 服务发现守护进程:mdnsd.
/usr/sbin/mdnsd 已安装
--------------------------------------------------------------**

Among other things, this install starts a demon running. It also copies libdns_sd.so, and libnss_mdns-0.2.so to /lib/, which should be in the path.
These lines are included in the install output:
--------------------------------------------------------------**
Starting Apple Darwin Multicast DNS / DNS Service Discovery daemon: mdnsd.
/usr/sbin/mdnsd installed
--------------------------------------------------------------**

对于 Yocto,我想我会将 libdns_sd.so 的副本添加到/lib/文件夹中我的食谱的目的地,所以我可以在运行之前将另一个模块链接到它make install,必须在目标上运行.但如果我建Yocto 中的其他模块,我想我应该将它复制到/lib/下tmp/work/dir,而不是 D,目的地.我的 do_install 行:
安装 -m 0755 ${S}/mDNSResponder-878.200.35/mDNSPosix/build/prod/libdns_sd.so ${D}${base_libdir}
用于将其复制到 D 中的/lib/.我将如何正确编写该行进行复制它到/lib/下 ~/Yocto/imx-yocto-bsp/build-wayland/tmp/work/aarch64-poky-linux/?

For Yocto, I figured I would add the copy of libdns_sd.so to the /lib/ folder in the destination to my recipe so I could link another module to it before I ran the make install, which has to be done running on the target. But if I build that other module in Yocto, I think I should add copying it to /lib/ under my tmp/work/ dir, not D, the destination. My do_install line:
install -m 0755 ${S}/mDNSResponder-878.200.35/mDNSPosix/build/prod/libdns_sd.so ${D}${base_libdir}
is for copying it to /lib/ in D. How would I correctly write that line to copy it to /lib/ under ~/Yocto/imx-yocto-bsp/build-wayland/tmp/work/aarch64-poky-linux/?

Yocto 低级文件夹不是很重要;我只是觉得我想要一个
我家目录下的 Yocto 文件夹来保存我的 Yocto 东西.我创建了 imx-yocto-bsp
遵循 i.MX_Yocto_Project_User's_Guide.pdf.

The Yocto low-level folder isn't very important; I just felt that I wanted a
Yocto folder under my home dir to hold my Yocto stuff. I created imx-yocto-bsp
following the i.MX_Yocto_Project_User's_Guide.pdf.

首先,我遵循了 i.MX_Yocto_Project_User's_Guide.pdf,IMXLXYOCTOUG"从 imx-yocto-L5.4.47_2.2.0 下载,获取我的基本系统,其中工作.我从:www.nxp.com/imx8mnanoevk ->https://www.nxp.com/design/development-boards/i-mx-evaluation-and-development-boards/evaluation-kit-for-the-i-mx-8m-nano-applications-processor:8MNANOD4-EVK
并下载并解压了接下来三行中描述的这个 .zip:
L5.4.47_2.2.0_LINUX_DOCS (REV L5.4.47_2.2.0) 更新
适用于 Linux BSP 文档的 i.MX L5.4.47_2.2.0.包括发行说明、用户指南.
ZIP 11.6 MB 2020 年 11 月 3 日 L5.4.47_2.2.0_LINUX_DOCS [ 英文 ]
我正在为 i.MX 8M nano 评估板做这件事.
我上面路径中的 build-wayland 文件夹是我的 build 文件夹.
我做了以下几行来得到它.
~/Yocto/imx-yocto-bsp$ DISTRO=fsl-imx-wayland MACHINE=imx8mnddr4evk 源imx-setup-release.sh -b build-wayland
其结果之一是目录更改为 build-wayland文件夹.事实证明,留在该文件夹中是正确的做法i.MX_Yocto_Project_User's_Guide.pdf 中的后续步骤,例如我的bitbake imx-image-multimedia"命令我做了;我不相信 .pdf 制作的很清楚.

First, I had followed the i.MX_Yocto_Project_User's_Guide.pdf, "IMXLXYOCTOUG" from the imx-yocto-L5.4.47_2.2.0 download, to get my basic system, which worked. I got that from: www.nxp.com/imx8mnanoevk -> https://www.nxp.com/design/development-boards/i-mx-evaluation-and-development-boards/evaluation-kit-for-the-i-mx-8m-nano-applications-processor:8MNANOD4-EVK
And downloaded and unpacked this .zip described in the next three lines:
L5.4.47_2.2.0_LINUX_DOCS (REV L5.4.47_2.2.0 ) UPDATED
i.MX L5.4.47_2.2.0 for Linux BSP Documentation. Includes Release Notes, User Guide.
ZIP 11.6 MB 03 Nov 2020 L5.4.47_2.2.0_LINUX_DOCS [ English ]
I'm doing this for the i.MX 8M nano eval board.
The build-wayland folder in my path above is my build folder.
I had done the following line to get that.
~/Yocto/imx-yocto-bsp$ DISTRO=fsl-imx-wayland MACHINE=imx8mnddr4evk source imx-setup-release.sh -b build-wayland
One result of that was to end up with the directory changed to the build-wayland folder. It turned out it was the right thing to do to stay in that folder for subsequent steps in the i.MX_Yocto_Project_User's_Guide.pdf, such as my "bitbake imx-image-multimedia" command that I did; I don't believe the .pdf made that clear.

所以我之前在运行 Ubuntu 18.04.4 的 Linux 主机 PC 上进行了这项工作《仿生海狸》并将生成的图像闪烁到我的 i.MX 8M 纳米板上.
我在 UART 输出中看到的其中一行是:
欢迎使用 NXP i.MX Release Distro 5.4-zeus (zeus)!
我遵循了以下非常好的教程,并添加了一个 helloworld 层作为它显示并让 helloworld 在我的目标板上工作来自主机的 .wic 图片:
https://medium.com/the-innovation/how-to-prepare-a-helloworld-c-recipe-with-yocto-project-1f74c296a777
这是一个很好的教程,一方面,因为它清楚地描述了目录结构和可以遵循.小心作者的错别字然而放入.他开始将 helloworld.c 拼写为 hello-world.c然后第 5 步和第 6 步在他的第 7 步中切换到 helloworld.c.你必须抓住当您注意到切换时,请修复您工作中的拼写.

So I previously got this working on a Linux host PC running Ubuntu 18.04.4 "Bionic Beaver" and flashed the resulting images onto my i.MX 8M nano board.
One line of many I see in my UART output is:
Welcome to NXP i.MX Release Distro 5.4-zeus (zeus)!
I followed the following very good tutorial and also added a helloworld layer as it shows and had helloworld working on my target board after flashing the built .wic image from the host:
https://medium.com/the-innovation/how-to-prepare-a-helloworld-c-recipe-with-yocto-project-1f74c296a777
It is a good tutorial, for one thing, because it clearly describes the directory structure and can be followed. Be careful about a typo that the author put in, however. He starts out spelling helloworld.c as hello-world.c in his Steps 5 and 6 then switches to helloworld.c in his Step 7. You have to catch that and fix the spelling in your work when you notice the switch.

我使用他 George Calin 展示的结构来制作我的 mdns 层.

I used the structure that he, George Calin, showed, to make my mdns layer.

在我的构建文件夹 build-wayland 中,我在旁边创建了 meta-mdns-so我按照教程创建的 meta-helloworld-app 文件夹.我用了教程中给出的类似步骤,包括
bitbake-layers create-layer meta-mdns-so
bitbake-layers add-layer meta-mdns-so

In my build folder, build-wayland, I created meta-mdns-so alongside the meta-helloworld-app folder that I had created following the tutorial. I used similar steps as given in the tutorial, including
bitbake-layers create-layer meta-mdns-so
bitbake-layers add-layer meta-mdns-so

这让我以类似的方式完成了教程中的第 4 步.
这在 meta-mdns-so 中创建了以下树(每级缩进一个破折号):

This got me through Step 4 in the tutorial in a similar manner.
This created the following tree in meta-mdns-so (one dash indented per level):

确认
-layer.conf
COPYING.MIT
自述文件
食谱示例
-mdns
--文件
---mDNSResponder-878.200.35.tar.gz
--mDNSResponder_878.200.35.bb

conf
-layer.conf
COPYING.MIT
README
recipes-example
-mdns
--files
---mDNSResponder-878.200.35.tar.gz
--mDNSResponder_878.200.35.bb

请注意,后面紧跟缩进程度更高的项目是目录.

Note that items followed by items that are more indented are directories.

将 mDNSResponder-878.200.35.tar.gz 放在我发现的文件下https://wiki.yoctoproject.org/wiki/Building_your_own_recipes_from_first_principles然而,这里的信息大约有七年历史和背景信息链接已经腐烂了.
Yocto Mega 手册中有更多信息,请访问https://www.yoctoproject.org/docs/3.0/mega-manual/mega-manual.html .
见7.3.21.3".基于 Makefile 的包"

Putting mDNSResponder-878.200.35.tar.gz under files I found out from https://wiki.yoctoproject.org/wiki/Building_your_own_recipes_from_first_principles However the information here is about seven years old and background info links have rotted.
There's more information in the Yocto Mega Manual at https://www.yoctoproject.org/docs/3.0/mega-manual/mega-manual.html .
See "7.3.21.3. Makefile-Based Package"

这是我在 mDNSResponder_878.200.35.bb 中为我的第一次尝试:
-----------------------------------------------------------------------
描述 =mDNS 组件"
优先级 = 可选"
SECTION =协议"
许可证 = 麻省理工学院"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
SRC_URI = "file://mDNSResponder-878.200.35.tar.gz"
# S = "${WORKDIR}"
# - 不应该设置 S 因为 BitBake 期望源位于名为
的目录中# 工作目录中的 mDNSResponder-878.200.35.
# 不需要 do_compile 步骤,因为默认情况下 BitBake 会启动 make 命令
# 编译应用程序.
# 但需要额外的 make 选项
EXTRA_OEMAKE = "'os="linux"''-C "mDNSPosix"'"
do_install() {
install -d ${D}${base_libdir}
install -m 0755 ${WORKDIR}/mDNSResponder-878.200.35/mDNSPosix/build/prod/libdns_sd.so ${D}${base_libdir}
}
-----------------------------------------------------------------------**
我在 ~/Yocto/imx-yocto-bsp/build-wayland$ 中做了 bitbake mdns.

Here's the recipe in mDNSResponder_878.200.35.bb that I came up with for my first try:
----------------------------------------------------------------------
DESCRIPTION = "The mDNS component"
PRIORITY = "optional"
SECTION = "protocols"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
SRC_URI = "file://mDNSResponder-878.200.35.tar.gz"
# S = "${WORKDIR}"
# -Shouldn't set S because BitBake expects the source to be in a dir called
# mDNSResponder-878.200.35 in the work dir.
# Don't need a do_compile step since by default BitBake starts the make command
# to compile the application.
# But need additional make options
EXTRA_OEMAKE = "'os="linux"' '-C "mDNSPosix"'"
do_install() {
install -d ${D}${base_libdir}
install -m 0755 ${WORKDIR}/mDNSResponder-878.200.35/mDNSPosix/build/prod/libdns_sd.so ${D}${base_libdir}
}
----------------------------------------------------------------------**
I did bitbake mdns in ~/Yocto/imx-yocto-bsp/build-wayland$ .

当我在新的终端窗口中返回这项工作时,我总是这样做
~/Yocto/imx-yocto-bsp$ source setup-environment build-wayland
它把我放在我的 build-wayland 文件夹中:~/Yocto/imx-yocto-bsp/build-wayland$

When coming back to this work in a fresh terminal window I always do
~/Yocto/imx-yocto-bsp$ source setup-environment build-wayland
It puts me in my build-wayland folder: ~/Yocto/imx-yocto-bsp/build-wayland$

bitbake 似乎编译得很好,我得到了以下内容:
~/Yocto/imx-yocto-bsp/build-wayland/tmp/work# find -iname mdns
找到很多,包括这个文件夹:
./aarch64-poky-linux/mdns/878.200.35-r0/

The bitbake seemed to do the compile fine, and I got content under:
~/Yocto/imx-yocto-bsp/build-wayland/tmp/work# find -iname mdns
Found lots, including this folder:
./aarch64-poky-linux/mdns/878.200.35-r0/

如helloworld教程所示:
步骤 10. 将包添加到 conf/local.conf 中的变量 IMAGE_INSTALL 并设置下一张图片的详细信息
我加了:
IMAGE_INSTALL_append="mdns"在该行之后,'CONF_VERSION' = 1"'.

As in the helloworld tutorial:
Step 10. Add package to conf/local.conf in variable IMAGE_INSTALL and set the details for next image
I added:
IMAGE_INSTALL_append=" mdns" after the line, 'CONF_VERSION' = "1"'.

我从我的构建目录进行了 bitbake:bitbake imx-image-multimedia

I did the bitbake from my build dir: bitbake imx-image-multimedia

在我的部署文件夹下,在~/Yocto/imx-yocto-bsp/build-wayland/tmp/deploy/images/imx8mnddr4evk/,我有imx-image-multimedia-imx8mnddr4evk-20210211215119.rootfs.wic.bz2最新时间戳为 2021/02/11(星期四)21:51:19 (0000 UTC).

Under my deploy folder, in ~/Yocto/imx-yocto-bsp/build-wayland/tmp/deploy/images/imx8mnddr4evk/, I got imx-image-multimedia-imx8mnddr4evk-20210211215119.rootfs.wic.bz2 With the up-to-date timestamp of 2021/02/11 (Thurs) 21:51:19 (0000 UTC).

把它刷到我的 i.MX 8M nano 板上,它
-/lib/文件夹中没有 libdns_sd.so
- 根目录中没有/mDNSR-878.200.35 文件夹.
-find -iname mdns 没有找到 mDNSR-878.200.35;找到一屏文件.
-/mDNSR-878.200.35/mDNSPosix/build/prod/文件夹及其 8 个构建工件不在那里.

Flashing it onto my i.MX 8M nano board, it
-didn't have libdns_sd.so in the /lib/ folder
-didn't have a /mDNSR-878.200.35 folder in root.
-find -iname mdns doesn't find mDNSR-878.200.35; finds a screenful of files.
-the /mDNSR-878.200.35/mDNSPosix/build/prod/ folder with its 8 build artifacts wasn't there.

然而,在bitbake主机上,发现了8个构建工件:
~/Yocto/imx-yocto-bsp/build-wayland/tmp/work/aarch64-poky-linux/mdns/878.200.35-r0/mDNSResponder-878.200.35/mDNSPosix/build/prod# ls -l
共 9452
-rwxr-xr-x 1 159200 2 月 11 日 16:07 libdns_sd.so
-rwxr-xr-x 1 239856 2 月 11 日 16:07 libnss_mdns-0.2.so
-rwxr-xr-x 1 1504904 2 月 11 日 16:07 mDNSClientPosix
-rwxr-xr-x 1 1750944 2 月 11 日 16:07 mdnsd
-rwxr-xr-x 1 1481136 2 月 11 日 16:07 mDNSIdentify
-rwxr-xr-x 1 1525392 2 月 11 日 16:07 mDNSNetMonitor
-rwxr-xr-x 1 1493112 Feb 11 16:07 mDNSProxyResponderPosix
-rwxr-xr-x 1 1511048 Feb 11 16:07 mDNSResponderPosix

However, on the bitbake host, the 8 build artifacts were found:
~/Yocto/imx-yocto-bsp/build-wayland/tmp/work/aarch64-poky-linux/mdns/878.200.35-r0/mDNSResponder-878.200.35/mDNSPosix/build/prod# ls -l
total 9452
-rwxr-xr-x 1 159200 Feb 11 16:07 libdns_sd.so
-rwxr-xr-x 1 239856 Feb 11 16:07 libnss_mdns-0.2.so
-rwxr-xr-x 1 1504904 Feb 11 16:07 mDNSClientPosix
-rwxr-xr-x 1 1750944 Feb 11 16:07 mdnsd
-rwxr-xr-x 1 1481136 Feb 11 16:07 mDNSIdentify
-rwxr-xr-x 1 1525392 Feb 11 16:07 mDNSNetMonitor
-rwxr-xr-x 1 1493112 Feb 11 16:07 mDNSProxyResponderPosix
-rwxr-xr-x 1 1511048 Feb 11 16:07 mDNSResponderPosix

我的结论是编译部分没问题,但我的 do_install 命令是错误的.
有人可以帮我改正我的食谱吗?

I concluded that the compile part was fine but my do_install command was wrong.
Can someone correct my recipe for me?

第二次尝试时,我只将配方中的 do_install() 更改为:
--------------------------------------------------------------------------------
do_install() {
安装 -t ${S} ${D}
install -d ${D}${base_libdir}
安装 -m 0755 ${S}/mDNSResponder-878.200.35/mDNSPosix/build/prod/libdns_sd.so ${D}${base_libdir}
}
--------------------------------------------------------------------------------
这是两个更改,首先从 S 复制到 D 以尝试获取mDNSResponder-878.200.35/dir 复制到目的地,然后尝试安装-m"来自 S 而不是 WORKDIR 的命令.

For my second try I changed only the do_install() in the recipe to this:
--------------------------------------------------------------------------------
do_install() {
install -t ${S} ${D}
install -d ${D}${base_libdir}
install -m 0755 ${S}/mDNSResponder-878.200.35/mDNSPosix/build/prod/libdns_sd.so ${D}${base_libdir}
}
--------------------------------------------------------------------------------
That's two changes, first copying from S to D to try to get the mDNSResponder-878.200.35/ dir copied over to the destination, and then trying the "install - m" command from S rather than WORKDIR.

重试bitbake:bitbake imx-image-multimedia,最后提示所有 6968 个任务都不需要重新运行.

Retrying the bitbake: bitbake imx-image-multimedia, it indicated at the end that all 6968 tasks didn't need to be rerun.

我试过:~/Yocto/imx-yocto-bsp/build-wayland$ bitbake -c clean mdns -- 得到:
注意:任务摘要:尝试了 1 个任务,其中 0 个不需要重新运行,并且一切顺利.

I tried: ~/Yocto/imx-yocto-bsp/build-wayland$ bitbake -c clean mdns -- and got:
NOTE: Tasks Summary: Attempted 1 tasks of which 0 didn't need to be rerun and all succeeded.

~/Yocto/imx-yocto-bsp/build-wayland$ bitbake imx-image-multimedia -- 得到:
注意:任务摘要:尝试了 6968 个任务,其中 6967 个不需要重新运行并且都成功了.
它通常会闪烁并擦除一系列活动,这次是这样做的.它将剩余的部分展示出来以便研究它可能会很好.

~/Yocto/imx-yocto-bsp/build-wayland$ bitbake imx-image-multimedia -- got:
NOTE: Tasks Summary: Attempted 6968 tasks of which 6967 didn't need to be rerun and all succeeded.
It typically flashes and erases a bunch of activity, which it did this time. It might be nice to have that remaining displayed to be able to study it.

它没有更新任何内容:
~/Yocto/imx-yocto-bsp/build-wayland/tmp/deploy/images/imx8mnddr4evk#
不再有 mDNSResponder-878.200.35/~/Yocto/imx-yocto-bsp/build-wayland/tmp/work/aarch64-poky-linux/mdns/878.200.35-r0/.

It didn't update anything in:
~/Yocto/imx-yocto-bsp/build-wayland/tmp/deploy/images/imx8mnddr4evk#
No longer had mDNSResponder-878.200.35/ in ~/Yocto/imx-yocto-bsp/build-wayland/tmp/work/aarch64-poky-linux/mdns/878.200.35-r0/ .

我试过:bitbake -c cleansstate mdns --得到:
注意:任务摘要:尝试了 2 个任务,其中 0 个不需要重新运行,并且一切顺利.

I tried: bitbake -c cleansstate mdns -- got:
NOTE: Tasks Summary: Attempted 2 tasks of which 0 didn't need to be rerun and all succeeded.

做了:~/Yocto/imx-yocto-bsp/build-wayland$ bitbake imx-image-multimedia
- 得到典型的 bitbake 输出,然后:
状态摘要:通缉 6 找到 0 错过 6 当前 2580(0% 匹配,99% 完成)
注意:任务摘要:尝试了 6968 个任务,其中 6954 个不需要重新运行并且都成功了.
这次看到了mdns和878.200.25等的do_compile

Did: ~/Yocto/imx-yocto-bsp/build-wayland$ bitbake imx-image-multimedia
-Got the typical bitbake output, then:
Sstate summary: Wanted 6 Found 0 Missed 6 Current 2580 (0% match, 99% complete)
NOTE: Tasks Summary: Attempted 6968 tasks of which 6954 didn't need to be rerun and all succeeded.
This time I saw do_compile of mdns and 878.200.25 etc.

再次有 mDNSResponder-878.200.35 在
~/Yocto/imx-yocto-bsp/build-wayland/tmp/work/aarch64-poky-linux/mdns/878.200.35-r0/.
在主机中的 mDNSPosix 中拥有构建工件:
~/Yocto/imx-yocto-bsp/build-wayland/tmp/work/aarch64-poky-linux/mdns/878.200.35-r0/mDNSResponder-878.200.35/mDNSPosix/build/prod/
自 2 月 11 日星期四以来仍然没有更新的图像~/Yocto/imx-yocto-bsp/build-wayland/tmp/deploy/images/imx8mnddr4evk/.

Again had mDNSResponder-878.200.35 in
~/Yocto/imx-yocto-bsp/build-wayland/tmp/work/aarch64-poky-linux/mdns/878.200.35-r0/.
Have the build artifacts in mDNSPosix in the host at:
~/Yocto/imx-yocto-bsp/build-wayland/tmp/work/aarch64-poky-linux/mdns/878.200.35-r0/mDNSResponder-878.200.35/mDNSPosix/build/prod/
Still don't have an updated image since Thurs Feb 11 in ~/Yocto/imx-yocto-bsp/build-wayland/tmp/deploy/images/imx8mnddr4evk/ .

有人可以纠正我的食谱和我可能犯的任何其他错误吗?是我的吗do_install()?

Can someone correct my recipe and any other mistakes I may have made? Is it my do_install()?

在我的 do_install() 中,我有:
安装 -m 0755 ${S}/mDNSResponder-878.200.35/mDNSPosix/build/prod/libdns_sd.so ${D}${base_libdir}
这是为了将其复制到 D 中的/lib/.我将如何正确地将该行写入复制到/lib/下
~/Yocto/imx-yocto-bsp/build-wayland/tmp/work/aarch64-poky-linux/用于链接到我必须在主机上构建的下一个模块?

In my do_install(), I have:
install -m 0755 ${S}/mDNSResponder-878.200.35/mDNSPosix/build/prod/libdns_sd.so ${D}${base_libdir}
which is for copying it to /lib/ in D. How would I correctly write that line to copy it to /lib/ under
~/Yocto/imx-yocto-bsp/build-wayland/tmp/work/aarch64-poky-linux/ for use to link to the next module I have to build on the host?

同时,我会尝试删除我的imx-image-multimedia-imx8mnddr4evk-20210211215119.rootfs.wic.bz2 并重做位烘焙.
...删除imx-image-multimedia-imx8mnddr4evk-20210211215119.rootfs .tar.bz2 和 .wic.bz2没有帮助;即使在我重新进行了上述清理和 bitbake 之后,它们也没有被重新创建.

In the meantime, I'll try deleting my imx-image-multimedia-imx8mnddr4evk-20210211215119.rootfs.wic.bz2 and redoing the bitbake.
...Deleting imx-image-multimedia-imx8mnddr4evk-20210211215119.rootfs .tar.bz2 and .wic.bz2 didn't help; they didn't get recreated even after I redid the above cleans and bitbake.

最好的问候,

稍后:后续问题:Yocto 构建 mDNS 所需的 mdns.service 文件在哪里获取?

推荐答案

mDNS 版本 878.200.35 已经有一个配方:https://git.openembedded.org/meta-openembedded/tree/meta-networking/recipes-protocols/mdns/mdns_878.200.35.bb?h=zeus

There is already a recipe for mDNS version 878.200.35: https://git.openembedded.org/meta-openembedded/tree/meta-networking/recipes-protocols/mdns/mdns_878.200.35.bb?h=zeus

这篇关于如何在 Yocto 中正确构建 mDNS?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆