我正在尝试向 buildroot 添加一个包,但没有取得太大成功。我试图添加的包是一个名为 scew 的自动工具包。我遵循了有关添加包的 buildroot 指南,尽管make menuconfig
运行时会列出该包,但当我运行时,make
最终的rootfs.tar
.
我还复制了另一个.mk
用于安装的简单文件which
,并相应地更改了变量名称和 URL。这是我的副本scew.mk
:
SCEW_VERSION = 1.1.3
SCEW_SITE = http://savannah.nongnu.org/download/scew/
SCEW_LICENSE = GPLv3
SCEW_LICENSE_FILES = COPYING
$(eval $(autotools-package))
在我的同一目录中Config.in
,如下所示:
config BR2_PACKAGE_SCEW
bool "scew"
help
google scew
我还添加了以下几行package/Config.in
:
menu "My Packages"
menu "Packages I Wrote"
source "package/MyPackages/packagesIWrote/hello/Config.in"
source "package/MyPackages/packagesIWrote/helloworld/Config.in"
endmenu
menu "External Packages"
source "package/MyPackages/external-packages/scew/Config.in"
endmenu
endmenu
这部分似乎有效,因为软件包已列出并且可以选择。 hello 和 helloworld 包是添加包指南的副本,取自此网站(用法语编写):添加 Hello World
hello world 包也不起作用。我很高兴收到任何建议,因为看来我只是在这个问题上兜圈子,而且我看不出我做错了什么。
答案1
看一眼这个项目有一些非常好的例子。
编辑buildroot-packages/package/Config.in
以添加您的包
menu "buildroot-packages [external repo]"
source package/hola/Config.in
endmenu
在文件夹中添加您的 .in 文件buildroot-packages/package/hola/Config.in
config BR2_PACKAGE_HOLA
bool "hola"
depends on BR2_PACKAGE_SOME_PACKAGE
help
hola is an example of a program build with autotools for to be added
to buildroot
http://stackoverflow.com/users/4059304/simonppg
comment "hola no needs any toolchain w/ dynamic library, threads"
也添加 .mkbuildroot-packages/package/hola/hola.mk
HOLA_VERSION = v0.0.1
HOLA_SITE = https://bitbucket.org/simonppg/hola
HOLA_SITE_METHOD = git
HOLA_AUTORECONF = YES
HOLA_DEPENDENCIES = some_package
$(eval $(autotools-package))
并按照中的说明进行操作同一个项目将软件包安装或卸载到您的 buildroot 目录中。
答案2
暂存目录对于构建最终映像所需的标头和中间步骤工具很有用,但在 rootfs 中不需要,它也用于构建剥离的库和可执行文件。
从暂存到目标目录的复制$(TARGET_DIRECTORY)
通常是在您选择的目标 rootfs 配置中完成的(例如:cramfs、squashfs 等),但通常要包含在 rootfs 中的文件列表位于您的平台配置目标中(例如:纯文本文件中的通用、平台内容)。
答案3
我遇到了似乎相同的问题:而其他包最终会构建一个可执行文件,然后将其剥离到目录中./project_build_arm/my_device/root/usr/bin/
,而我添加的包会构建然后剥离到目录中./build_arm/staging_dir/usr/bin/
。
为了解决这个问题,目前我所做的就是将剥离的二进制文件从错误的目录复制到正确的目录。这并不聪明,也不正确,但它确实有效(以创可贴的方式)。
似乎无论出现什么问题,都是以相当高级的方式进行的,因此对于具有更好 buildroot 经验的人来说,上面的描述可能足以诊断问题的实际原因。
...或者你自己解决了吗?