问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

如何使用GitHub Actions在线编译OpenWrt固件

创作时间:
作者:
@小白创作中心

如何使用GitHub Actions在线编译OpenWrt固件

引用
1
来源
1.
https://ruanluyou.net/ask/how-to-use-github-actions-to-compile-openwrt-firmware-online.html

OpenWrt是一个基于Linux的开源路由器操作系统,以其高度的可定制性和强大的功能而闻名。随着开源社区的发展,使用GitHub Actions进行自动化构建OpenWrt固件逐渐成为一种流行的方式。使用GitHub Actions不仅可以让用户轻松编译固件,还能在云端完成构建,节省本地资源。本文将详细介绍如何使用GitHub Actions在线编译OpenWrt固件,包括环境配置、依赖安装、构建过程及结果获取等步骤。

一、准备工作

在开始编译之前,需要准备一些基础条件。

  1. GitHub账号:确保你拥有一个GitHub账号。
  2. OpenWrt源码:可以选择OpenWrt的官方源或者Fork一个已有的项目。
  3. 编译配置:如需要的OpenWrt特性和功能。

二、创建GitHub Repository

  1. 登录你的GitHub账号。
  2. 点击右上角的“+”按钮选择“新建仓库”。
  3. 填写仓库名、描述信息,并选择公开或私有,根据需要选择初始化README文件。
  4. 创建完毕后,从OpenWrt官方下载最新的源码并将其推送到你的GitHub仓库中。

三、配置GitHub Actions

GitHub Actions的配置主要通过workflow文件实现。在你的GitHub仓库中,创建.github/workflows目录下面我们将添加一个名为build.yml的文件。

1. 创建Workflow文件

你可以使用下面的代码作为build.yml的内容:

name: Build OpenWrt
on:
  push:
    branches:
- main # 当提交到main分支时触发构建
  pull_request:
    branches:
- main # 当有Pull Request请求时,触发构建
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
- name: Check out code
      uses: actions/checkout@v2
- name: Set up environment
      run: |
        sudo apt-get update
        sudo apt-get install -y build-essential git wget unzip
- name: Get OpenWrt feeds
      run: |
        ./scripts/feeds update -a
        ./scripts/feeds install -a
- name: Compile OpenWrt
      run: |
        make defconfig
        make -j$(nproc) # 使用可用的CPU核心进行编译
- name: Upload firmware
      uses: actions/upload-artifact@v2
      with:
        name: firmware
        path: bin/targets # 调整为实际的固件输出目录

2. 解释Workflow文件中的代码

  • 触发条件:设置在向main分支推送代码或创建针对main分支的Pull Request时自动触发。
  • 作业定义:指定构建环境为最新的Ubuntu版本。
  • 步骤详解
  • Check out code:使用actions/checkout获取当前仓库的代码。
  • Set up environment:更新apt包并安装编译所需的基本工具。
  • Get OpenWrt feeds:更新和安装OpenWrt的所有依赖。
  • Compile OpenWrt:先运行defconfig命令获取默认配置,然后进行编译,-j$(nproc)使用所有可用的CPU核心来加速构建。
  • Upload firmware:将编译生成的固件上传到GitHub的Artifact,以便后续下载使用。

四、测试构建

完成上述配置后,所有设置将自动保存到你的GitHub仓库中。你可以向main分支推送任何更改(或者直接在main分支上进行提交),构建流程将自动触发。你可以在“Actions”选项卡中查看构建状态和日志信息。

1. 查看构建状态

进入GitHub仓库,点击“Actions”选项卡,找到“Build OpenWrt”对应的构建记录,点击进入查看构建过程中的详细信息。

2. 下载固件

构建完成后,在相应的构建记录页面中,会看到“Artifacts”部分点击“firmware”即可下载到你的固件。

五、常见问题与解答

1. GitHub Actions的运行时间限制

GitHub Actions每个工作流的运行时间限制为6小时,如果构建时间过长,可能会导致超时。可以考虑优化编译过程,减少不必要的功能,或者将某些步骤移到本地完成。

2. 如何选择OpenWrt版本

在构建之前,可以通过修改feed.conf文件和.config文件来选择特定的OpenWrt版本和功能选项。GitHub Actions每次触发时会使用最新版源代码。

3. 自定义固件配置

如果需要自定义固件的特性,需要在.config文件中选择。除了标准的OpenWrt配置选项外,还可以根据需要添加额外的软件包和功能。

六、结语

使用GitHub Actions在线编译OpenWrt固件,简化了编译流程并提高了效率。通过此方法,开发者能够专注于创新与开发,而无需关心本地编译环境的配置与管理。希望通过本文的介绍,能够帮助你顺利搭建自己的OpenWrt编译环境,并深入探索软路由的无限可能性。无论是为了学习、实验还是开发,GitHub Actions都是一个非常强大的工具,值得深入研究和应用。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号