


版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、技術文檔Li nksys WRT54G 使用指南vO.01blckst on e2009-7-111基本運行環(huán)境i.i硬件平臺1.1.1 Linksys WRT54G V4CPU 200MHz Broadcom BCM5352 chip rev0SDRAM: 16MFlash: 4M具體說明:.broadcom./products/Wireless-LAN/802.11-Wireless-LAN-Solutio ns/BCM5352ELThe BCM5352ELintegratesa high-performaneeMIPS32 processor, IEEE 802.11 b/g MAC/P
2、HY,SDRAMio ntroller,and a con figurable five-port Fast Ether net (FE) switch. The BCM5352ELprovides wireless LAN conn ectivity support ing data rates of up to 125 Mbps that is backward-compatible with sta ndard 802.11 b/g.The BCM5352EL supports a WAN conn ecti on via its con figurable media in terfa
3、ces. Theper-port programmable four-level priority queues enable QoS(IEEE 802.1p) for guaranteed bandwidth applications, DiffServ/TOS, and L2/L3 IGMP snooping. The IEEE 802.1Q VLAN allows flexible impleme ntati on of VLAN group ing and WAN port segregati on.特征200-MHz MIPS32 ? CPU core with 16-KB inst
4、ruction cache, 8-KB data cache, and 256-B prefetch cache and a Memory Man ageme nt Un it (MMU) for high-level Real-Time Operat ing System (RTOS) supportIn terfaces to BCM2050, a 2.4-GHz direct co nversio n radioThe BCM5352ELis a low-cost, high performanee system-on-chip(SoC) for residentialand small
5、 office, home office (SOHO) markets.Time-to-market is significantly reduced through stable Linux? and VxWorks ? kernels,board support packages (BSPs), drivers, and toolcha ins.1.2軟件平臺1.2.1 DD-WRT版本號:DD-WRT V24 (05/24/08) std - build 9526登錄時默認的用戶名密碼:root/admin.dd-wrt./dd-wrtv3/dd-wrt/about.htmlDD-WRT
6、 is a Linux based alter native Open Source firmware suitable for a great varietyof WLAN routers and embedded systems. The main emphasis lies on providi ng the easiest possible handling while at the same time supporting a great number of functionalities within the framework of the respective hardware
7、 platform used.The graphical user in terface is logically structured, and it is operated via a sta ndard Webbrowser, so eve n non-tech ni cia ns can con figure the system in only a few simple steps.Apart from the simple handling, speed and stability are also in the focus of our developme nt work. Co
8、mpared to the software prei nstalled on many WLAN routers, DD-WRT allows a reliable operati on with a clearly largerfun ctio nality that also fulfills thedema nds of professi onal deployme nt.The huge user commu nity gives support to DD-WRT developers and the users themselves in various ways. Thanks
9、 to this, potential flaws in the system can be detected very quickly and can thus be corrected without delay. DD-WRTusers can find help and suggestionsfromother users in the user forums, and the Wiki containing further in formati on and how-to guides is being expa nded and maintained by the DD-WRT c
10、ommu nity as well.For devices mainly used for private purposes, DD-WRTs freely available. Platforms used for commercial purposes require a paid license. Compared to the freely available version, the professi onal vers ion also allows for con figurati on of the WLAN parameters, thusope ning up the op
11、portu nityof creati ng e.g. reliable and powerful n etworkinf rastructures. Special dema nds can be fulfilled by specifically tailored vers ions of DD-WRT.Mai n characteristics:supports more tha n 200 differe nt devicescomprehe nsive fun cti on alitysupports all curre nt WLAN sta ndards (802.11a/b/g
12、/n*)supports outdoor deployme nt*supports enhan ced freque ncies *VPN in tegrationsupports various Hotspot systemsban dwidth man ageme ntmultil in gual user in terface*appropriate WLAN hardware requiredDD-WRT is:Sebastia n Gottschall (Bra in Slayer, foun der, main developer)Christian Scheele (Chris,
13、 CEO)Peter Steinh ? user (CEO)An kush Malhotra (Maksat)Ales Majdic (Eko, Developer)Sylva in Bothorel (Botho, router webdesig n)Felix Fietkau (n bd/ope nwrt, madwifi)Elke Scheele (Online Shop)Markus Quin t (support). and alot of supporters arou nd the world交叉編譯: 編譯器和所用頭文件和庫文件對此,我寫好了一個 makefile專門用來進行交
14、叉編譯。但是目前只能進行靜態(tài)編譯,即將所有 的庫文件成一個可執(zhí)行文件,而不能使用動態(tài)! 原因可能是因為目標機器上的運行的系統中所包含的動態(tài)庫與交叉編譯環(huán)境中的動態(tài)庫版本不 同,應該考慮將版本換成同樣的動態(tài)庫后,再次進行編譯!此外為了方便調試, 可以讓目標機器掛載編譯環(huán)境中的samba服務提供的共享文件, 從而方便目標機器與交叉編譯機器之間共享文件!在目標機器上,編譯的核使用的版本是2435 , gcc版本是346, openwrt-2.0目標機器類型是:mipsel架構(LIL_ENDIAN)假設交叉編譯環(huán)境安裝在/opt/ope nwrt/目錄下CC=/opt/ope nwrt/bi n/m
15、ipsel-li nux-gccCFLAGS=-I /opt/ope nwrt/i ncludeLDFLAGS=-L /opt/ope nwrt/lib-Host=mipsel-li nux-prefix=/opt/ope nwrt1.2.2 OpenWrtOpenWrt是用于嵌入式設備的 Linux發(fā)行版。比起試圖創(chuàng)建單一的、靜態(tài)固件,OpenWrt則是提供一個包含有包管理功能的全套可寫的文件系統。這就可以使用用戶從產品選擇和配置中解放岀來,使得用戶自己可以定制其所需的軟件。對于開發(fā)人員來說, Ope nWrt是一種編譯程序的框架,其不需要有完整的固件。對用戶來說,這 就意味著完全的可定制,
16、其可按照自己的想法來隨意使用設備。1.3配置路由器通過web界面管理路由器路由器默認的網絡參數如下:web管理入口:用戶名密碼:root/adm in通過web界面可進行常規(guī)的參數配置。建議所以配置均通過 web界面進行,因為其可以自動保存有關參數。132通過tel net管理路由器可通過如下命令登錄到路由器的teln et服務:用戶名密碼與 web管理界面相同。通過telnet登錄到路由器后,就獲得了一個shell,通過該shell就可以像使用普通linux系統一樣操作該路由器了。1.4特色功能列舉掛載samba共享目錄要以通過web管理界面或telnetl 界面,設定路由器掛載網絡中的共享
17、文件目錄。從而在路由器中就可以像使用本地目錄一樣使用遠程目錄。2編譯運行新程序2.1尋找OpenWrt-2.0編譯環(huán)境2.1.1 為什么要找 OpenWrt-2.0通過登錄到路由器查看核的版本號發(fā)現:cat /proc/vers ion發(fā)現當前路由器所使用的固件的編譯器版本是,對應openwrt-2.0 。為了使新編譯的程序可以使用路由器上的動態(tài)庫。我們需要使用ope nwrt-2.0 這樣的編譯環(huán)境。2.1.2 Vhiterussian系列發(fā)現均是 OpenWrt-1.02.1.3 Kamikaze 系列找到 ,即 OpenWrt-2.02.2搭建交叉編譯環(huán)境221搭建可用主機環(huán)境安裝好可以
18、編譯的主機環(huán)境,并在上面安裝好相應的Apache2服務、samba服務等,方便后繼的與路由器的數據交換!獲取交叉編譯工具鏈從.ope 獲取較新交叉編譯工具環(huán)境。對于本路由器的一可用的較新版本是:ope nwrt2.0下載地址為dow nl oads.ope /kamikaze/7.09/brcm-2.4/Ope nWrt-SDK-brcm-2.4-for-Li nux-i686.tar.bz2解壓后即可獲得所需要交流編譯工具集。一般可形成如下目錄結構:Opt/ope nwrt2/b inOpt/ope nwrt2/i ncludeOpt/ope nwrt2/li
19、bOpt/ope nwrt2/etc等等。其中ope nwrt2目錄中包含的就是對應交叉編譯工具鏈(編譯工具、標準庫等)。交叉編譯的標準的Makefile對于將要進行交叉編譯的源代碼來說,可將對應源代友目錄復制到opt目錄中,然后修改其Makefile 。#指明opt目錄的相對位置:ROOT=.#指明最后要生成的目標:TARGET= target#指明生成最終目標所需的中間文件:OBJS= file1.o file2.o file3.o#指定用的交叉編譯工具鏈:CC=$(ROOT)/ope nwrt2/b in/mipsel-i nux-gccLD=$(ROOT)/ope nwrt2/bi n
20、/mipsel-li nux-gccCFLAGS = -I $(ROOT)/ope nwrt2/i ncludeLDFLAGS = -L $(ROOT)/ope nwrt2/lib指定編譯:.c.o:$(CC) $(CFLAGS) - c - o $ $A$(TARGET):$(OBJS)$(LD) $(LDFLAGS) - o $ $a#指定常用的依賴:.ph on ey: all clea n in stallAll: $(TARGET)Clea n:Rm - rf $(TARGET) $(OBJS)In stall: $(TARGET)Sudo cp $(TARGET) /var/Sud
21、o chmod 644 /var/$(TARGET)編譯安裝運行在目標路由器上可以使用:#wget hostname/target將編譯好的目標下載到路由器上,從而可以在路由器本地上執(zhí)行!除使用HTTP服務來傳遞數據外,還可以在主機系統上建立Samba服務,而在路由器上掛載該samba服務的方式來實現數據共享!2.3對認證程序進行交叉編譯獲取認證程序使用我自己寫的 HustSupplica nt認證程序。該認證程序的認證邏輯非常清晰,主要認證機制全部分析清楚透徹。因此對于將來的維護、修改、擴充等非常有利。另外,本HustSupplicant不依賴其它特定的包,一般是只使用標準C函數。這可以降低
22、程序移植的難度和工作量。232交叉編譯如前一節(jié)所提到的,對其Makefile進行交叉編譯的改造。233運行測試問題一:發(fā)送了認證主播包,但是無任何響應。在檢查網線、代碼基本無問題之后,我大概判斷原因是來自于認證交換機所使用的組播模式為非標準的802.1X組播模式。我將認證模式由標準模式更換為Shida私有組播模式后,即可岀交換機對認證的響應包。這個問題似乎并沒有得到解決!因為我在實驗室里可以認證成功,而回到寢室里就又岀現同樣的情況。我把認證模式進行更改也沒有作用!這到底是何原因?昨天我回寢室,使用wireshark來監(jiān)測數據包的發(fā)送。發(fā)現只要使用的組播地址是標準的802.1x組播地址,則該組播
23、幀似乎就被交換機給屏蔽了。這可能就是原因吧。但新的問題是交換機是如何屏蔽的?怎么關閉此屏蔽?.right.c n/forum/archiver/tid-19379.html你要真想上802.1X 認證的話,不是所有的機器都支持的。我手上用的是 Li nksys WRT54GS v1.0手上的另外兩個 Buffalo WHR-G125 和Buffalo WHR-HP-G54 都不行說來話長,Broadcom的交換機驅動里面有一個BUG,導致802.1x 網絡包無法發(fā)送。只有使用ADM6996交換芯片的機器才能支持802.1X 認證,否則會失敗。據我所知目前使用這個芯片的機器只有Linksys W
24、RT54G/GS 系列的前兩個版本,還有Moto WR850G v2 ,DellTrueMobile 2300的某一個版本,其它的都不行了。包括BCM5325獨立交換芯片或者是像BCM5354這樣集成交換芯片的,都不行。問題二:認證的回饋信息中有中文亂碼學校的網絡中心對認證請求的反饋中,若含有信息,則一般都是中文的,而且其編碼似乎是GB2312。若我們想正確顯示這些信息,則可以使用putty來登錄目標路由器的 Tel net服務,并將putty的選項windows中的translation的字符集輸入為 CP936。然后再次登錄到路由器進行認證,此時可以得到正確的反饋信息。問題三:認證客戶端版
25、本過低在寢室里一般不會有這相問題,使用較低的2.39版論證程序即可。但是在光電國家實驗室這邊的網絡中,似乎交換機較新,因此其對認證程序的版本就有一定要求。經過測試,發(fā)現在實驗室里認證的版本至少為3.05可以通過修改hs.co nf配置文件,來修改 HustSupplica nt 所模擬的認證版本。問題四:無法從主機系統上下載目標二進制文件有幾點需要注意:主機系統的web服務文件中需要檢測目標文件的權限,特別是對于其它用戶需要有讀權限。若某個文件的其它人讀權限沒有打開,則顯然通過web是訪問不了的。建議文件命名都使用小寫文件名稱不宜過長。234待改進的地方部分算法是采用計算的方式而不是查表的方式
26、,這對于路由器的 CPU來說可能是負擔。因此在這方面應該進行減負!認證程序不能在路由器上永遠保存,一掉電或重啟則認證程序就丟掉了。要想再次使用就必須重新從主機系統中下載。另外認證程序還不能自動獲得當前運行環(huán)境中的指定網卡的IP信息和掩碼信息。3編譯配置新固件3.1 介紹 OpenWrt Buildroot3.1.1 關于 OpenWrt BuildrootOpenWrt Buildroot 是一組Makefiles 和補丁文件,這些文件可以使用用戶很容易的生成交叉編譯toolchain 以及用于 Wireless Router的根文件系統。交叉編譯工具鏈使用的一種小型的C標準庫: uClibc
27、 , .編譯工具鏈是一組工具集,這些工具集可以使你為你的系統編譯代碼。其一般包括如下幾個部分:編譯器,如gcc二進制工具,如匯編器、器C 標準庫,如 GNU Libc, uClibc, dietlibc安裝在你自己的開發(fā)環(huán)境中的系統,本身已經帶了一組編譯工具鏈,可以編譯生成能在你自己的機器架構上運行的二進制文件。如果你使用的是pc,則你的編譯工具鏈是運行在X86處理器,其生成的代碼也是基于X86處理器的。在大多數的Linux系統中,編譯工具鏈使用的C標準庫是GNU libc。這樣的編譯工具鏈系統稱為"host compilation toolchain”。編譯工具
28、鏈所運行的系統,就被稱之為"host system ”。這樣主機編譯工具鏈是由你的發(fā)行版提供的,openwrt不會對其做任何事情。就像上面說的,運行在你自己系統上的編譯工具鏈生成的二進制可執(zhí)行文件是運行在你自己主機 系統上處理器上的。而對于具有不同處理器結構的嵌入式系統,你就需要交叉編譯工具鏈:運行在你主機系統上的編譯工具鏈,但是其生成的代碼是用于目標系統(目標處理器)。比如,如果你的主機系統使用的是 X86,而你的目標系統是 MIPS,則通常的運行在你主機上的X86編譯工具鏈編譯生成的代碼是用于X86,而運行于X86的交叉編譯工具鏈則生成用MIPS的代碼。在你可以手運編譯岀gcc,
29、b in utils, uClibc及其它一些具時,你或許會問為什么會需要這樣的工具鏈?當然,這樣是可行的,不過,處理這樣的編譯過程和配置過程是非常消耗時間及枯燥的。Ope nWrt Buildroot可以使用 Makefiles 及各種版本的 gcc及bin utils的補丁文件來自動處理這個過程,使生成的交叉編譯工具鏈可以在Wireless Router 的MIPS架構上正常工作。3.1.2 獲取 OpenWrt Buildroot通過svn可以獲取相應的 OpenWrt:對于各種OpenWrt開發(fā),可以使用如下命令獲取最新的版本:$sv n co n.ope /ope n
30、wrt/tru nk/如果你只需要創(chuàng)建自定義的固件映像及包,我們推薦你使用穩(wěn)定版本:$ svn co n. ope /ope nwrt/bra nches/whiterussia n/3.1.3 使用 OpenWrt BuildrootOpenWrt的配置界面和 Linux核配置(. )及busybox (. )的配置界面類 似。特別提醒是編譯配置 OpenWrt只需要是通常用戶就可以了,不需獲取root權限。編譯的過程如下:配置$make menuconfig在配置選項中的每一項,你都可以獲得相關的幫助來了解對應條目的作用。當配置完成
31、,將自動生成.config 文件,以保存配置參數。隨后Makefile將會使用到.config 中的配置參數。編譯$make該命令將會下載、配置及編譯選擇的所用的工具,最終生成目標固件以及一些額外的工具包。生成的所有目標文件都可以在bin/子目錄中找到。你編譯的固件映像可以包含兩種不同的文件系統類型。Jffs2。Jffs2 包含一個可寫的根文件系統,它可以擴展你的flash映像的大小。注意:如果你使用通過的固件映像,你需要為你的flash的大小挑選正確的映像,因為其不同的eraseblock 大小。Squashfs。Squashfs包含一個只讀的文件系統,其為對使用了LZMA壓縮的squash
32、fs 文件系統的修改版本。當引導時,你可以創(chuàng)建可寫的二級文件系統,它可以保存你對根文件系 統的修改,包括你所安裝的軟件包。定制目標文件系統當前有兩種方式可以定制最終的目標文件系統:直接定制目標文件系統,然后重編譯映像。目標文件系統所在目錄是build_ARCH/root/ ,這里ARCH是選定的目標板的體系結構,通常是mipsel。你可以在這里做些簡單的修改,之后使用maketargetnstall來重新構建目標文件系統。該方法可以目標文件系統做任何事情,不過如果你決定重構我的工具鏈、工具或包,則這些修改會丟掉。定制目標文件系統的綱要,通過package/base-files/default/
33、.。你可以在這里定制配置文件及其它事情。不過整個文件系統的層次結構還不存在,因為其是在編譯過程中生成的。因此你不能對這個目標文件系統綱要進行任意修改,不過若你做了修改,則這些修改在重新編譯時不會丟掉。定制Busybox配置Busybox是可定制的,你可以根據自己的需要對其進行定制。其配置界面已經集成到了系統的主配置界面中。你可以在"Ope nWrt Package Selecti on” 中的"Busybox Con figuration ” 找到。定制uClibc配置就像BusyBox 一樣,uClibc也提供了許多的配置選項。你可以根據自己的需要及條件限制,來 選擇各種
34、各樣的功能。修改uClibc最簡單的方式如下:(1)在沒有對uClibc進行任何配置的情況下進行一次buildroot 編譯改變當前目錄到 toolchain_build_ARCH/uClibc/目錄,然后運行 make menuconfig.可以根據配置界面進行配置。將 .config文 件 復制至 Utoolchai n/uClibc/uClibc.c onf或者toolchai n/uClibc/uClibc.c on f-locale。當你在busybox的配置選項中未選擇locale時使用前者,若選擇了則使用后者。重新運行編譯當然,你也可 以直接修改toolchai n/uClibc
35、/uClibc.c onf或toolcha in/uClibc/uClibc.c on fig-locale,而不需要運行配置助理。是如何工作的前面提到,Ope nWrt基本上是一組 Makefiles,其可下載、配置以及使用正確的選項進行編譯。 它同樣包含了一些軟件的補丁,主要是用于交叉編譯工具鏈的補丁。每一個軟件都有一個Makefile,般被命名為“ Makefile ”。每個 Makefile 有三個小節(jié):Package小節(jié)(在package/目錄):包含用于編譯用戶空間工具的文件及Makefile,這些工具可以被加入到目標文件系統中。每個子目錄代表一種工具。target小節(jié)(在targ
36、et目錄):包含與目標文件系統的映像和Linux核生成相關的軟件和Makefiles 。支持兩種文件系統:jffs2 和squashfs.在每一個目錄中,至少包含兩個文件:Makefile :下載、配置、編譯及安裝軟件的Makefiles.Con fig.in :配置工具描述文件的一部分。它描述了與當前軟件相關的選項。主Makefile按序做如下工作(當配置完成以后):(1)創(chuàng)建下載目錄(默認為dl/ )。該目錄是壓縮包所下載的目錄,可以通過將其保存起來以避免再次下載。 創(chuàng)建build目錄(默認為 build_ARCH/,ARC雇目標端的架構)。該目錄用于編譯用戶空間 的工具。(3)創(chuàng)建too
37、lchain 編譯目錄(默認為toolchain_build_ARCH/)。該目錄用于編譯交叉工具鏈。 配置staging目錄(默認為 staging_dir_ARCH/ )。交叉編譯工具鏈將要安裝在該目錄。如 果你需要使用同樣的交叉編譯工具來編譯第三方軟件,那么你可以將stagi ng_dir_ARCH/添加到你的PATH環(huán)境變量中,然后就可以通過arch-li nux-gcc來編譯程序了。為了正確的配置該stagi ng 目錄,該目錄會首先被刪除,然后再創(chuàng)建里面的子目錄和文件、符號文 件等。(5)創(chuàng)建target目錄(默認為build_ARCH/root/)以及目標文件系統的綱要結構。該目
38、錄將會包含最終的目標根文件系統。為了建立該目錄,其會首先被刪除,將后將 target/default/target_skelet on位置的綱要復制過去,最后刪除無用的SVN/目錄。(6)調用 toolcha in, package, target等子目錄中的 prepare, compile, in stall等 make 目標使用uClibc工具鏈你可能需要交叉編譯自己的程序,這時你可使用 Buildroot 生成的交叉編譯工具鏈。 該工具位于stag in g_dir_ARCH/目錄。使用其最簡單的方式是將路徑stagi ng_dir_ARCH 加入到PATH環(huán)境變量中,然后使用 arc
39、h-l in ux-gcc, arch-l in ux-objdump, arch-l in ux-ld等等即可。比如,你可以將如下語句添加到你的.bashrc 文件中(假設用于MIPS架構的 Buildroot 位于/openwrt/ ):export PATH=$PATH:/ope nwrt/stag in g_dir_mipsel/b in/之后就可以簡單的使用如下命令進行交叉編譯:$ mipsel-li nux-uclibc-gcc -o foo foo.c在其它地方使用uClibc工具鏈默認情況下交叉編譯工具鏈是生成在目錄staging_dir_ARCH/目錄中。如果你需要將其轉換到
40、其它目錄,則不可以直接復制,應該通過對Buildroot 進行配置,即在"Build opti ons”選項中的"Toolchain and header file location”中指定其位置。3.1.10 下載的軟件包的位置默認情況下下載的軟件都位于/dl目錄中。3.1.11 擴展OpenWrt使用更多的軟件本小節(jié)主要是考慮你想加入更多的用戶空間的軟件,以加入軟件包foo為例:(1) 創(chuàng)建foo目錄在package/目錄中創(chuàng)建你的軟件包所對應的目錄。創(chuàng)建foo/c on fig. in文件創(chuàng)建config.in文件。該文件將包含對foo軟件的配置選項,而這些選項將會顯
41、示在配置工具中。其容應該基本包含:config BR2_PACKAGE_FOOtristate "foo - some nice tool"default m if CONFIG_DEVELhelpThis is a comme nt that expla ins what foo is.如果該foo軟件還依賴于 Buildroot中的其它軟件或庫,則在config.in中自動選擇好這些軟件將會非常重要。例如,fool依賴于bar庫,則:config BR2_PACKAGE_FOOtristate "foo - some nice tool"defaul
42、t m if CONFIG_DEVELselect BR2_PACKAGE_LIBBARhelpThis is a comme nt that expla ins what foo is.當前用戶也可以加入其它一些配置參數。(3)修改 package/config.in為了使你的軟件包能加入到配置工具中,你還需要修改package/c on fig.i n文件:comme nt "Networki ng"source "package/foo/C on fig.i n" 修改 package/Makefile要將你的軟件包 foo添加到編譯的過程中,需要
43、對package/Makefile進行修改:package-$(BR2_PACKAGE_FOO) += foo除了默認的依賴關系外,若你的軟件包還依賴于其它軟件,則添加:foo-compile: bar-compile(5) ipkg控制文件此外還需要創(chuàng)建一個控制文件用以包含你的軟件包的信息,這些信息將被ipkg工具使用。該文件應該以這樣的形式:package/foo/ipkg/foo.c ontrol文件的容如下:1 Package: foo2 Priority: opti onal3 Secti on: net4 Maintainer: Foo Software vfoofoosoftwa
44、re.5 Source: foosoftware.6 Depe nds: libbar7 Descripti on: Package Descripti on你可 以忽略通常的Version 和 Architecture 域,因為它們的容將會由Makefile 調用 make-ipkg-dir.sh 腳本自動創(chuàng)建。其中Depends域非常重要,這樣ipkg工具將會在目標系統上自動獲取所有依賴軟件。(6) Makefile 實例最后是最難的部分,創(chuàng)建Makefile。它包含了 Makefile的規(guī)則,負責處理下載、配置、編譯、安裝軟件,下面是一個例子:1 # $Id: buildroot-doc
45、umentation.html 2860 2006-01-08 02:17:18Z wbx $22 in clude $(TOPDIR)/rules.mk43 PKG_NAME:=foo4 PKG_VERSION:=1.07891011121314151617181920212223242526272829303132333435PKG_RELEASE:=1PKG_MD5SUM:=4584f226523776a3cdd2fb6f8212ba8dPKG_SOURCE_URL:=./dow nloadsPKG_SOURCE:=$(PKG_NAME)-$(PKG_VER
46、SION).tar.gzPKG_CAT:=zcatPKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-i nstallin clude $(T OPDIR)/package/rules.mk$(eval $(call PKG_template,FOO,foo,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)$(PKG_BUILD_DIR)/.c on figured: $(PKG_BUILD_DIR)/.prepared(cd $(PK
47、G_BUILD_DIR); $(TARGET_CONFIGURE_OPTS) CFLAGS="$(TARGET_CFLAGS)" ./c on figure -target=$(GNU_TARGET_NAME) -host=$(GNU_TARGET_NAME) -build=$(GNU_HOST_NAME) -prefix=/usr -sysc on fdir=/etc -with-bar="$(STAGING_DIR)/usr" );touch $(PKG BUILD DIR)/.built:36rm -rf $(PKG_INSTALL_DIR)37
48、mkdir -p $(PKG_INSTALL_DIR)38 $(MAKE) -C $(PKG_BUILD_DIR) 39 $(TARGET_CONFIGURE_OPTS) 40 in stall_prefix="$(PKGN STALL_DIR)" 41 all in stall42 touch $4343 $(IPKG_FOO):46 in stall -d -m0755 $(IDIR_FOO)/usr/sb in47 cp -fpR $(PKGN STALL_DIR)/usr/sbi n/foo $(IDIR_FOO)/usr/sb in49 $(RSTRIP) $(I
49、DIR_FOO)50 $(IPKG_BUILD) $(IDIR_FOO) $(PACKAGE_DIR)5151 mostlyclea n:52 make -C $(PKG_BUILD_DIR) clea n53 rm $(PKG_BUILD_DIR)/.built這個Makefile是用于單個二進制軟件的相關工作。對于其它的軟件如庫或復雜軟件系統,則應 該參照其它軟件包的Makefile 進行修改。從515行,定義了一組非常有用的變量:PKG_NAME軟件包的名字PKG_VERSION應該下載的軟件包的版本號PKG_RELEASEt 行號PKG_MD5SUM:md較驗值PKG_SOURCE_U
50、F下:載的地址完全路徑,可以使用HTTP或FTP。PKG_SOURC下載的軟件包的全名PKG_CAT提取軟件包所需要的工具PKG_BUILD_DIR軟件將會編譯和配置的目錄PKGN STALL_DIR軟件將要安裝的目錄。packageIn Line 3 and 17 we in clude com mon variables and routi nes to simplify the process ofipkg creation. It includes routines to download, verify and extract the software archives.Li ne
51、19 contains the magic line which automatically creates the ipkg for us.Lines 21-33 defi nes a target and associated rules that con figures the software. It depe nds on the previous target (the hidde n .prepared file) so that we are sure the software has bee n un compressed. In order to con figure it
52、, it basicallyruns thewell-k nown ./c on figurescript. As we may be doing cross-compilati on, target, host and build arguments are given. The prefix is also set to /usr, not because the software will be in stalledin /usr on your host system, but in the target filesystem.Fin allyit createsa .con figu
53、red file to mark the software as con figured.Lines 35-42 defi nes a target and a rule that compiles the software. This target will create the bi nary file in the compilati on directory, and depe nds on the software being already con figured (he nee the refere nee to the .con figured file). Afterward
54、s it in stalls the result ing bi nary into the PKG_INSTALL_DIR. It basically runs make in stall in side the source directory.Lines 44-50 defines a target and associated rules that create theipkg package, whichcan opti on allybe embedded into theresult ing firmware image.It man ually in stalls allfil
55、es you want to integrate in your resulting ipkg. RSTRIP will recursevily strip all bin aries and libraries. Fin ally IPKG_BUILD is called to create the package.3.1.12 Ope nWrt核模塊創(chuàng)建本小節(jié)將主要介紹如何進行OpenWrt的核模塊的創(chuàng)建,使其成為安裝成為ipkg。(1) 啟用核選項可以通過修改 build_mipsel/li nux/.co nfig來啟用相應核選項,或者通過如下命令:$ cd build_mipsel/
56、li nux$ make menuconfig之后可以將.config文件進行備份,這樣配置的參數就不會在make dirclean后丟失。(2) 創(chuàng)建一個buildroot 的選項可以通過悠 taget/li nux/c on fig.i n來創(chuàng)建一個 buildroot 選項:config BR2 PACKAGE KMOD USB KEYBOARDtristate "Support for USB keyboards"default mdepe nds BR2_PACKAGE_KMOD_USB_CONTROLLER(3) 定義核模塊的二進制文件通過修改target/linux/linux-2.4/Makefile來定義二進制文件:$(eval
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學年高中化學第一章第二節(jié)原子結構與元素的性質第2課時元素周期律一教案新人教版選修3
- 2024-2025學年新教材高中化學第一章章末整合提升教案新人教版必修第一冊
- 2024-2025學年高中政治課時分層作業(yè)5消費及其類型含解析新人教版必修1
- 2025年蒸餾單甘酯項目可行性研究報告
- 2024-2025學年高中物理第三章牛頓運動定律第4節(jié)牛頓第三定律課時作業(yè)含解析教科版必修1
- 2025年雙頭機械器研磨機項目投資可行性研究分析報告-20241226-203722
- 2025年中國無線網橋行業(yè)市場運營現狀及投資規(guī)劃研究建議報告
- 稀土永磁材料項目可行性研究報告建議書
- 2024-2030年中國電動病床行業(yè)市場深度研究及投資戰(zhàn)略規(guī)劃報告
- 2023-2029年中國荷蘭豆種植行業(yè)發(fā)展監(jiān)測及投資前景展望報告
- 2025年度光伏電站光伏組件回收處理合同示范文本
- 2025年春季少先隊工作計劃及安排表(附:少先隊每月工作安排表)
- 中央2025年公安部部分直屬事業(yè)單位招聘84人筆試歷年參考題庫附帶答案詳解
- 《教育強國建設規(guī)劃綱要(2024-2035年)》全文
- 2025年春新人教PEP版英語三年級下冊全冊教學課件
- 體育老師籃球說課
- 浙江省金華市義烏市2024年中考語文二模試卷含答案
- GB/T 45015-2024鈦石膏綜合利用技術規(guī)范
- 2025-2025學年度第二學期仁愛版七年級英語下冊教學計劃
- 車站信號自動控制(第二版) 課件 -2-室外設備接口電路
- 國開電大、普通本科、成考畢業(yè)論文-《電子商務對傳統零售業(yè)的影響及其對策》(電子商務專業(yè))
評論
0/150
提交評論