-
首先装好 Ubuntu 64bit,推荐 Ubuntu 18 LTS x64
-
命令行输入
sudo apt-get update
,然后输入sudo apt-get -y install build-essential asciidoc binutils bzip2 curl gawk gettext git libncurses5-dev libz-dev patch python3.5 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
-
git clone -b 19.07 --single-branch https://github.com/Lienol/openwrt openwrt
命令下载好源代码,然后cd openwrt
进入目录 -
./scripts/feeds clean ./scripts/feeds update -a ./scripts/feeds install -a make menuconfig
-
make -j8 download V=s
下载dl库(国内请尽量全局科学上网) -
输入
make -j1 V=s
(-j1 后面是线程数。第一次编译推荐用单线程)即可开始编译你要的固件了。 -
编译完成后输出路径:openwrt/bin/targets
你可以自由使用,但源码编译二次发布请注明我的 GitHub 仓库链接。谢谢合作!
-----------------------------------------------分割线-----------------------------------------------
As the author has removed the part of the original repository on plugins about some add-on, so if want to compiling completed contents,
need to add something to ./feeds.conf.default
. Thank you:)
1.本源码要求以非root身份去执行,即上文的sudo是不要不去执行的,但考虑部分服务器开头即给的是root身份,可参考以下执行:
(以下内容需用最高权限执行,不规范之处,请多多包涵)
useradd speleon
chmod 777 /etc/sudoers
vim /etc/sudoers ------> speleon ALL=(ALL:ALL) ALL
chmod 440 /etc/sudoers
mkdir /home/speleon
chmod 755 /home/speleon
chown speleon /home/speleon
passwd
passwd speleon
su speleon
cd ~
2.部分参考的来源数据
src-git kenzo https://github.com/kenzok8/openwrt-packages
src-git small https://github.com/kenzok8/small
2.1参考链接
https://mianao.info/2020/05/05/%E7%BC%96%E8%AF%91%E6%9B%B4%E6%96%B0OpenWrt-PassWall%E5%92%8CSSR-plus%E6%8F%92%E4%BB%B6
3.自己选用的插件(遵循上述内容)
在make menuconfig
里的LuCI-->Applications里
luci_app_p*******
privoxy( 放弃,不会用:) )
minidlna
kcptun( 伺服器不支持 )
frpc
qos( 有相似功能的,之后自己的编译去除了 )
smartdns
4.源码中.config默认已添加对IPv6的支持,如需使用,在网络-->DHCP中的IPv6设置内三个都选中继模式,该部分已测试通过,未发现问题。
详情请参考:
https://blog.csdn.net/fjh1997/article/details/107507648
#IPv6的直接配置文件内容,测试已通过,其中network毋须按文章修改,用自身原有的即可。
5.编译问题
由于该份源码极为复杂,且需要自身网络支持,考虑经济等因素,故选用了某某家的美国虚拟伺服器,推荐选择按时计费的,参考配置:1v Core CPU, 2048MB RAM,充值之后可多次编译且资费极低。 由于临时租用,更适合全新编译,并采用单线程以保证不过度超负荷使用,大约需要四个小时,编译完成即可通过SFTP将自己压缩好后的targets传至本机。另ubuntu 18可选ubuntu 18.04 LTS。
当然,还有一种就是借用GitHub自身的Action服务通过config让GitHub的服务器全自动编译对应自己架构的包,免费,不过目前没有试过了:)。 P.S.:x86_64的在Telegram上有人自己编译,请自行寻找。
6.make menuconfig
这里会进入一个彩色界面,用于定制编译属于自己的OpenWRT,其中前三项涉及设备模块选择以及架构,不能选错,详细内容可在面板中的状态-->概况找到。
在此处以本人用的NewWifi3 D2为例:
Target: MediaTek Ralink MIPS
Subtarget: MT7621 base boards
Target Profile: Newwifi D2
其余的主要就是在LuCI-->Applications当中找到适合自己的插件,没有推荐。
其它选项主要是核心模块选择,涉及设备特性,需硬件自身支持。
可以参考:https://jingyan.baidu.com/article/cdddd41c948b4b53cb00e180.html
友情提示:如果只是添加插件,可保留配置在面板升级,否则为保证不出错,请去除保留配置一项。若出错无法找到,可重新不保留配置刷入固件测试,再考虑发issue给Lienol。 如果非同一固件或固件(可能)变化较大,建议进入不死breed刷入固件,备份!!!(通过这种方式升级为不保留配置)