www.ypnh.net > 请人帮忙用linux生成个Arm平台的.ko文件

请人帮忙用linux生成个Arm平台的.ko文件

.ko文件是linux的模块文件,你在内核源代码目录下make modules就可以生成了

,文件名写为以BAT为扩展名就可以了.

把那个oneko的程序 复制到 /bin 目录下,并且设置它的权限为所有人可执行.假如你的程序叫做oneke,那么使用如下两个命令就可以实现你老师的要求:sudo cp oneko /binsudo chmod 777 /bin/oneko 原理就是:linux下的命令执行的时候,都

这是我在网上找的一个makefileobj-m :=hello.oKRNELDIR /opt/FriendlyARM/mini6410/linux/linux-2.6.36CROSS_COMPILE =arm-linux-CC :=$(CROSS_COMPILE)gccLD :=$(CROSS_COMPILE)ldPWD :=$(shell pwd)all: make -C $(KRNELDIR) M=$(PWD) modules .PHONY rm -rf *.o *ko你把红色部分改成你目标板运行内核的目录(一定要保证你编译过该内核)

.so 文件是动态链接库文件,相当于 win下的 .dll 文件..ko 是内核模块文件,是内核加载的某个模块,一般是驱动程序.

从网上找一个编译模块的Makefile,放到你的模块的文件夹里面,然后修改里面的路径指定编译的内核,以及目标名称.make就可以了.

M=指定编译目录$(MAKE)其实就是make,会调用编译器,假如你是arm的,那么可能就是arm-linux-gcc

.ko文件是模块化的驱动文件,一般通过你的编译,被放在你解压的linux源代码目录下面的 drivers/ 下面的子目录中.你没对源码包进行编译的话,是不会有这些文件的,这种文件是通过linux的insmod命令动态加载到内核中的.

看看你是否编译进内核了 把你的makefile板书出来 有.o 而没有.ko 估计是你把驱动编译进内核了 obj-m += $(KO_NAME).o //m是编译成module obj-y += $(KO_NAME).o //y是编译进 kernel 只可以看到.o 不会生成ko

相关搜索:

网站地图

All rights reserved Powered by www.ypnh.net

copyright ©right 2010-2021。
www.ypnh.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com