编译6410内核文件+编译驱动为模块
来源:互联网 发布:ubuntu kylin u盘 编辑:程序博客网 时间:2024/05/29 10:56
拷贝6410光盘文件A下Linux文件夹中的linux-2.6.38-20111205.tgz(与开发板所用内核版本相同)文件到ubuntu的/root文件夹下并解压到此文件夹
解压后进入其根目录。执行命令:cp config_mini6410_a70 .config ;注意: a70后面有个空格,然后有个“.”开头的config(a70为开发板的触摸屏型号)
#make zImage 开始编译内核,也可以直接使用 make 命令
编译结束后,会在 arch/arm/boot 目录下生成 linux 内核映象文件 zImage
编写驱动程序
其Makefile文件模版如下:
ifneq ($(KERNELRELEASE),)
obj-m:=zl.o
else
KERNELDIR:= /root/linux-2.6.38
PWD:=$(shellpwd)
default:
$(MAKE)-C $(KERNELDIR) M=$(PWD) modules
clean:
rm-f *.ko *.o *.mod.o *.mod.c *.symvers *.order
endif
目录文件不能含中文
需要注意的是:makefile文件的格式对齐问题,不然容易出错。obj-m后的XX.o为生成的驱动名字要与驱动程序文件名相同。KERNELDIR为内核所在目录。有的makefile里此变量值为: /lib/modules/`uname -r`/build 表示的是ubuntu内核所在的目录,因ubuntu与arm板的内核版本不同,所以编写arm板的驱动程序时该值必须为与arm内核相同的内核源文件所在的根目录。
(make moudles_install将生成的驱动模块拷贝到内核文件夹中,本文并不需要这样做)
进入驱动程序所在目录执行make 指令,会在目录下生成.ko文件,将该文件拷贝到开发板/lib/modules/2.6.38-FriendlyARM下,执行insmod XX.ko即可将模块加载到内核中去,卸载命令为rmmod XX
加载完成后lsmod即可看到自己加载的驱动,此时/dev下并没有设备名,要添加一句命令mknod /dev/** c ** 0才行
- 编译6410内核文件+编译驱动为模块
- 内核驱动模块编译方法
- Linux内核驱动模块编译
- Ubuntu编译内核驱动模块
- linux驱动中多个文件编译为一个模块格式
- Linux驱动模块编译进内核中
- Linux驱动模块编译进内核中
- Linux驱动模块编译进内核中
- linux内核驱动开发--编译外部模块
- Linux驱动模块编译进内核中
- Linux内核模块(驱动)编译详解
- 驱动模块静态编译到 Linux 内核
- 自定义Linux 内核驱动模块的编译
- Linux驱动模块编译进内核中
- Linux内核模块(驱动)编译详解
- 【Linux内核驱动】模块编译技巧
- 内核编译 & 模块编译
- 内核编译,驱动编译
- 求集合{1, 2, ..., n}的所有子集
- leetcode120-Triangle-解题报告
- [编译原理]实现AQL Subset
- 配置文件
- erlang 于风
- 编译6410内核文件+编译驱动为模块
- Android之NFC手机读取银行卡信息
- PHP获取无限分类的完整等级列表
- android xml解析 XmlPullParser的使用
- ios之TableViewCell重用机制避免重复显示问题
- 【VS开发】#pragma预处理命令
- tiny6410 驱动模块开机自动加载
- 【VS开发】C/C++预编译命令
- 事务的四大特性和隔离级别