12

pm狗都会的OpenWrt编译方法

 3 years ago
source link: https://feimind.xyz/2020/shou-gong-ke-pmgou-du-hui-de-openwrtbian-yi-fan-5920f5e0
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

pm狗都会的OpenWrt编译方法

  • 1.0.2:新增 本地二次编译时使用的脚本,经过「passwall」下架事件后,建议大家定期更新/编译自己的软件版本,以防万一;
  • 1.0.1:总所周知的原因, passwall 作者已将脚本从 GitHub 上删除,换言之截至本次更新时【20-04-30】,「开源」的网络工具只剩下 「plus」 一种,你仍然可以从 GitHub 上获取到;
  • 1.0.0:提供了按照实操步骤所需要的基本脚本语言;

如果你打不开引用中的链接,可能你真的需要本文/本文以外的一些帮助。
简言之,OpenWrt允许用户对操作系统进行自定义和配置,同时开源意味着相对的透明/社区活跃。当然,更高的可自定义,意味着更高的学习/操作成本。作为产品狗,站在巨人的肩膀上,整理了网上纷杂的教程,已经自己踩坑的一些经验,输出下面的一些经验,以供参考吧。

快,稳定,安全性。

  • 对于路由器,我试过梅林,NAS虚拟机,lede,最后狠下心自己编译OpenWrt固件。占用资源少,是最大的优势。
  • lede的软件中心固然很好看,但绝大多数功能,至少对于我这种日常玩家,并不必需,自己编译可以大砍特砍。
  • 梅林也是同样道理,七百多的华硕路由器,加虚拟内存,跑得半死,也不多多了一个ddns,和酸酸功能,跟何况前面这两项固件据说安全问题成疑,自己编译心理优势明显吧2333.

学习成本,时间资源,要硬件。

  • 非科班出身,你需要对SSH有基本了解,不难,但现代人就是这么懒,不是么?
  • 第一次编译的时间,差不多在4个小时左右。现代人嘛,忙得很。
  • 散了吧,OpenWrt仅支持一部分硬件,软路由的价格也不便宜,回归本心,回归本心。

【解决方案】

下面的部分,你会在网络上找到几乎所有信息,当然是散落在各处。我只是把我的操作流程进行整理,产出一份相对完整的过程,如果遇到问题,可以留言,但希望你要学会自己解决。

  • 1.VPS/pc

系统版本:ubuntu 14.04.6
看教程之前切记注意版本号,14/16/18,理论上都可以,但要找到相对应版本的语句,以下整理都是以14版本为准。

  • 2.网络环境

如果使用VPS,只需选择国外服务器即可。如果是电脑自行编译,需要全局代理,以及良好的网络带宽,否则会有问题。

  • 3.let's coding!

下面的内容是我实操过程中的总结,网络教程很多,要有信心!

#SSH登录VPS

ssh root@VPS地址

#更新系统环境

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

#screen保护,防止你和VPS的连接中断导致编译失败

apt -y install screen
screen -S buildlede

⬆️️如果使用VPS编译,会存在SSH链接掉线的可能,所以使用screen保护,本地编译可以忽略。

#【有坑】缺少 python3.5 会导致报错,这里先安装下 3.5,有备无患

sudo apt-get install python3.5

#创建非root用户

useradd -r -m -s /bin/bash lede
#添加该用户密码
sudo passwd lede
#切换用户
su lede #进入lede这个用户的目录
cd .. cd /home/lede #拉取git
git clone https://github.com/coolsnowwolf/lede.git
cd lede

#如果需要passwall插件,请操作【非必选】

vi feeds.conf.default
其中添加 src-git lienol https://github.com/Lienol/openwrt-package wq保存

⬆️️这里的passwall插件,各人根据需要做取舍,没有特别需求,不建议专门添加。

#欢快地更新源【可以复制一整坨再粘贴】

./scripts/feeds clean
./scripts/feeds update -a
rm -rf feeds/lienol/lienol/ipt2socks
rm -rf feeds/lienol/lienol/shadowsocksr-libev
rm -rf feeds/lienol/lienol/pdnsd-alt
rm -rf feeds/lienol/package/verysync
rm -rf feeds/lienol/lienol/luci-app-verysync
rm -rf package/lean/kcptun
rm -rf package/lean/trojan
rm -rf package/lean/v2ray
rm -rf package/lean/luci-app-kodexplorer
rm -rf package/lean/luci-app-pppoe-relay
rm -rf package/lean/luci-app-pptp-server
rm -rf package/lean/luci-app-v2ray-server
./scripts/feeds install -a

#万事俱备,开始自定义插件【ss和passwall二选一即可,否则会产生冲突】

make menuconfig
#保存好配置文件后,开始编译之旅
make -j1 V=s

#编译完成,在本机终端下运行该语句【根据实际情况修改下保存路径】

scp -r root@VPS IP地址:/home/lede/lede/bin/targets/x86/64/openwrt-x86-64-combined-squashfs.img ./本地保存路径/openwrt-x86-64-combined-squashfs.img

编译成功的固件会放在:/home/lede/bin/targets/x86/64这个目录下。

恭喜你,你已经成功打造出属于自己,独一无二的OpenWrt固件。如果插件选择合理,你会发现固件相比较梅林/lede之流畅和低功耗。

【关于二次编译】

进入 lede 文件夹

cd lede

git pull

更新脚本/应用等

./scripts/feeds update -a && ./scripts/feeds install -a

清除之前的配置等信息

rm -rf ./tmp && rm -rf .config

重新配置文件,还是熟悉的套路

make menuconfig
make -j1 V=s

【致敬开发者】

当然,要感谢所有的开发者,以及编写教程的那些开路者,以下为我的参考教程,如果你有问题,可以过去查看,相信他们的教程比我要全面很多。


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK