利用 Docker 编译 OpenWrt

原文链接:利用 Docker 编译 OpenWrt |五十风的个人博客

由于网络原因编译openwrt时经常下载失败,搭建编译环境也很复杂,
因此想到利用阿里云、Github action等远程构建docker镜像,将编译的下载步骤放在远程进行。

目前还有一个方法就是利用Github action直接远程编译,但这样做有3个问题:

  1. 编译需要config文件,生成这个文件又需要下载一些库,这就造成了循环=。=。而通过docker你拉下来的镜像中已经下好了所有库,不需要下载。
  2. 如果你要对config进行一些小的改动,通过Github action就需要从头开始编译。而利用docker镜像可以直接进入docker容器修改文件后编译,不需从头开始。
  3. Github action有一定学习成本,而dockerfile和shell差不多,就算没接触过过也能快速上手

开始之前

本教程所有代码在:

关于Docker的一些概念,以及如何使用阿里云、Github action等来构建docker镜像不在本教程范围,你可以自行学习。

编译步骤

首选说明下,我是分成了4个镜像来编译的,base , v1 , v2 , v3 ,你完全可以只构建一个镜像。

这样的好处是有些镜像可以重复利用,编译有问题时可以使用上一步的镜像来再次构建,避免从头开始。

每个镜像说明:

<
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于使用Docker Desktop编译OpenWrt,您可以按照以下步骤进行操作: 1. 首先,确保您已经安装了Docker Desktop,并且它正在运行。 2. 打开终端或命令提示符,然后使用以下命令拉取OpenWrt源代码的Docker镜像: ``` docker pull openwrtorg/sdk:latest ``` 3. 接下来,创建一个新的工作目录,用于存储OpenWrt的配置和输出文件。可以使用以下命令创建一个名为"openwrt"的目录: ``` mkdir openwrt ``` 4. 进入"openwrt"目录并创建一个名为"config"的子目录: ``` cd openwrt mkdir config ``` 5. 在"config"目录中创建一个名为"seed.config"的文件,并将您的OpenWrt配置选项添加到该文件中。例如,您可以使用文本编辑器打开该文件并添加以下内容: ``` CONFIG_TARGET_x86=y CONFIG_TARGET_x86_64=y CONFIG_TARGET_x86_64_Generic=y ``` 这些配置选项示例适用于x86_64架构的通用OpenWrt编译。 6. 回到"openwrt"目录,并使用以下命令运行Docker容器: ``` docker run --rm -it -v $(pwd)/config:/home/user/openwrt/config openwrtorg/sdk:latest /bin/bash ``` 此命令将运行一个新的Docker容器,并将"config"目录映射到容器内的"/home/user/openwrt/config"目录。 7. 在Docker容器中,使用以下命令进入OpenWrt的源代码目录: ``` cd /home/user/openwrt/sdk ``` 8. 运行以下命令以安装OpenWrt的构建工具和依赖项: ``` ./scripts/feeds update -a ./scripts/feeds install -a ``` 9. 配置OpenWrt编译选项,运行以下命令: ``` make menuconfig ``` 在菜单界面中,您可以根据需要进行选择和配置。完成后,保存并退出菜单。 10. 开始编译OpenWrt固件,运行以下命令: ``` make -j$(nproc) ``` 这将使用所有可用的CPU核心进行编译编译过程可能需要一些时间,具体取决于您的系统性能和OpenWrt配置的复杂程度。 11. 编译完成后,在Docker容器中可以找到生成的固件文件。您可以退出容器并在本地系统上访问它们。运行以下命令退出容器: ``` exit ``` 12. 现在,您可以在"openwrt"目录中找到生成的固件文件,可以根据需要使用它们。 请注意,这只是一个基本的说明,您可能需要根据自己的需求和环境进行适当的调整。确保您已经熟悉DockerOpenWrt的基本概念,并参考OpenWrt官方文档以获取更详细的指导。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值