ultrascale学习笔记之内核驱动开发


1.版本说明

DataAuthorVersion Revision
2021/01/19abner1.0 初定版本

2.概要

  • 本教程需要使用PetaLinux创建内核驱动代码,同时在修改内核驱动代码之后,使用PetaLinux编译为.ko文件,最终在硬件上运行;
  • 本教程所需要的硬件平台上,实际运行的为ubuntu文件系统,因此缺少必要的/lib/modules/* 文件夹,需要手动创建;

3.命令

petalinux-create -t modules -n <module-name> --enable
petalinux-build -c <module-name>

4.示例

4.1.创建PetaLinux的helloworld驱动代码;

petalinux-create -t modules -n helloworld --enable

4.2.编译驱动代码

petalinux-build -c helloworld 

4.3.从PetaLinux工程目录中找到 helloworld.ko

实际目录:./工程目录/build/tmp/sysroots-components/zynqmp_generic/helloworld/lib/modules/5.4.0/extra/helloworld.ko

4.4.拷贝到嵌入式设备运行

scp *.ko root@192.168.0.100:/mnt

scp *.ko root@192.168.1.138:/lib/modules/5.4.0/extra/

注意:第一次在嵌入式设备上复制.ko文件的时候可能缺少 /lib/modules 所需要的所有文件夹,需要手动拷贝!!!!!
手动拷贝来源: PetaLinux编译生成的rootfs.tar.gz解压后 从 /lib/modules下全部原封不动的拷贝过来
不同PetaLinux版本,可能/lib/nodules/下的版本还不一样,需要参考 上文中提到的实际目录来创建

4.5.加载驱动

insmod helloworld.ko

4.6.查看各类信息命令

lsmod : 查看当前系统中存在的模块
cat /proc/devices : 查看当前占用了的主设备号,从中可以找出自己的驱动模块

4.7.创建设备节点

mknod /dev/<节点名称> <c:字符设备> <主设备号> <次设备号>
示例:
mknod /dev/helloworld c 200 0
通过 ls /dev/ 可以查看到 /dev目录下产生了 /dev/helloworld字符型文件

4.8.卸载驱动

rmmod helloworld.ko
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值