• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
Suzkfly
博客园 首页 新随笔 联系 订阅 订阅 管理

随笔分类 -  linux驱动

 
linux编译模块,包含了头文件却还是报undifind警告
摘要:在编写一个自己写的gadget驱动的时候遇到一个这样的问题,编译的时候报了个警告:WARNING: "usb_composite_register" […/my_zero.ko] undefined! 告诉我这个函数没有定义,但是生成了ko文件,将这个文件拷贝到开发板目录下insmod,同样也是报这 阅读全文
posted @ 2020-04-13 22:31 Suzkfly 阅读(1518) 评论(0) 推荐(0)
linux设备
摘要:设备初始化时同样要执行一个device_register函数,该函数传入一个struct device *类型的指针,因此要定义一个struct device类型的变量作为我们的设备。 struct device结构体中init_name表示的是设备名,bus表示设备所处的总线,我们将这两项初始化。 阅读全文
posted @ 2019-10-31 15:52 Suzkfly 阅读(329) 评论(0) 推荐(0)
linux总线
摘要:编写驱动程序: 这个程序很简单,只是在初始化的时候加载了一条总线,该总线的名字为“my_bus”,用insmod加载之后可以在/sys/bus目录下看到一个叫my_bus的目录,如下图: 进到my_bus目录之后用ls -l命令,可以看到devices和drivers是两个目录,但是这两个目录都是空 阅读全文
posted @ 2019-10-31 11:46 Suzkfly 阅读(466) 评论(0) 推荐(0)
驱动名、设备名和设备文件名的关系
摘要:编写一个驱动文件的时候生成一个name1.ko文件,这个name1就是驱动名,使用insmod name1.ko指令之后,用lsmod能看见一个名为name1的驱动 在调用了alloc_chrdev_region函数或register_chrdev_region函数时传入的最后一个参数为设备名,如果 阅读全文
posted @ 2019-10-31 00:19 Suzkfly 阅读(594) 评论(0) 推荐(0)
linux设备注册
摘要:一、分配cdev cdev表示字符设备,使用cdev_alloc函数,cdev_alloc函数原型如下; 得到cdev指针 二、初始化cdev 使用cdev_init函数,cdev_init的原型如下: 将字符设备和设备的操作集合绑定在一起。 三、注册cdev 注册cdev用cdev_add函数,原 阅读全文
posted @ 2019-10-30 23:41 Suzkfly 阅读(500) 评论(0) 推荐(0)
linux设备文件
摘要:一、前言 在调用了alloc_chrdev_region函数或register_chrdev_region函数之后可以在/proc/devices中看到该设备的主设备号,比如我注册的hello模块的主设备号为1024,如下图: 现在使用lsmod能看到驱动名,使用cat /proc/devices能 阅读全文
posted @ 2019-10-30 23:21 Suzkfly 阅读(746) 评论(0) 推荐(0)
linux驱动设备号
摘要:一、设备号基础 一般来说,使用ls -l命令在时间一列的前一列的数字表示的是文件大小,但如果该文件表示的是一个设备的话,那时间一列的前一列将有两个数字,用逗号分隔开,如下图: 前一个数字表示主设备号,后一个数组表示次设备号。主设备号用来区分不同种类的设备,而次设备号用来区分同一类型的多个设备。 实际 阅读全文
posted @ 2019-10-30 21:20 Suzkfly 阅读(1289) 评论(0) 推荐(0)
将自己的模块编译进内核
摘要:一、编写驱动程序 将需要编译进内核的源代码编写好,我举个最简单的Hello World的例子: hello.c 该文件编译后生成hello.ko文件,在insmod hello.ko的时候会打印 *****hello init test***** ,在rmmod hello的时候打印 *****he 阅读全文
posted @ 2019-10-30 16:46 Suzkfly 阅读(846) 评论(0) 推荐(0)
././include/linux/kconfig.h:4:32: fatal error: generated/autoconf.h: No such file or directory 解决办法
摘要:我在编写内核驱动模块的时候报了一个非常奇怪的错误,如下图: 在目录下看了一下确实没有发现这个文件,感觉很奇怪,因为我记得之前编译模块是没有错误的,所以不可能是我代码写的有问题。 查阅了资料很多说要清除配置重新生成.config之类的,我也照做了但是并没有什么卵用。 最后发现是因为我执行了make m 阅读全文
posted @ 2019-10-30 11:43 Suzkfly 阅读(6901) 评论(0) 推荐(0)
 

公告


博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3