编译内核到模块(无需加载)

来源:互联网 发布:windows硬盘安装工具 编辑:程序博客网 时间:2024/06/08 13:09

以helloworld为例:

① 把hello.c复制到内核代码下(具体放哪根据模块功能,比如字符驱动放在/drivers/char/下,并cd进入该目录下);

 

② 修改配置菜单选项Kconfig:vi Kconfig,在menu "Character devices"代码下增        加下面两行:

config HELLO_WORLD

bool "helloworld"

此时重新配置菜单make menuconfig则能在Device Drivers-->Character devicesk看到新增的helloworld(NEW)选项,选上后保存则vi .config能找到CONFIG_HELLO_WORLD=y;

 

③ 修改Makefile:vi drivers/char/Makefile(根据模块放的位置),在适当位置添加:

obj -${CONFIG_HELLO_WORLD}        += hello.o

/*****obj -y是编译内核,obj -m是编译模块,obj -n什么都不做,obj -${}则根据括号里面的信息自己判断编译******/

 

④ 然后编译内核make uImage ARCH=arm CROSS_COMPILE=arm-linux-,并通过tftp拷到开发板运行#cp arch/arm/boot/uImage  /tftpboot,则能在启动时看到打印的"Hello World !"