Chinaunix首页 | 论坛 | 博客
  • 博客访问: 403972
  • 博文数量: 58
  • 博客积分: 1775
  • 博客等级: 上尉
  • 技术积分: 755
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-12 15:03
文章分类

全部博文(58)

文章存档

2012年(5)

2011年(43)

2010年(10)

分类: LINUX

2011-11-20 16:26:22

终于大功告成,这次没有通宵就搞定了。记下一些重要步骤,免得以后忘了

首先要获得pc上能上网的源码,这个是从sourece.net上的一个开源项目获得,然后在对照windows客户端抓包修改。每个学校的认证方式都略有修改,不是通用的。过程就记在上一篇文章里面了。这里就直接写移植到openwert的过程了。

我的路由是RG100E-AA,BCM5354 ,内存32M,ROM16M。这里根具体平台关系不大,在make menuconfig的时候修改一下对应处理器系统和平台就可以了。

进行入正题:

1. 将drcom.c文件加入路由器cpu对应的内核中
可以驱动模块的方式加入,也可以直接编译时内核。
driver在build_dir/linux-xxxx/linux-2.x.x下,x代表cpu类型和内核版本号
加入方式就是修改driver/net/目录下的Kconfig和Makefile两个文件

2. 交叉编译drcomd、drcomc
drcomd对/sbin/modprobe drcom做一些修改,因为路由器内核大多没有这个命令。改为/sbin/insmod drcom
并去掉返回值的判断,无论插入成功与否都不退出。s=system(cmd)
编译drcomd的时候最好用静态编译(--static),路由器里面默认是没有libpthread这个动态库的

3. 交叉编译openwrt固件
make meuconfig
选中luci 网面管理界面
设置语言 中文、英文、鸟语等
Make V=99

4.烧写固件、下载程序
telnet 或 ssh 进路由
cd /tmp
wget
mtd –r write openwrt-brcm47xx-squashfs.trx linux
烧好之后会自动重启
telnet 192.168.1.1
wget
wget c
wget
wget
insmod ./drcom.ko如果drcom编译进内核就省掉这里了,所以上面要修改命令执行成功与否都不退出的原因
vi drcom.conf配置参数,用户名、密码、网口(eth0.1路由器wan都是虚拟出来的)
./drcomd
./drcomc login
出下面提示表示成功了
received server ACK(pkt_size=745)
Login Succeeded
You have used 5147 Minutes, and 450276K bytes
再试试手机、笔记本上网一切ok

4. 接着就是移植各种应用进去了
试了一下lighttpd+php+sqilte 一切正常,已经hello world了
Cgi运行正常,还是一个echo “hello world”
还有其它很强大的功能就不一一试了,都不用自己写的,已经有大牛写好了的

先写到这里,有空再在来写个cgi把账号放到网页上去填写,然后在网页上登陆、注销,免得telnet。今天就不整图了

阅读(11038) | 评论(1) | 转发(1) |
给主人留下些什么吧!~~

500mstar2014-09-23 15:15:06

关于你写的博文《 成功 将校园客户端drcom搞进openwrt》我我学校的也是drcom,受不鸟这个了,希望能够得到您的指教,我自己编译一个drcom客户端,谢谢