这个教程,简单地说是我一年以来的鼓捣成果,也是我对我baidu/google看过无数教程的一个大杂烩。我大一之前的那个暑假的时候在贴吧看了这个帖http://tieba.baidu.com/p/1621858667之后,燃起了我对openwrt路由器的激情。在看了很多很多个教程之后,我把我的心得汇总在这里,希望对各位有所帮助~PS.20130902更新:华工五山校区测试成功。
首先,最重要的,你需要有一个能刷openwrt的路由器。怎么知道自己的路由支不支持呢?请参看http://wiki./toh/start,右边的Supported Hardware – Router type里面就是支持的,如下图。简单地说,ROM必须≥4MB(假如有8MB+就最好了,4M的ROM挺苦逼的),RAM必须≥16MB才能刷入openwrt。 怎么刷机?不同的路由刷的方法也是不同的,所以请自行百度。刷机的风险也是不同的,有的刷变砖了要救回来比较难(我没试过),有的怎么刷都能轻松刷回来……当然你也可以去淘宝直接买一个刷好了的,反正也不贵。
刷机的固件怎么来?去openwrt官网下载是最方便的方法,不过这样刷出来的不一定有LuCI(一个网页图形界面,貌似trunk没有,Attitude Adjustment有?),只能用命令行的方法来管理;而且之后还要自己安装njit-client及其依赖包,比较麻烦;此外,njit-client的交叉编译问题也没有解决。当然也可以去各论坛上下载各大神编译的固件,不过我这路由好像比较小众,没大神啊,只能靠自己了。 最重要的是,现在网上流传的njit-client绝大多数都是1.2版的,都要libopenssl这个体积庞大的依赖包,直接导致了ROM剩余空间非常少的问题,所以下面我来讲一下自己编译openwrt固件和最新版的njit-client 1.3的方法~本文最后附上我编译的ramips和ar7xxx的njit-client 1.3 的ipk下载。 我还装了一些ipv6支持、QoS什么的还剩200多k空间 自己编译看上去好像好高级的样子 w(?Д?)w ,其实我也是一步一步看教程的o(* ̄▽ ̄*)o 以下内容有相当一部分参考了这里的教程。
一、准备工作
二、编译openwrt1.安装subversion以获取源代码:在终端中运行: $ sudo apt-get install subversion
2.安装必要的编译工具:$ sudo apt-get install libtool autoconf automake gcc-multilib bison screen gcc g++ binutils patch bzip2 flex make gettext unzip libc6 git-core git build-essential libncurses5-dev zlib1g-dev gawk quilt asciidoc libz-dev
3.下载openwrt源代码,这里我下载的是openwrt官方的Attitude Adjustment分支:svn co svn://svn./openwrt/branches/attitude_adjustment openwrt_attitude_adjustment
如果想下载Development branch(trunk)(注意这是二选一,有一个就够了): svn co svn://svn./openwrt/trunk/ openwrt_trunk
4.更新下载和安装扩展软件包:假设你的工作目录为openwrt_trunk,进入openwrt_trunk目录: cd openwrt_trunk
feeds.conf.default复制一份命名为feeds.conf: cp feeds.conf.default feeds.conf
(不装njit-client此步可忽略)打开feeds.conf,在最后加上一行 src-svn njit https://github.com/liuqun/openwrt-feeds-njit/trunk/njit
src-svn njit https://github.com/liuqun/openwrt-clients/trunk/njit
路径修改 2013.11.15 如果要安装scutclient,就加一行 src-svn scut https://github.com/liuqun/openwrt-clients/trunk/scut 执行了下面两步之后还可以查看./package/scut/readme.html获取更详细的帮助 更新下载扩展软件包,并安装它们到package/feeds/目录: ./scripts/feeds update -a
./scripts/feeds install -a
5.配置openwrt现在开始配置OpenWrt,选择你需要目标平台,以及选择将要编译和添加进固件的软件包。运行命令: make menuconfig
若回显提示缺少软件包或编译库等依赖,则按提示安装所缺软件包或库等即可。 然后你就来到了这个界面: 这个配置界面跟Linux内核的配置界面基本差不多,几乎每一项都有3个选择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 之后就是选择扩展软件包,按需要添加。
如果当时svn下载的是trunk,默认可能就没有LuCI,那就要在feeds.conf后添加 src-svn luci http://svn.luci./luci/branches/luci-0.11/contrib/package 并执行./scripts/feeds update -a 和 ./scripts/feeds install -a
其他的软件包就按需要添加吧,注意不要太多(我可怜的4M ROM…),当然如果你的路由能支持挂载U盘什么的那就更爽了(再也不担心空间不够了),这方面请自行百度。
好了,选完之后回到主菜单,选Exit退出并保存,回到终端。 (不装njit-client可忽略)如果你的系统是Ubuntu,那么在编译之前必须执行此操作
sudo mv /usr/bin/pcap-config /usr/bin/pcap-config.bak
总之就是干掉pcap-config,否则编译会出错,就像这样 auth.c: In function ‘SendResponseIdentity’:
auth.c:432:11: error: invalid ‘asm’: invalid use of ‘%w’ 当时编译过不去真是折腾了好久,最后终于在这里看到了njit-client作者的解答。
之后就是编译了,执行 make V=99
其中“V=99”表示输出详细的debug信息,也可以直接执行make。 这个过程是漫长的,尤其是有时在下载一些位于国外服务器的源代码的时候,速度甚至<1kB/s(绝对不是我带宽的问题),这个各位就要做好心理准备了(也可以按Ctrl + C 中断编译,把那个下载很慢的文件链接拖到下载工具,下载回来之后放到 /工作目录/dl/ 下)。 有时候编译也会出错,根据我的经验这是由于更新了新的版本,而这个版本又有问题,连编译都不能通过( ⊙ o ⊙ ),我不是学编程的所以也没办法,只能等后续的bugfix,要么就回滚到旧的没问题的版本(我也试过更新了feeds然后某一个软件包有问题然后编译失败的),总之有的东西真的不是越新越好啊╮(╯-╰)╭
编译完成之后,在 /工作目录/bin/ 下就会生成刷机用的.bin文件,在packages/下有软件包的.ipk文件和。刷机方法就请自行百度了。 刷完之后重启路由,把电脑本地连接的ip改为192.168.1.x,然后在浏览器中进入192.168.1.1就进入LuCI了。然后在浏览器里设置一些东西,例如刚进去就要改密码、改WAN口的IP(学校给的)、DNS、网关(学校给的)、MAC地址(如果校园网绑定了MAC)、设置DHCP服务(设完之后可以把本地连接的手动ip改回自动获取,DNS好像要用学校给的DNS)、设置wifi什么的(PS.无线默认关闭),这里不再详述。
测试一下njit-client吧!在putty之类的里面执行 njit-client username password interface #改成自己的用户名密码 试试吧!其中[interface]是接口,例如eth0,eth1,一般是eth0,总之要对应你的WAN口,在luci里就可以查看,例如我就是eth0.2。
能连接上之后就做一个开机启动脚本吧~在路由器的 /etc/init.d/ 目录下建立一个自动运行脚本 njitclient,内容如下: #!/bin/sh /etc/rc.common start() { stop() { 之后运行命令 chmod +x /etc/init.d/njitclient #加上可执行属性
/etc/init.d/njitclient enable #开启开机自动运行
基本上就讲完了!!!Enjoy!openwrt功能太多了,各位有空可以慢慢研究~有什么问题欢迎在下面提出~
附ramips的njit-client下载:njit8021xclient_1.3-testing_ramips.zip ar71xx的:njit8021xclient_1.3-testing_ar71xx.zip 20130918更新:我加了华工的路由器研究群262939451之后,得知原来有部分宿舍的认证系统有所升级,用原来的客户端可能会有连不上的情况。针对这个问题,群里有高手修改过了源码,我编译了一下,也传上来供各位测试一下。我的使用情况是改不改都能正常使用的。 ramips:njit8021xclient_1.3_SCUT-testing_ramips.rar ar71xx:njit8021xclient_1.3_SCUT-testing_ar71xx.rar 20131116更新scutclient,对应新客户端: PS.使用遇到问题请到群262939451进行反馈,我什么都不知道╮(╯▽╰)╭ |
|