强烈建议先看看 https://github.com/drcoms/generic 里的 wiki
/usr/bin/wired.py
可能不是最新的,请访问https://github.com/drcoms/generic/blob/master/latest-wired.py 以获得最新代码
u60用户如果不能用请参考这个Issue:#1
注意对上面这个,对于 0.9004.xxxx 的同学请自行降级到 0.9003.2446s, 或者请自行批量替换 mmcblk0p1 为 mmcblk0p2
9004固件不稳定, 对于校园网9003固件足矣, 本人不提供9004固件的技术支持, 请见谅.
- 请先确保在PC上使用 drcom-generic-debug-u62.py 测试可以上网以后再考虑本补丁
- 所有风险由使用者承担,作者不承担任何法律责任,否则请您不要使用
有关其他可以让程序运行的更美好的办法可以参考 README 尾部
首先,刷打开了ssh的固件,通俗说为root (详细参考www.hiwifimi.com),版本 0.9003.2446s
下载连接
或者可以手动开启ssh,办法请参考将固件中ssh开启
如果您的学校是 PPPOE 拨号和 DrCOM 双重认证,请您先在路由器上设置相应的拨号配置
- 修改/etc/drcom.conf中的认证地址,用户名,密码,和在网络中心注册时填写的mac,注意mac按范例格式写
server = "192.168.100.150" # 这里填写认证服务器ip
username = "" # 上网的用户名
password = "" # 密码
host_name = "LIYUANYUAN" # 改不改无所谓
host_os = "8089D" # 改不改无所谓
host_ip = "10.30.22.17" # 有关这个选项请参考wiki
dhcp_server = "0.0.0.0" # 不用改
mac = 0xb888e3051680 # 学校绑定的mac地址,注意按照左边的格式写,如果您的mac是121212121212,则写成0x121212121212
-
可用scp或者ftp的方式,覆盖本压缩包内所有的文件到 / (根目录) (windows用户安装winscp,选择scp方式,账号root密码为路由器密码)
-
在ssh下执行下列命令(windows下可用putty连接)
- opkg update
- opkg install python-mini (注意安装的应该是python2.7.3以上的版本)
- chmod +x /usr/bin/dog_drcom
-
重启路由器
注意: 由于替换了界面,会失去 app 按钮,您可以通过直接访问 http://app.hiwifi.com 或者通过手机端管理插件等。
适用于不想改动界面的用户或者一切基于 Openwrt 路由的其他用户
注意: 本操作任需要有 ssh 权限。手工开启 ssh 可以参考将固件中ssh开启
复制以下文件(夹)到路由器上相同目录
/usr/bin
/usr/lib/python2.7
/etc/drcom.conf
/etc/opkg.conf (适用于mt7620的源,极壹等ar71xx请不要复制,或者替换源http://downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/generic/packages/)
- 在ssh下执行下列命令(windows下可用putty连接)
- opkg update
- opkg install python-mini (注意安装的应该是python2.7.3以上的版本)
- chmod +x /usr/bin/dog_drcom
/etc/rc.local 文件请在 exit 0;
之前加入 dog_drcom&
无论是哪种方式安装的本脚本,如果重启后仍然无法上网,您可以通过以下步骤检查问题所在
-
检查 dog_drcom 是否执行 ssh 中执行
ps | grep dog_drcom
,看到如同3594 root 3248 S {dog_drcom} /bin/sh /usr/bin/dog_drcom
说明 dog_drcom 正常运行,否则请您检查/usr/bin/dog_drcom
是否有执行权限,或者重新执行chmod +x /usr/bin/dog_drcom
-
检查客户端脚本是否运行 ssh 中执行
ps | grep python
,看到如同3596 root 9064 S python /usr/bin/wired.py
说明 客户端脚本 正常运行 如无法运行脚本,请检查 python-mini 是否已正确安装,opkg list-installed | grep python-mini
,看到如同python-mini - 2.7.3-2
文字说明安装正确,请您手工执行python /usr/bin/wired.py
将错误信息以各种方式发给我 (Issue和Email都没问题) -
检查 /etc/drcom.conf 是否配置正确,请参考上方配置说明。已知需要注意的地方见 wiki链接。
如果上述三项检查均通过,而仍然无法上网,请检查您学校的 DrCOM 通信版本号,如果为 u3x u2x 或者 0.7,您可以试试另外的一个项目 jlu-drcom-client, 配置方法大同小异。
理论上如果通过了 drcom-generic-debug-u62.py , 但是路由器上不通过的情况一般是不存在的,但是如果真的发生了,恳请您将 /usr/bin/wired.py
中 DEBUG = False
改成 DEBUG = True
之后执行如下的命令。
killall dog_drcom
kill -9 `ps | grep wired.py | grep python | awk '{print $1}'`
python /usr/bin/wired.py
在看到程序执行到稳定时(约20s发生一次变化),或者明显进入死循环时,请Ctrl+C
结束程序,将 /var/log/drcom_client.log
通过 Issue 或者 Email 发给我,并附上您的上网账号密码以及网络环境(包括但不限于如是否固定ip,是否ip-mac绑定,是否需要运行客户端前pppoe拨号等等)。
- 如果您的学校是 u62-u64 但是不能登陆的话,请将您的学校的截包情况发给我。
- 有任何问题请在 Issue 里提出
- 欢迎 pull 任何可以让代码更好看一些、容错性能更好些的代码,感激不尽。
- 缺少登出等功能,因为作者比较懒…… 如果您可以提交确认可以用的代码,当然感激不尽。
- 如果您肯花一些时间将其改写成 C语言 版本,请一定要通知我。
- 下载 Wireshark 软件
- 尽可能的退出和网络有关的应用程序
- 用 Wireshark 开始截包
- 打开官方客户端,登陆,等待1-2分钟
- 停止截包,将封包保存,连同您的账号密码,ip信息,网络环境等发至我的邮箱
我看到邮件后会找时间与您联系。
可以在 /etc/inittab
中加入 ::respawn:/usr/bin/dog_drcom
来防止 dog_drcom 挂掉。
GPLv2
特别指出禁止任何个人或者公司将 drcoms 的代码投入商业使用,由此造成的后果和法律责任均与本人无关。