
Linux Kernel
文章平均质量分 78
Dartagnan
发现问题,分析问题,解决问题,还别忘了记录问题!
展开
-
使用printk进行内核调试的方法
FROM:http://hi.baidu.com/bitzsk/blog/item/a242ed4588cb888ab3b7dccc.html---------------------------------------------------------------------------------------------------------------在编程时候,最简单的调试转载 2012-03-22 12:28:03 · 3693 阅读 · 0 评论 -
用busybox制作并配置根文件系统
http://blog.chinaunix.net/uid-26758020-id-3208951.html===========================================================================一、根文件系统和busybox1) 在~目录下,创建一个rootfs目录,将其制作为nfs,目录结构如转载 2012-10-26 17:21:39 · 7620 阅读 · 1 评论 -
嵌入式根文件系统的移植和制作详解
转载自:http://www.cnblogs.com/hicjiajia/archive/2012/07/10/2582642.html==============================================================一、文件系统理论上说一个嵌入式设备如果内核能够运行起来,且不需要运行用户进程的话,是不需要文件系统的,文件系统简转载 2012-10-26 20:20:14 · 1293 阅读 · 1 评论 -
Glib交叉编译:g__cancellable_lock undeclared!&HEADER/C_IN undeclared!&undefined reference to "localeconv"
编译过程遇到了诸多问题,记录下来以便后续参考:/libtool: eval: line 964: syntax error near unexpected token `|’:http://blog.youkuaiyun.com/dadoneo/article/details/8155044'g__cancellable_lock' undeclared (first原创 2012-11-19 14:06:43 · 5199 阅读 · 3 评论 -
关于realloc的调整内存方式
PROTOTYPE:void * realloc ( void * ptr, size_t new_size );关于realloc的行为方式,结合源码总结为:1. realloc失败的时候,返回NULL;2. realloc失败的时候,原来的内存不改变,也就是不free或不move,(这个地方很容易出错);3. 假如原来的内存后面还有足原创 2013-03-18 19:40:22 · 7322 阅读 · 3 评论 -
linux中select()函数分析
http://blog.youkuaiyun.com/zi_jin/article/details/4214359===================================Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(转载 2013-04-11 19:36:42 · 3062 阅读 · 0 评论 -
select ---IO 模型
http://blog.youkuaiyun.com/yanheifeng715000/article/details/6592447======================Select模型原理利用select函数,判断套接字上是否存在数据,或者能否向一个套接字写入数据。目的是防止应用程序在套接字处于锁定模式时,调用recv(或send)从没有数据的套接字上接收数据转载 2013-04-11 17:06:27 · 5259 阅读 · 0 评论 -
Linux驱动开发之主设备号找驱动,次设备号找设备
一、引言 很久前接触linux驱动就知道主设备号找驱动,次设备号找设备。这句到底怎么理解呢,如何在驱动中实现呢,在介绍该实现之前先看下内核中主次设备号的管理: 二、Linux内核主次设备号的管理 Linux的设备管理是和文件系统紧密结合的,各种设备都以文件的形式存放在/dev目录下,称为设备文件。应用程序可以打开、关闭和读写这些设备文件,完成对设备的操作,就像操作普通转载 2016-01-19 23:08:42 · 5618 阅读 · 0 评论 -
关于设备号的思考
这是最后的运行流程,用户open设备节点,通过主设备号找到驱动程序,根据次设备号找到对应的设备,使用驱动函数中的read(),write()等函数操作设备。为了搭建这样的运行时环境,需要做如下工作:1 驱动程序加载(申请主设备号,在/proc/devices下创建设备)2 根据具体设备创建设备节点 (查询合适的主设备号和可用的次设备号 在/dev下面创建设备节点)先转载 2016-01-20 16:39:51 · 3360 阅读 · 0 评论 -
DRIVER_ATTR and DEVICE_ATTR
Driver Attributes~~~~~~~~~~~~~~~~~struct driver_attribute { struct attribute attr; ssize_t (*show)(struct device_driver *driver, char *buf); ssize_t (*store)(struct转载 2015-12-22 17:50:49 · 4363 阅读 · 1 评论 -
Linux内核spin_lock、spin_lock_irq 和 spin_lock_irqsave 分析
在Linux内核中何时使用spin_lock,何时使用spin_lock_irqsave很容易混淆。首先看一下代码是如何实现的。spin_lock的调用关系 spin_lock | + -----> raw_spin_lock [cpp] view plaincopy转载 2015-12-22 19:38:05 · 3189 阅读 · 1 评论 -
使用 Yocto Project 构建自定义嵌入式 Linux 发行版
目录(?)[+]Yocto Project™ 是一个开源项目,设立该项目是为了使嵌入式 Linux® 开发更简单,更易于在不同架构间进行移植。本文将介绍该项目并提供如何开始使用该项目的分步指导。概述Yocto Project 是一个开源协作项目,它提供了一些模板、工具和方法来支持面向嵌入式产品的自定义 Linux 系统,不管硬件架构是什么。我想要转载 2015-12-23 15:35:16 · 3980 阅读 · 0 评论 -
linux设备模型之bus,device,driver分析一
===============================本文系本站原创,欢迎转载!转载请注明出处:http://www.cnblogs.com/gdt-a20=============================== 内核的开发者将总线,设备,驱动这三者用软件思想抽象了出来,巧妙的建立了其间的关系,使之更形象化。结合前面所学的知识,总的来说其三者间的关系为b转载 2016-01-29 16:47:54 · 6423 阅读 · 1 评论 -
Ramdisk根文件系统启动Linux(单独的ramdisk镜像)
转载自:http://blog.youkuaiyun.com/liwendovo/article/details/7713435=========================================================开发环境:Ubuntu10.04交叉编译工具链:univore32-linux-gcc 4.3.2 嵌入式Linux内核版转载 2012-10-26 19:51:25 · 3739 阅读 · 3 评论 -
构建基本的嵌入式Linux根文件系统
转载自:http://blog.chinaunix.net/space.php?uid=20543672&do=blog&id=94316作者写得非常用心细致,值得一看!附件下载见原文!=============================================================================其实在去年8月份我做系统移植时就构建转载 2012-10-26 19:45:50 · 1280 阅读 · 1 评论 -
Glib在arm-linux下的交叉编译
glib简介:http://www.cnblogs.com/wangkangluo1/archive/2011/07/10/2102178.htmlglib下载:http://ftp.gnome.org/pub/gnome/sources/glib/2.32/1、设置配置的变量#echo ac_cv_type_long_long=yes>arm-linux.cache原创 2012-11-01 19:29:28 · 5249 阅读 · 1 评论 -
Linux内核高端内存
ZZ FROM:http://ilinuxkernel.com/?p=1013====================================Linux内核地址映射模型x86 CPU采用了段页式地址映射模型。进程代码中的地址为逻辑地址,经过段页式地址映射后,才真正访问物理内存。段页式机制如下图。 Lin转载 2012-04-27 12:22:50 · 1469 阅读 · 0 评论 -
Linux内核中的宏:__init and __exit
ZZ FROM:http://blog.youkuaiyun.com/musein/article/details/742609==================================================The __init and __exit declarations are special kernel macros designed to tell th转载 2012-04-27 12:25:02 · 2234 阅读 · 0 评论 -
设备控制接口(ioctl 函数)
序言设备驱动程序的一个基本功能就是管理和控制设备,同时为用户应用程序提供管理和控制设备的接口。我们前面的“Hello World”驱动程序已经可以提供读写功能了,在这里我们将扩展我们的驱动以支持设备控制接口,在Linux中这个接口是通过ioctl函数来实现的。设备控制接口(ioctl 函数)回想一下我们在字符设备驱动中介绍的struct file_operations 结构,这里我转载 2012-06-11 13:28:16 · 1224 阅读 · 0 评论 -
Linux 嵌入式启动以及优化
ZZ FROM:http://blog.21ic.com/user1/5593/archives/2010/67071.html以前写了一篇Linux PC启动过程的日记,最近项目中,想优化一下启动过程,减少启动时间.因此研究了我们项目的启动全过程.第一步: BootLoader -- U boot 1 在cpu/arm926ejs/start.s中转载 2012-05-22 20:31:10 · 3178 阅读 · 1 评论 -
linux 用户空间 和 内核空间 延时函数
ZZ:http://blog.chinaunix.net/uid-23381466-id-258488.html=======================================================用户空间:1.unsigned int sleep(unsigned int seconds); sleep()会使当前程序休眠转载 2012-05-22 18:51:23 · 908 阅读 · 0 评论 -
内核初始化优化宏 ,初始化顺序, __init,__devexit等
内核使用了大量不同的宏来标记具有不同作用的函数和数据结构。如宏__init 、__devinit 等。这些宏在include/linux/init.h 头文件中定义。编译器通过这些宏可以把代码优化放到合适的内存位置,以减少内存占用和提高内核效率。下面是一些常用的宏:· __init ,标记内核启动时使用的初始化代码,内核启动完成后不再需要。以此标记的代码位于.init.text 内存区转载 2012-05-22 20:26:52 · 1192 阅读 · 0 评论 -
USB驱动分析 +<bus,device,driver三者关系>
来自:http://blog.chinaunix.net/uid-20691722-id-3154640.html=======================================================这个故事中使用的是2.6.10的内核代码.Linux内核代码目录中, 所有去设备驱动程序有关的代码都在drivers/目录下面,在这个目录中我们用ls命令可以看转载 2012-09-17 19:19:43 · 4950 阅读 · 1 评论 -
详解 ARM Linux启动过程
FROM: http://mobile.51cto.com/symbian-271893.htm============================================================================ARM Linux启动过程分析是本人要介绍的内容,嵌入式 Linux 的可移植性使得我们可以在各种电子产品上看到它的身影。对于不同体系结转载 2012-10-16 20:29:02 · 1233 阅读 · 0 评论 -
Bootm的流程分析
转载自:http://blog.163.com/pengchen293@126/blog/static/41134959201123095929255/===========================================================================一、在开始之前先说明一下bootm相关的东西。 1、首先说明一下,转载 2012-10-29 18:33:40 · 1984 阅读 · 0 评论 -
mount -o loop 回环设备相关
先让我们来了解下:回环设备(loop-back devices) 回环设备( 'loopback device')允许用户以一个普通磁盘文件虚拟一个块设备。设想一个磁盘设备,对它的所有读写操作都将被重定向到读写一个名为 disk-image 的普通文件而非操作实际磁盘或分区的轨道和扇区。(当然,disk-image 必须存在于一个实际的磁盘上,而这个磁盘必须比虚拟的磁盘容量更大。)原创 2012-10-29 18:31:23 · 25099 阅读 · 0 评论 -
用busybox创建基于Linux2.6.24内核的nfs根文件系统
转载自:http://blog.youkuaiyun.com/flymachine/article/details/7000447===================================================================一、主机环境 Linux version 2.4.20-8, RedHat9, VMWare5.5.3; gcc versi转载 2012-10-26 19:25:25 · 2425 阅读 · 3 评论 -
Linux的内存管理之道
转载自:http://blog.youkuaiyun.com/kanghua/article/details/1837872http://blog.youkuaiyun.com/kanghua/article/details/1837876==================================================================================转载 2012-10-22 20:38:55 · 1148 阅读 · 1 评论 -
linux device tree源代码解析
原地址:http://blog.chinaunix.net/uid-27717694-id-4274992.html//Based on Linux v3.14 source codeLinux设备树机制(Device Tree)一、描述ARM Device Tree起源于OpenFirmware (OF),在过去的Linux中,arch/arm转载 2016-03-23 11:26:43 · 5505 阅读 · 4 评论