![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux驱动
guoguo123a
这个作者很懒,什么都没留下…
展开
-
编译内核出现的问题
1、下载特定版本的内核代码 apt-cache search linux-source //搜索内核版本 apt-get install linux-source-2.6.22 //下载特定版本内核源码 2、下载到/usr/src/目录,解压下载的版本的压缩包tar -cjf images.tar.bz2 3、sudo make oldconfig&&make prepare&&make scripts 编译内核 出现问题: 1、权限不足:将源码文原创 2021-05-07 23:24:15 · 317 阅读 · 0 评论 -
简单的linux驱动开发,自动注册/dev/xxx和自动分配主分区号
驱动源码 #include <linux/init.h> //定义了module_init #include <linux/module.h> //最基本的头文件,其中定义了MODULE_LICENSE这一类宏 #include <linux/fs.h> #include <linux/device.h> // file_operations结构体定义在该头文件中 static const char* devName = "first_dr原创 2021-04-25 20:36:55 · 205 阅读 · 0 评论 -
linux用户态对文件操作相关函数
最近需要使用open函数的O_DIRECT参数,直接操作磁盘,而不是读写IO缓存,犯了一些小错误,记录一下: O_DIRECT参数使用的地方比较少,比较小众,需要的包含的头文件和特殊的宏定义 #include<unistd.h> #include<sys/stat.h> //O_DIRECT #define__USE_GNU1 #include<fcntl.h> #include<sys/types.h> 打开或者创...原创 2021-03-31 18:06:39 · 205 阅读 · 0 评论 -
linux 用户态与内核态通信方式
1、系统调用 -- 最常用的方式,一般是用户态通过系统调用函数访问内核态空间 2、netlink -- 本质上是socket,可以用于内核与多种用户进程之间的消息传递系统 3、procfs(/proc/)-- 在该目录下,有各种内核和进程信息,并且是实时刷新的,读取的时候才调用函数查询(只读) 4、sysctl(/proc/sys)-- sysctl命令,在内核运行过程中,动态修改内核参数(可读写) 5、sysfs(/sys)-- 从procfs中独立出来的设备和驱动,不仅可以从内核空间读取设备和驱原创 2021-03-26 14:22:50 · 951 阅读 · 0 评论 -
linux进程间通信--消息、信号量、共享内存
创建消息通信的基本步骤: 1、(key = ftok(/usr1/test/filename,'z')),基于文件,创建唯一的key,文件名要存在 2、根据唯一的key值,创造消息队列msqid = msgget(key, IPC_CREAT|0777),得到消息id 3、配置消息,并调用发生函数发送消息 msg.mtype = 999; // 客户端接收的消息类型 sprintf(msg.mtext, "hello, I'm server %d", getpid()); ...原创 2021-03-25 11:57:02 · 109 阅读 · 0 评论