




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
【智能路由器】openwrt創(chuàng)建用戶軟件包openwrt根目錄先看看openwrt初次編譯好后的目錄結(jié)構(gòu):如上圖所示:arvik_note:本人更改軟件包記錄筆記,不必理會。include:存放*.mk文件build_dir:建立工具鏈時的臨時目錄,解壓、編譯、補丁等文件存放點staging_dir:工具鏈的安裝位置target:平臺相關(guān)代碼及配置文件dl:下載目錄,編譯期間從網(wǎng)上下載的數(shù)據(jù)包都會放在此目錄,數(shù)據(jù)包會解壓到build_dir目錄下package:包含了我們在配置文件里設定懂得所有編譯好的軟件包feeds:執(zhí)行./srcipts/feedsinstall后的緩存文件存放點bin:對應平臺編譯好的二進制文件以及相關(guān)ipk文件創(chuàng)建軟件包↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓以下內(nèi)容摘自官方WIKI↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓構(gòu)建方法openwrt靠Makefile文件來添加軟件,Makefile文件最關(guān)鍵,一般來說它提供了下載、編譯、安裝這個軟件包的步驟。這里Makefile的格式跟一般的Makefile不一樣,因為它的功能跟普通Makefile就是不一樣的。它是一種編寫方便的模板。以package/bridge/Makefile文件為例:include$(TOPDIR)/rules.mkPKG_NAME:=bridgePKG_VERSION:=1.0.6PKG_RELEASE:=1PKG_BUILD_DIR:=$(BUILD_DIR)/bridge-utils-$(PKG_VERSION)PKG_SOURCE:=bridge-utils-$(PKG_VERSION).tar.gzPKG_SOURCE_URL:=@SF/bridgePKG_MD5SUM:=9b7dc52656f5cbec846a7ba3299f73bdPKG_CAT:=zcatinclude$(INCLUDE_DIR)/package.mkdefinePackage/bridgeSECTION:=baseCATEGORY:=NetworkTITLE:=Ethernetbridgingconfigurationutility#DESCRIPTION:=Thisvariableisobsolete.usethePackage/name/descriptiondefineinstead!URL:=/endefdefinePackage/bridge/descriptionEthernetbridgingigurationutilityManageethernetbridging;awaytoconnectnetworkstogethertoformalargernetwork.endefdefineBuild/Configure$(callBuild/Configure/Default,--with-linux-headers=$(LINUX_DIR))endefdefinePackage/bridge/install$(INSTALL_DIR)$(1)/usr/sbin$(INSTALL_BIN)$(PKG_BUILD_DIR)/brctl/brctl$(1)/usr/sbin/endef$(eval$(callBuildPackage,bridge))軟件包變量建立一個軟件包不需要太多工作;大部分工作都隱藏在其它的makefiles中,編寫工作被抽象成對幾個變量的賦值。PKG_NAME-軟件包的名字,在menuconfig和ipkg顯示PKG_VERSION-軟件包的版本,主干分支的版本正是我們要下載的PKG_RELEASE-這個makefile的版本PKG_BUILD_DIR-編譯軟件包的目錄PKG_SOURCE-要下載的軟件包的名字,一般是由PKG_NAME和PKG_VERSION組成PKG_SOURCE_URL-下載這個軟件包的鏈接PKG_MD5SUM-軟件包的MD5值PKG_CAT-解壓軟件包的方法(zcat,bzcat,unzip)PKG_BUILD_DEPENDS-需要預先構(gòu)建的軟件包,但只是在構(gòu)建本軟件包時,而不是運行的時候。它的語法和下面的DEPENDS一樣。PKG_*變量定義了從何處下載這個軟件包;@SF是表示從sourceforge網(wǎng)站下載的一個特殊關(guān)鍵字。md5sum用來檢查從網(wǎng)上下載的軟件包是否完好無損。PKG_BUILD_DIR定義了軟件包源代碼的解壓路徑。注意到上面示例文件底部的最后一行嗎?這是最為關(guān)鍵的BuildPackage宏。它是在$(INCLUDE_DIR)/package.mk文件里定義的。BuildPackage宏只要求一個參數(shù),即要編譯的軟件包名,在本例中是”bridge”。所有其他信息都通過宏來獲得,這提供了一種內(nèi)在的簡潔性。比如BuildPackage需要軟件包的一大串描述信息,我們并不要向它傳遞冗長的參數(shù),因為我們已經(jīng)約定描述信息定義在DESCRIPTION宏,BuildPackage從里面讀取就可以了。BuildPackage相關(guān)的宏P(guān)ackage/描述軟件包在menuconfig和ipkg中的信息,可以定義如下變量:SECTION-軟件包類型(尚未使用)CATEGORY-menuconfig中軟件包所屬的一級目錄,如NetworkSUBMENU-menuconfig中軟件包所屬的二級目錄,如dial-in/upTITLE-軟件包標題DESCRIPTION-軟件包的詳細說明URL-軟件的原始位置,一般是軟件作者的主頁MAINTAINER-(optional)軟件包維護人員DEPENDS-(optional)依賴項,運行本軟件依賴的其他包Package/conffiles(可選)軟件包需要復制的配置文件列表,一個文件占一行Build/Prepare(可選)一組解包源代碼和打補丁的命令,一般不需要。Build/Configure(可選)如果源代碼編譯前需要configure且指定一些參數(shù),就把這些參數(shù)放在這兒。否則可以不定義。Build/Compile(可選)編譯源代碼命令。Package/install軟件安裝命令,主要是把相關(guān)文件拷貝到指定目錄,如配置文件。Package/preinst軟件安裝之前被執(zhí)行的腳本,別忘了在第一句加上#!/bin/sh。如果腳本執(zhí)行完畢要取消安裝過程,直接讓它返回false即可。Package/postinst軟件安裝之后被執(zhí)行的腳本,別忘了在第一句加上#!/bin/sh。Package/prerm軟件刪除之前被執(zhí)行的腳本,別忘了在第一句加上#!/bin/sh。如果腳本執(zhí)行完畢要取消刪除過程,直接讓它返回false即可。Package/postrm軟件刪除之后被執(zhí)行的腳本,別忘了在第一句加上#!/bin/sh。為什么一些定義是”Package/”前綴,另一些定義卻是”Build”前綴?這是因為我們支持一個特性:從單個源代碼構(gòu)建多個軟件包。OpenWrt工作在一個Makefile對應一個源代碼的假設之上,但是你可以把編譯生成的程序分割成任意多個軟件包。因為編譯只要一次,所以使用全局的”Build”定義是最合適的。然后你可以增加很多“Package/”定義,為各軟件包分別指定安裝方法。建議你去看看dropbear包,這是一個很好的示范。提示:對于所有在pre/post,install/removal腳本中使用的變量,都應該使用"$$"代替"$"。這是告訴make暫時不要解析這個變量,而是把它當成普通字符串以及用"$"代替"$$"。在編輯好Makefile文件,并放到指定目錄后,這個新的軟件包將在下次執(zhí)行makemenuconfig時出現(xiàn),你可以選擇這個軟件包,保存退出,用make編譯。現(xiàn)在就把一個軟件成功移植到OpenWrt中了!↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑以上內(nèi)容摘自官方WIKI↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑創(chuàng)建軟件包arvik_hello按照如下命令步驟:先建一個軟件集合的目錄arvik_appcd./packetmkdirarvik_app12在arvik_app目錄下建立arvik_hello目錄cd./arvik_appmkdirarvik_hello接著在arvik_hello中建立src目錄和Makefile文件cd./arvik_hellomkdirsrctouchMakefile該處Makefile文件內(nèi)容如下,可參照上面軟件包變量讀懂每句含義,在此不贅述。需要注意的是代碼里每行行末是沒有空格的,否則可能會出錯。好了,openwrt就靠這個Makefile來添加我們的arvik_hello軟件包了。##########################################author:arvik#email:1216601195@#csdn:/u012819339#########################################include$(TOPDIR)/rules.mkARVIK_APP_DIR:=arvik_appPKG_NAME:=arvik_helloPKG_VERSION:=1.0.0PKG_RELEASE:=1PKG_BUILD_DIR:=$(BUILD_DIR)/$(ARVIK_APP_DIR)/$(PKG_NAME)include$(INCLUDE_DIR)/package.mkdefinePackage/$(PKG_NAME)SECTION:=UtilitiesCATEGORY:=Arvik_ApplicationsTITLE:=aTestProgramofferbyarvikMAINTAINER:=arvikendefdefinePackage/$(PKG_NAME)/descriptionThisisatestprogramthatprovidesaMAkefiletemplate!endefdefineBuild/Preparemkdir-p$(PKG_BUILD_DIR)$(CP)./src/*$(PKG_BUILD_DIR)/endefdefineBuild/ConfigureendefdefinePackage/$(PKG_NAME)/install$(INSTALL_DIR)$(1)/usr/bin$(INSTALL_BIN)$(PKG_BUILD_DIR)/$(PKG_NAME)$(1)/usr/bin/endef$(eval$(callBuildPackage,$(PKG_NAME)))下面就進入src目錄來建立我們軟件源文件和Makefile文件了。cd./srctouchhello.ctouchMakefile123hello.c內(nèi)容如下:#include<stdio.h>intmain(){printf("arvikhelloworld!\n");return0;}此處Makefile文件內(nèi)容如下:##########################################author:arvik#email:1216601195@#csdn:/u012819339#########################################EXEC:=arvik_helloSRC:=hello.call:$(EXEC)$(EXEC):$(SRC)$(CC)$(CFLAGS)$(LDFLAGS)-o$@$(SRC)$(LDLIBS).PHONY:c
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2031年中國硫化新藍行業(yè)投資前景及策略咨詢研究報告
- 2025-2030年中國NVS市場需求預測與發(fā)展規(guī)劃研究報告
- 廣東省東莞市橫瀝莞盛校2024年中考猜題數(shù)學試卷含解析
- 2025班組安全培訓考試試題附完整答案(奪冠系列)
- 2024-2025管理人員崗前安全培訓考試試題附參考答案(輕巧奪冠)
- 2025生產(chǎn)經(jīng)營負責人安全培訓考試試題【歷年真題】
- 2025部門安全培訓考試試題答案AB卷
- 2024-2025公司廠級安全培訓考試試題附完整答案【歷年真題】
- 2024-2025公司安全管理員安全培訓考試試題及參考答案【考試直接用】
- 2025新員工入職安全培訓考試試題綜合題
- 中小學教師資格證面試課件講義
- 全國初中英語優(yōu)質(zhì)課大賽一等獎《八年級Unit 6An old man》說課課件
- 西班牙文化概況
- 云南省飲用水生產(chǎn)企業(yè)名錄534家
- 湖北地區(qū)醫(yī)院詳細名單一覽表
- 麥肯錫入職培訓第一課:讓職場新人一生受用的邏輯思考力新員工培訓教材
- 蘇霍姆林斯基教育思想-PPT課件
- 脊髓損傷康復評定治療PPT課件
- 啤酒貼標機畢業(yè)設計論文
- 金屬壓鑄機的plc控制
- 進制轉(zhuǎn)換(課堂PPT)
評論
0/150
提交評論