主要讲讲自己在学习openwrt软件包添加的记录过程
目标:
掌握如何添加自己驱动会让应用的方法
了解Makefile在openwrt中的定义
openwrt是一个比较完善的嵌入式linux开发平台,拥有众多的软件包
首先按照openwrt的约定,为加入软件包需要在package目录下创建一个目录,包含该软件的各种信息和与openwrt建立联系的文件,然后创建一个Makefile与openwrt建立联系(这个makefile与PC环境下的makefile不同),Makefile需要遵循openwrt的约定,另外可以创建一个patch目录保存patch文件,对下载的源代码进行修改。
下面是一些收集到的语法知识点,且在这里做一个简单的记录:
1.首先是引入文件
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
include $(INCLUDE_DIR)/package.mk
这些文件确立软件包加入openwrt的方式和方法,$(TOPDIR)/rules.mk一般在文件的开头
$(INCLUDE_DIR)/kernel.mk
文件对于软件包为内核时是不可缺少,$(INCLUDE_DIR)/package.mk 一般在软件包的基本信息完
成后再引入。
2.编写软件包的基本信息:
#
#编写软件包的基本信息
#
# PKG_NAME 代表软件包的名称
# PKG_VERSION 表示软件包的版本号
# PKG_RELEASE 表示单片机的版本号
# PKG_SOURCE 表示元代码的文件名
# PKG_SOURCE_URL 表示源代码的下载网站位置 @sf表示在soueceforge网站
# @GNU表示在GNU网站 还有@GNOME @KERNEL
# PKG_MD5SUM 表示源代码文件的效验码。用于核对软件包是否正确下载
# PKG_CAT 表示源代码文件的解压方法。包括 zcat, bzcat, unzip 等
# PKG_BUILD_DIR 表示软件包编译目录。它的父目录为$(BUILD_DIR)。如果不指定,
# 默认为$(BUILD_DIR)/$( PKG_NAME)/$( PKG_VERSION)。
3.编译包的定义:
应用程序和内核驱动程序模块的定义不一样。应用程序软件包使用Package,内核驱动模块使用KernelPackage
1).应用程序编译包定义
应用程序编译包一Package开头,然后接着软件名,在Package定义中定义的软件名可以与软件包名不一样,而且可以多个定义
CESTION表示包的类型,预留
GATEGORY表示分类,在马克menuconfig的菜单下将可以找到
TITLE用于软件包的简短描述。