关于如何编译 OpenWrt 固件,网上已有很多教程,本人根据实操情况做适当的教程汇总,一是方便自已往后使用,二是提供想自已折腾编译 OpenWRT 的朋友一个思路。本教程 OpenWrt 源码来自 Lean 大神。
关于为什麽自已编译软路由固件?原因与以前的为什麽精简手机ROM一样:追求极致的简洁与稳定。现在市面上很多网友提供的固件都是根据他们自身需求而做的编译,裡面有很多插件对于我来说根本没什麽用处,不好意思,强迫症又犯了。开始正题吧。
编译 OpenWrt 固件环境:
一台安装好 Ubuntu 64bit 操作系统的电脑或者虚机或者VPS,荐 Ubuntu 14 LTS x64 操作系统。
注意:
1. 不要用 root 用户 git 和编译!!!安装好操作系统后先新建一个用户。
2. 国内用户编译前最好准备好梯子
3. 默认登陆IP 192.168.1.1, 密码 password
如果是电脑或者虚机的,在桌面右键“打开终端
”,如果是VPS服务器的,使用 SSH 连接服务器后进入非Root用户帐号进行代码操作。
一、升级及安装必要组件。
命令输入 sudo apt-get update
后回车,然后输入:
sudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch 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
后回车。
二、克隆lean的源代码到本地
git clone http://github.com/coolsnowwolf/lede
回车。
三、开始定製与编译
进入克隆下来的目录后执行下面的命令
1. cd lede/
2. ./scripts/feeds update -a
3. ./scripts/feeds install -a
4. make menuconfig
敲下回车键后稍等片刻进入如下菜单
进入Target System和Subtarget勾选你需要编译的平台,默认的是X86,并且是64位的,所以你需要选择自助选择。
进入Target Images勾选你需要的固件格式等(img、vmdk等这裡我保持默认,默认也够用了吧?)
接下来是最重要也是最核心部份,选择编译的插件。进入LuCI–>Applications内选中你需要的插件。
这裡按Y勾选,N取消勾选,M编译而不安装。连按两次Esc键
返回上一界面。( ‘*’ 代表编入固件,‘M’ 表示编译成模块或者IPK包, ‘空’不编译 )。
关于 Applications 添加插件应用说明,请看这一篇文章:OpenWrt 編譯 LuCI -> Applications 添加插件應用說明【2019.09.22】。
勾选完需要的插件后就可以退回第一个界面按Y保存退出,保存按默认的文件名称(.config)保存即可,不需要修改。编译会根据.config的内容编译,想要恢复到初始配置删掉.config文件即可。
最后选好你要的路由,输入: make -j1 V=s
注意:-j1 后面是线程数。第一次编译推荐用单线程,国内请尽量全局科学上网。
即可开始编译你要的固件了。首次编译大概需要两三个小时,之后基本上只需要十多分钟既可。编译过程中不要断开SSH。若断开,请清除整个lede 文件夹重新开始。
编译完成后,前往:/home/lede/bin/targets/x86/64这个目录获取编译成功的固件。
四、再次编译
完成首次编译 再编译可大大缩短时间,只输入以下代码,十几分钟的事情。
OpenWrt编译方式:
cd lede #进入LEDE目录
git pull #同步更新大雕源码
./scripts/feeds update -a && ./scripts/feeds install -a #更新FEEDS
rm -rf ./tmp && rm -rf .config #清除编译配置和缓存
make menuconfig #进入编译配置菜单
make -j1 V=s #n=线程数+1,例如4线程的I5填-j5,开始编译
以上代码一行一行操作。
常用插件列表
一般來說只要选對你的機器型號其他按默認就行了,有特殊需要可以勾选需要的插件即可
luci-app-accesscontrol 上網時間控製
luci-app-adbyby-plus 廣告屏蔽大師Plus +
luci-app-amule 電驢下載–我一般精簡掉
luci-app-aria2 Aria2下載–我一般精簡掉
luci-app-arpbind IP/MAC綁定
luci-app-ddns 動態域名解析
luci-app-flowoffload Turbo ACC FLOW轉發加速
luci-app-frpc 內網穿透 Frp–我一般精簡掉,因为我的是公網IP
luci-app-hd-idle 硬盤休眠
luci-app-ipsec-vpnd IPSec服務端
luci-app-mwan3 MWAN負載均衡
luci-app-nlbwmon 網絡帶寬監視器
luci-app-openvpn OpenVPN客戶端
luci-app-openvpn-server OpenVPN服務端
luci-app-pptp-server PPTP服務端
luci-app-ramfree 釋放內存
luci-app-samba 網絡共享(samba)
luci-app-sfe Turbo ACC網絡加速(開啓Fast Path轉發加速)
luci-app-sqm 流量智能隊列管理(QOS)
luci-app-ssr-plus 介紹 神秘代碼:echo 0xDEADBEEF > /etc/config/google_fu_mode
luci-app-transmission BT下載–我一般精簡掉
luci-app-upnp 通用即插即用UPnP(端口自動轉發)
luci-app-usb-printer USB 打印服務器–我一般精簡掉
luci-app-vlmcsd KMS服務器(WIN激活工具)–我一般精簡掉
luci-app-vsftpd FTP服務器–我一般精簡掉
luci-app-webadmin Web管理
luci-app-wireguard VPN服務器 WireGuard狀態
luci-app-wol 網絡喚醒
luci-app-wrtbwmon 實時流量監測
支持 iPv6:
Extra packages —> ipv6helper (选定這個後下面幾項自動选擇了)
Network —> odhcp6c
Network —> odhcpd-ipv6only
LuCI —> Protocols —> luci-proto-ipv6
LuCI —> Protocols —> luci-proto-ppp
暂无评论内容