我深知前路风雨,但我依然微笑前行 ;)
Openwrt的Makefile流程异于一般常用的Makefile,阅读起来难度太大。但是我么可以先通过如何使用、修改Makefile开始,从Makefile的某个局部开始了解,事情就会变得简单许多。我们在开发定制Openwrt的时候,通常会给它添加某项功能。这里介绍一下使用,添加软件包(opkg在线安装)、编译出内核模块ko两种方法完成功能的添加。(它们分别是用户态、内核态)
用户态与内核态的区别:简单来说就是处于内核态的程序对于操作系统资源的访问拥有更大的特权,对于某些操作可以直接调用资源;而不像用户态的程序,访问操作系统资源受到限制,而且是通过操作系统提供的接口来访问资源。内核态程序可以执行得很快,但如果出错则系统崩溃;用户态程序与之相反。
[下面使用TOP_DIR表示Openwrt的住目录]这里先介绍如何使用添加软件包(用户态)形式添加功能的方法。本文的目录结构安排如下所示:
-
package的所有源码都存放在本地
-
package的源码存放在因特网(和Openwrt做法相似)
-
package中添加patch来给软件包打补丁
1、package的所有源码都存放在本地
首先我们要在TOP_DIR/package/utilks目录下创建helloworld文件夹,然后创建两个Makefile文件外加一个helloworld.c共三个文件。具体的目录结构如下图所示:
TOP_DIR/package/utils/helloworld------Makefile
|
--------src-------hellow