准备工作:
1. 安装linux系统或者 安装Linux虚拟机 (本文以Ubuntu12.04为例)
2. 搭建Openwrt编译环境 (具体方法请参考本站相关文章)
3. 下载njit8021xclient源码包、Makefile文件
njit8021xclient-1.1.tar.gz :
https://njit8021xclient.googlegroups.com/attach/2cfa320631e1b581/njit8021xclient-1.1.tar.gz?part=4
Makefile-1.1.zip:
https://njit8021xclient.googlegroups.com/attach/2cfa320631e1b581/Makefile-1.1.zip?part=5
一、编译工作正式开始:
1. njit-client 是利用njit-RefreshIP 脚本来实现认证后获取和刷新 IP 地址的,而Openwrt上则是使用 udhcpc 脚本
故,直接双击打开压缩包njit8021xclient-1.1.tar.gz 到/njit8021xclient-1.1/src/ 目录下,打开auth.c 在261行 将“system("njit-RefreshIP");”改为“system("udhcpc ");”,
保存,关闭;
在Openwrt中的udhcpe脚本用于获取和刷新IP,并且这个脚本会自动运行,所以可以直接将261行调用脚本的命令屏蔽掉
如果校园网认证对版本号有要求,同样修改auth.c第33行后面的版本号为你需要的,保存。
然后文件打包器会询问是否更新修改的这个文件,点击“更新”。
2. 将修改后的njit8021xclient-1.1.tar 放到openwrt/backfire/dl目录下,然后在命令符下进入该目录下,例如:
VirtualBox:~$ cd openwrt/backfire/dl
获取修改后njit8021xclient-1.1.tar.gz的md5sum码,输入命令:
VirtualBox:~/openwrt/backfire/dl$ md5sum njit8021xclient-1.1.tar.gz
fcfbb39f8fc764fcf8c9b0b7acf6ad30 njit8021xclient-1.1.tar.gz
VirtualBox:~/openwrt/backfire/dl$
3. 将Makefile-1.1.zip解压后将整个njit8021xclient目录放到openwrt/backfire/package目录下,并打开njit8021xclient目录中的Makefile将第16行“PKG_MD5SUM:=MD5=”后面的值替换为第2步获取的md5sum 码,保存,关闭。
4. 在命令符中输入:
VirtualBox:~/openwrt/backfire/dl$ cd
VirtualBox:~$ cd openwrt/backfire
VirtualBox:~/openwrt/backfire$
接着输入:
VirtualBox:~/openwrt/backfire$ make menuconfig
在Target System 中选择 路由的芯片型号
在 Target Profile 中选择 路由的型号
然后在Network 中选择njit8021xclient,按“y”键 将< >设置为<*> 制作ipk包,
然后保存退出
在命令符中输入:
VirtualBox:~/openwrt/backfire$ make package/njit8021xclient/compile
仅编译njit8021xclient这个包
5. 稍等一会(根据机器性能5-10分钟,虚拟机可能会更慢),就会编译成功njit8021xclient程序的安装包及其依赖的几个程序的安装包。
编译成功的安装包在openwrt/backfire/bin/bcm63xx/packages 下,你可以从通过共享文件夹、FTP、网盘、附件等等方法将安装包提取出来;为了方便这里将这些安装包通过浏览器上传至我的百度网盘,需要的同学可以通过文章末尾的链接下载。
二、安装使用介绍:
1. 通过WinSCP将安装包上传至路由/root/ 目录下,然后在SSH中输入命令:
安装该程序,若提示缺少其他的程序,则按照同样方法安装。
2. 若校园网绑定了MAC ,在Luci管理界面—网络—接口—WAN—高级设置 覆盖MAC地址一栏 填入所绑定的MAC。
或者在WinSCP/SSH中打开 /etc/config/network 并在config 'interface' 'wan' 部分的最后添加上一行
3. 在SSH中输入
njit-client 用户名 密码 接口 比如:
回车,即可拨号认证
4. 为了免去每次打开路由都要输入命令拨号的麻烦,可以在路由器的 /ect/init.d/ 目录下建立一个自动运行脚本 njit-client,内容如下
start() {
njit-client [username] [password] [interface] &
}
stop() {
killall njit-client
killall udhcpc
}
然后
chmod +x /etc/init.d/njit-client
加上可执行属性,
/etc/init.d/njit-client enable
开启开机自动运行。
三、交叉编译得到的ipk包
适用于BCM63xx芯片的njit-client及依赖库
http://downloads.shujun.net/openwrt/brcm63xx/packages/njit8021xclient_1.1-1_brcm63xx.ipk
http://downloads.shujun.net/openwrt/brcm63xx/packages/libopenssl_0.9.8p-1_brcm63xx.ipk
http://downloads.shujun.net/openwrt/brcm63xx/packages/libpcap_1.0.0-2_brcm63xx.ipk
http://downloads.shujun.net/openwrt/brcm63xx/packages/zlib_1.2.3-5_brcm63xx.ipk
适用于Ramips芯片的njit-client及依赖库
http://downloads.shujun.net/openwrt/ramips/packages/njit8021xclient_1.1-1_ramips.ipk
http://downloads.shujun.net/openwrt/ramips/packages/libopenssl_0.9.8p-1_ramips.ipk
http://downloads.shujun.net/openwrt/ramips/packages/libpcap_1.0.0-2_ramips.ipk
http://downloads.shujun.net/openwrt/ramips/packages/zlib_1.2.3-5_ramips.ipk