vlambda博客
学习文章列表

VMware下用Ubuntu编译自己的Openwrt——②

本次编译是记录自己根据大神们的资料折腾的所有过程,包括VMware——Ubuntu——首次编译全过程!本文为Openwrt首次编译全过程。

一、固件源码

1、Lean的固件源码

首先我选择的是恩山大神Lean的固件源码(自己网上找),Lean大神的源码是根据原版OpenWrt项目,整合优化了很多适合国内使用的插件,可根据自己需求编译进自己的固件。

VMware下用Ubuntu编译自己的Openwrt——②

2、注意事项

1)、不要用 root 用户进行编译!!!

2)、国内用户编译前最好准备好梯子

3)、默认登陆IP 192.168.1.1 密码 password

二、首次编译:

1、准备工作

已经在VMware下用Ubuntu编译自己的Openwrt——①搭建好需要的环境,包括虚拟机装好 Ubuntu 20.04 LTS x64。

VMware下用Ubuntu编译自己的Openwrt——②

2、更新组件

打开终端(ctrl+alt+t)输入

输入代码:sudo apt-get update

VMware下用Ubuntu编译自己的Openwrt——②

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

VMware下用Ubuntu编译自己的Openwrt——②

显示this may take some time…done就是部署完成了

VMware下用Ubuntu编译自己的Openwrt——②

4、拉取源代码

输入代码:git clone (openwrt的源码,注意空格)

如果没有安装git,执行此命令会报错,请输入代码apt install -y git或者输入代码sudo apt-get install git进行安装。

VMware下用Ubuntu编译自己的Openwrt——②

5、进入源码目录

输入代码:cd lede

VMware下用Ubuntu编译自己的Openwrt——②

6、添加部分插件

添加部分插件源,以添加Helloword插件为例,不需要的可跳过这步。

6.1、修改lede目录下feeds默认配置

输入代码:vi feeds.conf.default

VMware下用Ubuntu编译自己的Openwrt——②

按i进行编译,拷贝进去后esc退出编译,注意前面没有#号,输入:wq回车退出 *前面没有#为可执行,前面有 #为不可执行。

VMware下用Ubuntu编译自己的Openwrt——②

6.3、删除旧配置

输入代码:rm -rf ./tmp && rm -rf .config

6.4、清理 feeds

输入代码:./scripts/feeds clean

VMware下用Ubuntu编译自己的Openwrt——②

7、更新Feeds

输入代码:./scripts/feeds update -a

VMware下用Ubuntu编译自己的Openwrt——②

8、安装Feeds

输入代码:./scripts/feeds install -a

VMware下用Ubuntu编译自己的Openwrt——②

9、进入编译配置菜单

输入代码:make menuconfig

注意窗口大小,如果有报错,大概率是因为你的窗口太小,拉大点,不然不够显示编译窗口的。

VMware下用Ubuntu编译自己的Openwrt——②

9.1、进入编辑器

VMware下用Ubuntu编译自己的Openwrt——②

9.2、固件空间设置

编译丰富插件时,建议修改下面两项默认大小,留足插件空间。( x86/64 )!!!

进入 Target Images

VMware下用Ubuntu编译自己的Openwrt——②

Target Images ---> (16) Kernel partition size (in MB) 默认是 (16) 建议修改 (256)

Target Images ---> (160) Root filesystem partition size (in MB) 默认是 (160) 建议修改 (512)

VMware下用Ubuntu编译自己的Openwrt——②

9.3、支持ipv6

进入Extra packages

VMware下用Ubuntu编译自己的Openwrt——②

进入 Extra packages —— ipv6helper

VMware下用Ubuntu编译自己的Openwrt——②

9.4、LuCI编译插件(重点)

选择LuCI目录

VMware下用Ubuntu编译自己的Openwrt——②

选择Applications选择插件

VMware下用Ubuntu编译自己的Openwrt——②

Applications 目录下按照需要配置插件,可参照恩山OpenWrt 编译 LuCI -> Applications 添加插件应用说明-L大这篇文章选择插件。

选项操作:使用空格键选择: * 代表编入固件,M 表示编译成模块或者IPK包,空 不编译 。

VMware下用Ubuntu编译自己的Openwrt——②

10、下载dl库(速度很慢,需耐心等待)

输入代码:make -j8 download V=s

11、开始编译

输入代码: make -j1 V=s

-j1 后面是线程数。第一次编译推荐用单线程以后可以使用make -j$(($(nproc) + 1)) V=s。

编译完成

编译完成后文件存在根目录lede-bin-targets-x86-64文件夹内。

总结

由于网络原因我单线程编译了4个小时,正常应该在2.5-3个小时编译完成,二次编译使用命令make -j$(($(nproc) + 1)) V=s ,可在20分钟左右完成编译,二次编译详情可关注下一篇文章。