makefile实现创建目录和复制.ko文件

简介: makefile实现创建目录和复制.ko文件

每次编译完驱动后,总是要将一些.ko文件及其测试的app复制到我们的跟文件系统中去,一直调试,一直cp,cp,烦的一批,下面提供一个Makefile

  • make //编译项目
  • make file //在存放.ko文件目录中创建对应项目的目录
  • make install //将*.ko及其应用测试文件移动到根文件中
  • make clean //删除make出来的文件

Makefile

# 1. 使用不同的开发板内核时, 一定要修改KERN_DIR
# 2. KERN_DIR中的内核要事先配置、编译, 为了能编译内核, 要先设置下列环境变量:
# 2.1 ARCH,          比如: export ARCH=arm64
# 2.2 CROSS_COMPILE, 比如: export CROSS_COMPILE=aarch64-linux-gnu-
# 2.3 PATH,          比如: export PATH=$PATH:/home/book/100ask_roc-rk3399-pc/ToolChain-6.3.1/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin 
# 注意: 不同的开发板不同的编译器上述3个环境变量不一定相同,
#       请参考各开发板的高级用户使用手册
# ROOTFS_DIR 根文件系统中存放 *.ko文件所在目录
# PROJECT_NAME 在存放.ko文件目录中创建对应项目的目录
# DRIVER_NAME 项目中需要编译出.ko来的驱动
# APP_NAME 项目中的应用测试文件
#make 编译项目
#make file 在存放.ko文件目录中创建对应项目的目录
#make install 将*.ko及其应用测试文件移动到根文件中
KERN_DIR = /home/alientek/linux/IMX6ULL/linux/temp/linux-imx-rel_imx_4.1.15_2.1.0_ga_alientek
ROOTFS_DIR = /home/alientek/linux/nfs/rootfs/experiment
#项目名字
PROJECT_NAME = chr_dev
#各驱动名字,ko
DRIVER_NAME1 = chr_dev
DRIVER_NAME2 = 
#app名字
APP_NAME = chr_test
all:
  make -C $(KERN_DIR) M=`pwd` modules 
  $(CROSS_COMPILE)arm-linux-gnueabihf-gcc -o $(APP_NAME) $(APP_NAME).c 
clean:
  make -C $(KERN_DIR) M=`pwd` modules clean
  rm -rf modules.order
  rm -f $(APP_NAME)
file:
  mkdir $(ROOTFS_DIR)/$(PROJECT_NAME)
install:
  cp *.ko $(ROOTFS_DIR)/$(PROJECT_NAME)
  cp $(APP_NAME) $(ROOTFS_DIR)/$(PROJECT_NAME)
# 参考内核源码drivers/char/ipmi/Makefile
# 要想把a.c, b.c编译成ab.ko, 可以这样指定:
# ab-y := a.o b.o
# obj-m += ab.o
obj-m += $(DRIVER_NAME1).o

应用(亲测可用)

如果已经创建了对应项目的目录就不需要·make file了


目录
相关文章
|
6月前
|
Linux
Linux cp复制多个文件到指定目录
Linux cp复制多个文件到指定目录
116 0
|
10月前
|
Shell Linux
Linux目录与文件的相关操作
0、关机重启命令 关机命令 sudo shutdown -h now 重启命令 sudo reboot 1、目录的切换 打开终端窗口(”ctrl+alt+t“) 一般使用(”pwd“)显示当前所在的目录 比如:当前目录是在home下面的,与用户名相同的文件夹,可以使用(”cd“)命令来切换目录; 进入下载目录(”cd home/a/下载“)这种从给目录开头的一长串路经”叫做绝对路径“; 进入图片目录(”cd .. /图片/“)".."代表当前路径的上级路径,相对于当前的目录而言的”叫做相对路径“,(”.“)代表当前路径; 如果,想快速切换,上一个所在目录可以(”cd -“); 如果,想快速切换
61 0
|
Ubuntu Linux Shell
linux第三课:目录文档操作命令(内含绝对/相对路径+1.pwd+2.cd+3.mkdir(创建目录)+4. rmdir(删除目录)+5. ls+6. cp+7.rm+8cat+9touch命令)
linux第三课:目录文档操作命令(内含绝对/相对路径+1.pwd+2.cd+3.mkdir(创建目录)+4. rmdir(删除目录)+5. ls+6. cp+7.rm+8cat+9touch命令)
163 0
linux第三课:目录文档操作命令(内含绝对/相对路径+1.pwd+2.cd+3.mkdir(创建目录)+4. rmdir(删除目录)+5. ls+6. cp+7.rm+8cat+9touch命令)
|
存储 Linux 网络安全
系统目录结构/ls命令/文件类型/alias命令
2.1/2.2 系统目录结构 2.3 ls命令 2.4 文件类型 2.5 alias命令 linux文件目录结构 linux文件结构 / 系统跟目录 root  root用户主目录,存放启动linux系统的核心文件,如操作系统的内核、引导程序grub等 home 普通用户主目录 bin 存放系统启动时需要执行的二进制文件,普通用户使用的命令。
1322 0

热门文章

最新文章