FIXME This page is not fully translated, yet. Please help completing the translation.
(remove this paragraph once the translation is finished)

准备您的OpenWrt构建系统以供使用

这是《OpenWrt 入门指南》系列文章的第一章。在开始本章之前,你应该通读《构建系统——安装》,准备一个合适的计算平台(虚拟化平台或其他平台),并将源代码克隆到一个新目录中。执行这些步骤的说明可以在上面链接的 Wiki 页面中找到

虽然本指南不会提供这种方法的详细说明,但您也可以为目标平台使用OpenWrt SDK,而不必从头克隆源代码并创建构建系统。如果您选择此路线,则可以跳过“构建系统 - 安装”指南中列出的源代码克隆步骤,而是在其他已准备好的开发环境中,将SDK下载并解压到一个新文件夹中

只有当您选择克隆源代码时,这些步骤才是必要的。如果您选择使用SDK,则可以跳过本节。

我们首先选择一个稳定的源代码修订版本(v23.05.3),并确保我们的源代码目录是干净的。本文作者选择将源代码克隆到构建用户(名为“buildbot”)的主目录下一个名为“source”的文件夹中。

/home/buildbot/ 是一个具有代表性的路径,例如,你可以选择, ~/devel/

还建议使用最新的“稳定”git分支。2024年4月时,该分支为 openwrt-23.05.3

截至2024年4月,可使用以下命令克隆OpenWrt git仓库:

git clone https://git.openwrt.org/openwrt/openwrt.git source

将其放入当前目录的./source/子目录中。与前面的路径一样,source这个名称并没有什么特别之处。有些用户可能会选择省略最后一个参数,将其克隆到./openwrt/中,或者在克隆命令中指定一个不同的目录。上面显示的source与本指南的其余部分保持一致。

要执行这些步骤,请发出以下命令以切换到源代码目录、检出稳定的代码修订版本并清理任何可能的构建产物:

cd /home/buildbot/source
git checkout v23.05.3
make distclean

建议您更新并安装“feeds”软件包,以避免未来出现问题。您可以通过以下方式进行操作:

./scripts/feeds update -a
./scripts/feeds install -a

现在,我们可以通过调用图形化配置菜单来配置交叉编译工具链:

make menuconfig

从菜单中选择合适的“目标系统”、“子目标”和“目标配置文件”。本文作者针对的是ZyXEL生产的P2812HNU-F1路由器型号,因此选择“Lantiq”、“XRX200”和“P2812HNU-F1”作为相应的值。

做出这些选择后,从配置菜单中选择“退出”,并在退出时保存您的更改。现在您可以构建与目标无关的工具和交叉编译工具链:

make toolchain/install

在构建与目标无关的工具和工具链时,你可以去喝杯咖啡,因为这需要一点时间。

与目标无关的工具和工具链部署在staging_dir/host/和staging_dir/toolchain/目录中。这适用于上一节中构建的可执行文件以及SDK中提供的预构建可执行文件。

请注意,工具链目录的名称包含一组与目标系统相关的识别变量。这些变量指定了计算机架构、子架构、所使用的C编译器及其版本、C标准库的名称以及该库的版本。可以更改所使用的编译器及其版本、C标准库或其版本,但这些修改不在本系列文章的讨论范围内。我们接受OpenWrt构建系统根据您在配置菜单中的选择所指定的默认设置。

虽然从staging_dir/host/bin中找到的一些与目标无关的工具只是指向开发环境中其他位置现有可执行文件的链接,但很多并非如此。为了在本系列文章的后续章节中有效使用这些工具,最好能够直接引用它们,而无需添加完整路径作为前缀。我们可以通过将这些与目标无关的工具添加到PATH变量中来实现这一点:

export PATH=/home/buildbot/source/staging_dir/host/bin:$PATH

在本章中,我们准备、配置并构建了与目标无关的工具和交叉编译环境,并将这些与目标无关的工具的位置添加到了我们的PATH变量中。

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
  • Last modified: 2026/02/01 02:14
  • by chenyx3080