为cubieboard编译OpenWrt

故事的经过是这样的,前几天在搞OpenWrt无线中继,一开始用ASUS RT N13U B1作为平台,挂载8187L大功率网卡进行中继。不巧的是那台N13U突然间就挂了,表现为正常开机一段时间后丢失无线信号,估计是8187L功率太大,搞坏了12V DC-DC Buck到5V那部分。无奈只好用过改装过的那台神器MW300R作为中继,Atheros AR9285的无线网卡确实是好,而且驱动全部开源,OpenWrt的支持也很好,同时支持4个soft-AP和managed模式,也就是说可以用一个网卡实现AP+STA模式。但是这台路由我要到别处使用,所以手头上剩下的唯一零件只有cubieboard和几块无线网卡,包括Mercury MW150UD,8187L, 8188EU了。

 

查了一下OpenWrt wiki,trunk版已经支持,而且大部分module都已经正常工作,只有音频部分,USB ohci (USB 1.1支持,有没有无所谓)还无法工作。于是立马下来编译好的固件,写入TF卡,方法见官方的installation process。上电,开机,TTL输出了正常的引导和内核初始化信息,进入系统,本想已经基本完工,也就不会出现本篇的编译一事。不幸的是ifconfig -a却怎么也出不来eth0,有线网卡无法工作。一开始我怀疑是编译固件那人把emac作为module了,就去lib里找,但是没发现任何和emac有关的模块,dmesg能够看到这个硬件,但是没有任何eth0有关的信息。刷遍了能找到的所有固件都是这种情况,难道是我个案?

 

接着,尝试了各种办法,均以失败告终。期间也走了很多算是roundabout routes,比如在电脑上下了无线网卡驱动和所有依赖包,然后再装进去,结果无线网卡认出来了,但是连不上网啊。。。

 

最终放弃治疗,决定交叉编译OpenWrt for cubieboard。过程其实很简单,先git clone一下openwr trunk源码,然后make defconfig, make menuconfig, make就行了。crosscomplie toolchain他会在make的时候先编译好,当然也可以修改makefile用别的优化过的toolchain.

只需要注意选择相应的配置文件,然后选择需要的驱动模块,我把基本上所有的无线网卡驱动和emac都选了。

Unnamed QQ Screenshot20140610000022

但是我有一块8188EU, 这个无线网卡芯片比较特殊,不能使用8192CU的驱动,需要另外找,我是用cubieboad那边的源码编译的,一次成功。

上电,开机,久违的eth0终于出现了。。。

 

这里提供下载,可以自己去测试,没带luci,要图形界面可以自己装。

确认所有wiki上说明能工作的模块全部正常,目前发现8188eu无法打开AP,可能是驱动问题。用iw phy0 info命令看到能够支持AP,但是不知道为何打不开。

已经集成了包括ath9k, rt2500, rt28xx, 8187, 8188EU, 8192CU, asix等市面上几乎所有无线网卡芯片的驱动。

下载地址:点击下载

所有package的mirror:http://dl.zhzxxyb.tk/packages/sunxi/packages/

 

cubieboard的CPU性能相比MIPS构架的路由CPU是鹤立鸡群的,但是由于没有硬件NAT,那块A10 CPU的NAT性能不是很强,无法跑满100Mbps的链路速度。

当然这些可以通过USB接口外接无线网卡和有线网卡解决。整体上来讲,在我的应用情境下,1GHz CPU 加上1GByte RAM,仅仅是用来跑OpenWrt做中继是大材小用的。

分享到:

2 条评论

昵称
  1. sorz


    话说前两天给 cubieboard 挂上硬盘后,我就想要 1000Mbps 网络了..

    1. Tim Xiao

      cubieboard的SATA性能还不错的,我挂了一块,能跑到60MB/S,但是就算挂上USB千兆有线网卡也没法在局域网里跑到这速度。要GMAC只能上cubieboard3了…