OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4971|回复: 2

字符设备驱动开发实验make clean失败

[复制链接]

22

主题

69

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
303
金钱
303
注册时间
2019-11-10
在线时间
61 小时
发表于 2020-2-29 20:45:35 | 显示全部楼层 |阅读模式
5金钱
make clean 失败
1、首先为什么提出这个问题
1.1、使用ubuntu18 正常执行make clean,但是之前把编译好的文件复制到开发板里面报了一个错误至今没有解决,所以就耽搁了一下。
所以我打算使用ubuntu 16来试试
1.2、交叉编译器:
gcc version 4.9.4 (Linaro GCC 4.9-2017.01)
arm-linux-gnueabihf-gcc -v
1.3、makefile 里面的内核路径已经添加好
可以执行
arm-linux-gnueabihf-gcc chrdevbaseApp.c -o chrdevbaseApp

1.4、这个为Makefile文件
# 修改为我自己的目录
KERNELDIR := /home/sambaShare/alientek/linux-alientek
CURRENT_PATH := $(shell pwd)
obj-m := chrdevbase.o

build: kernel_modules

kernel_modules:
        $(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) modules
clean:
        $(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) clean

1.5、使用工程为字符设备测试
1_chrdevbase

1.6、因为无法执行make clean
我将文件放置到开发板之后报了另外一个错误
1.6.1、执行指令:
insmod chrdevbase.ko

[ 4931.109593] chrdevbase: version magic '4.1.15 SMP preempt mod_unload modversions ARMv6 p2v8 ' should be '4.1.15-gbedf008 SMP preempt mod_unload modversions ARMv7 p2v8 '
insmod: ERROR: could not insert module chrdevbase.ko: Invalid module format


总结一下:两个问题:
1、问题:不是执行make clean应该是配置问题,因为之前ubuntu 18是可以的。
     但是为什么我这个ubuntu 16不行,我还不知道有坛友知道的吗
错误提示:
root@xwz-virtual-machine:/home/sambaShare/alientek/hardware/1_chrdevbase# make clean

make -C /home/sambaShare/alientek/linux-alientek M=/home/sambaShare/alientek/hardware/1_chrdevbase cleanmake[1]: Entering directory '/home/sambaShare/alientek/linux-alientek'.vmlinux.cmd:1: *** missing separator。 停止。make[1]: Leaving directory '/home/sambaShare/alientek/linux-alientek'Makefile:11: recipe for target 'clean' failedmake: *** [clean] Error 2

2、无法加载 insmod chrdevbase.ko
arm-linux-gnueabihf-gcc chrdevbaseApp.c -o chrdevbaseApp
将文件
cp /mnt/myWork/{chrdevbase.ko,chrdevbaseApp} /lib/modules/4.1.15-gbedf008/
拷贝到  开发板的  /lib/modules/4.1.15-gbedf008/
root@ALIENTEK-IMX6U:/lib/modules/4.1.15-gbedf008# insmod chrdevbase.ko[ 4802.439386] chrdevbase: version magic '4.1.15 SMP preempt mod_unload modversions ARMv6 p2v8 ' should be '4.1.15-gbedf008 SMP preempt mod_unload modversions ARMv7 p2v8 'insmod: ERROR: could not insert module chrdevbase.ko: Invalid module format

最佳答案

查看完整内容[请看2#楼]

之前有遇到第二个问题:无法加载 insmod chrdevbase.ko 。 解决的方式可以参照这个地址 http://www.openedv.com/forum.php ... 1&extra=#pid1041107 我的解决方式是使用linux-imx-4.1.15-2.1.0-gbedf008-v1.1.tar.bz2 这个文件解压缩然后自己编译一次(如果这是你第一次编译内核,可能还需要一个库文件)。在编译之前需要对.config文件进行改动。驱动开发里面的makefile也要改成你自己编译好的路径。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2020-1-31
在线时间
14 小时
发表于 2020-2-29 20:45:36 | 显示全部楼层
本帖最后由 weibazi 于 2020-3-1 18:18 编辑

之前有遇到第二个问题:无法加载 insmod chrdevbase.ko  。
解决的方式可以参照这个地址  http://www.openedv.com/forum.php ... 1&extra=#pid1041107  
我的解决方式是使用linux-imx-4.1.15-2.1.0-gbedf008-v1.1.tar.bz2  这个文件解压缩然后自己编译一次(如果这是你第一次编译内核,可能还需要一个库文件)。在编译之前需要对.config文件进行改动。驱动开发里面的makefile也要改成你自己编译好的路径。

回复

使用道具 举报

22

主题

69

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
303
金钱
303
注册时间
2019-11-10
在线时间
61 小时
 楼主| 发表于 2020-3-1 23:26:00 | 显示全部楼层
weibazi 发表于 2020-3-1 18:09
之前有遇到第二个问题:无法加载 insmod chrdevbase.ko  。
解决的方式可以参照这个地址  http://www.open ...

好的谢谢你啊,
第一个问题是我ubuntu配置有些问题,
第二个问题我正在测试。谢谢了,我先试试看
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-25 05:19

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表