钟宇泉 发表于 2019-12-25 17:49:56

请教140p的板子移植git上找来的温湿度模块DHT22的驱动

新手请教在网上看到,驱动编译分两种静态和动态两种
静态就是编译进内核,修改板子的镜像文件
动态编译
我的理解是生成.ko文件,把该文件用TFTP传入板子,然后使用insmod这个命令手动加载驱动
.ko文件我想在虚拟机上直接make生成
但是提示错误了:

myzr@u14045:~/DHT22-master$ make
make C=2 -C /lib/modules/4.4.0-139-generic/build/ M=/home/myzr/DHT22-master modules
make: 正在进入目录 `/usr/src/linux-headers-4.4.0-139-generic'
CHECK   /home/myzr/DHT22-master/dht22.c
/bin/sh: sparse: 未找到命令
make: *** 错误 127
make: *** 错误 2
make:正在离开目录 `/usr/src/linux-headers-4.4.0-139-generic'
make: *** 错误 2
myzr@u14045:~/DHT22-master$

一下是makefile的内容
obj-m+=dht22_driver.o
dht22_driver-objs+=dht22.o dht22_sm.o

all:
        make C=2 -C /lib/modules/$(shell uname -r)/build/ M=$(PWD) modules

clean:
        make -C /lib/modules/$(shell uname -r)/build/ M=$(PWD) clean


附上源码

求指导该如何才能加载这个驱动到板子上,项目中有需要用到这个温湿度模块






钟宇泉 发表于 2019-12-26 12:20:09

群里大牛指导
用 find . -name arm-poky-linux-gnueabi-gcc 看下你安装到哪了
正确路径:
obj-m = dht22.o

KPATH=~/myzr/my-work/02_source/linux-4.1.15
PWD=$(shell pwd)
CROSS=~/myzr/my-work/03_toolchain/fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.1.15-2.1.0/ sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi
CC=$(CROSS)gcc

all: dht22 poll

dht22: dht22.c dht22.h
        make -C $(KPATH) ARCH=arm CROSS_COMPILE=$(CROSS) SUBDIRS=$(PWD) modules

poll: poll.c
        $(CC) -o poll -lc -lpthread poll.c

clean:
        rm -rf *.o *.ko .*cmd .tmp* core *.i *.mod.c modules.* Module.* poll

软件01 发表于 2019-12-28 13:49:28

钟宇泉 发表于 2019-12-26 12:20
群里大牛指导
用 find . -name arm-poky-linux-gnueabi-gcc 看下你安装到哪了
正确路径:


$CC -v可以看到交叉编译工具的路径和版本,详细设置一下就行

钟宇泉 发表于 2019-12-28 18:09:23

软件01 发表于 2019-12-28 13:49
$CC -v可以看到交叉编译工具的路径和版本,详细设置一下就行

感谢指导:D

钟宇泉 发表于 2020-5-15 16:49:26

过来填个坑,已经移植成功了。详细过程我都写到这里了
https://blog.csdn.net/teaczjf/article/details/106143585
页: [1]
查看完整版本: 请教140p的板子移植git上找来的温湿度模块DHT22的驱动