标题:狂喜:无线路由器asus wl-520gu通过校园网锐捷802.11x认证! 出处:Felix021 时间:Thu, 19 Feb 2009 08:48:57 +0000 作者:felix021 地址:https://www.felix021.com/blog/read.php?1467 内容: @ 2010-05-29 我手头已经没有交叉编译工具链了,这个newstar,可能只适用于武大信息学部宿舍8栋,有问题估计帮不了忙了,真抱歉。 如果需要dd-wrt的,可以试试在这里的这个(tomato也许也能用呢): http://www.right.com.cn/forum/viewthread.php?tid=29702&extra=page%3D2 ----- @ 2009-05-01 建议看看这篇文章:开源无线路由器固件上 Bug 的故事 http://blog.xiaoding.org/post/bug-story-on-open-source-routers-2.html 就是说,其实WL-520gu的交换芯片BCM5354是有个BUG的,如果使用多播协议的802.1x认证可能无法搞定。。。 ----- 花了这么多天的时间,果然是值得阿! 寒假在家里搭建的buildroot确实可以交叉编译,但是编译出来的东西在路由器上不能运行! 于是很郁闷地看了不少资料,才发现,原来dd-wrt和tomato固件都是基于linux-2.4的, 但是寒假搭建的那个,linux内核直接down的是2.6.28.... 反正是牛头不对马嘴了。 于是去下载openwrt提供buildroot来搭建交叉编译工具链。 说简单也很简单: 1. svn下来openwrt的buildroot $ su $ mkdir /cross $ cd /cross $ svn co svn://svn.openwrt.org/openwrt/branches/whiterussian/ 2. 参照这篇 [在ubuntu8.10 下建立 ARM-Linux 交叉编译环境] 的内容进行如下修改: 1) 安装一些必须工具 $ sudo apt-get install bison flex build-essential patch libncurses5-dev 2) 修改一些系统文件 a)ubuntu的sh是链接到dash的,修改回bash $ cd /bin $ sudo ln -sf bash /bin/sh b)用用新立得软件包管理器安装gcc-4.1(自带的gcc4.3.2无法编译成功!但不用卸载),然后 $ sudo ln -s /usr/bin/gcc-4.1 /usr/bin/gcc (gcc只是一个soft link,回头再链回到gcc-4.3就可以了) 如果不安装gcc-4.1,就会出现2个问题: ~~ /usr/include/bits/fcntl2.h:51: error: call to '__open_missing_mode' declared with attribute error: open with O_CREAT in second argument needs 3 arguments 编译到这里的时候提示这个错误,是因为没有第三个参数,gcc 4.3.2严格的语法检查不让通过;你可以修改 gcc-<版本号>/gcc/collect2.c的1575行附近,加上第三个参数0777,变成 redir_handle = open (redir, O_WRONLY | O_TRUNC | O_CREAT, 0777); 然后就可以继续编译 ~~ 尽管可以继续编译,但是还会出现这个问题:*** buffer overflow detected ***: mipsel-9tdmi-linux-gnu-ar terminated 哈,编译出来的这个程序根本就有问题!所以还是老老实实地安装gcc 4.1吧! 3) 安装配置 $ cd whiterussian/openwrt $ make menuconfig 应该不用选太多东西,不过libgcc, libpcap, uClibc++最好选上,因为编译newstar需要它们。 4) 开始搭建toolchain $ make 安装过程中会需要下载n多个包,速度超慢,建议是开始下载的时候按下Ctrl+C,然后复制下载链接到迅雷下载,然后再copy到这个目录的dl目录下面 5) 不出意外,搭建好了!配置环境变量 $ export PATH=$PATH:/cross/whiterussian/openwrt/staging_dir_mipsel/bin 可以把这一行加入到.bashrc或者/etc/profile中,免得每次要编译都输入一遍:) 6) 下载这个newstar.mips.tar.gz (@2009-02-19 19:00修正了一个BUG) 点击这里下载文件 $ tar zxvf newstar_mips.tar.gz $ cd newstar.mips $ make 如果有需要,可以修改feli_net.cpp里面的几个文件的路径,比如log,tmp,config。 注意Makefile里面有个 ARG=-static,也就是这个是静态编译的,大小有1.8MB呢,不过反正我有个1G的U盘空间,无所谓——还是有个USB口来得好阿! 7) 拷到路由器,配置运行 $ telnet 192.168.1.1 //telnet到路由器的命令行下 $ ./newstar config 我用的asus wl-520gu,WAN网卡是vlan1,配置的时候interface填这个就OK! $ ./newstar 8) 如果需要编译其他程序 $ mipsel-linux-g++ -static hello.c -o hello.out 哦也哦也哦也!手机可以上校园网了!!!!! Generated by Bo-blog 2.1.0