当前位置: 技术问答>linux和unix
关于驱动模块化编译的问题
来源: 互联网 发布时间:2016-09-22
本文导语: 平台:linux2.6.32+Ubuntu 硬件:OMAPL-138 实验目的:了解驱动模块化编译、加载、卸载 编写first_driver_hello.c文件,将其放到/linux2.6.32/drivers/char/路径下。 在Kconfig文件中添加如下: #add by lihao config FIRST_DRIVER_HELLO trista...
平台:linux2.6.32+Ubuntu
硬件:OMAPL-138
实验目的:了解驱动模块化编译、加载、卸载
编写first_driver_hello.c文件,将其放到/linux2.6.32/drivers/char/路径下。
在Kconfig文件中添加如下:
#add by lihao
config FIRST_DRIVER_HELLO
tristate "first hello module"
depends on ARM
default m
#end add
在Makefile中添加如下:
#add by lihao for hello module
#obj-m += sep4020_hellomodule.o
obj-$(CONFIG_FIRST_DRIVER_HELLO) += first_driver_hello.o
#end add
注意:Kconfig和Makefile都是/linux2.6.32/drivers/char/路径下的
然后
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- xconfig
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- uImage
但是在/linux2.6.32/drivers/char/下没有找到first_driver_hello.ko文件
我想请问下,我哪里设置错了??
硬件:OMAPL-138
实验目的:了解驱动模块化编译、加载、卸载
编写first_driver_hello.c文件,将其放到/linux2.6.32/drivers/char/路径下。
在Kconfig文件中添加如下:
#add by lihao
config FIRST_DRIVER_HELLO
tristate "first hello module"
depends on ARM
default m
#end add
在Makefile中添加如下:
#add by lihao for hello module
#obj-m += sep4020_hellomodule.o
obj-$(CONFIG_FIRST_DRIVER_HELLO) += first_driver_hello.o
#end add
注意:Kconfig和Makefile都是/linux2.6.32/drivers/char/路径下的
然后
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- xconfig
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- uImage
但是在/linux2.6.32/drivers/char/下没有找到first_driver_hello.ko文件
我想请问下,我哪里设置错了??
|
3楼的方法可行,另外
你需要 make menuconfig 看看你的配置文件。
另外执行一下:
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- modules
你需要 make menuconfig 看看你的配置文件。
另外执行一下:
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- modules
|
不可能啊,你make了没有?确定,编译没有什么提示错误?
可以这样吧
第一、Makefile 文件修改一下,指定输出路径。
第二、随便新建一个文件夹,将你的first_driver_hello.c和Makefile一起放在里面,只要里面指定ARM交叉编译器和使用的内核绝对路径,就可以make了,然后就随便insmod rmmod 调试了
可以这样吧
第一、Makefile 文件修改一下,指定输出路径。
第二、随便新建一个文件夹,将你的first_driver_hello.c和Makefile一起放在里面,只要里面指定ARM交叉编译器和使用的内核绝对路径,就可以make了,然后就随便insmod rmmod 调试了
|
make menuconfig选择first hello module成M,然后make一下吧 ,你看看ldd3前面的例子吧
|
你指定一下所编译模块的输出路径
make SUBDIR=drivers/char/ modules
这样就可以在drivers/char目录下找到所编译的模块***.ko
make SUBDIR=drivers/char/ modules
这样就可以在drivers/char目录下找到所编译的模块***.ko