Github 编译 openwrt (含 passwall \ ssrplus)

准备工作:

1、.config 文件

2、passwall、ssr plus的feed 源

3、github账号

 

.config 文件

.config 文件就是openwrt源码的配置文件。里面包含了openwrt的所有设置,如运行的平台、系统的分区大小、生成的镜像、包含的软件等等。

该文件需要配置完源码才会生成。需要在我们自己的服务器上面下载源码并配置。一般都是在国外的服务器上面执行。推荐 Debian 11 或 Ubuntu LTS。

这里用的是 lede 的源码,具体的步骤:

安装编译依赖:

sudo apt update -y

sudo apt full-upgrade -y

sudo apt install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \
bzip2 ccache cmake cpio curl device-tree-compiler fastjar flex gawk gettext gcc-multilib g++-multilib \
git gperf haveged help2man intltool libc6-dev-i386 libelf-dev libglib2.0-dev libgmp3-dev libltdl-dev \
libmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libreadline-dev libssl-dev libtool lrzsz \
mkisofs msmtp nano ninja-build p7zip p7zip-full patch pkgconf python2.7 python3 python3-pip libpython3-dev qemu-utils \
rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip vim wget xmlto xxd zlib1g-dev

下载源代码,添加 passwall 和 ssr plus 的源到feeds文件,更新 feeds 并选择配置:

cd /root

git clone https://github.com/coolsnowwolf/lede

echo "src-git helloworld https://github.com/fw876/helloworld" >> /root/lede/feeds.conf.default

echo "src-git passwall_packages https://github.com/xiaorouji/openwrt-passwall.git;packages" >> /root/lede/feeds.conf.default

echo "src-git passwall_luci https://github.com/xiaorouji/openwrt-passwall.git;luci" >> /root/lede/feeds.conf.default

cd lede

./scripts/feeds update -a

./scripts/feeds install -a

make menuconfig

比较花时间的是 make menuconfig 这一个配置的步骤。执行完命令之后会进去一个蓝色的复杂的界面。用空格键 选中,回车键 确定。注意查看底部选项,有 select 、exit 等等。

注意 空格键选中后会有3个选项,M 、*、空白。M 表示编译但不安装。* 表示安装在openwrt里。空白就是不编译不安装,取消的意思。这里我们需要的软件一律用 * 选中。

需要启用的功能与软件根据自身需求。感觉不能选太多,容易产生问题,增加编译时间,编译固件过大,软件还容易冲突。比如 Dnsmasq 就与 Dnsmasq-full 冲突。。。

然后,感觉选项带有 mod 的慎选,编译过容易报错。

如果配置文件有选择软件,但实际生成的固件没有,那么要检查下编译平台的 feed 配置。

默认 lede 生成的固件,运行平台是 x86_64。如果是其他平台要在前面的选项选择。

这里主要做下面的调整:

1、生成 vmdk 镜像        (esxi需要)

CONFIG_VMDK_IMAGES=y

2、启用固件压缩

CONFIG_TARGET_IMAGES_GZIP=y

3、调整 内核 分区大小         (似乎不是很有必要但这里调整了)

CONFIG_TARGET_KERNEL_PARTSIZE=64

4、增大 软件安装空间        (这里不能调得太大,上次调整为5G,github直接报错显示空间不足)

CONFIG_TARGET_ROOTFS_PARTSIZE=2048

5、取消 迅雷快鸟          (直接在生成的.config注释掉 xlnetacc 相关的条目)

6、增加几个主题            ( luci-theme 相关的选上)

7、增加 passwall、ssr plus ,附带的模块全部选上

8、增加 frps 、frpc

其他均保持默认。

调整后的x64平台配置文件:

.config

https://github.com/hao35954514/openwrt-20220816-addssrp/blob/main/.config

 

github 云编译部分

主要用的 p3terx 的项目:

https://github.com/P3TERX/Actions-OpenWrt

教程:https://p3terx.com/archives/build-openwrt-with-github-actions.html

根据教程一步步来就可以。非常感谢作者。已点支持。

注意这里因为要添加 passwall 、ssr plus,所以在开始编译前,需要在 diy-part1.sh 这个脚本添加下面3条命令:

echo 'src-git helloworld https://github.com/fw876/helloworld' >>feeds.conf.default

echo 'src-git passwall_packages https://github.com/xiaorouji/openwrt-passwall.git;packages' >>feeds.conf.default

echo 'src-git passwall_luci https://github.com/xiaorouji/openwrt-passwall.git;luci' >>feeds.conf.default

就是将 passwall 和 ssr plus 的源添加到github编译环境中的feeds文件中。添加完进行编译,等2-3小时左右就能下载固件了。

 

吐槽:

但个人感觉,这教程不是很友好。有些地方没说清楚。如果你对openwrt的编译不熟悉,容易走弯路。

比如它没说清楚,github的编译环境要跟你生成配置文件的服务器环境相同(其实就是 feeds文件,新手根本没这个考虑到这个)。我新手,照着教程做,把添加了passwall的配置文件,丢到了github上面去跑去编译,可是github的feeds文件上面没passwall的源,下载不了。你开始编译了,等了2小时,下载下来加载了固件进去发现passwall的影子都没有。。。然后也不是很懂看日志,又尝试编译几次,没找到原因的话又浪费了好几个小时。。。这不是容易劝退人吗?编译openwrt固件其实是件相当花时间的事情,我感觉如果写教程,还是写得完善一些好。多一些提示。

当然,其实编译openwrt固件,这本来就是个伪需求。你可以直接下载别人编译好的固件来用。

 

打赏
欢迎转载,请注明出处:轻时代 » Github 编译 openwrt (含 passwall \ ssrplus)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

打赏一下作者,鼓励他发表更多的精彩文章

支付宝扫一扫打赏

微信扫一扫打赏