
linux
文章平均质量分 72
wh_19910525
这个作者很懒,什么都没留下…
展开
-
linux设备驱动——总线、设备、驱动
2.6 版本内核是如何管理总线,驱动,设备之间的关系的,关于bus_type、device_driver、device这三个内核结构在内核代码中可以找到。由于这三个结构的重要性,我们在这里先将它们贴出来; 1、设备结构的定义: struct device { struct klist klist_children; struct klist_node原创 2012-03-27 11:05:53 · 8522 阅读 · 2 评论 -
git 使用详解(1)--历史
版本控制系统(VCS)::有了它你就可以将某个文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态。你可以比较文件的变化细节,查出最后是谁修改了哪个地方,从而导致出现怪异问题,又是谁在何时报告了某个功能缺陷等等。使用版本控制系统通常还意味着,就算你乱来一气把整个项目中的文件改的改删的删,你也照样可以轻松恢复到原先的样子。但额外增加的工作量却微乎其微。集中化的版本控制系统原创 2012-03-26 13:39:06 · 3295 阅读 · 0 评论 -
ssh-keygen 的 详解
为了让两个linux机器之间使用ssh不需要用户名和密码。所以采用了数字签名RSA或者DSA来完成这个操作。模型分析假设 A (192.168.20.59)为客户机器,B(192.168.20.60)为目标机;要达到的目的:A机器ssh登录B机器无需输入密码;加密方式选 rsa|dsa均可以,默认dsassh-keygen -t rsa #使用rsa加密二、具体操作原创 2012-04-06 17:30:38 · 191146 阅读 · 5 评论 -
Linux I2C核心、总线与设备驱动
I2C总线仅仅使用SCL、SDA两根信号线就实现了设备之间的数据交互,极大地简化对硬件资源和PCB板布线空间的占用。因此,I2C总线被非常广泛地应用在EEPROM、实时钟、小型LCD等设备与CPU的接口中。Linux定义了系统的I2C驱动体系结构,在Linux系统中,I2C驱动由3部分组成,即I2C核心、I2C总线驱动和I2C设备驱动。这3部分相互协作,形成了非常通用、可适应性很强的I2C框架转载 2012-03-21 10:42:44 · 1892 阅读 · 0 评论 -
git 使用详解(3)-- 初体验
Git 基础本章将介绍几个最基本的,也是最常用的 Git 命令,以后绝大多数时间里用到的也就是这几个命令。读完本章,你就能初始化一个新的代码仓库,做一些适当配置;开始或停止跟踪某些文件;暂存或提交某些更新。我们还会展示如何让 Git 忽略某些文件,或是名称符合特定模式的文件;如何既快且容易地撤消犯下的小错误;如何浏览项目的更新历史,查看某两次更新之间的差异;以及如何从远程仓库拉数据下来或者推数原创 2012-03-26 17:12:00 · 2866 阅读 · 0 评论 -
git 使用详解(2)--安装
安装 Git Git 有许多种安装方式,主要分为两种,一种是通过编译源代码来安装;另一种是使用为特定平台预编译好的安装包。从源代码安装若是条件允许,从源代码安装有很多好处,至少可以安装最新的版本。Git 的工作需要调用 curl,zlib,openssl,expat,libiconv 等库的代码,所以需要先安装这些依赖工具。在有 yum 的系统上 或者有 apt-get原创 2012-03-26 13:57:55 · 2394 阅读 · 0 评论 -
SHELL 命令:dirname basename的使用
取一个文件存储路径,可以用dirname。使用起来分两种情况:一、带全路径的,例:aguo@auto-test:~> dirname /home/aguo/insert.sql/home/aguo #获得文件所在目录二、仅仅是文件名的,例:aguo@auto-test:~> dirname Environment.表示路径就是当前目录字号:大中 小原创 2012-04-28 11:50:04 · 11462 阅读 · 0 评论 -
shall 内部命令 和 外部命令
UNIX 命令有内部命令和外部命令之分。内部命令 实际上是shell程序的一部分,其中包含的是一些比较简练的UNIX系统命令,这些命令由shell程序识别并在shell程序内部完成运行,通常在UNIX系统加载运行时shell就被加载并驻留在系统内存中。外部命令 是UNIX系统中的 实用程序部分,因为实用程序的功能通常都比较强大,所以它们包含的程序量也会很大,在系统加载时 并不 随系统一起被加载原创 2012-04-27 19:49:51 · 2747 阅读 · 0 评论 -
linux patch 命令小结
说到patch命令,就不得不提到diff命令,也就是制作patch的必要工具。diff命令,在制作patch文件的时候,基本上只需要使用到diff -Nau 这个参数,如果比较的是文件夹,还要加上-r参数,所以一般直接使用Naur参数。 实验的基本步骤。我打算是建立一个级联目录./x/xx/xxx/,在xxx目录下建立两个不同的文件xxx1,xxx2。然后在xxx目录下用diff命令,原创 2012-04-26 20:25:41 · 120692 阅读 · 6 评论 -
linux 查看系统版本 命令
1. 查看内核版本命令:1) [root@q1test01 ~]# cat /proc/version查看linux版本:1) 登录到服务器执行 lsb_release -a ,即可列出所有版本信息,原创 2012-05-16 12:39:47 · 983 阅读 · 0 评论 -
ubuntu10.04启动后出现grub rescue 模式
由于在rescue模式下,只有少量的基本命令可用,必须通过一定的操作才能加载正常模块,然后进入正常模式。rescue模式下可使用的命令有:set,ls,insmod,root,prefix(设置启动路径) 先假设grub的核心文件在(hd0,8)分区,再来看看怎样从rescue模式进入从 (hd0,8)启动的正常模式(normal)。在rescue模式下不清楚grub文件处原创 2012-06-14 15:00:29 · 1635 阅读 · 0 评论 -
多系统的 启动 顺序 修改
一、能上网情况下的最好方法:安装startupmanager——图形启动项管理器 打开终端输入:sudo apt-get install startupmanager 安装启动管理器 系统——系统管理——启动管理器,选中默认开机操作系统即可。二、最方便的方法:调整Windows系统的默认启动顺序(不需要修改grub.cfg) /etc/grub.d 目录中的脚本文原创 2012-08-21 18:04:20 · 3141 阅读 · 0 评论 -
shell中如何设置自增的变量
shell中如何设置自增的变量loop=1for i in `ls`do# loop=`expr $loop + 1`# let loop+=1# ((loop++))# loop=$[$loop+1] loop=$(( $loop + 1 )) echo "$i " echo "num : $loop"done原创 2012-08-21 14:21:59 · 2459 阅读 · 0 评论 -
ubuntu 10.04 常用 设置
1、修改grub 添加 red hat / xp/win 7等 启动修改终端显示 把以下这一句添加到 ~/.bashrc 中; PS1='${debian_chroot:+($debian_chroot)}\[\033[01;34m\]\u\[\033[01;33m\]:\[\033[01;31m\]\W\[\033[1;36m\]>\[\e[0m\]'2、 root用户登录原创 2012-04-16 11:00:23 · 1277 阅读 · 0 评论 -
Makefile中常用的函数
在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能。make所支持的函数也不算很多,不过已经足够我们的操作了。函数调用后,函数的返回值可以当做变量来使用。一、函数的调用语法函数调用,很像变量的使用,也是以“$”来标识的,其语法如下: $()或是 ${}这里,就是函数名,make支持的函数不多。是函数的参数,参数间以逗原创 2012-09-18 19:02:03 · 1026 阅读 · 0 评论 -
Makefile的常用语法 及 规则
1、wildcard : 扩展通配符2、notdir : 去除路径3、patsubst :替换通配符4、条件表达式的语法=========================例子:建立一个测试目录,在测试目录下建立一个名为sub的子目录$ mkdir test$ cd test$ mkdir sub在test下,建立a.c和b原创 2012-09-18 18:25:14 · 4042 阅读 · 0 评论 -
编译某一个ko模块make modules SUBDIRS=drivers/xxx/
make modules SUBDIRS=drivers/usb/gadget/这样可以只是编译drivers/usb/gadget/目录下的ko模块 ---------------------------------------在drivers/char/Makefile文件中添加:obj-$ (CONFIG_S3C2410_GPIO_LED) +=L原创 2012-10-16 21:58:51 · 9144 阅读 · 1 评论 -
cpio命令详解
cpio 可以从 cpio 或 tar 格式的归档包中存入和读取文件, 归档包是一种包含其他文件和有关信息的文件。 有关信息包括:文件名, 属主, 时标(timestamp), 和访问权限。 归档包可以是磁盘上的 其他文件, 也可以是磁带或管道。cpio 有三种操作模式:在copy-out模式中, cpio 把文件复制到归档包中。它从标准输入获得文件名列表 (一行一个)。默认原创 2012-10-25 20:05:48 · 33869 阅读 · 0 评论 -
Linux2.6 内核的 Initrd 机制解析
1.什么是 Initrdinitrd 的英文含义是 boot loader initialized RAM disk,就是由 boot loader 初始化的内存盘。在 linux内核启动前, boot loader 会将存储介质中的 initrd 文件加载到内存,内核启动时会在访问真正的根文件系统前先访问该内存中的 initrd 文件系统。在 boot loader 配置了 initrd原创 2012-10-25 21:16:12 · 930 阅读 · 0 评论 -
Qt之QProcess 和 c语言对比
命令行参数大多控制台程序都接受命令行参数,一个例子:#include int main(int argc, char **argv){ for (int i=1; i<argc; ++i) printf("%s\n", argv[i]); return 0;}编译,调用程序时可指定命令行,结果:$ ./process a b "c d"原创 2012-11-04 17:10:27 · 5547 阅读 · 0 评论 -
gzip 小结
gzip是GNU zip的缩写,它是一个GNU自由软件的文件压缩程序, 也经常用来表示gzip这种文件格式。主要用于UNⅨ系统的文件压缩。我们在Linux中经常会用到后缀为.gz的文件,它们就是GZIP格式的。文件格式说明: 但是通常gzip仅仅用来压缩单个文件。多个文件的压缩归 档通常是首先将这些文件合并成一个tar文件,然后使用gzip进行压缩原创 2012-10-25 20:16:53 · 9625 阅读 · 0 评论 -
QT-Linux开发环境的搭建和helloworld
如果读者需要在Linux下进行开发,可以使用下面简单的步骤来搭建环境:(下面以Ubuntu 12.04 为例进行说明)1. 下载软件到http://get.qt.nokia.com/qt/source/ 下载Linux版本的Qt库 qt-everywhere-opensource-src-4.7.2.tar.gz到http://download.qt.nokia.com转载 2012-10-27 13:20:29 · 23331 阅读 · 0 评论 -
多系统 grub之ubuntu的 grub
## DO NOT EDIT THIS FILE## It is automatically generated by /usr/sbin/grub-mkconfig using templates# from /etc/grub.d and settings from /etc/default/grub#### BEGIN /etc/grub.d/00_header原创 2012-11-06 13:24:26 · 967 阅读 · 0 评论 -
关于ubuntu的apt-get 包
如果 apt-get 不能使用,那么 先执行一下:sudo apt-get dist-upgrade #更新已安装的包,然后重新 执行 apt-get 。安装DEB包直接 双击 就可以安装了,apt-get 是Ubuntu 的包管理软件,在终端中使用,例如:打开终端 然后输入 sudo apt-get install xxx(软件名),(这样安装的是你软件源中的软件,原创 2012-04-16 10:57:06 · 1137 阅读 · 0 评论 -
linux 重定向 1>&2 2>&1
在 shell 中,最常使用的 FD (file descriptor) 大概有三个, 分别是: 0: Standard Input (STDIN) 1: Standard Output (STDOUT) 2: Standard Error Output (STDERR) 在标准情况下, 这些FD分别跟如下设备关联: stdin(0): keyboard原创 2012-11-27 17:20:53 · 5023 阅读 · 0 评论 -
shell中$*,$@,$# 的区别
$@ 和 $* 只在被双引号包起来的时候才会有差异双引号括起来的情况:$*将所有的参数认为是一个字段$@以 默认为空格 来划分字段,如果空格在“”里面,不划分。没有括起来的情况是$@和$*一样的,见到 空格 就划分字段。$#是 程序的 参数个数(不包括$0)$? 获取上一次命令执行的返回值,一般 执行 成功 返回0。$0 $1 $2 以此类推,取命令行原创 2012-11-09 11:19:16 · 1867 阅读 · 0 评论 -
shell里 截取字符串
按指定的字符串截取1、第一种方法:${varible##*string} 从左向右截取最后一个string后的字符串${varible#*string}从左向右截取第一个string后的字符串${varible%%string*}从右向左截取最后一个string后的字符串${varible%string*}从右向左截取第一个string后的字符串“*”只是一个通配符可以不要原创 2012-11-14 21:43:16 · 4448 阅读 · 0 评论 -
linux下如何让应用程序到我指定的目录下找库文件
linux下工程中应用程序默认的库路径在usr/local/lib,现在我想让应用程序先到我的指定路径$HOME/lib里面寻找库注:1,应用程序不是我写的,因此不能修改应用程序2,我主要是想知道如何修改或增加程序默认的库路径方法:修改PATH和 LD_LIBRARY_PATH,PATH是命令的环境变量,LD_LIBRARY_PATH是库的环境变量原创 2012-11-14 13:26:37 · 2231 阅读 · 0 评论 -
vim 常用配置 及 常用 命令
在 ubuntu下 ,一般 有 两个 地方 可以 配置 vim 编辑器:1、 修改 /etc/vim/vimrc ,将会 对 所有用户 起作用。2、修改 /home/test/.vimrc ,只对 test 用户 起作用。--------------------------------------------------vim 语法:1、在 vim配置文件里,用 " 作为原创 2012-10-17 20:20:52 · 3231 阅读 · 0 评论 -
定时 执行脚本 的命令小结 -- crontab
名词解释:cron:系统调度进程。可以使用它在每天的非高峰负荷时间段运行作业,或在一周或一月中的不同时段运行。At at命令:使用它在一个特定的时间运行一些特殊的作业,或在晚一些的非负荷高峰时间段或高峰负荷时间段运行。&:使用它在后台运行一个占用时间不长的进程。Nohup:用它在后台运行一个命令,即使在用户退出时也不受影响--------------------用 cron原创 2013-01-11 16:56:55 · 1016 阅读 · 0 评论 -
AWK命令使用 小结
awk 最基本功能是在文件或字符串中基于指定规则浏览和抽取信息,它用于一行中分成数个“字段”来处理。适合处理 小型数据。 范例: cat /etc/passwd | awk '{FS=":"}$3 {print $1 "\t" $3}' 解释:文件/etc/passwd是以":"分隔的,查看 第三栏 小于10的数据,并且只显示 帐号 与 第三栏;执行方式原创 2013-01-11 22:22:27 · 17545 阅读 · 0 评论 -
<为知更新>Android内核驱动开发中的Kconfig文件结构分析(图文)
1 Kconfig和Makefile毫不夸张地说,Kconfig和Makefile是我们浏览内核代码时最为依仗的两个文件。基本上,Linux 内核中每一个目录下边都会有一个Kconfig文件和一个Makefile文件。Kconfig和Makefile就好似一个城市的地图,地图引导我们去 认识一个城市,而Kconfig和Makefile则可以让我们了解一个内核目录下面的结构。在希望研究内核的某个原创 2013-03-17 22:41:43 · 1120 阅读 · 0 评论 -
<为知更新>制作 ramdisk.img,使用cpio 和 gzip
linux2.6 内核支持两种格式的 initrd(虚拟文件系统),一种是 linux2.4 内核那种传统格式的文件系统镜像 image-initrd,其核心文件就是 /linuxrc.另外一种格式的 initrd 是 cpio 格式的,这种格式的 initrd 使用 cpio 工具生成,其核心文件不再是 /linuxrc,而是 /init,本文将这种 initrd 称为 cpio-initr原创 2012-10-25 19:29:30 · 17170 阅读 · 0 评论 -
sed命令详解
1.简介sed是非交互式的编辑器。它不会修改文件,除非使用shell重定向来保存结果。默认情况下,所有的输出行都被打印到屏幕上。sed编辑器逐行处理文件(或输入),并将结果发送到屏幕。具体过程如下:首先sed把当前正在处理的行保存在一个临时缓存区中(也称为模式空间),然后处理临时缓冲区中的行,完成后把该行发送到屏幕上。sed每处理完一行就将其从临时缓冲区删除,然后将下一行读入,进行原创 2012-05-29 16:30:36 · 14090 阅读 · 3 评论 -
linux mknod命令使用
名字mknod - 建立块专用或字符专用文件 总览mknod [options]name {bc} major minor mknod [options] name p GNU 选项(缩写):[-m mode] [--help] [--version] [--] 描述mknod 用指定名称产生一个FIFO(命名管道),字符专用或块专用文件。转载 2013-08-02 12:03:21 · 2442 阅读 · 0 评论 -
Linux shell 里的expr
在Linux shell命令中expr虽然不是很起眼,但是它的作用是非常大的!到目前为止,我个人看来最大的作用就是两个——四则运算和字符串的操作。先说四则运算: 在Shell中四则运算不能简简单单的加减乘除,应该要写如下的格式:$val1=`$val2 - 1`接着是强大的字符串操作:提取指定字符的下标:expr index 内容 字符,例如:$in原创 2013-08-02 12:15:40 · 1601 阅读 · 0 评论 -
Linux内核中ioremap映射的透彻理解
几乎每一种外设都是通过读写设备上的寄存器来进行的,通常包括控制寄存器、状态寄存器和数据寄存器三大类,外设的寄存器通常被连续地编址。根据CPU体系结构的不同,CPU对IO端口的编址方式有两种: (1)I/O映射方式(I/O-mapped) 典型地,如X86处理器为外设专门实现了一个单独的地址空间,称为"I/O地址空间"或者"I/O端口空间",CPU通过专门的I/O指令(如X86的IN和O原创 2013-08-18 21:39:01 · 1201 阅读 · 0 评论 -
在kernel 2.6.36 中已经完全删除了struct file_operations 中的ioctl 函数指针
今天调一个程序,发现应用程序的ioctl的cmd参数传送到驱动程序的ioctl发生改变。而根据《linux设备驱动》这个cmd应该是不变的。因为在kernel 2.6.36 中已经完全删除了struct file_operations 中的ioctl 函数指针,取而代之的是unlocked_ioctl ,所以我怀疑二者是不是兼容的。上网查了一些资料,很多文章只是泛泛谈了一下,说在应用程序中io原创 2013-08-14 15:11:59 · 2535 阅读 · 0 评论 -
驱动函数poll 和 应用里的 select
http://blog.youkuaiyun.com/hanchaoman/article/details/7444337http://www.oschina.net/question/565065_67969原创 2013-08-16 12:51:18 · 1174 阅读 · 0 评论 -
Linux内核的等待队列
Linux内核的等待队列(转载) Linux内核的等待队列是以双循环链表为基础数据结构,与进程调度机制紧密结合,能够用于实现核心的异步事件通知机制。在Linux2.4.21中,等待队列在源代码树include/linux/wait.h中,这是一个通过list_head连接的典型双循环链表,如下图所示。在这个链表中,有两种数据结构:等待队列头(wait_queue_head_t)和等转载 2013-08-15 18:34:54 · 1021 阅读 · 0 评论