编译arm-linux驱动时报错:“unrecognized command line option ‘-fstack-protector-strong’”
前两年买了个树莓派3B+,之后参照网上的一些教程做了个视频小车,玩了几天之后就放起来了。这阵子突然想研究一下arm-linux的驱动是怎么编写的。参照其他人的博客,下载了源码“linux-rpi-4.19.y.zip”和交叉编译工具链“tools-master.zip”,之后又找了一个“Hello ...
宋宝华《Linux设备驱动开发详解》——sysfs文件系统与linux设备模型(5.4.2)
以下读书笔记内容,摘自宋宝华《Linux设备驱动开发详解》一书。1、sysfs文件系统的简介(1)linux2.6以后的内核引进syfs文件系统,是虚拟文件系统;(2)产生一个包括所有系统硬件的层级视图。在/sys目录下运行tree可以得到树形目录;向用户空间导出内核数据结构和它们的属性;(3)而/...
关于VMware下使用linux虚拟机出现仅主机模式适配器驱动程序似乎未运行的解决方法
关于VMware下使用linux虚拟机出现“仅主机模式适配器驱动程序似乎未运行”的解决方法这是我第一次开始写博客,所出现的问题都是针对我当时遇到的情况在自学linux的某天,打开VMware突然发现linux连不上网了!输入ifconfig命令得到的结果也是当时反复地重启,百度说是要重置默认设置,再...
从零开始之驱动发开、linux驱动(二十、linux设备驱动中的并发控制)
本文参考自宋宝华老师的《linux驱动开发详解》 并发(Concurrency) 指的是多个执行单元同时、 并行被执行, 而并发的执行单元对共享资源(硬件资源和软件上的全局变量、 静态变量等) 的访问则很容易导致竞态(Race Conditions) 只要并发的多个执行单元存在对共享资源的访问, 竞...
wifi驱动 && wpa_supplicant在Linux PC上的移植
一. 编译环境准备1. 安装ubuntu我尝试过编译MT7603的driver, 发现在ubuntu kernel 2.6.32上编译会出错,所以安装的ubuntu kernel版本必须大于2.6.32, 建议是3.0 以上的。我选择安装ubuntu 12.04(kernel ver: 3.2.0)...
linux驱动开发4之字符设备驱动原理及led编程
1.系统整体工作原理1)应用层->API->设备驱动->硬件2)API:open、read、write、close等3)驱动源码中提供真正的open、read、write、close等函数实体2.file_operations结构体(#include <linux/fs.h&...
Linux设备驱动入门之hello驱动
1. 编写myhello.c#include <linux/init.h> #include <linux/module.h> MODULE_LICENSE("Dual BSD/GPL"); static int hello_init(void) { pri...
Linux 设备驱动 之 PCIE驱动开发
PCIE(PCI Express)是INTEL提出的新一代的总线接口,目前普及的PCIE 3.0的传输速率为8GT/s,下一代PCIE 4.0将翻番为16GT/S,因为传输速率快广泛应用于数据中心、云计算、人工智能、机器学习、视觉计算、显卡、存储和网络等领域。PCIE插槽是可以向下兼容的,比如PCI...
Linux3.10.0块IO子系统流程(6)-- 派发SCSI命令到低层驱动
在SCSI策略例程中最后调用scsi_dispatch_cmd将SCSI命令描述符派发给低层驱动进行处理 /** * scsi_dispatch_command - Dispatch a command to the low-level driver. * @cmd: command block w...
clonezilla使用_使用Clonezilla克隆Windows和Linux驱动器和分区
clonezilla使用Clonezilla is a very popular disk cloning and backup solution. Clonezilla provides a lot of different types of cloning capabilities. We ca...
010_Linux驱动之_DECLARE_WAIT_QUEUE_HEAD函数
010_Linux驱动之_DECLARE_WAIT_QUEUE_HEAD函数1. 功能:创建以个等待队列头2. 函数原型#define DECLARE_WAIT_QUEUE_HEAD (name) / wait_queue_head_t n...
从零开始之驱动发开、linux驱动(二十七、修改三星平台framebuffer参数支持我们的LCD)
修改三星平台的fb支持我们的单板上的fb,只需要很少的修改。 1.6个时序参数修改 下面仔细说一下fb_videomode各个成员的意义:名称在数据手册中的简称中文名意义备注nameNo名字液晶屏名字(可选)NorefreshNo刷新频率刷新频率(内核中很多例子都赋值为60)NoxresNo行宽每行...
linux设备驱动之PCI总线概述
文章目录总线概念PCI总线PCI总线体系结构PCI设备寻址PCI寻址配置寄存器总线概念总线是一种传输信号的信道;总线是连接一个或多个半导体的电气连线。总线由电气接口和编程接口组成,对于软件设计人员来说,重点关注编程接口。PCI总线PCI(Perpheral Component Interconnec...
linux平台实现USB虚拟总线驱动二(把驱动移植到Android系统)
by fanxiushu 2019-11-07 转载或引用请注明原始作者。接上文,把上文中开发的驱动移植到android系统中来。因为我身边没有Android系统的设备,很疑惑,目前确实没有。因此只好在模拟器上打主意了, 我想模拟器跟真机其实差不多的,没道理模拟器能移植成功,而真机无法移植成功。要...
如何将自己写的驱动编译进linux内核镜像中
大家在做驱动开发时,通常都是将驱动源码编译为.ok文件,然后通过insmod 加载进系统中,那么如何能够实现在编译linux内核源码时,同时将驱动源码一同编译进镜像中呢?下面给出具体的方法和步骤1,在Linux内核源码的drivers目录下创建自己的驱动源码目录,这里我同时加入两个驱动,分别...
Linux驱动修炼之道-看门狗框架源码分析
努力成为linux kernel hacker的人李万鹏原创作品,为梦而战。转载请标明出处http://blog.csdn.net/woshixingaaa/archive/2011/06/03/6525504.aspx由于计算机在工作时不可避免的要受到各种各样因素的干扰,即使再优秀的计算机程序也可...
嵌入式Linux驱动学习之路(十四)按键驱动-同步、互斥、阻塞
目的:同一个时刻,只能有一个应用程序打开我们的驱动程序。①原子操作:v = ATOMIC_INIT( i ) 定义原子变量v并初始化为iatomic_read(v) 返回原子变量的值atomic_set(v,i) 设置原子变量的值atomic_inc_and_test(v...
Linux驱动框架之misc类设备驱动框架
1、何为misc设备(1)misc中文名就是杂项设备\杂散设备,因为现在的硬件设备多种多样,有好些设备不好对他们进行一个单独的分类,所以就将这些设备全部归属于杂散设备,也就是misc设备,例如像adc、buzzer等这些设备一般都归属于misc中。(2)需要注意的是,虽然这些设备归属于杂散设备中,但...
第17章Linux 音频设备驱动之Linux ALSA 音频设备驱动(一)
17.4 Linux ALSA 音频设备驱动17.4.1 ALSA 的组成 虽然 OSS 已经非常成熟,但OSS是一个没有完全开放源代码的商业产品,而且目前基本上在 Linux mainline 中失去了更新。 ALSA (Advanced Linux Sound Architecture)恰...
海思Hi3531 GPIO按键的长按、短按、连发——Linux驱动+应用程序
之前整理了一篇博文,是纯粹在应用层(用户空间)来轮询GPIO口的电平状态,来达到按键检测的目的。https://blog.csdn.net/cfl927096306/article/details/88640930显然这样就会一直不停的占用CPU,虽然每次轮询都delay了10毫秒,但这样的代码还是...