
linux
文章平均质量分 78
fouweng
天下大势浩浩荡荡,顺之者昌,逆之者亡。努力奋斗,做更好的自己。
展开
-
如何修复docker-machine: command not found error
如何修复docker-machine: command not found error 使用docker machine ,你尝试使用命令创建一个虚拟机。docker-machine create -driver virtualbox your_vm [docker machine create vm command] 。但返回的是一个错误:docker machine command not found要解决这个问题,你需要事先使用docker工具箱安装docker machine (同时安装D转载 2021-02-04 19:42:57 · 2064 阅读 · 0 评论 -
如何向kernel提交patch
1。安装msmtpmsmtp 是一款专门负责邮件发送的客户端软件,基于GPL发布,支持TLS/SSL、DNS模式、IPv6、服务器端认证、多用户等特性。其主页是 msmtp.sourceforge.net:直接用sudo apt-get install msmtp安装安装好后,进行基本配置$ cat .msmtprc# Set default values fo原创 2016-12-09 16:28:03 · 2329 阅读 · 0 评论 -
pci简单接口函数
/* dev and priv zeroed in alloc_etherdev */ dev = alloc_etherdev (sizeof (*tp)); if (dev == NULL) { dev_err(&pdev->dev, "Unable to alloc new net device/n"); return转载 2016-12-26 14:37:32 · 5121 阅读 · 0 评论 -
usb urb接口
一. 简介 usb总线是一种轮询式总线,协议规定所有的数据传输都必须由主机发起,usb主机与设备之间是通过管道(pipe)传输的,管道两边分别对应主机中的数据缓冲区和设备侧的端点(endpoint),端点是通信的发送和接收点,要发送数据,只要把数据发到对应的端点就可以,而这个数据发送的动作由usb主机实现,驱动中只需确定接收端点,然后把数据提交给主机控制器,主机会把数据发送转载 2016-12-27 11:29:42 · 1001 阅读 · 0 评论 -
scatter/gether的知识点 struct scatterlist
struct scatterlist *sglist { unsigned long page_link;//page 位置,大约就是虚拟地址page的位置 unsigned int offset;//偏移量 unsigned int length;//长度 dma_addr_t dma_address;//dma的地址,应该就是总线地址 unsi原创 2016-12-27 17:17:23 · 1496 阅读 · 0 评论 -
USB枚举过程图解
USB 最主要的的是要理解 USB主机发送命令给设备,设备要对主机的命令进行响应, USB通讯的基本单位为 “包” 理解好“包”这个概念是学习USB的关键所在。包有如下分类:分别是令牌包、数据包、握手包和特殊包(其实是由PID决定的)令牌包:可分为输入包、输出包、设置包和帧起始包(注意这里的输入包是用于设置输入命令的,输出包是用来设置输出命令的,而不是放据数的)其转载 2016-12-28 10:37:54 · 1725 阅读 · 0 评论 -
通用块层,scsi_cmd的产生及发送,mmc block实现.
1. 引言在我前面的博客中详细分析了Linux页面缓存的实现机制,包括各种数据结构以及之间的关联。本篇专栏中我们将会详细讨论文件系统如何从磁盘上读出一个页面。我们知道,文件系统以页面(page,默认大小4096字节)为单位缓存文件数据,而早期的Linux中是以buffer head结构组织文件缓存的。每个buffer head数据大小与文件系统块大小相同,在当前版本操作系统中,page和b原创 2017-01-13 17:33:19 · 2392 阅读 · 0 评论 -
wpa_supplicant & wpa_cli 无线网络配置
目前可以使用wireless-tools 或wpa_supplicant工具来配置无线网络。请记住重要的一点是,对无线网络的配置是全局性的,而非针对具体的接口。 wpa_supplicant是一个较好的选择,但缺点是它不支持所有的驱动。请浏览wpa_supplicant网站获得它所支持的驱动列表。另外,wpa_supplicant目前只能连接到那些你已经配置好ESSID的无线网络。wire转载 2017-03-30 13:49:28 · 828 阅读 · 0 评论 -
Linux内核开发之内存与I/O访问(六)
“小王,再告诉你一个好消息,今天是咱们设备驱动程序核心基础理论的最后一节课了,战斗就已经到了最后一刻了,开心不”我眉飞色舞的对小王说。“嗯,开心,我挣扎许久了,终于结束了,只是..”小王伤感的说“只是我觉得怎么能一下就没了呢, 心里空荡荡的”.“没关系的…”看着小王噘着嘴调皮而又可爱的样子,我也心软了”核心的理论是讲完了,但你不是没动过手吗,还有很多路要走呢..我还舍…”我一把蒙住自己的嘴转载 2017-03-15 11:05:22 · 413 阅读 · 0 评论 -
Linux ALSA声卡驱动之三:PCM设备的创建
1. PCM是什么 PCM是英文Pulse-code modulation的缩写,中文译名是脉冲编码调制。我们知道在现实生活中,人耳听到的声音是模拟信号,PCM就是要把声音从模拟转换成数字信号的一种技术,他的原理简单地说就是利用一个固定的频率对模拟信号进行采样,采样后的信号在波形上看就像一串连续的幅值不一的脉冲,把这些脉冲的幅值按一定的精度进行量化,这些量化后的数值被连续地输转载 2016-12-02 16:15:59 · 452 阅读 · 0 评论 -
i2c 驱动编程接口 i2c_master_send 和 i2c_master_recv i2c_transfer
1、通信接口i2c发送或者接收一次数据都以数据包 struct i2c_msg 封装[cpp] struct i2c_msg { __u16addr; // 从机地址 __u16flags; //标志 #define I2C_M_TEN 0x0010 // 十位地址标志 #defineI2C_M_RD 0x0001 // 接收数转载 2016-11-30 14:05:10 · 1466 阅读 · 0 评论 -
kernel 编译环境问题
我的电脑原来一直不能编译kernel通过,今天看到一篇文章,并按照试来一次 ,竟然真的可以通过了。话不多说。二、内核编译操作:1、解压 kernel_V1.0.05.tar.gz 内核包 tar-zxf kernel_V1.0.05.tar.gz 得到kernel文件目录2、编译内核 cdkernel cparch/arm/configs/ai转载 2016-11-30 14:08:41 · 952 阅读 · 0 评论 -
linux 3.x下的regulator_consumer_supply的变化
linux3.x下采用dts的方式建立设备树,自然给驱动带来很多改变。regulator也有很多变化。结构体regulator_init_datastruct regulator_init_data { const char*supply_regulator; 父节点 structregulation_constraints constraints;转载 2016-11-30 11:29:47 · 705 阅读 · 0 评论 -
【转载】Linux kernel的中断子系统之(二):IRQ Domain介绍
作者:linuxer发布于:2014-8-19 18:46 分类:Linux内核分析一、概述在linux kernel中,我们使用下面两个ID来标识一个来自外设的中断:1、IRQ number。CPU需要为每一个外设中断编号,我们称之IRQ Number。这个IRQnumber是一个虚拟的interrupt ID,和硬件无关,仅仅是被CPU用来标识一个外设中断。2、HW inter转载 2016-11-30 11:31:33 · 548 阅读 · 0 评论 -
Linux中断(interrupt)子系统之一:中断系统基本原理
这个中断系列文章主要针对移动设备中的Linux进行讨论,文中的例子基本都是基于ARM这一体系架构,其他架构的原理其实也差不多,区别只是其中的硬件抽象层。内核版本基于3.3。虽然内核的版本不断地提升,不过自从上一次变更到当前的通用中断子系统后,大的框架性的东西并没有太大的改变。声明:本博内容均由http://blog.youkuaiyun.com/droidphone原创,转载请注明出处,谢谢!转载 2016-11-30 11:33:51 · 387 阅读 · 0 评论 -
platform_get_drvdata&dev_get_drv_data
驱动中常用到platform_set_drvdata 和platform_get_drvdata这两个函数,用于保存局部变量:include/linux/platform_device.h中:static inline void *platform_get_drvdata(const structplatform_device*pdev){ return dev_get_drv转载 2016-11-30 11:35:17 · 1013 阅读 · 0 评论 -
Linux芯片级移植与底层驱动(基于3.7.4内核) --中断控制器
3. 中断控制器驱动在Linux内核中,各个设备驱动可以简单地调用request_irq()、 enable_irq()、disable_irq()、local_irq_disable()、local_irq_enable()等通用API完 成中断申请、使能、禁止等功能。在将Linux移植到新的SoC时,芯片供应商需要提供该部分API的底层支持。local_irq_disabl转载 2016-11-30 11:36:15 · 367 阅读 · 0 评论 -
ubuntu下编译内核模块ko,并加载
1.hello.c#include#includeMODULE_LICENSE("DualBSD/GPL");MODULE_AUTHOR("MDAXIA");static int __inithello_init(void){printk(KERN_ALERT "Helloworld!\n");return 0;}static void转载 2016-11-30 14:04:01 · 8070 阅读 · 0 评论 -
串口编程云台
原文:http://blog.chinaunix.net/uid-12851022-id-1988560.html云台设备,说白了就是一个单片机驱动电机或者继电器从而实现摄像头在垂直方向的运动,水平方向的摆动,以及电子镜头的聚焦光圈变化和变倍。 上位机通过串口连到单片机。真正的控制功能是通过上位机向串口发送数据而实现的。LINUX编程实现就是写串口。控制协议一般为PELCO-D转载 2016-11-30 14:50:14 · 1347 阅读 · 1 评论 -
cpufreq dvfs相关内容
http://blog.youkuaiyun.com/droidphone/article/details/9385745转载 2016-11-30 14:46:55 · 435 阅读 · 0 评论 -
Atheros AR9344中断处理流程
事由: 当我写irq chip的驱动的时候,我发现irq alloc descs这个函数可以不用,我就很奇怪,如果不分配空间创建irqdesc,哪接下来的irq set chip 以及irq set chip data等函数向哪里填充数据。我继续查看irq set chip等函数,kernel/kernel/irqstruct irq_desc *desc=irq_get_desc_loc转载 2016-11-30 14:42:49 · 889 阅读 · 0 评论 -
Linux内核regulator架构和编写
http://blog.youkuaiyun.com/lurayvis/article/details/26642641 LDO是low dropoutregulator,意为低压差线性稳压器,是相对于传统的线性稳压器来说的。传统的线性稳压器,如78xx系列的芯片都要求输入电压要比输出电压高出2v~3V以上,否则就不能正常工作。但是在一些情况下,这样的条件显然是太苛刻了,如5v转3.3v,输入与转载 2016-11-30 11:27:49 · 665 阅读 · 0 评论