VMware下用Ubuntu编译自己的Openwrt——②
本次编译是记录自己根据大神们的资料折腾的所有过程,包括VMware——Ubuntu——首次编译全过程!本文为Openwrt首次编译全过程。
一、固件源码
1、Lean的固件源码
首先我选择的是恩山大神Lean的固件源码(自己网上找),Lean大神的源码是根据原版OpenWrt项目,整合优化了很多适合国内使用的插件,可根据自己需求编译进自己的固件。
2、注意事项
1)、不要用 root 用户进行编译!!!
2)、国内用户编译前最好准备好梯子
3)、默认登陆IP 192.168.1.1 密码 password
二、首次编译:
1、准备工作
已经在VMware下用Ubuntu编译自己的Openwrt——①搭建好需要的环境,包括虚拟机装好 Ubuntu 20.04 LTS x64。
2、更新组件
打开终端(ctrl+alt+t)输入
输入代码:sudo apt-get update
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
显示this may take some time…done就是部署完成了
4、拉取源代码
输入代码:git clone (openwrt的源码,注意空格)
如果没有安装git,执行此命令会报错,请输入代码apt install -y git或者输入代码sudo apt-get install git进行安装。
5、进入源码目录
输入代码:cd lede
6、添加部分插件
添加部分插件源,以添加Helloword插件为例,不需要的可跳过这步。
6.1、修改lede目录下feeds默认配置
输入代码:vi feeds.conf.default
按i进行编译,拷贝进去后esc退出编译,注意前面没有#号,输入:wq回车退出 *前面没有#为可执行,前面有 #为不可执行。
6.3、删除旧配置
输入代码:rm -rf ./tmp && rm -rf .config
6.4、清理 feeds
输入代码:./scripts/feeds clean
7、更新Feeds
输入代码:./scripts/feeds update -a
8、安装Feeds
输入代码:./scripts/feeds install -a
9、进入编译配置菜单
输入代码:make menuconfig
注意窗口大小,如果有报错,大概率是因为你的窗口太小,拉大点,不然不够显示编译窗口的。
9.1、进入编辑器
9.2、固件空间设置
编译丰富插件时,建议修改下面两项默认大小,留足插件空间。( x86/64 )!!!
进入 Target Images
Target Images ---> (16) Kernel partition size (in MB) 默认是 (16) 建议修改 (256)
Target Images ---> (160) Root filesystem partition size (in MB) 默认是 (160) 建议修改 (512)
9.3、支持ipv6
进入Extra packages
进入 Extra packages —— ipv6helper
9.4、LuCI编译插件(重点)
选择LuCI目录
选择Applications选择插件
Applications 目录下按照需要配置插件,可参照恩山OpenWrt 编译 LuCI -> Applications 添加插件应用说明-L大这篇文章选择插件。
选项操作:使用空格键选择: * 代表编入固件,M 表示编译成模块或者IPK包,空 不编译 。
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分钟左右完成编译,二次编译详情可关注下一篇文章。