本地编译我使用了不同的操作系统,不同的版本,不同的网络环境,甚至不同国度的VPS - .-,还是会有这样或那样的问题,其实就是网络的问题,现在有了Github Actions,一切变得简单了,我之前也出过有关Github Actions的教程,可以一块学习下~

说明

  1. 基于 P3TERX 的脚本进行构建辅助
  2. 基于 大雕的LEDE 为源码,作为鬼群的lean粉强烈推荐
  3. 本人.config参考 基于x86

步骤

  1. 搭建编译环境,生成.config文件(推荐,虽然Actions可以使用SSH connection进行云生成,但并不好用)
  2. 搭建Actions环境,进行构建

搭建编译环境

参考 大雕LEDE 的步骤

注意:

  • 不要用 root 用户 git 和编译!!!
  • 国内用户编译前最好准备好梯子(其实有没有都行,只为了生成.config配置文件)
  • 默认登陆IP 192.168.1.1, 密码 password(在Actions中我会更改IP地址,但密码不变,在系统内可以修改)

编译命令如下:

  1. 首先装好 Ubuntu 64bit,推荐 Ubuntu 18 LTS x64,我下载的是 Ubuntu官网Ubuntu Server 18.04.5 LTS

  2. 系统安装略,我使用的是VMware vSphere ESXI 6.7 U3

  3. 进入Ubuntu系统,命令行输入 sudo apt-get update ,然后输入 sudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev pUatch python3 python2.7 unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint device-tree-compiler g++-multilib antlr3 gperf wget curl swig rsync

  4. 使用 git clone https://github.com/coolsnowwolf/lede 命令下载好源代码,然后 cd lede 进入目录

  5. 方式一:默认使用LEAN的packages

    ./scripts/feeds update -a
    ./scripts/feeds install -a
    make menuconfig
    
  6. 方式二:添加带有酸酸乳的packages
    编辑目录下的feeds.conf.default文件,取消helloworld的注释,即删除#

    ...
    src-git helloworld https://github.com/fw876/helloworld
    ...
    

    在执行

    ./scripts/feeds update -a
    ./scripts/feeds install -a
    make menuconfig
    
  7. 方式三:添加有帕斯沃、克拉斯、adguardhome 等的packages
    编辑目录下的feeds.conf.default文件,添加源

    src-git weifuture https://github.com/hongweifuture/openwrt-packages
    src-git pwdep https://github.com/hongweifuture/pwdep.git
    

    在执行

    ./scripts/feeds update -a
    ./scripts/feeds install -a
    make menuconfig
    
  8. 重点设置,‘*’ 代表编入固件,‘M’ 表示编译成模块或者IPK包, ‘空’不编译

    1. 系统架构,选择前三项,根据实际情况进行选择,如X86、ipq40xx、bcm27xx等等在这里插入图片描述

    2. 软件中心,选择LuCI -> Applications 添加插件应用,在线excel说明插件详情 或者 查看这里:编译OpenWRT LEDE 固件的一些说明

    3. 这里以开启IPV6举例,详情查看在线excel
      Base system --> dnsmasq-full --> build with dhcpv6 support
      		在这里插入图片描述
      Network --> Firewall --> ip6tables

      支持IPv6 在这里插入图片描述
      回车选上子选项ip6tables-extraip6tables-mod-natIPv6-NAT扩展
      在这里插入图片描述

  9. 保存后提取config,复制到搭建Actions 环境下面的.config文件中

    # 显示隐藏文件  .config
    ls -la
    
    # 查看
    tail -f .config
    
    # 下载
    ftp、scp等等
    

搭建Actions 环境

P3TERX 的教程已经非常详细了

进入 P3TERX/Actions-OpenWrt 项目页面,点击页面中的 Use this template (使用这个模版)按钮。
在这里插入图片描述

填写仓库名称,然后点击 Create repository from template(从模版创建储存库)按钮。
在这里插入图片描述

经过几秒钟的等待,页面会跳转到新建的仓库,内容和我的项目是相同的。

然后点击 Create new file(创建新文件)按钮。
在这里插入图片描述

文件名填写为.config,把生成的.config 文件的内容复制粘贴到下面的文本框中。
在这里插入图片描述

翻到页面最下方,点击Commit new file(提交新文件)按钮。
在这里插入图片描述

Actions 页面选择Build OpenWrt,然后点击Run Workflow按钮,即可开始编译。(如果需要 SSH 连接则把SSH connection to Actions的值改为true。其它详情参见 进阶使用 相关章节,不建议通过此方式,网络原因你懂的)
在这里插入图片描述

等待编译完成,预计2小时,根据不同的内容实际实际不同。不出意外你就可以在Actions页面看到已经打包好的固件目录压缩包。

进阶

配置ip,diy-part2.sh

# Modify default IP
sed -i 's/192.168.1.1/192.168.1.230/g' package/base-files/files/bin/config_generate

添加软件源,diy-part1.sh

# Add a feed source
# sed -i '$a src-git lienol https://github.com/Lienol/openwrt-package' feeds.conf.default
sed -i '$a src-git hwfuture https://github.com/hongweifuture/openwrt-packages' feeds.conf.default
sed -i '$a src-git pwdep https://github.com/hongweifuture/pwdep.git' feeds.conf.default

编译的一些注意

编译的一些注意

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