【详细教程】编译openwrt + njit-client 1.3 通过iNode认证
2014-07-22 09:15
483 查看
原文链接 http://www.7forz.com/1973/
这个教程,简单地说是我一年以来的鼓捣成果,也是我对我baidu/google看过无数教程的一个小总结。我之前在贴吧看了这个帖http://tieba.baidu.com/p/1621858667之后,燃起了我对openwrt路由器的激情。在看了很多很多个教程之后,我把我的心得汇总在这里,希望对各位有所帮助~PS.20130902更新:njit-client在华工五山校区测试成功。
首先,最重要的,你需要有一个能刷openwrt的路由器。怎么知道自己的路由支不支持呢?请参看http://wiki.openwrt.org/toh/start,在Supported
Hardware – Router type里面就是支持的,如下图。简单地说,Flash必须≥4MB,RAM必须≥32MB才能正常使用openwrt。
怎么刷机?不同的路由刷的方法也是不同的,所以请自行百度。当然你也可以去淘宝直接买一个刷好了的,反正也不贵。
刷机的固件怎么来?去openwrt官网下载是最方便的方法,之后要自己安装njit-client及其依赖包。【当然这还是比自己从头编译固件方便】也可以去各论坛上下载别人编译的固件。
但是如果你享受自己编译固件再刷机的乐趣,那么就可以看一下自己编译openwrt固件和njit-client 1.3的方法~本文最后附上我编译的ramips和ar7xxx的njit-client 1.3 的ipk下载。不需要自己编译的可以直接下载ipk,再去openwrt官网下载libpcap装上就好了。
我还装了一些ipv6支持、QoS什么的还剩200多k空间
以下内容有相当一部分参考了这里的教程。
首先,准备一台运行Linux或者类Unix操作系统的PC,比如Ubuntu,Debian,Fedora,MAC OS,FreeBSD,Suse等,推荐使用Ubuntu。下文所列出命令都为ubuntu下的命令,其他linux发行版请到这里查看相关的命令。
这里假设使用的是Ubuntu,其他OS只是在安装PC所需的工具和函数库时所使用的命令不同而已,比如apt-get install改为yum install。
需要大约350MB硬盘空间,用于下载软件包(当然,选择编译的软件越多,需要下载的源代码包就越多,可能需要多达几个G的硬盘空间)。
需要3~4GB可用硬盘空间,用于编译OpenWrt。
需要宽带连接,因为OpenWrt提供的主要是脚本文件不包含源代码,需要从网络下载所需的源代码包。
一般情况下,我们还需要一个非root用户。
最后是耐心和时间,OpenWrt边下载边编译,编译几个小时那是家常便饭,并且中间还有可能出错。
在终端中运行:
如果想下载Development branch(trunk)(注意这是二选一,有一个就够了),就这样:
假设你的工作目录为openwrt_trunk,进入openwrt_trunk目录:
然后把feeds.conf.default复制一份命名为feeds.conf:
打开feeds.conf,在最后加上一行
如果要安装scutclient,就加一行
src-svn scut https://github.com/liuqun/openwrt-clients/trunk/scut
执行了下面两步之后还可以查看./package/scut/readme.html获取更详细的帮助
然后是更新下载扩展软件包,并安装它们到package/feeds/目录:
现在开始配置OpenWrt,选择你需要目标平台,以及选择将要编译和添加进固件的软件包。运行命令:
若回显提示缺少软件包或编译库等依赖,则按提示安装所缺软件包或库等即可。
然后你就来到了这个界面:
这个配置界面跟Linux内核的配置界面基本差不多,几乎每一项都有3个选择Y/M/N:
Y:选择Y,该软件将被编译,并且加入到你的目标固件里;
M:选择M,该软件包将会被编译,但不会被放入固件里。在需要它的时候,可以用OPKG软件包管理器进行安装;
N:选择N,该软件包将不会被编译,也不会被安装进固件。
/:搜索软件包。
方向键是移动光标
回车键是确认
空格键是选择,可以代替Y/M/N键的使用
例如我的是D-LINK DIR-615 D4,到第一幅图Support Hardware那里查询对应的Target和Platform,查到之后选择对应的Target System和Subtarget和Target Profile,我选的是Ralink RT28XX/3XXX和RT305X和Default Profile。
又例如你是TP-LINK TL-MR3420,就这样选:
Target System —> (X) Atheros AR71xx/AR7240/AR913x
Target Profile —> (X) TP-LINK TL-MR3420 v1
之后就是选择扩展软件包,按需要添加。
添加LuCI(这样才自带网页GUI端)
LuCI ->Collections -> <*> luci(就是找到luci然后按一下Y)
添加LuCI的中文语言包
LuCI ->Translations -> <*> luci-i18n-chinese
添加UTF8编码
Kernel modules -> Native Language Support -> <*> kmod-nls-utf8
添加njit-client
Network -> <*> njit8021xclient
下面的njit8021xclient-web也顺便选了吧,这个是一个简单的LuCI的配置界面
其他的软件包就按需要添加吧,注意不要太多(我可怜的4M ROM…),不然编译到最后会提示文件太大,当然如果你的路由能支持挂载U盘什么的那就更爽了(再也不担心空间不够了),这方面请自行百度。
好了,选完之后回到主菜单,选Exit退出并保存,回到终端。
(不装njit-client可忽略)如果你的系统是Ubuntu,那么在编译之前必须执行此操作
总之就是干掉pcap-config,否则编译会出错,就像这样
auth.c: In function ‘SendResponseIdentity’:
auth.c:432:11: error: invalid ‘asm’: invalid use of ‘%w’
当时编译过不去真是折腾了好久,最后终于在这里看到了njit-client作者的解答。
然后把默认的无线开启,这样方便许多。打开package/kernel/mac80211/files/lib/wifi/mac80211.sh,将
的1改为0,编译出来就默认打开wifi了。
下面的encryption也可以改下,不改就是默认没密码。
要改的话,把none改为psk2,再加一行option key yourpassword即可。
之后就是编译了,执行
其中“V=s”表示输出详细的debug信息,也可以直接执行make。
编译完成之后,在 /工作目录/bin/ 下就会生成刷机用的.bin文件,在packages/下有软件包的.ipk文件。刷机方法就请自行百度了。
刷完之后重启路由,把电脑本地连接的ip改为192.168.1.x,然后在浏览器中进入192.168.1.1就进入LuCI了。没有LuCI的就telnet 192.168.1.1自行配置吧。然后在浏览器里设置一些东西,例如刚进去就要改密码、改WAN口的IP(学校给的)、DNS、网关(学校给的)、MAC地址(如果校园网绑定了MAC)、设置DHCP服务(设完之后可以把本地连接的手动ip改回自动获取,DNS好像要用学校给的DNS)、设置wifi什么的(PS.无线默认关闭),这里不再详述。
测试一下njit-client吧!在putty之类的里面执行
试试吧!其中[interface]是接口,例如eth0,eth1,总之要对应你的WAN口,在luci里就可以查看,例如我就是eth0.2,ar71xx的多数是eth1。
能连接上之后就做一个开机启动脚本吧~在路由器的 /etc/init.d/ 目录下建立一个自动运行脚本 njitclient,内容如下:
之后运行命令
最后附上ramips的njit-client下载:njit8021xclient_1.3-testing_ramips.zip
ar71xx的:njit8021xclient_1.3-testing_ar71xx.zip
20140309更新ramips_24kec,用较新版本的openwrt应该装这个版本njit8021xclient_1.3-testing_ramips_24kec.zip
20131116更新scutclient,新的华工翼起来客户端请用这个;下载及使用请到群262939451进行反馈,我什么都不知道╮(╯▽╰)╭
这个教程,简单地说是我一年以来的鼓捣成果,也是我对我baidu/google看过无数教程的一个小总结。我之前在贴吧看了这个帖http://tieba.baidu.com/p/1621858667之后,燃起了我对openwrt路由器的激情。在看了很多很多个教程之后,我把我的心得汇总在这里,希望对各位有所帮助~PS.20130902更新:njit-client在华工五山校区测试成功。
首先,最重要的,你需要有一个能刷openwrt的路由器。怎么知道自己的路由支不支持呢?请参看http://wiki.openwrt.org/toh/start,在Supported
Hardware – Router type里面就是支持的,如下图。简单地说,Flash必须≥4MB,RAM必须≥32MB才能正常使用openwrt。
怎么刷机?不同的路由刷的方法也是不同的,所以请自行百度。当然你也可以去淘宝直接买一个刷好了的,反正也不贵。
刷机的固件怎么来?去openwrt官网下载是最方便的方法,之后要自己安装njit-client及其依赖包。【当然这还是比自己从头编译固件方便】也可以去各论坛上下载别人编译的固件。
但是如果你享受自己编译固件再刷机的乐趣,那么就可以看一下自己编译openwrt固件和njit-client 1.3的方法~本文最后附上我编译的ramips和ar7xxx的njit-client 1.3 的ipk下载。不需要自己编译的可以直接下载ipk,再去openwrt官网下载libpcap装上就好了。
我还装了一些ipv6支持、QoS什么的还剩200多k空间
以下内容有相当一部分参考了这里的教程。
一、准备工作
首先,准备一台运行Linux或者类Unix操作系统的PC,比如Ubuntu,Debian,Fedora,MAC OS,FreeBSD,Suse等,推荐使用Ubuntu。下文所列出命令都为ubuntu下的命令,其他linux发行版请到这里查看相关的命令。这里假设使用的是Ubuntu,其他OS只是在安装PC所需的工具和函数库时所使用的命令不同而已,比如apt-get install改为yum install。
需要大约350MB硬盘空间,用于下载软件包(当然,选择编译的软件越多,需要下载的源代码包就越多,可能需要多达几个G的硬盘空间)。
需要3~4GB可用硬盘空间,用于编译OpenWrt。
需要宽带连接,因为OpenWrt提供的主要是脚本文件不包含源代码,需要从网络下载所需的源代码包。
一般情况下,我们还需要一个非root用户。
最后是耐心和时间,OpenWrt边下载边编译,编译几个小时那是家常便饭,并且中间还有可能出错。
二、编译openwrt
1.安装subversion以获取源代码:
在终端中运行:
2.安装必要的编译工具:
3.下载openwrt源代码,这里我下载的是openwrt官方的Attitude Adjustment分支:
4.更新下载和安装扩展软件包:
假设你的工作目录为openwrt_trunk,进入openwrt_trunk目录:src-svn scut https://github.com/liuqun/openwrt-clients/trunk/scut
执行了下面两步之后还可以查看./package/scut/readme.html获取更详细的帮助
然后是更新下载扩展软件包,并安装它们到package/feeds/目录:
5.配置openwrt
现在开始配置OpenWrt,选择你需要目标平台,以及选择将要编译和添加进固件的软件包。运行命令:然后你就来到了这个界面:
这个配置界面跟Linux内核的配置界面基本差不多,几乎每一项都有3个选择Y/M/N:
Y:选择Y,该软件将被编译,并且加入到你的目标固件里;
M:选择M,该软件包将会被编译,但不会被放入固件里。在需要它的时候,可以用OPKG软件包管理器进行安装;
N:选择N,该软件包将不会被编译,也不会被安装进固件。
/:搜索软件包。
方向键是移动光标
回车键是确认
空格键是选择,可以代替Y/M/N键的使用
例如我的是D-LINK DIR-615 D4,到第一幅图Support Hardware那里查询对应的Target和Platform,查到之后选择对应的Target System和Subtarget和Target Profile,我选的是Ralink RT28XX/3XXX和RT305X和Default Profile。
又例如你是TP-LINK TL-MR3420,就这样选:
Target System —> (X) Atheros AR71xx/AR7240/AR913x
Target Profile —> (X) TP-LINK TL-MR3420 v1
之后就是选择扩展软件包,按需要添加。
添加LuCI(这样才自带网页GUI端)
LuCI ->Collections -> <*> luci(就是找到luci然后按一下Y)
添加LuCI的中文语言包
LuCI ->Translations -> <*> luci-i18n-chinese
添加UTF8编码
Kernel modules -> Native Language Support -> <*> kmod-nls-utf8
添加njit-client
Network -> <*> njit8021xclient
下面的njit8021xclient-web也顺便选了吧,这个是一个简单的LuCI的配置界面
其他的软件包就按需要添加吧,注意不要太多(我可怜的4M ROM…),不然编译到最后会提示文件太大,当然如果你的路由能支持挂载U盘什么的那就更爽了(再也不担心空间不够了),这方面请自行百度。
好了,选完之后回到主菜单,选Exit退出并保存,回到终端。
(不装njit-client可忽略)如果你的系统是Ubuntu,那么在编译之前必须执行此操作
auth.c: In function ‘SendResponseIdentity’:
auth.c:432:11: error: invalid ‘asm’: invalid use of ‘%w’
当时编译过不去真是折腾了好久,最后终于在这里看到了njit-client作者的解答。
然后把默认的无线开启,这样方便许多。打开package/kernel/mac80211/files/lib/wifi/mac80211.sh,将
下面的encryption也可以改下,不改就是默认没密码。
要改的话,把none改为psk2,再加一行option key yourpassword即可。
之后就是编译了,执行
编译完成之后,在 /工作目录/bin/ 下就会生成刷机用的.bin文件,在packages/下有软件包的.ipk文件。刷机方法就请自行百度了。
刷完之后重启路由,把电脑本地连接的ip改为192.168.1.x,然后在浏览器中进入192.168.1.1就进入LuCI了。没有LuCI的就telnet 192.168.1.1自行配置吧。然后在浏览器里设置一些东西,例如刚进去就要改密码、改WAN口的IP(学校给的)、DNS、网关(学校给的)、MAC地址(如果校园网绑定了MAC)、设置DHCP服务(设完之后可以把本地连接的手动ip改回自动获取,DNS好像要用学校给的DNS)、设置wifi什么的(PS.无线默认关闭),这里不再详述。
测试一下njit-client吧!在putty之类的里面执行
能连接上之后就做一个开机启动脚本吧~在路由器的 /etc/init.d/ 目录下建立一个自动运行脚本 njitclient,内容如下:
ar71xx的:njit8021xclient_1.3-testing_ar71xx.zip
20140309更新ramips_24kec,用较新版本的openwrt应该装这个版本njit8021xclient_1.3-testing_ramips_24kec.zip
20131116更新scutclient,新的华工翼起来客户端请用这个;下载及使用请到群262939451进行反馈,我什么都不知道╮(╯▽╰)╭
相关文章推荐
- 【详细教程】编译openwrt + njit-client 1.3,通过iNode认证
- 【详细教程】编译openwrt + njit
- 【iOS-cocos2d-X 游戏开发之十三】详细讲解在Xcode中利用预编译并通过Jni调用Android的Java层代码(cocos2dx里访问调用Android函数)!
- Framework-Res.apk 反编译、编译、打包、替换详细教程
- Android编译,打包、签名详细教程
- bluez 交叉编译--测试通过(参考了网上的教程,并做了修改)
- 使用MailMessage和SmtpClient类实现asp.net的邮件发送(有详细注释并已测试通过)
- 在windows环境下编写编译objectives-c详细教程
- 绝对详细的QT编译安装教程
- Framework-Res.apk 反编译、编译、打包、替换详细教程
- Android通过webservice连接SQLServer 详细教程(数据库+服务器+客户端)
- SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'Ad Hoc Distributed Queries'。有关启用 'Ad Hoc Distributed Queries' 的详细信息
- Android编译,打包、签名详细教程
- 详细教程:编译Linux最新内核
- 通过USB连接上网详细教程
- 1.3 Suse10.3 VMware 7 上网配置详细图解教程
- Android编译,打包、签名详细教程
- centOS下通过NPM安装和配置node.js+socket.io+connect在线聊天的详细教程
- VC6.0 USB接口开发#include hidsdi.h,编译通过后,连接出错:LINK : fatal error LNK1104: cannot open file "hidsdi.lib"