请教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
附上源码
求指导该如何才能加载这个驱动到板子上,项目中有需要用到这个温湿度模块
群里大牛指导
用 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
钟宇泉 发表于 2019-12-26 12:20
群里大牛指导
用 find . -name arm-poky-linux-gnueabi-gcc 看下你安装到哪了
正确路径:
$CC -v可以看到交叉编译工具的路径和版本,详细设置一下就行 软件01 发表于 2019-12-28 13:49
$CC -v可以看到交叉编译工具的路径和版本,详细设置一下就行
感谢指导:D 过来填个坑,已经移植成功了。详细过程我都写到这里了
https://blog.csdn.net/teaczjf/article/details/106143585
页:
[1]