linux 内核
文章平均质量分 77
小艾的01
这个作者很懒,什么都没留下…
展开
-
Linux内核配置
1. 配置系统的基本结构Linux内核的配置系统由三个部分组成,分别是:1 Makefile:分布在 Linux 内核源代码中的 Makefile,定义 Linux 内核的编译规则;2 配置文件(config.in):给用户提供配置选择的功能;3 配置工具:包括配置命令解释器(对配置脚本中使用的配置命令进行解释)和配置用户界面(提供基于字符界面、基于 Ncurses 图形界面以及基转载 2014-01-23 15:56:08 · 835 阅读 · 0 评论 -
完全解析input子系统设备模型之mini2440按键驱动程序
本文为本人原创,欢迎转载!转载请注明出处:snowboy.blog.chinaunix.net雪夜流星------------------------------------------ 实现过程中参考了文章http://blog.csdn.net/sylcrq/article/details/6174144在此表示感谢 本人是成长中转载 2014-09-11 15:56:57 · 684 阅读 · 0 评论 -
Linux内核驱动之GPIO子系统(一)GPIO的使用
一 概述 Linux内核中gpio是最简单,最常用的资源(和 interrupt ,dma,timer一样)驱动程序,应用程序都能够通过相应的接口使用gpio,gpio使用0~MAX_INT之间的整数标识,不能使用负数,gpio与硬件体系密切相关的,不过linux有一个框架处理gpio,能够使用统一的接口来操作gpio.在讲gpio核心(gpiolib.c)之前先来看看gpio是怎么使用转载 2014-09-11 15:32:21 · 556 阅读 · 0 评论 -
电容屏FT5x06驱动与设计
电容屏FT5x06驱动与设计说明书 拟 制 人:周亦行核 准 人:发布单位:发布时间: 版本变更说明版本变更说明转载 2014-09-11 16:36:00 · 1824 阅读 · 0 评论 -
Linux中的gpio口使用方法
Linux中的IO使用方法 应该是新版本内核才有的方法。请参考:./Documentation/gpio.txt文件提供的API:驱动需要包含 #include 判断一个IO是否合法:int gpio_is_valid(int number);设置GPIO的方向,如果是输出同时设置电平:/* set as input or output, returning转载 2014-09-11 16:19:19 · 605 阅读 · 0 评论 -
android4.0触摸屏(touchscreen)以及屏幕按键驱动解析
本人用的触摸屏IC是FocalTech公司的ft5306,是一款i2c的电容屏多点触控芯片。对于它的整体驱动官方已经给了,我们就触摸屏和按键部分的代码做相关说明。说明其中应该注意的地方。对于所有的input设备,报告input事件时候都分这么几部分,首先在probe文件中设置设备发送的事件类型、按键类型、设置设备一些属性信息。然后在发送事件时候要根据probe的设置来发送事件,否则就会被判转载 2014-09-13 15:53:49 · 1271 阅读 · 0 评论 -
在Linux内核中打印日志时间戳
在编译Linux内核,配置时:make menuconfig ---> Kernel hacking --> show timing information on printks 当选中这个选项后,启动内核,会在日志信息前面加上时间戳。从下面的输出可以看出,时间精确到微秒(us)。 如下:---------------------------------转载 2014-08-18 09:37:13 · 1863 阅读 · 0 评论 -
【转】跟我一起写udev规则(译)
目录 介绍 关于本文档 更新历史概念 术语: devfs, sysfs, nodes, etc. 为什么? 内置固定命名设计编写规则 规则文件和语义 规则语法 基本规则 sysfs匹配属性 设备级联结构 字符串替换 字符串匹配从sys转载 2014-08-31 20:35:03 · 596 阅读 · 0 评论 -
udev和sysfs简介
Libudev和sysfs指南 这是一篇译文,原文在:http://blog.csdn.net/fjb2080/article/details/7528894 在unix和类unix系统中,硬件设备可以通过/dev目录下的特殊文件进行访问,这些文件又被称为设备文件或设备节点。通过操作普通文件一样读写这些文件可以利用内核设备驱动程序与硬件设备通信,而这个过程不转载 2014-08-31 20:37:20 · 1172 阅读 · 0 评论 -
Linux┊详解udev
如果你使用Linux比较长时间了,那你就知道,在对待设备文件这块,Linux改变了几次策略。在Linux早期,设备文件仅仅是是一些带有适当的属性集的普通文件,它由mknod命令创建,文件存放在/dev目录下。后来,采用了devfs, 一个基于内核的动态设备文件系统,他首次出现在2.3.46内核中。Mandrake,Gentoo等Linux分发版本采用了这种方式。devfs创建 的设备文件是动态的。转载 2014-08-31 20:32:02 · 535 阅读 · 0 评论 -
系统启动挂载根文件系统时kernel panic
能出现让人激动的的控制台,那么系统移植已经接近完成;但是不少人在最后一步出现问题。 要点如下: 1. 在正确的位置烧写正确格式的文件系统映象: 2. 内核支持这种文件系统格式 3. 文件系统的内容要完备 上面说得简单,一个个介绍。 1. 在正确的位置烧写正确的文件系统映象: (a). 正确的位置 嵌入式开发中,常通过bootloade转载 2014-11-04 13:49:20 · 687 阅读 · 0 评论 -
request_irq()、free_irq()
这是驱动程序申请中断和释放中断的调用。在include/linux/sched.h里声明。 request_irq()调用的定义: int request_irq(unsigned int irq, void (*handler)(int irq, void *dev_id, struct pt_regs *regs ),unsigned long irqflags, co转载 2014-09-11 15:55:06 · 667 阅读 · 0 评论 -
Linux驱动模块编译进内核中
BQ27501驱动编译进内核一、 驱动程序编译进内核的步骤在 linux 内核中增加程序需要完成以下三项工作:1. 将编写的源代码复制到 Linux 内核源代码的相应目录;2. 在目录的 Kconfig 文件中增加新源代码对应项目的编译配置选项;3. 在目录的 Makefile 文件中增加对新源代码的编译条目。转载 2014-08-28 15:56:48 · 634 阅读 · 0 评论 -
内核启动出现Partially written xxx block detected
arm板启动后出现大量的Partially written block 53 detectedPartially written block 53 detectedPartially written block 53 detectedPartially written block 53 detectedPartially written block 53 detected转载 2014-07-15 09:01:26 · 554 阅读 · 0 评论 -
Linux 内核启动时间分析
1. 首先修改kernel的bootargs,在bootargs中添加以下内容: printk.time=y initcall_debug 我使用的bootargs修改后如下: setenv bootargs "root=/dev/mtdblock2 rootfstype=yaffs2 init=/init console=ttyS转载 2014-07-14 20:20:22 · 913 阅读 · 0 评论 -
Linux系统管理 启动时间的极限优化方案
在上次完成嵌入式应用的Linux裁减后,Linux的启动时间仍需要 7s 左右,虽然勉强可以接受,但仍然没有达到我个人所追求的目标——2s 以内。况且,在实际的商用环境中,设备可靠性的要求可是“5个9”(99.999%,即OOS时间低于5分钟/年),这就意味着每减少一秒钟Linux启动(设备复位)时间,对可靠性都是一个明显的提升。 言归正传,如何着手对Linux的启动时间进行优化呢?转载 2014-07-14 20:49:43 · 777 阅读 · 0 评论 -
U-boot分区及内核更新的实现
一 问题提出1)在没有网络的环境下可以使用U盘等存储介质来更新内核2)可以通过网络远程更新内核3)支持U-Boot对nor falsh ,nand flash的分区4) U-Boot下对JFFS2文件系统的支持。二 问题解决通过实现U-boot使用JFFS2文件系统加载内核的方法解决上述内核更新及分区问题 三 问题实现(u-boot-2009.01)添加对JFF转载 2014-07-23 10:47:34 · 1242 阅读 · 0 评论 -
Linux MTD系统剖析
MTD,Memory Technology Device即内存技术设备,在Linux内核中,引入MTD层为NOR FLASH和NAND FLASH设备提供统一接口。MTD将文件系统与底层FLASH存储器进行了隔离。如上图所示,MTD设备通常可分为四层,从上到下依次是:设备节点、MTD设备层、MTD原始设备层、硬件驱动层。Flash硬件驱动层:Flash硬件驱动层负责对Flash硬件转载 2014-07-23 11:15:28 · 613 阅读 · 0 评论 -
linux nand flash常用命令
使用命令前用cat /proc/mtd 查看一下mtdchar字符设备;或者用ls -l /dev/mtd*#cat /proc/mtddev: size erasesize namemtd0: 00c00000 00020000 “ROOTFS”mtd1: 00200000 00020000 “BOOTLOADER”mtd2: 00200000 00020000转载 2014-07-23 14:12:09 · 2000 阅读 · 0 评论 -
mtd-utils工具的编译和使用
一、下载源码包并解压root@:/home/# wget ftp://ftp.infradead.org/pub/mtd-utils/mtd-utils-1.0.0.tar.bz2root@:/home/# wget http://www.zlib.net/zlib-1.2.3.tar.gzroot@:/home/# wget http://www.oberhumer.com/open转载 2014-07-23 14:34:24 · 999 阅读 · 0 评论 -
Linux系统中/dev/mtd与/dev/mtdblock的区别,即MTD字符设备和块设备的区别
1. /dev/mtdN 是Linux 中的MTD架构中,系统自己实现的mtd分区所对应的字符设备,其里面添加了一些ioctl,支持很多命令,如MEMGETINFO,MEMERASE等。而mtd-util中的flash_eraseall等工具,就是以这些ioctl为基础而实现的工具,实现一些关于Flash的操作。比如,mtd 工具中的 flash_eraseall中的:if (ioctl(转载 2014-07-23 21:18:01 · 1018 阅读 · 0 评论 -
在Linux运行期间升级Linux系统(Uboot+kernel+Rootfs)
在Linux运行期间升级Linux系统(Uboot+kernel+Rootfs)版本:v1.1Crifan Li摘要本文主要介绍了如何在嵌入式Linux系统运行的时候,进行升级整个Linux系统,包括uboot,kernel和rootfs本文提供多种格式供:在线阅读HTMLHTMLs转载 2014-07-23 21:09:40 · 769 阅读 · 0 评论 -
了解RO、RW、ZI和.text .bss .data
了解RO,RW和ZI1.RO段包括只读代码段(code段/.text段)和常量段(RO Data段/.constdata段)。 2.RW段(.data段)指已被初始化成非0值的变量段。 3. ZI段(.bss段)指未被初始化或初始化为0的变量段。4.1 ARM Image的结构一个ARM Image structure由linker在以下几个方面定义:转载 2014-07-26 21:06:36 · 4057 阅读 · 0 评论 -
linux-2.6.32在mini2440开发板上移植(7)之修改linux开机logo
修改Linux LOGO编者:linux的开机默认logo是一只可爱的小企鹅。这里我们可以把它换成我们自己喜爱的图片,只要将linux-2.6.32.2/drivers/video/logo/linux_logo_clut224.ppm替换成自己的图片即可。方法很简单,照着操作基本就没问题。以下按照手册介绍两种方法。注意在进行图片的转换时候,一定要先注意图片的大小,要和使用的液晶屏的大小匹配。转载 2014-07-14 16:34:45 · 556 阅读 · 0 评论 -
基数树(radix tree)
基数(radix)树Linux基数树(radix tree)是将指针与long整数键值相关联的机制,它存储有效率,并且可快速查询,用于指针与整数值的映射(如:IDR机制)、内存管理等。IDR(ID Radix)机制是将对象的身份鉴别号整数值ID与对象指针建立关联表,完成从ID与指针之间的相互转换。IDR机制使用radix树状结构作为由id进行索引获取指针的稀疏数组,通过使用位图可以转载 2014-08-26 15:26:08 · 621 阅读 · 0 评论 -
Linux workqueue工作原理
1. 什么是workqueue Linux中的Workqueue机制就是为了简化内核线程的创建。通过调用workqueue的接口就能创建内核线程。并且可以根据当前系统CPU的个数创建线程的数量,使得线程处理的事务能够并行化。workqueue是内核中实现简单而有效的机制,他显然简化了内核daemon的创建,方便了用户的编程. 工作队列(workqueue)是另外一转载 2014-09-10 14:14:03 · 468 阅读 · 0 评论 -
input-dev输入子系统
一.input子系统简介: linux系统中,input输入子系统驱动主要可以分为:设备驱动层、input core层和input handler事件处理层。设备驱动层为具体用户设备驱动,输入设备由struct input-dev 结构表示,并由input_register_device和input_unregister_device来注册和卸载;input hander事件转载 2014-09-10 15:00:18 · 692 阅读 · 0 评论 -
Linux Input子系统--概述
水平有限,描述不当之处还请指出,转载请注明出处http://blog.csdn.net/vanbreaker/article/details/7714188 输入设备总类繁杂,包括按键,键盘,触摸屏,鼠标,摇杆等等,它们本身都是字符设备,不过内核为了能将这些设备的共性抽象出来,简化驱动的开发,建立了一个Input子系统。Input子系统分为三层,从下至上分别是输入设备驱动层,输转载 2014-09-10 16:01:25 · 729 阅读 · 0 评论 -
Linux Input子系统--设备的注册和打开
水平有限,描述不当之处还请指出,转载请注明出处http://blog.csdn.net/vanbreaker/article/details/7718158 这节结合even handler来分析设备的注册和打开的过程,在设备注册之前,必须先初始化INPUT子系统,由input_init()函数来完成[cpp] view plaincopy转载 2014-09-10 16:13:21 · 12064 阅读 · 0 评论 -
linux内核编译Kconfig总结
linux内核make menuconfig生成.config时,会调用GUI配置工具,这个GUI配置工具具体调用的就是内核各目录下的Kconfig文件,Kconfig文件层次结构和各内核目录中层次相似,最终形成GUI的各级配置菜单。下面首先介绍Kconfig文件规则:Kconfig文件的基本要素:1.config条目(entry) config TMPFS_POSIX_AC转载 2016-09-13 10:34:05 · 3128 阅读 · 0 评论