openwrt下軟體包的編譯

2021-07-27 07:46:03 字數 1698 閱讀 6907

**:

首先進入原始碼包根目錄裡的package 建立個資料夾 自己起個名字

然後進入那個資料夾 建立makefile

注意: 一定要用linux文字編輯器建立 否則不認 或者用ultraedit轉換成unix換行符

檔案內容: (方括號為需要自己修改的內容)

include $(topdir)/rules.mk

pkg_name:=[軟體包名字 和資料夾名稱一樣]

pkg_version:=[軟體包版本 自己寫個]

pkg_release:=1

pkg_build_dir := $(build_dir)/$(pkg_name)

include $(include_dir)/package.mk

define package/$(pkg_name)

section:=utils

category:=[軟體包在menuconfig裡的位置 比如base system]

depends:=[依賴包 兩個之間通過空格分隔 前面加+為預設顯示 選中該軟體包自動選中依賴包 不加+為預設不顯示 選中依賴包才顯示]

title:=[標題]

pkgarch:=[平台 比如ar71xx 全部寫all]

maintainer:=[作者]

endef

define package/$(pkg_name)/description

[軟體包簡介]

endef

define build/prepare

endef

define build/configure

endef

define build/compile

endef

define package/$(pkg_name)/conffiles

[公升級時保留檔案/備份時備份檔案 乙個檔案一行]

endef

define package/$(pkg_name)/install

$(cp) ./files/* $(1)/

[安裝(編譯)時執行的指令碼 記得加上#!/bin/sh 沒有就空著]

endef

define package/$(pkg_name)/preinst

[安裝前執行的指令碼 記得加上#!/bin/sh 沒有就空著]

endef

define package/$(pkg_name)/postinst

[安裝後執行的指令碼 記得加上#!/bin/sh 沒有就空著]

endef

package/$(pkg_name)/prerm

[刪除前執行的指令碼 記得加上#!/bin/sh 沒有就空著]

endef

package/$(pkg_name)/postrm

[刪除後執行的指令碼 記得加上#!/bin/sh 沒有就空著]

endef

$(eval $(call buildpackage,$(pkg_name)))

複製**

然後在資料夾裡新建個files資料夾 把需要整合的東西一起扔進去(把files當作路由根目錄 

注意如果檔案有衝突需要在安裝前指令碼裡加入刪除命令

)ok 這樣就好了 進menuconfig選中軟體包編譯就行了 ipk在原始碼包根目錄的bin/[系列]/packages裡

附: 安裝前/後 刪除前/後的指令碼裡請用變數 如: $(cp) $(rm) 根目錄表示為$(1)

OpenWrt編譯軟體包

首先需要在虛擬機器上搭建好openwrt環境,具體可見我的另一篇文章 openwrt環境搭建和編譯過程 當然少數時候也需要我們自己進行編譯。我這邊以編譯snort nids 為例,列出編譯軟體包的步驟 編譯好交叉工具鏈的前提下 1 進入到openwrt主目錄。2 輸入如下命令 scripts fee...

openwrt之新增OpenWrt軟體包概述

新增軟體包 makefile引入檔案 openwrt 使用三個 makefile 的子檔案,分別為 include topdir rules.mk include include dir kernel.mk include include dir package.mk 由這些 makefile 子檔...

OpenWrt增加軟體包方法

更多參考 openwrt是乙個比較完善的嵌入式linux開發平台,在無線路由器應用上已有100多個軟體包。人們可以在其基礎上增加軟體包,以擴大其應用範圍。openwrt在增加軟體方面使用極其方便,按照openwrt的約定就可以很簡單完成。1 引入檔案 openwrt使用三個makefile的子檔案,...