一、手动创建设备节点
1、虚拟机新建文件,并将驱动C文件、测试文件以及Makefile拷贝至此文件
驱动c文件——chrdevbase.c
测试文件——chrdevbaseApp.c
Makefile文件——Makefile
2、编译驱动文件
指令:make
驱动——chrdevbase.ko
3、编译测试文件
指令:arm-linux-gnueabihf-gcc chrdevbaseApp.c -o chrdevbaseApp
测试——chrdevbaseApp
4、基于SSH的虚拟机与开发板的远程文件拷贝
scp 是 linux 系统下基于 ssh 登录进行安全的远程文件拷贝命令
开发板下设置静态ip,新建文件zynq_driver
指令:ifconfig eth0 192.168.1.22
在ubuntu下scp远程发送驱动文件和测试文件,设置ip
指令:sudo ifconfig ens33 192.168.1.23
指令:sudo scp dev_manual_App dev_manual.ko root@
192.168.1.22:/home/root/class_1/dev_manual
5、加载驱动并测试
加载驱动文件
指令:insmod dev_manual.ko
创建设备节点
指令: mknod /dev/dev_manual c 200 0
测试
指令:./dev_manual_App /dev/dev_manual 1
指令:./dev_manual_App /dev/dev_manual 2
卸载驱动
指令:rmmod dev_manual.ko
二、自动创建设备节点
指令:sudo scp dev_auto_App dev_auto.ko root@
192.168.1.22:/home/root/class_1/dev_auto
指令:sudo scp dev_dts_App dev_dts.ko root@
192.168.1.22:/home/root/class_1/dev_dts
5、加载驱动并测试
加载驱动文件
指令:insmod dev_auto.ko
创建设备节点
指令: mknod /dev/dev_auto c 200 0
测试
指令:./dev_auto_App /dev/dev_auto 1
指令:./dev_auto_App /dev/dev_auto 2
卸载驱动
指令:rmmod dev_auto.ko
指令:cd ZYNQ/class_1/dev_dts/
指令:cp -r system-top.dts
/home/moonin/Linux_kernel/linux-xlnx-xilinx-v2018.3/arch/arm/boot/dts
指令:cd
/home/moonin/Linux_kernel/linux-xlnx-xilinx-v2018.3/
指令:make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- system-top.dtb -j10
指令:cd /proc/device-tree/