- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试删除一些附加了 GPLv3 许可的开源软件包,我们无法将其作为最终生产镜像的一部分进行分发。虽然可以在 local.conf 中使用“INCOMPATIBLE_LICENSE=GPLv3”删除这些包,但它会删除所有标记为 GPLv3 的包。我用过PREFERRED_VERSION_recipename=(GPLv2 recipe_version)并将所有 GPLv3 软件包降级为我们要推送到最终镜像中的 GPLv2。但是有几个 GPLv3 包我们想保留为调试镜像的一部分,例如 M4、make、gdb、bison。这些包不需要在最终的生产镜像中,但它们不能从构建中完全删除,因为在构建/调试期间需要它们。
那么,我如何从最终的 rootfs 镜像中删除这些包/配方,同时让它们成为构建过程的一部分并让它们构建。换句话说,我想让 bitbake 从 GPLv3 源构建它们,但让它们远离最终的 rootfs 图像。
我确实查看了 poky/lib/oe/manifest.py 和 rootfs.py 创建函数 ==> 正在创建最终 rootfs list 的位置,但无法从 bitbake 中弄清楚到底需要设置什么。是否需要覆盖 do_rootfs。如果是这样,需要设置哪些变量来覆盖最终 list 。
最佳答案
没有单一的方法可以做您想做的事。一种方法是让您的生产镜像包含您需要交付的内容,然后让您的开发镜像 require production-image.bb
。通过这种方式,您可以轻松地使用额外的包扩展开发镜像。
我遇到了类似的问题,因为我想在我的开发镜像中使用 gdbserver。 (到目前为止,在我的开发镜像中没有其他 GPLv3 是必需的/想要的)。我所做的是设置
INCOMPATIBLE_LICENSE = "GPL-3.0 LGPL-3.0 AGPL-3.0"
INCOMPATIBLE_LICENSE_pn-gdb = ""
这基本上允许构建 gdb,但没有其他 GPLv3 许可。然后,我的图片继承了一个company-image.bbclass
,而不是直接继承了image.bbclass
。在 company-image.bbclass
中,我有一个像这样的函数:
python () {
for p in d.getVar('IMAGE_INSTALL', True).split():
if p in ['gdb', 'gdbserver'] and not d.getVar('IMAGE_BASENAME', True) == 'company-dev-image':
bb.fatal("gdb/gdbserver is not allowed in this image!")
}
这将确保 gdb 和 gdbserver 只能安装在 company-dev-image
中;因此,没有将它们分发到生产镜像中的风险。
关于yocto - 如何从 bitbake 构建的最终 rootfs 镜像中删除特定包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34116799/
我有一个 rootfs 引导镜像,我想通过挂载到我的本地文件系统来测试它。我该怎么做? 编辑:该文件是一个 rootfs.img 但事实证明我的自定义内核中没有正确的文件系统支持。一旦有 fs 支持,
我正在使用 buildroot 为 Raspberry PI 创建操作系统。如何将补丁应用于生成的 rootfs 中的文件? 例如添加行 auto eth0 iface eth0 inet dhcp
我在我的 debian strech 系统上使用 qt 修订版 5.7.1。我已使用 overlayfs 将 rootfs 安装为只读,我已使用 QStorageInfo 检查我的 SD 卡大小。 将
如果您在嵌入式 Linux 上开发任何东西,您需要一个 Rootfs 来启动 Linux。 Rootfs 对我来说一直是个问题。我需要一些帮助。 我的目标系统是ARM,简单的U-Boot Linux。
我有一个安装了 Emdebian 的树莓派,想交叉编译项目。 关于如何获取工具链并使用它构建简单项目的文档很多。我自己设法用 crosstool-ng 构建了一个工具链,并编写了一个运行良好的 hel
我创建了一个 bitbake 配方,它将我的 2 个文件(VPU 的固件二进制文件)复制到目标根文件系统上的/lib/firmware/目录中。 我尝试了很多选择,所以我现在不确定我的食谱中什么是不必
我想将 docker 图像保存为 rootfs 格式(例如由 /etc /var ... 组成的目录),就像 docker export 一样做。还有 docker save也不能满足我的需要,因为它
我使用可以使用 sd 卡或 emmc 启动的 imx.6 sabresd 板。我可以使用 u-boot 与它们一起正确启动 linux,并为适当的 bootargs 提供 rootfs 的正确位置。但
我正在尝试将 32 位 ncurses 添加到我的根文件系统中 我正在使用 intel yocto bsp 相扑分支 这是我的 local.conf: require conf/multilib.co
任务:加载内核和rootfs镜像并执行到ram中而不存储到spi flash上 我加载了可刷新图像(zimage 位于 0x200000)和可闪存 rootfs(jffs2 位于 0x200000
我使用 Intel Joule 570x 主板作为引用,它具有 64 位 x86 架构。 我使用 GRUB2 作为引导加载程序和主线内核 4.9。我构建了内核,还有 busybox rootfs,然后
我已经在我的 Zynq 开发板上安装了 Petalinux 2014.4,但是当我启动开发板时 NAND 闪存没有安装。我想知道是否可以通过提取包来更改 rootfs.cpio,然后对 fstab 进
是否可以导出(用于挂载 nfs)tmpfs 或 rootfs 目录?我有许多 linux 节点,它们被引导到一个基于 ram 的文件系统中,只有 rootfs 和 tmpfs。我希望每个节点都能看到其
到目前为止,我一直在使用 buildroot,最近切换到 Yocto。在 buildroot 中,根文件系统存在于“目标”文件夹中。 Yocto 中根文件系统的位置是什么。我知道它将位于“build/
我正在从 Dokerfile 为 Jetson 构建图像。这是它的摘录: FROM nvcr.io/nvidia/l4t-pytorch:r32.4.4-pth1.6-py3 # some insta
我有一个 OLinuxXino 开发板。我下载了 ArchLinux img 文件 (ArchLinuxARM-2013.02-olinuxino-rootfs.img) 并使用 dd 将其写入 SD
我对整个 WSL 情况感到非常困惑。有时我觉得我明白了,但实际上,我没有。我的主要困惑是 Ubuntu(我使用 Ubuntu 20.04)在哪里保存文件?它们如何与我使用 Windows 命令行 安装
我正在学习 linux 内核启动过程并尝试在我的 beagleboard xM 上安装 linux。我遇到了两种使用 SD 卡的方法。 1. 将 MLO、initrd、uboot.bin 和 uIma
我正在尝试删除一些附加了 GPLv3 许可的开源软件包,我们无法将其作为最终生产镜像的一部分进行分发。虽然可以在 local.conf 中使用“INCOMPATIBLE_LICENSE=GPLv3”删
我正在尝试使用 initramfs 作为 linux 内核引导的文件系统。我希望我的文件系统是最小的,所以我只使用没有 rootfs 的 initramfs。现在,一旦内核启动,它就会从 initra
我是一名优秀的程序员,十分优秀!