怎么编译Linux模块驱动

2019-03-26 12:26发布

Linux驱动编译方式一种是直接编译进kernel内核,一种是编译成模块。
编译成内核很简单,但是编译驱动模块要自己写make命令。
我现在手头有个Android的工程,想把驱动编译成模块*.ko,参照书《Android深度探索 卷1 HAL与驱动开发 》里的代码,不太理解:

S3C6410_KERNEL_PATH=/root/kernel/linux_kernel_2.6.36
export PATH=$PATH:/root/compilers/arm-eabi-4.4.3/bin


make  -C $S3C6410_KERNEL_PATH  M=${PWD}

这几行shell是什么意思?
万能的网友谁给我指点一二,谢谢了。
此帖出自Linux与安卓论坛
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
awarenessxie
1楼-- · 2019-03-26 19:27
百度了一下,稍微了解了,现在只剩下内核路径不太懂,“”make  -C $S3C6410_KERNEL_PATH  M=${PWD}“”中的S3C6410_KERNEL_PATH这个路径是”S3C6410_KERNEL_PATH=/root/kernel/linux_kernel_2.6.36“这句赋值的,但是不理解这路径代表的意思是什么,如果一份新的工程,哪个目录下有这个路径?
石玉
2楼-- · 2019-03-27 00:17
awarenessxie 发表于 2016-10-15 20:06
百度了一下,稍微了解了,现在只剩下内核路径不太懂,“”make  -C $S3C6410_KERNEL_PATH  M=${PWD}“”中 ...

这个是你内核的路径啊,编译驱动里要依赖内核中的头文件
ywlzh
3楼-- · 2019-03-27 04:16
 精彩回答 2  元偷偷看……
常见泽1
4楼-- · 2019-03-27 09:07
you can search it in google website
awarenessxie
5楼-- · 2019-03-27 11:56
石玉 发表于 2016-10-16 12:03
这个是你内核的路径啊,编译驱动里要依赖内核中的头文件

是宿主机的内核路径还是目标板的工程内核路径?因为宿主机一般也是Linux吧
石玉
6楼-- · 2019-03-27 14:59
 精彩回答 2  元偷偷看……

一周热门 更多>