首页 热点专区 义务教育 高等教育 出国留学 考研考公

LINUX驱动开发: UBUNTU下,比如我写了个.C 驱动文件。 之后我要把它放在哪里,我才能得到.ko文件,详细些

发布网友 发布时间:2022-04-25 07:04

我来回答

2个回答

热心网友 时间:2023-11-05 15:53

两种方法:
1,直接添加进内核。
a, 比如进入drivers/char/目录,把xxx.c文件拷贝到该目录
b, 修改drivers/char/Kconfig文件,自定义仿照其他选项,添加自己的选项XXX。
c, 修改drivers/char/Makefile文件,添加obj-$(CONFIG_XXX) += xxx.o
d, 进入内核根目录,make menuconfig,进入device drivers->character devices在这里面找到XXX选项,配置成“M”,也就是模块编译,会生成xxx.ko
2,随便建一个目录,写Makefile,这个Makefile里面,要指定内核源码根目录,并调用内核源码的Makefile,来编译当前目录的文件,类似一下格式,可在网上找一个Makefile来修改:
CFILES = xxx.c
DRIVER_NAME = xxxx
KSRC := /home/linux/linux-2.6.xxx

TARGET = $(DRIVER_NAME).ko
obj-m += $(DRIVER_NAME).o
$(DRIVER_NAME)-objs := $(CFILES:.c=.o)
default:
$(MAKE) -C $(KSRC) SUBDIRS=$(shell pwd) moles

热心网友 时间:2023-11-05 15:53

仿照写个makefile,编译出.ko

热心网友 时间:2023-11-05 15:53

两种方法:
1,直接添加进内核。
a, 比如进入drivers/char/目录,把xxx.c文件拷贝到该目录
b, 修改drivers/char/Kconfig文件,自定义仿照其他选项,添加自己的选项XXX。
c, 修改drivers/char/Makefile文件,添加obj-$(CONFIG_XXX) += xxx.o
d, 进入内核根目录,make menuconfig,进入device drivers->character devices在这里面找到XXX选项,配置成“M”,也就是模块编译,会生成xxx.ko
2,随便建一个目录,写Makefile,这个Makefile里面,要指定内核源码根目录,并调用内核源码的Makefile,来编译当前目录的文件,类似一下格式,可在网上找一个Makefile来修改:
CFILES = xxx.c
DRIVER_NAME = xxxx
KSRC := /home/linux/linux-2.6.xxx

TARGET = $(DRIVER_NAME).ko
obj-m += $(DRIVER_NAME).o
$(DRIVER_NAME)-objs := $(CFILES:.c=.o)
default:
$(MAKE) -C $(KSRC) SUBDIRS=$(shell pwd) moles

热心网友 时间:2023-11-05 15:53

两种方法:
1,直接添加进内核。
a, 比如进入drivers/char/目录,把xxx.c文件拷贝到该目录
b, 修改drivers/char/Kconfig文件,自定义仿照其他选项,添加自己的选项XXX。
c, 修改drivers/char/Makefile文件,添加obj-$(CONFIG_XXX) += xxx.o
d, 进入内核根目录,make menuconfig,进入device drivers->character devices在这里面找到XXX选项,配置成“M”,也就是模块编译,会生成xxx.ko
2,随便建一个目录,写Makefile,这个Makefile里面,要指定内核源码根目录,并调用内核源码的Makefile,来编译当前目录的文件,类似一下格式,可在网上找一个Makefile来修改:
CFILES = xxx.c
DRIVER_NAME = xxxx
KSRC := /home/linux/linux-2.6.xxx

TARGET = $(DRIVER_NAME).ko
obj-m += $(DRIVER_NAME).o
$(DRIVER_NAME)-objs := $(CFILES:.c=.o)
default:
$(MAKE) -C $(KSRC) SUBDIRS=$(shell pwd) moles

热心网友 时间:2023-11-05 15:53

仿照写个makefile,编译出.ko

热心网友 时间:2023-11-05 15:53

两种方法:
1,直接添加进内核。
a, 比如进入drivers/char/目录,把xxx.c文件拷贝到该目录
b, 修改drivers/char/Kconfig文件,自定义仿照其他选项,添加自己的选项XXX。
c, 修改drivers/char/Makefile文件,添加obj-$(CONFIG_XXX) += xxx.o
d, 进入内核根目录,make menuconfig,进入device drivers->character devices在这里面找到XXX选项,配置成“M”,也就是模块编译,会生成xxx.ko
2,随便建一个目录,写Makefile,这个Makefile里面,要指定内核源码根目录,并调用内核源码的Makefile,来编译当前目录的文件,类似一下格式,可在网上找一个Makefile来修改:
CFILES = xxx.c
DRIVER_NAME = xxxx
KSRC := /home/linux/linux-2.6.xxx

TARGET = $(DRIVER_NAME).ko
obj-m += $(DRIVER_NAME).o
$(DRIVER_NAME)-objs := $(CFILES:.c=.o)
default:
$(MAKE) -C $(KSRC) SUBDIRS=$(shell pwd) moles

热心网友 时间:2023-11-05 15:53

仿照写个makefile,编译出.ko

热心网友 时间:2023-11-05 15:53

仿照写个makefile,编译出.ko

热心网友 时间:2023-11-05 15:53

两种方法:
1,直接添加进内核。
a, 比如进入drivers/char/目录,把xxx.c文件拷贝到该目录
b, 修改drivers/char/Kconfig文件,自定义仿照其他选项,添加自己的选项XXX。
c, 修改drivers/char/Makefile文件,添加obj-$(CONFIG_XXX) += xxx.o
d, 进入内核根目录,make menuconfig,进入device drivers->character devices在这里面找到XXX选项,配置成“M”,也就是模块编译,会生成xxx.ko
2,随便建一个目录,写Makefile,这个Makefile里面,要指定内核源码根目录,并调用内核源码的Makefile,来编译当前目录的文件,类似一下格式,可在网上找一个Makefile来修改:
CFILES = xxx.c
DRIVER_NAME = xxxx
KSRC := /home/linux/linux-2.6.xxx

TARGET = $(DRIVER_NAME).ko
obj-m += $(DRIVER_NAME).o
$(DRIVER_NAME)-objs := $(CFILES:.c=.o)
default:
$(MAKE) -C $(KSRC) SUBDIRS=$(shell pwd) moles

热心网友 时间:2023-11-05 15:53

仿照写个makefile,编译出.ko

热心网友 时间:2023-11-05 15:53

两种方法:
1,直接添加进内核。
a, 比如进入drivers/char/目录,把xxx.c文件拷贝到该目录
b, 修改drivers/char/Kconfig文件,自定义仿照其他选项,添加自己的选项XXX。
c, 修改drivers/char/Makefile文件,添加obj-$(CONFIG_XXX) += xxx.o
d, 进入内核根目录,make menuconfig,进入device drivers->character devices在这里面找到XXX选项,配置成“M”,也就是模块编译,会生成xxx.ko
2,随便建一个目录,写Makefile,这个Makefile里面,要指定内核源码根目录,并调用内核源码的Makefile,来编译当前目录的文件,类似一下格式,可在网上找一个Makefile来修改:
CFILES = xxx.c
DRIVER_NAME = xxxx
KSRC := /home/linux/linux-2.6.xxx

TARGET = $(DRIVER_NAME).ko
obj-m += $(DRIVER_NAME).o
$(DRIVER_NAME)-objs := $(CFILES:.c=.o)
default:
$(MAKE) -C $(KSRC) SUBDIRS=$(shell pwd) moles

热心网友 时间:2023-11-05 15:53

仿照写个makefile,编译出.ko

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com