编译openwrt建议在非大陆的云服务器上进行(竞价实例真香,比去网吧打游戏还便宜),可以有效提高下载依赖等文件的成功率,如果持续需要编译,可以编译一次全插件全驱动的,然后吧dl文件夹打个包下载到本地完成之后的编译,避免持续缴费
建议使用Ubuntu系统,教程多,出了问题搜起来也简单一些,可以用WSL但是不建议在ntfs以及refs文件系统中编译,不建议使用powershell进行编译
然后安利一下Microsoft Terminal https://github.com/microsoft/terminal
也可以在Windows应用商店下载
One Half Dark这个默认配色深得我心
正文: 不要使用root用户,Ubuntu默认用户是ubuntu可以直接使用,其他系统或登录就是root的情况,考虑新建一个用户再来进行编译
以下内容可以直接复制到终端中运行,#开头的行会被终端忽略,一起复制也没有问题
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 #编译前的准备 ####更新软件(可选)#### sudo sh -c "apt update && apt upgrade -y" ######################## #安装依赖 sudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch 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 libelf-dev python3-distutils #克隆源码 git clone https://github.com/coolsnowwolf/lede.git #进入源码文件夹 cd lede ######添加自定义源(可选)########## cat >> feeds.conf.default <<EOF src-git kenzo https://github.com/kenzok8/openwrt-packages src-git passwall https://github.com/xiaorouji/openwrt-passwall src-git nas https://github.com/linkease/nas-packages.git EOF #################################### #更新并安装feeds.conf.default中配置的源 ./scripts/feeds update -a && ./scripts/feeds install -a ######添加 OpenAppFilter 应用过滤插件(可选)#### git clone https://github.com/destan19/OpenAppFilter package/OpenAppFilter ################################################# ######更改默认主题(可选)########### # 删除自定义源默认的 argon 主题 rm -rf package/lean/luci-theme-argon # 拉取 argon 原作者的源码 git clone -b 18.06 https://github.com/jerrykuku/luci-theme-argon.git package/lean/luci-theme-argon # 替换默认主题为 luci-theme-argon sed -i 's/luci-theme-bootstrap/luci-theme-argon/' feeds/luci/collections/luci/Makefile #make menuconfig时记得勾选LuCI ---> Applications ---> luci-app-argon-config ##################################### ####设置路由器默认的管理地址为.5.1(可选)### sed -i 's/192.168.1.1/192.168.5.1/g' package/base-files/files/bin/config_generate ############################################# #根据需要选插件 make menuconfig #记得在Target Images适当扩大系统分区和镜像大小 #系统分区,驱动或插件多的话需要适当扩大这个分区 #(128) Kernel partition size (in MB) #文件系统分区,基本可以理解为安装后默认的/overlay分区大小 #(512) Root filesystem partition size (in MB) #下载编译所需的软件包 make download -j8 V=s #看看有没有没下完整的包,这是查看dl目录下有没有1k以下的文件,有的话建议删除重新下,很可能没下完整 find dl -size -1024c -exec ls -l {} \; #删除 find dl -size -1024c -exec rm -f {} \;
现在区分首次编译和二次编译
首次编译 1 2 3 4 5 6 # -j1:单线程编译 make -j1 V=s #这时候如果报错bash: po2lmo: command not found,八成是base没有先编译出来 #可以运行以下命令先编译base,然后重新执行make -j1 V=s make package/feeds/luci/luci-base/compile V=s #剩下的可能就是插件冲突之类的,没有很好的办法,慢慢排查吧
二次编译 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #首先肯定是要进入lede目录: cd lede #拉取最新代码 git pull #更新下载安装订阅源包含的软件包 ./scripts/feeds update -a && ./scripts/feeds install -af #清理旧文件 #如果只是调整检查和驱动等 make clean #如果需要调整架构,或者之前编译出错 make dirclean #删除旧的配置文件 rm -rf ./tmp && rm -rf .config #选择插件 make menuconfig #下载包 make download -j8 V=s #优先使用多线程编译,出错则使用单线程并输出详细信息 make -j$(nproc) || make -j1 V=s
一些工具:
1 7za a -m0=lzma -mx=9 -ms=on lede.7z lede/ &
这个朋友已经写得很详细了,可以参考一下他的,别忘了看完给人家点个赞
坑:
不清楚是不是我的网络问题还是和哪个插件冲突AdGuard Home一旦勾选,有概率编译失败,编译成功该插件也无法正常使用
参考:
OpenWrt 固件自编译教程:从入门到酸爽! - 喵斯基部落
https://github.com/fw876/hellow