首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用多带生成Linux软件

用多带生成Linux软件
EN

Unix & Linux用户
提问于 2016-12-15 10:00:23
回答 1查看 167关注 0票数 2

我正在工作的嵌入式设备与ARM CPU和Debian构建使用多带。我似乎需要在这个系统中安装一个稍微补丁的ModemManager版本,我想要的是关于如何这样做的任何指导。

到目前为止,我尝试的是在多带创建的rootfs中着色,使用apt下载ModemManager的源代码,并将其生成着色。到目前为止,由于无法满足依赖关系,我甚至还没有获得要传递的配置脚本。

为了解决ModemManager的已知问题,需要进行修补,因为它可能会通过扫描调制解调器的串口来混淆硬件。有一种方法可以通过udev规则通过黑名单设备来解决这一问题,但在这种情况下,串口是tty子系统的一部分,因此不支持黑名单。我已经在ModemManager的源代码中检查过了。

如果有这样的方法,我也非常愿意用更简单的方法来解决,但到目前为止我还没有注意到它们。

EN

回答 1

Unix & Linux用户

发布于 2021-08-15 08:42:32

尽管这个具体的问题已经很老了,但是在多带生成的debian rootfs中添加一些软件的修改版本是一个常见的问题。

我不会把交叉编译和多带混为一谈,因为在由多带生成的chrootfs中编译软件太费劲了。

相反,我会在这样做很容易的地方编译修改过的软件。您可能已经为您的目标ARM架构提供了一个交叉编译环境,但如果不是,今天(也是在2016年)最简单的方法是使用一台单板Linux/ARM计算机,比如Raspberry Pi和所需的目标操作系统,在那里安装所需的构建工具,并在那里编译您修改的软件。不需要设置交叉编译,因为这是使用本机编译。编译后,将创建的二进制文件复制到PC上的多带环境中。

正常运行多带,在它执行并配置了chroot中的所有包之后,在目标硬件上使用rootfs之前,只需将修改后的二进制文件复制到rootfs中即可。

这里的“二进制”可能只是指编译好的可执行文件,但也可能意味着一个自定义的.deb包(在最后用dpkg安装在chroot中,而不仅仅是复制)。后者可以为您的修改提供更多的保护,因为您还可以修改.deb版本号,以便如果您的嵌入式系统能够在运行时检索软件更新,那么您的修改将不会在以后被apt update; apt upgrade恢复。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/330558

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档