1、
(1)打开Linux源码树目录(linux-rpi-4.14.y),进入drivers目录底下,io口属于字符设备目录,故进入char目录
(2).将驱动代码拿进目录底下
2、
修改Makefile,让整个工程编译的时候编译到这个驱动代码
参考Makefile里面的格式,进行修改
可以编译成模块,也可以编译进内核,我们先编译成模块
-m是编译成模块的意思
3、
接着 cd …/…回到内核源码进行模块编译
接着命令:
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make modules
进行编译
显示上图则编译成功
4、
将.ko文件拷贝至树莓派中(通过网络拷贝)
scp drivers/char/Driver_framework.ko pi@192.168.43.112:/home/pi
如果出现以下错误:
执行下列命令即可:
ssh -o StrictHostKeyChecking=no 192.168.1.xxx
再将pin4test进行编译并且拷贝进树莓派
arm-linux-gnueabihf-gcc ~/Desktop/pin4_test.c -o pin4test
scp /home/guanzheng/pin4test pi@192.168.43.112:/home/pi
5、
加载内核驱动:sudo insmod pin4driver.ko
如果直接执行 ./pin4test的话可能会出现错误:
原因:没有权限
(驱动肯定是装进去的,可以用lsmod查看,我们装驱动的时候是超级用户权限装的)
改一下权限:
sudo chmod 666 /dev/pin4
666:所有用户均可读写
最后用dmesg可以查看内核执行情况
注:
如果要删除驱动:(不需要加.ko)
sudo rmmod Driver_framework