OpenWRT: 如何编译gevent (compile gevent for OpenWRT)
最近折腾了一下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
下面大致讲下编译过程:
- 获得一份对应平台的SDK[2]
- 将下载的Makefile按如下结构放入packages文件夹:
- 在SDK根目录运行
make
[lesca@centos package]$ tree . ├── gevent │ └── Makefile ├── greenlet │ └── Makefile ├── libevent │ └── Makefile ├── Makefile └── rules.mk
注意:直接运行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
koala
2014-07-28 at 16:00
求更详细的图文教程 我的路由是从极s1刷过来的
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完全不懂,请问你这个问题是怎么解决的,谢谢!
Jaykay
2015-02-09 at 18:40
已经解决了,Makefile的问题.. 谢谢
live
2016-11-09 at 00:21
请问是如何解决的呢?我遇到了同样的问题,并没有发现makefile的问题在哪里