openwrt之新增OpenWrt軟體包概述

2021-08-19 04:17:02 字數 2311 閱讀 7683

新增軟體包

makefile引入檔案

openwrt 使用三個 makefile 的子檔案,分別為:

include $(topdir)/rules.mk 

include $(include_dir)/kernel.mk

include $(include_dir)/package.mk

# 由這些 makefile 子檔案確立軟體包加入 openwrt 的方式和方法

編寫軟體包基本資訊
軟體包的資訊均以 pkg_開頭: 

pkg_name 表示軟體包名稱,將在 menuconfig 和 ipkg 可以看到。

pkg_version 表示軟體包版本號。

pkg_release 表示 makefile 的版本號。

pkg_source 表示源**的檔名。

pkg_cat 表示源**檔案的解壓方法。包括 zcat, bzcat, unzip 等。

pkg_build_dir 表示軟體包編譯目錄。它的父目錄為$(build_dir)。如果不指定,預設為$(build_dir)/$( pkg_name)/$( pkg_version)。

編譯包定義

應用程式和核心驅動模組的定義不一樣。應用程式軟體包使用 package,核心驅動模組使用 kernelpackage。

應用程式編譯包的定義

應用程式的編譯包以 package/開頭,然後接著軟體名,在 package 定義中的軟體名可以與軟體包名不一樣,而且可以多個定義。

核心驅動模組包的定義

linux 分為核心空間和使用者空間。開發者開發的核心部分可以直接加入 linux 的 kernel程式,也可以生成核心模組以便需要時裝入核心。openwrt 一般希望開發者生成核心模組,在 linux 啟動後自動裝載或手工使用 insmod 命令裝載。核心模組使用 kernelpackage 開頭,其他與一般應用軟體包基本相同。

使用定義

完成前面定義後,必須使用 eval 函式實現各種定義。其格式為:

# 對於一般應用軟體包

$(eval $(call package,$(pkg_name)))

# 對於核心驅動模組

$(eval $(call kernelpackage,$(pkg_name)))

例項這裡列舉 widora 的 web配網頁的驅動

#

#this is free software, licensed under the gnu general public license v2.

see /license for more information.

#include $(topdir)/rules.mk

pkg_name:=webui

pkg_release:=1

pkg_build_dir:=(build_dir)/(pkg_name) #使用(pkg_name)只是做乙個標示,並非真正使用(pkg_name)

pkg_install_dir:=$(pkg_build_dir)/ipkg-install

include $(include_dir)/kernel.mk

include $(include_dir)/package.mk

define package/webui

section:=ralink sdk mango #包的型別

category:=ralink sdk mango #表示分類,在 make menuconfig 的選單下將可以找到

title:=setwifi by web #軟體包簡短描述

depends := #與其他軟體的依賴

endef

define package/webui/description #軟體包的詳細描述

this package provides uci for wifi configuration.

endef

define build/prepare #編譯準備方法

echo

endef

define build/compile #編譯方法

echo

endef

define package/webui/install

#軟體包的安裝方法

$(install_dir) $(1)/www/

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

endef

(eval (call buildpackage,webui)) #使用 eval 函式實現各種定義

openwrt 新增web介面

要給自己的開發板新增上 web 介面,只需要在 openwrt原始碼中,將 luci 配置進去即可。首先進入 openwrt原始碼頂層目錄,然後執行 make menuconfig 命令。sz yy szyy pc home linux openwrt trunk make menuconfig 然...

OpenWRT新增 crontab開機預設執行

openwrt系統預設已經新增了crond,只是沒有配置預設配置引數,致使服務起不來。1.修改啟動指令碼 etc ini.d cron etc rc.d s50cron為 etc ini.d cron的鏈結 bin sh etc rc.common start 50 service use pid ...

Openwrt中新增ndpi支援

ndpi ntop deep package inspection 能實現深度包檢測,雖然openwrt沒有原生支援,但是有高手已經將其移植到openwrt之上。新增ndpi的方法如下 2.在openwrt原始碼目錄的package資料夾中新建乙個資料夾,資料夾名隨意,譬如ipt ndpi 3.開啟...