|
這個(gè)教程,簡(jiǎn)單地說是我一年以來(lái)的鼓搗成果,也是我對(duì)我baidu/google看過無(wú)數(shù)教程的一個(gè)大雜燴。我大一之前的那個(gè)暑假的時(shí)候在貼吧看了這個(gè)帖http://tieba.baidu.com/p/1621858667之后,燃起了我對(duì)openwrt路由器的激情。在看了很多很多個(gè)教程之后,我把我的心得匯總在這里,希望對(duì)各位有所幫助~PS.20130902更新:華工五山校區(qū)測(cè)試成功。
首先,最重要的,你需要有一個(gè)能刷openwrt的路由器。怎么知道自己的路由支不支持呢?請(qǐng)參看http://wiki./toh/start,右邊的Supported Hardware – Router type里面就是支持的,如下圖。簡(jiǎn)單地說,ROM必須≥4MB(假如有8MB+就最好了,4M的ROM挺苦逼的),RAM必須≥16MB才能刷入openwrt。 怎么刷機(jī)?不同的路由刷的方法也是不同的,所以請(qǐng)自行百度。刷機(jī)的風(fēng)險(xiǎn)也是不同的,有的刷變磚了要救回來(lái)比較難(我沒試過),有的怎么刷都能輕松刷回來(lái)……當(dāng)然你也可以去淘寶直接買一個(gè)刷好了的,反正也不貴。
刷機(jī)的固件怎么來(lái)?去openwrt官網(wǎng)下載是最方便的方法,不過這樣刷出來(lái)的不一定有LuCI(一個(gè)網(wǎng)頁(yè)圖形界面,貌似trunk沒有,Attitude Adjustment有?),只能用命令行的方法來(lái)管理;而且之后還要自己安裝njit-client及其依賴包,比較麻煩;此外,njit-client的交叉編譯問題也沒有解決。當(dāng)然也可以去各論壇上下載各大神編譯的固件,不過我這路由好像比較小眾,沒大神啊,只能靠自己了。 最重要的是,現(xiàn)在網(wǎng)上流傳的njit-client絕大多數(shù)都是1.2版的,都要libopenssl這個(gè)體積龐大的依賴包,直接導(dǎo)致了ROM剩余空間非常少的問題,所以下面我來(lái)講一下自己編譯openwrt固件和最新版的njit-client 1.3的方法~本文最后附上我編譯的ramips和ar7xxx的njit-client 1.3 的ipk下載。
我還裝了一些ipv6支持、QoS什么的還剩200多k空間 自己編譯看上去好像好高級(jí)的樣子 w(?Д?)w ,其實(shí)我也是一步一步看教程的o(* ̄▽ ̄*)o 以下內(nèi)容有相當(dāng)一部分參考了這里的教程。
一、準(zhǔn)備工作
二、編譯openwrt1.安裝subversion以獲取源代碼:在終端中運(yùn)行: $ 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)(注意這是二選一,有一個(gè)就夠了): svn co svn://svn./openwrt/trunk/ openwrt_trunk
4.更新下載和安裝擴(kuò)展軟件包:假設(shè)你的工作目錄為openwrt_trunk,進(jìn)入openwrt_trunk目錄: cd openwrt_trunk
feeds.conf.default復(fù)制一份命名為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 執(zhí)行了下面兩步之后還可以查看./package/scut/readme.html獲取更詳細(xì)的幫助 更新下載擴(kuò)展軟件包,并安裝它們到package/feeds/目錄: ./scripts/feeds update -a
./scripts/feeds install -a
5.配置openwrt現(xiàn)在開始配置OpenWrt,選擇你需要目標(biāo)平臺(tái),以及選擇將要編譯和添加進(jìn)固件的軟件包。運(yùn)行命令: make menuconfig
若回顯提示缺少軟件包或編譯庫(kù)等依賴,則按提示安裝所缺軟件包或庫(kù)等即可。 然后你就來(lái)到了這個(gè)界面: 這個(gè)配置界面跟Linux內(nèi)核的配置界面基本差不多,幾乎每一項(xiàng)都有3個(gè)選擇Y/M/N:
例如我的是D-LINK DIR-615 D4,到第一幅圖Support Hardware那里查詢對(duì)應(yīng)的Target和Platform,查到之后選擇對(duì)應(yīng)的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 之后就是選擇擴(kuò)展軟件包,按需要添加。
如果當(dāng)時(shí)svn下載的是trunk,默認(rèn)可能就沒有LuCI,那就要在feeds.conf后添加 src-svn luci http://svn.luci./luci/branches/luci-0.11/contrib/package 并執(zhí)行./scripts/feeds update -a 和 ./scripts/feeds install -a
其他的軟件包就按需要添加吧,注意不要太多(我可憐的4M ROM…),當(dāng)然如果你的路由能支持掛載U盤什么的那就更爽了(再也不擔(dān)心空間不夠了),這方面請(qǐng)自行百度。
好了,選完之后回到主菜單,選Exit退出并保存,回到終端。 (不裝njit-client可忽略)如果你的系統(tǒng)是Ubuntu,那么在編譯之前必須執(zhí)行此操作
sudo mv /usr/bin/pcap-config /usr/bin/pcap-config.bak
總之就是干掉pcap-config,否則編譯會(huì)出錯(cuò),就像這樣 auth.c: In function ‘SendResponseIdentity’:
auth.c:432:11: error: invalid ‘a(chǎn)sm’: invalid use of ‘%w’ 當(dāng)時(shí)編譯過不去真是折騰了好久,最后終于在這里看到了njit-client作者的解答。
之后就是編譯了,執(zhí)行 make V=99
其中“V=99”表示輸出詳細(xì)的debug信息,也可以直接執(zhí)行make。 這個(gè)過程是漫長(zhǎng)的,尤其是有時(shí)在下載一些位于國(guó)外服務(wù)器的源代碼的時(shí)候,速度甚至<1kB/s(絕對(duì)不是我?guī)挼膯栴}),這個(gè)各位就要做好心理準(zhǔn)備了(也可以按Ctrl + C 中斷編譯,把那個(gè)下載很慢的文件鏈接拖到下載工具,下載回來(lái)之后放到 /工作目錄/dl/ 下)。 有時(shí)候編譯也會(huì)出錯(cuò),根據(jù)我的經(jīng)驗(yàn)這是由于更新了新的版本,而這個(gè)版本又有問題,連編譯都不能通過( ⊙ o ⊙ ),我不是學(xué)編程的所以也沒辦法,只能等后續(xù)的bugfix,要么就回滾到舊的沒問題的版本(我也試過更新了feeds然后某一個(gè)軟件包有問題然后編譯失敗的),總之有的東西真的不是越新越好啊╮(╯-╰)╭
編譯完成之后,在 /工作目錄/bin/ 下就會(huì)生成刷機(jī)用的.bin文件,在packages/下有軟件包的.ipk文件和。刷機(jī)方法就請(qǐng)自行百度了。 刷完之后重啟路由,把電腦本地連接的ip改為192.168.1.x,然后在瀏覽器中進(jìn)入192.168.1.1就進(jìn)入LuCI了。然后在瀏覽器里設(shè)置一些東西,例如剛進(jìn)去就要改密碼、改WAN口的IP(學(xué)校給的)、DNS、網(wǎng)關(guān)(學(xué)校給的)、MAC地址(如果校園網(wǎng)綁定了MAC)、設(shè)置DHCP服務(wù)(設(shè)完之后可以把本地連接的手動(dòng)ip改回自動(dòng)獲取,DNS好像要用學(xué)校給的DNS)、設(shè)置wifi什么的(PS.無(wú)線默認(rèn)關(guān)閉),這里不再詳述。
測(cè)試一下njit-client吧!在putty之類的里面執(zhí)行 njit-client username password interface #改成自己的用戶名密碼 試試吧!其中[interface]是接口,例如eth0,eth1,一般是eth0,總之要對(duì)應(yīng)你的WAN口,在luci里就可以查看,例如我就是eth0.2。
能連接上之后就做一個(gè)開機(jī)啟動(dòng)腳本吧~在路由器的 /etc/init.d/ 目錄下建立一個(gè)自動(dòng)運(yùn)行腳本 njitclient,內(nèi)容如下: #!/bin/sh /etc/rc.common start() { stop() { 之后運(yùn)行命令 chmod +x /etc/init.d/njitclient #加上可執(zhí)行屬性
/etc/init.d/njitclient enable #開啟開機(jī)自動(dòng)運(yùn)行
基本上就講完了?。?!Enjoy!openwrt功能太多了,各位有空可以慢慢研究~有什么問題歡迎在下面提出~
附ramips的njit-client下載:njit8021xclient_1.3-testing_ramips.zip ar71xx的:njit8021xclient_1.3-testing_ar71xx.zip 20130918更新:我加了華工的路由器研究群262939451之后,得知原來(lái)有部分宿舍的認(rèn)證系統(tǒng)有所升級(jí),用原來(lái)的客戶端可能會(huì)有連不上的情況。針對(duì)這個(gè)問題,群里有高手修改過了源碼,我編譯了一下,也傳上來(lái)供各位測(cè)試一下。我的使用情況是改不改都能正常使用的。 ramips:njit8021xclient_1.3_SCUT-testing_ramips.rar ar71xx:njit8021xclient_1.3_SCUT-testing_ar71xx.rar 20131116更新scutclient,對(duì)應(yīng)新客戶端: PS.使用遇到問題請(qǐng)到群262939451進(jìn)行反饋,我什么都不知道╮(╯▽╰)╭ |
|
|
來(lái)自: simplelam > 《校園網(wǎng)》