GFW

编译更新OpenWrt PassWall和SSR-plus插件

前面写了自编译 OpenWRT 固件,本来玩的好好的,结果最主要的两个插件据说开发者删库了,只能重新找办法升级了。
如果只要更新 Passwall 和 SSR-plus,还有 Clash,那就直接到这里下载 ipk 吧:
https://share.mianao.info/Router/X86-64/
可以在 系统->文件传输,直接上传安装 ipk 软件包,如果 openwrt 固件没有这个,那就自行上传了 ssh 命令安装吧。
下面就可以不用看了。

本地自编译

编译 Lienol 源

如果用的源码:https://github.com/Lienol/openwrt

方法一

都说是 Lienol 是把他的 openwrt-package 删了,但我看了下回退也是有的,所以一个办法是修改 feeds.conf.default 文件,将最后一行修改为我回退的库 src-git lienol https://github.com/harry3633/openwrt-package
然后执行:

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

接着编译就有最终版 Passwall 了。

方法二

不过我觉得另一个办法更好,因为这个源里有很多常用软件包,大家可以去 fork 下:https://github.com/kenzok8/openwrt-packages

cd openwrt/package
git clone https://github.com/kenzok8/openwrt-packages.git

然后执行:

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

接着编译 Passwall 和 SSR-plus 就都有了。

Lean's 源

如果用的源码:https://github.com/coolsnowwolf/lede

方法一

修改 feeds.conf.default 文件,将最后一行的注释 # 删除, src-git lienol https://github.com/fw876/helloworld
然后执行:

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

然后编译就有最终版 SSR-plus 了。

方法二

同样的,也可以直接下载这个源的软件包,small 是依赖包:

cd lede/package
git clone https://github.com/kenzok8/openwrt-packages.git
git clone https://github.com/kenzok8/small.git

然后执行:

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

接着编译 Passwall 和 SSR-plus 就都有了。

注:
如果 feeds update 出现一堆类似下面的警告:

WARNING: Makefile 'package/lean/shadowsocksR-libev-full/Makefile' has a dependency on 'libpcre', which does not exist

解决办法就是删掉 feeds 整个文件夹,在 lede 或 openwrt 目录下执行 rm -rf ./feeds,然后再 update。

个人感觉 Lean's 的源码编译不是很好用,时而成功时而不行,原因根本不知道为什么,而 Lienol 的源基本网络没问题就编译没问题。

GitHub 在线编译

参考:https://p3terx.com/archives/build-openwrt-with-github-actions.html

上面这篇文章写得很详细了,我简单描述下我的操作:

  1. 在本地电脑上搭建编译环境中使用 Lean's OpenWrt 源码按照前文的编译操作,直到选择配置后保存生成的 .config 文件,一般位于 ledeopenwrt 目录下。
  2. 项目地址:https://github.com/P3TERX/Actions-OpenWrt,点击页面中的 Use this template 按钮。
  3. 填一个仓库名称,点击 Create repository from template 按钮,这样就按模板复制了一个自己的库。
  4. 上传修改好的 feeds.conf.default 文件,拖放入仓库根目录,它会自动覆盖 Open­Wrt 源码目录下的相关文件。

  5. 点击 Create new file 按钮,创建一个新文件,文件名填写为 .config,把第一步生成的 .config 文件打开,把里面的内容粘贴到下面的文本框中。点击 Commit new file 按钮创建。

  6. 后续编译工作会自动开始,等几个小时后可以在 Actions 页面进行查看编译的固件了。

说明:

  1. 默认情况下触发编译工作流程有两种方式,发布 release 和修改 .config 文件,所以无论是点发布还是修改 .config 都会自动开始编译。当发现仓库源码有更新时,在 releases 页面发布一个版本就会触发编译的工作流程,使用最新源码进行编译最新固件了。
  2. 这是我的编译配置文件 .configfeeds.conf.default 供参考:https://share.mianao.info/Router/X86-64/lede-config
  3. 本方法实际上就是将前面的步骤在本地电脑进行,到最后一步编译命令 make V=s 时交给了 GitHub 自动操作,适合网络问题多的情况,后续更新编译也方便。可以看参考文章自定义更多内容。
