![](http://dingyue.ws.126.net/2022/0223/dc6263cdj00r7r2by001mc000km008qm.jpg)
本次编译是记录自己根据大神们的资料折腾的所有过程,包括VMware——Ubuntu——首次编译全过程!本文为Openwrt首次编译全过程。
一、固件源码
1、Lean的固件源码
首先我选择的是恩山大神Lean的固件源码(自己网上找),Lean大神的源码是根据原版OpenWrt项目,整合优化了很多适合国内使用的插件,可根据自己需求编译进自己的固件。
![](http://dingyue.ws.126.net/2022/0223/8b9979caj00r7r2by002ac000qr00kim.jpg)
2、注意事项
1)、不要用 root 用户进行编译!!!
2)、国内用户编译前最好准备好梯子
3)、默认登陆IP 192.168.1.1 密码 password
二、首次编译:
1、准备工作
已经在VMware下用Ubuntu编译自己的Openwrt——①搭建好需要的环境,包括虚拟机装好 Ubuntu 20.04 LTS x64。
![](http://dingyue.ws.126.net/2022/0223/1e6a1d00j00r7r2by000wc000u000b9m.jpg)
2、更新组件
打开终端(ctrl+alt+t)输入
输入代码:sudo apt-get update
![](http://dingyue.ws.126.net/2022/0223/7e9949f3j00r7r2by000zc000lx0044m.jpg)
3、下载安装编译环境
输入代码: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
![](http://dingyue.ws.126.net/2022/0223/a3c3a2e6j00r7r2by001ac000m80057m.jpg)
显示this may take some time…done就是部署完成了
![](http://dingyue.ws.126.net/2022/0223/9b9918f8j00r7r2by001yc000l900agm.jpg)
4、拉取源代码
输入代码:git clone (openwrt的源码,注意空格)
如果没有安装git,执行此命令会报错,请输入代码apt install -y git或者输入代码sudo apt-get install git进行安装。
![](http://dingyue.ws.126.net/2022/0223/8cbe8deej00r7r2by000kc000go0031m.jpg)
5、进入源码目录
输入代码:cd lede
![](http://dingyue.ws.126.net/2022/0223/c7d91307j00r7r2by000rc000jr003nm.jpg)
6、添加部分插件
添加部分插件源,以添加Helloword插件为例,不需要的可跳过这步。
6.1、修改lede目录下feeds默认配置
输入代码:vi feeds.conf.default
![](http://dingyue.ws.126.net/2022/0223/91d1a1c4j00r7r2by0028c000gh00bhm.jpg)
6.2、追加源地址
输入代码:src-git helloworld (hellowrld插件地址,注意空格)
按i进行编译,拷贝进去后esc退出编译,注意前面没有#号,输入:wq回车退出 *前面没有#为可执行,前面有 #为不可执行。
![](http://dingyue.ws.126.net/2022/0223/e278f85ej00r7r2by000sc000go008tm.jpg)
6.3、删除旧配置
输入代码:rm -rf ./tmp && rm -rf .config
6.4、清理 feeds
输入代码:./scripts/feeds clean
![](http://dingyue.ws.126.net/2022/0223/99cd44b2j00r7r2by001kc000kx007wm.jpg)
7、更新Feeds
输入代码:./scripts/feeds update -a
![](http://dingyue.ws.126.net/2022/0223/bcf4286ej00r7r2by003oc000l100h4m.jpg)
8、安装Feeds
输入代码:./scripts/feeds install -a
![](http://dingyue.ws.126.net/2022/0223/0d0f26c0j00r7r2by0039c000mm00e3m.jpg)
9、进入编译配置菜单
输入代码:make menuconfig
注意窗口大小,如果有报错,大概率是因为你的窗口太小,拉大点,不然不够显示编译窗口的。
![](http://dingyue.ws.126.net/2022/0223/9c3cef8dj00r7r2by0009c000ep0016m.jpg)
9.1、进入编辑器
![](http://dingyue.ws.126.net/2022/0223/fff818d9j00r7r2by001zc000lp00j8m.jpg)
9.2、固件空间设置
编译丰富插件时,建议修改下面两项默认大小,留足插件空间。( x86/64 )!!!
进入 Target Images
![](http://dingyue.ws.126.net/2022/0223/ef36b0a1j00r7r2by0021c000le00k3m.jpg)
Target Images ---> (16) Kernel partition size (in MB) 默认是 (16) 建议修改 (256)
Target Images ---> (160) Root filesystem partition size (in MB) 默认是 (160) 建议修改 (512)
![](http://dingyue.ws.126.net/2022/0223/945e1114j00r7r2by002lc000la00j5m.jpg)
9.3、支持ipv6
进入Extra packages
![](http://dingyue.ws.126.net/2022/0223/ddbc6a72j00r7r2by0022c000mf00jjm.jpg)
进入 Extra packages —— ipv6helper
![](http://dingyue.ws.126.net/2022/0223/5930d663j00r7r2by0023c000lh00k5m.jpg)
9.4、LuCI编译插件(重点)
选择LuCI目录
![](http://dingyue.ws.126.net/2022/0223/c759be05j00r7r2by0020c000le00k3m.jpg)
选择Applications选择插件
![](http://dingyue.ws.126.net/2022/0223/e7118128j00r7r2by000zc000l700amm.jpg)
Applications 目录下按照需要配置插件,可参照恩山OpenWrt 编译 LuCI -> Applications 添加插件应用说明-L大这篇文章选择插件。
选项操作:使用空格键选择: * 代表编入固件,M 表示编译成模块或者IPK包,空 不编译 。
![](http://dingyue.ws.126.net/2022/0223/69cdcd7ej00r7r2by0036c000kt00izm.jpg)
10、下载dl库(速度很慢,需耐心等待)
输入代码:make -j8 download V=s
![](http://dingyue.ws.126.net/2022/0223/819527a7j00r7r2by0014c000mt005wm.jpg)
11、开始编译
输入代码: make -j1 V=s
-j1 后面是线程数。第一次编译推荐用单线程以后可以使用make -j$(($(nproc) + 1)) V=s。
![](http://dingyue.ws.126.net/2022/0223/d18f6fe7j00r7r2by0042c000p300fpm.jpg)
编译完成
编译完成后文件存在根目录lede-bin-targets-x86-64文件夹内。
总结
由于网络原因我单线程编译了4个小时,正常应该在2.5-3个小时编译完成,二次编译使用命令make -j$(($(nproc) + 1)) V=s ,可在20分钟左右完成编译,二次编译详情可关注下一篇文章。
热门跟贴