Feb
19
狂喜:无线路由器asus wl-520gu通过校园网锐捷802.11x认证!
@ 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
哦也哦也哦也!手机可以上校园网了!!!!!
转载请注明出自 ,如是转载文则注明原出处,谢谢:)
RSS订阅地址: https://www.felix021.com/blog/feed.php 。
我手头已经没有交叉编译工具链了,这个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)
下载文件 (已下载 2386 次)
$ 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
哦也哦也哦也!手机可以上校园网了!!!!!
欢迎扫码关注:
转载请注明出自 ,如是转载文则注明原出处,谢谢:)
RSS订阅地址: https://www.felix021.com/blog/feed.php 。
太感恩啦
不過make 過程超久
我的9.04跑了2個多小時
哈,終於可以寫DD程式啦
有兴趣可以试试加入QQ群86079951
1. svn下来openwrt的buildroot
$ su
$ mkdir /cross
$ cd /cross
$ svn co svn://svn.openwrt.org/openwrt/branches/whiterussian/
了吧?
谢谢博主文章,正在编译,呵呵
我是新手,想将您的客户端用于锐捷校园网,我目前的想法是编译好客户端后用tomatoedit 将它打包进firmware,但不使用usb是否可行? 有几个疑问的地方请指教
1. 没有了usb , 那./newstar config后的配置文件存放在哪里?
2. log文件大小会不会一直增加,是否需要关闭Log功能,如何关闭?
还有能说明一下 tomato 1.23 ND 和非nd的区别吗?
十分感谢
我的客户端可能只适用于武汉大学校园网。建议看看googlecode上的ruijieclient项目。
nd是new driver的简写,貌似,详情参见2cna.cn的一个帖子。
老大,请帮着编译 :
drcom-for-linux-2.6:
http://sourceforge.net/project/showfiles.php?group_id=128089
让它能在 DD-WRT V24K 里运行.
谢谢.
http://sourceforge.net/project/showfiles.php?group_id=128089
让它能在 DD-WRT V24中 使用.
先谢谢啦.
ps,貌似下面那位的评论出了些问题啊。
内容:上一篇文章花了很大的气力讲了开放源代码第三方家用无线路由器固件的基本情况和绕过这个 bug 的办法。绕过 bug 在很多时候不失为一种有效的选择,特别是像之前我遇到的情况:开发组在...
如果用到多播方式验证的话,似乎就有问题了
我这用7231-4P路由拨号简直是浪费了带宽啊,最快下载才2M/s,电脑直接拨号能过5M/S以上的,
不知道你的520GU的WAN-LAN转换效率如何呢
至于编译出来的大小问题,你可以使用 strip 命令去掉一些调试信息,也可以使用 upx 给它压缩一下,效果会比较好。
我已经用了strip,然后就只有500多K了。然后直接hack到tomato的包里刷进去。
configure: error: ZLib not installed
root@asa-desktop:/tmp/zlib-1.2.3# make install
gcc -O3 -DUSE_MMAP -c -o adler32.o adler32.c
gcc -O3 -DUSE_MMAP -c -o compress.o compress.c
gcc -O3 -DUSE_MMAP -c -o crc32.o crc32.c
gcc -O3 -DUSE_MMAP -c -o gzio.o gzio.c
gcc -O3 -DUSE_MMAP -c -o uncompr.o uncompr.c
gcc -O3 -DUSE_MMAP -c -o deflate.o deflate.c
gcc -O3 -DUSE_MMAP -c -o trees.o trees.c
gcc -O3 -DUSE_MMAP -c -o zutil.o zutil.c
gcc -O3 -DUSE_MMAP -c -o inflate.o inflate.c
gcc -O3 -DUSE_MMAP -c -o infback.o infback.c
gcc -O3 -DUSE_MMAP -c -o inftrees.o inftrees.c
gcc -O3 -DUSE_MMAP -c -o inffast.o inffast.c
ar rc libz.a adler32.o compress.o crc32.o gzio.o uncompr.o deflate.o trees.o zutil.o inflate.o infback.o inftrees.o inffast.o
cp zlib.h zconf.h /usr/local/include
chmod 644 /usr/local/include/zlib.h /usr/local/include/zconf.h
cp libz.a /usr/local/lib
cd /usr/local/lib; chmod 755 libz.a
cd /usr/local/lib; if test -f libz.so.1.2.3; then \
rm -f libz.so libz.so.1; \
ln -s libz.so.1.2.3 libz.so; \
ln -s libz.so.1.2.3 libz.so.1; \
(ldconfig || true) >/dev/null 2>&1; \
fi
cp zlib.3 /usr/local/share/man/man3
chmod 644 /usr/local/share/man/man3/zlib.3
configure: error: ZLib not installed
make[2]: *** [/cross/whiterussian/openwrt/build_mipsel/libpng-1.2.8-config/.configured] 错误 1
make[2]:正在离开目录 `/cross/whiterussian/openwrt/package/libpng'
make[1]: *** [libpng-compile] 错误 2
make[1]:正在离开目录 `/cross/whiterussian/openwrt/package'
make: *** [package/compile] 错误 2
scripts/configtest.pl
make -C toolchain install
make[1]: 正在进入目录 `/cross/whiterussian/openwrt/toolchain'
make[1]:正在离开目录 `/cross/whiterussian/openwrt/toolchain'
make -C target compile
make[1]: 正在进入目录 `/cross/whiterussian/openwrt/target'
make -C utils prepare
make[2]: 正在进入目录 `/cross/whiterussian/openwrt/target/utils'
make[2]: 没有什么可以做的为 `prepare'。
make[2]:正在离开目录 `/cross/whiterussian/openwrt/target/utils'
make -C utils compile
make[2]: 正在进入目录 `/cross/whiterussian/openwrt/target/utils'
mkdir -p /cross/whiterussian/openwrt/staging_dir_mipsel/bin
cp -a /cross/whiterussian/openwrt/build_mipsel/target-utils/* /cross/whiterussian/openwrt/staging_dir_mipsel/bin/
make[2]:正在离开目录 `/cross/whiterussian/openwrt/target/utils'
make -C utils install
make[2]: 正在进入目录 `/cross/whiterussian/openwrt/target/utils'
mkdir -p /cross/whiterussian/openwrt/staging_dir_mipsel/bin
cp -a /cross/whiterussian/openwrt/build_mipsel/target-utils/* /cross/whiterussian/openwrt/staging_dir_mipsel/bin/
make[2]:正在离开目录 `/cross/whiterussian/openwrt/target/utils'
make -C lzma prepare
make[2]: 正在进入目录 `/cross/whiterussian/openwrt/target/lzma'
make[2]: 没有什么可以做的为 `prepare'。
make[2]:正在离开目录 `/cross/whiterussian/openwrt/target/lzma'
make -C lzma compile
make[2]: 正在进入目录 `/cross/whiterussian/openwrt/target/lzma'
make -C /cross/whiterussian/openwrt/build_mipsel/lzma/SRC/7zip/Compress/LZMA_Lib
make[3]: 正在进入目录 `/cross/whiterussian/openwrt/build_mipsel/lzma/SRC/7zip/Compress/LZMA_Lib'
g++ -O3 -Wall -c ZLib.cpp
ZLib.cpp:28:18: 错误: zlib.h:没有该文件或目录
ZLib.cpp:53: 错误: expected ‘,’ or ‘...’ before ‘*’ token
ZLib.cpp:53: 错误: ISO C++ 不允许声明无类型的‘Bytef’
ZLib.cpp:108: 错误: ISO C++ 不允许声明无类型的‘Bytef’
ZLib.cpp:108: 错误: expected ‘;’ before ‘*’ token
ZLib.cpp: In constructor ‘CInMemoryStream::CInMemoryStream(int)’:
ZLib.cpp:54: 错误: 类‘CInMemoryStream’没有名为‘m_data’的字段
ZLib.cpp:54: 错误: ‘data’在此作用域中尚未声明
ZLib.cpp:54: 错误: ‘size’在此作用域中尚未声明
ZLib.cpp: In member function ‘virtual LONG CInMemoryStream::Read(void*, UInt32, UInt32*)’:
ZLib.cpp:66: 错误: ‘m_data’在此作用域中尚未声明
ZLib.cpp: At global scope:
ZLib.cpp:118: 错误: expected `)' before ‘*’ token
ZLib.cpp:177: 错误: ISO C++ 不允许声明无类型的‘Bytef’
ZLib.cpp:177: 错误: expected ‘;’ before ‘*’ token
ZLib.cpp: In member function ‘virtual LONG COutMemoryStream::Write(const void*, UInt32, UInt32*)’:
ZLib.cpp:130: 错误: ‘m_data’在此作用域中尚未声明
ZLib.cpp: At global scope:
ZLib.cpp:183: 错误: expected constructor, destructor, or type conversion before ‘int’
make[3]: *** [ZLib.o] 错误 1
make[3]:正在离开目录 `/cross/whiterussian/openwrt/build_mipsel/lzma/SRC/7zip/Compress/LZMA_Lib'
make[2]: *** [/cross/whiterussian/openwrt/build_mipsel/lzma/SRC/7zip/Compress/LZMA_Lib/liblzma.a] 错误 2
make[2]:正在离开目录 `/cross/whiterussian/openwrt/target/lzma'
make[1]: *** [lzma-compile] 错误 2
make[1]:正在离开目录 `/cross/whiterussian/openwrt/target'
make: *** [target/compile] 错误 2
co usage: co -{fIlMpqru}[rev] -ddate -jjoins -ksubst -sstate -T -w[who] -Vn -xsuff -zzone file ...
co aborted
co https://svn.openwrt.org/openwrt/branches/whiterussian/
然后就提示co: https://svn.openwrt.org/openwrt/branches/whiterussian/RCS/,v:no such file or directory
详情Baidu一下Subversion
非常感谢你的教程,我校的华为H3c认证经过我3天的通宵终于搞定了,哈哈,不过人家的程序我还没去改动,但已经可以用,呵呵,
再次感谢,你的教程相当详细,连我这个连编程都不会的人也搞定了交叉编译
root@DD-WRT:/jffs# ./h3c -r -u ****/*** vlan1
sh: pkill: not found
Initializing Network Adapter...
Login sent
EAP_NOTIFICATION received.
Finding authentication server...
EAP_IDENTIFY received.
Verifying User Name ...
EAP_MD5 received.
Verifying Password ...
Successfully Login.
sh: /sbin/dhclient: not found
�����ʺ������ǣ�60Ԫ���Ʒ�����Ϊ��1���£�������ʣ��ʱ�䣺7��14Сʱ55����51�롣4r�����Ҿ���ʹ���°汾��iNode EAD for Windows V2.
3��15�պ�����ֹ�ɰ汾�ͻ��˳���������λ�û����֪��лл���ϣ�
呵呵,我刷的是dd-wrt,最近也在折腾华为的802.1x认证
可惜的是,linux上可以运行,传到路由器上却发不了包
所以想换个其它的路由系统试试。
你是交叉编译过的吗?