OpenWRT: 如何编译gevent (compile gevent for OpenWRT)

作者: lesca 分类: Tutorials 发布时间: 2014-03-01 16:59

最近折腾了一下OpenWRT实现GoAgent翻墙的办法,但是事实证明,GoAgent在OpenWRT里表现的非常差劲,于是转用WallProxy。WallProxy是GoAgent的前辈,有一段时间貌似停止维护了,从WallProxy那里fork了一下就产生了GoAgent。

在路由器里运行无论GoAgent也好,WallProxy也罢,没有gevent的帮忙,就会大量消耗CPU的资源。为此,编译能够使用的gevent库显得非常重要。
首先感谢由wallproxy作者wwqgtxx提供的Makefile,没有他的工作,编译gevent将非常困难。

我已经为brcm47xx编译了gevent安装包,
链接: http://pan.baidu.com/s/1jGy35ky

下面大致讲下编译过程:

  1. 获得一份对应平台的SDK[2]
  2. 将下载的Makefile按如下结构放入packages文件夹:
  3. [lesca@centos package]$ tree
    .
    ├── gevent
    │   └── Makefile
    ├── greenlet
    │   └── Makefile
    ├── libevent
    │   └── Makefile
    ├── Makefile
    └── rules.mk
    
  4. 在SDK根目录运行make
  5. 注意:直接运行make,不需要menuconfig

编译好后会在bin/brcm47xx/packages目录下产生以下ipk文件:

[lesca@centos packages]$ ls *.ipk
gevent_0.13.8-1_brcm47xx.ipk
libevent2-core_2.0.16-1_brcm47xx.ipk
libevent2-extra_2.0.16-1_brcm47xx.ipk
libevent2-openssl_2.0.16-1_brcm47xx.ipk
libevent2-pthreads_2.0.16-1_brcm47xx.ipk
libevent2_2.0.16-1_brcm47xx.ipk
python-greenlet_0.4.0-1_brcm47xx.ipk

放到路由器上,依次安装:

opkg install libevent2*
opkg install python-greenlet_0.4.0-1_brcm47xx.ipk
opkg install gevent_0.13.8-1_brcm47xx.ipk

相关资源

[1] OpenWRT libopenssl for brcm47xx

Reference

[1] WallProxy – OpenWRT
[2] Using the SDK

版权声明

本文出自 Lesca 技术宅,转载时请注明出处及相应链接。

本文永久链接: https://www.lesca.cn/archives/compile-gevent-for-openwrt.html

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

5 Comments
  • koala

    2014-07-28 at 16:00

    求更详细的图文教程 我的路由是从极s1刷过来的

    1. lesca

      2014-08-18 at 09:08

      你好。你首先要建立自己的SDK,可以参考http://wiki.openwrt.org/doc/howto/obtain.firmware.sdk 如果你编译过linux系统的话,这个过程很容易。如果没有的话,最好先查下资料,这个不是一言两语能讲清楚的。

  • Jaykay

    2015-01-06 at 02:34

    我是用树莓派来玩的,已经编译好img和SDK,也加入了Makefile,和gevent,greenlet,libevent的源代码,make的时候cp: cannot stat `/xxx/project/ipk/OpenWrt-SDK/build_dir/target-arm_arm1176jzf-s+vfp_uClibc-0.9.33.2_eabi/greenlet-0.4.0/ipkg-install/usr/*’: No such file or directory
    网上说要导入python的makefile和patch:
    cd ~/openwrt/trunk/
    svn export svn://svn.openwrt.org/openwrt/packages/lang/python package/lang/python
    可是那给出来svn已经失效了,我一直是git,svn完全不懂,请问你这个问题是怎么解决的,谢谢!

    1. Jaykay

      2015-02-09 at 18:40

      已经解决了,Makefile的问题.. 谢谢

      1. live

        2016-11-09 at 00:21

        请问是如何解决的呢?我遇到了同样的问题,并没有发现makefile的问题在哪里