微信扫一扫,向我赞赏

微信扫一扫,向我赞赏

回复

  1. hansun hansun
    Chrome 81 10

    我在“https://share.mianao.info/Router/X86-64/”下载的IPK文件,我想在koolshare lede 2.33上安装,但是提示需要依赖包,请问需要如何添加,下面是错误提示:
    root@Openwrt:~# opkg install luci-app-ssr-plus_176-7_all.ipk
    Installing luci-app-ssr-plus (176-7) to root...
    Collected errors:

    satisfy_dependencies_for: Cannot satisfy the following dependencies for luci-app-ssr-plus:shadowsocksr-libev-altcoreutils-base64pdnsd-altmicrosocksdns2socksshadowsocks-libev-ss-localshadowsocksr-libev-ssr-localshadowsocks-libev-ss-redirsimple-obfsv2ray-pluginv2raytrojanipt2socksredsocks2kcptun-clientshadowsocksr-libev-serveropkg_install_cmd: Cannot install package luci-app-ssr-plus.
    1. harry harry
      Chrome 81

      koolshare的安装版本不在这里,请看router另外一个文件夹

      1. hansun hansun
        Chrome 83 10

        意思是koolshare lede 无法安装“passwall”“ssr-plus”等插件是吗?

        1. harry harry
          Chrome 81

          应该是,我现在没用koolshare的固件,因为他们也不开源所以不知道

  2. whfweb whfweb
    Chrome 84 10

    以上几种方式都不能顺利把passwall整合进系统。
    编译出错代码:
    Configuring luci-i18n-firewall-zh-cn.
    Configuring luci-i18n-nlbwmon-zh-cn.
    Configuring dnsmasq-full.
    package/Makefile:65: recipe for target 'package/install' failed
    make[2]: Leaving directory '/workdir/openwrt'
    package/Makefile:108: recipe for target '/workdir/openwrt/staging_dir/target-arm_cortex-a9+vfpv3-d16_musl_eabi/stamp/.package_install' failed
    make[1]: Leaving directory '/workdir/openwrt'
    /workdir/openwrt/include/toplevel.mk:225: recipe for target 'world' failed
    make: * [world] Error 2

    [error]Process completed with exit code 2.

    这个是用的lienol的源码,方式二;

    1. harry harry
      Chrome 81

      编译出错的问题我是帮不了你,我自己都不懂,只会依葫芦画瓢。只要别人没问题我就尽量和别人环境一样,不行就全删了重来

    2. whfweb whfweb
      Chrome 84 10

      feeds.conf.default内容:

      src-git routing https://git.openwrt.org/feed/routing.git;openwrt-19.07
      src-git telephony https://git.openwrt.org/feed/telephony.git;openwrt-19.07
      src-git packages https://github.com/Lienol/openwrt-packages.git;dev-19.07
      src-git luci https://github.com/Lienol/openwrt-luci.git;dev-18.06
      src-git lienol https://github.com/Lienol/openwrt-package

      diy-part1.sh文件:

      !/bin/bash=============================================================https://github.com/P3TERX/Actions-OpenWrtFile name: diy-part1.shDescription: OpenWrt DIY script part 1 (Before Update feeds)Lisence: MITAuthor: P3TERXBlog: https://p3terx.com=============================================================Uncomment a feed sourcesed -i 's/^#(.*helloworld)/1/' feeds.conf.defaultAdd a feed sourcesed -i '$a src-git lienol https://github.com/Lienol/openwrt-package' feeds.conf.default

      git clone https://github.com/kenzok8/openwrt-packages.git package/package
      git clone https://github.com/kenzok8/small.git package/small

This is just a placeholder img.