最近又开始看Carmer的驱动了,在Linux下通常实用Video4linux框架来实现Video capture/Camera Capture等功能,先说一下设备注册部分,ov7670.c中,注册方法如下:
static struct v4l2_i2c_driver_data v4l2_i2c_data = {
.name = "ov7670",
.probe = ov7670_probe,
.remove = ov7670_remove,
.id_table = ov7670_id,
};
然后这就完了,真的完了么? 兄弟,当然不是;开始看代码的时候找遍了整个文件没有发现谁调用的v4l2_i2c_data结构。这怎么可能?这是一个static变量啊!,于是向上找,很快就发现我们熟悉的__init module_init对其的调用出现在了v4l2-i2c-drv.h文件中,并声明成了一个static类型,这样其他写v4l2架构驱动的人,就可以少写不少代码了,NND,这帮人真聪明(还是我太笨?)。 ......
Linux文件查找命令find,xargs详述
总结:zhy2111314
来自:LinuxSir.Org
整理:北南南北
摘要: 本文是find 命令的详细说明,可贵的是针对参数举了很多的实例,大量的例证,让初学者更为容易理解;本文是zhyfly兄贴在论坛中;我对本文进行了再次整理,为方便大家阅读;
目录
版权声明
前言:关于find命令
一、find 命令格式
1、find命令的一般形式为;
2、find命令的参数;
3、find命令选项;
4、使用exec或ok来执行shell命令;
二、find命令的例子;
1、查找当前用户主目录下的所有文件;
2、为了在当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件;
3、为了查找系统中所有文件长度为0的普通文件,并列出它们的完整路径;
4、查找/var/logs目录中更改时间在7日以前的普通文件,并在删除之前询问它们;
5、为了查找系统中所有属于root组的文件;
6、find命令将删除当目录中访问时间在7日以来、含有数字后缀的admin.log文件
7、为了查找当前文件系统中的所有目录并排序;
8、为了查找系统中所有的rmt磁带设备;
三、xargs
四、find 命令的参数;
1、使用name选项
2、用perm选项
3、忽略某个目录
4、使用fi ......
(1)概述
Executable and linking format(ELF)文件是x86 Linux系统下的一种常用目标文件(object file)格式,ELF文件格式比较复杂,本文只是简要介绍它的结构。有三种主要类型:
(1)适于连接的可重定位文件(relocatable file),可与其它目标文件一起创建可执行文件和共享目标文件。
(2)适于执行的可执行文件(executable file),用于提供程序的进程映像,加载到内存执行。
(3)共享目标文件(shared object file),连接器可将它与其它可重定位文件和共享目标文件连接成其它的目标文件,动态连接器又可将它与可执行文件和其它共享目标文件结合起来创建一个进程映像。
(2)文件格式
ELF header在文件开始处描述了整个文件的组织,Section提供了目标文件的各项信息(如指令、数据、符号表、重定位信息等),Program header table指出怎样创建进程映像,含有每个program header的入口,Section header table包含每一个section的入口,给出名字、大小等信息。
(3) ......
1: Can’t connect to [local] MySQL server错误
一个MySQL客户可以两种不同的方式连接mysqld服务器:Unix套接字,它通过在文件系统中的一个文件(缺省“/tmp /mysqld.sock”)进行连接;或TCP/IP,它通过一个端口号连接。Unix套接字比TCP/IP更快,但是只有用在连接同一台计算机上的服务器。如果你不指定主机名或如果你指定特殊的主机名localhost,使用Unix套接字。
错误(2002)Can’t connect to ...通常意味着没有一个MySQL服务器运行在系统上或当试图连接mysqld服务器时,你正在使用一个错误的套接字文件或TCP/IP端口。
由检查(使用ps)在你的服务器上有一个名为mysqld的进程启动!如果没有任何mysqld过程,你应该启动一个。见4.15.2 启动MySQL服务器的问题。
如果一个mysqld过程正在运行,你可以通过尝试这些不同的连接来检查服务器(当然,端口号和套接字路径名可能在你的安装中是不同的):
shell> mysqladmin version
shell> mysqladmin variables
shell> mysqladmin -h `hostname` version variables
shell> mysqladmin -h `hostname` --port=3306 version
shell> mysqladmin -h ’ip for your host&r ......
1: Can’t connect to [local] MySQL server错误
一个MySQL客户可以两种不同的方式连接mysqld服务器:Unix套接字,它通过在文件系统中的一个文件(缺省“/tmp /mysqld.sock”)进行连接;或TCP/IP,它通过一个端口号连接。Unix套接字比TCP/IP更快,但是只有用在连接同一台计算机上的服务器。如果你不指定主机名或如果你指定特殊的主机名localhost,使用Unix套接字。
错误(2002)Can’t connect to ...通常意味着没有一个MySQL服务器运行在系统上或当试图连接mysqld服务器时,你正在使用一个错误的套接字文件或TCP/IP端口。
由检查(使用ps)在你的服务器上有一个名为mysqld的进程启动!如果没有任何mysqld过程,你应该启动一个。见4.15.2 启动MySQL服务器的问题。
如果一个mysqld过程正在运行,你可以通过尝试这些不同的连接来检查服务器(当然,端口号和套接字路径名可能在你的安装中是不同的):
shell> mysqladmin version
shell> mysqladmin variables
shell> mysqladmin -h `hostname` version variables
shell> mysqladmin -h `hostname` --port=3306 version
shell> mysqladmin -h ’ip for your host&r ......
linux下i386,i486,i586,i686的区别
.
i386,i486,i586分别是针对80386,80486,80586编译的包,i686就比较广泛了,从p2开始x86处理器就进入了p6构架的时代,一直到现在都是p6架构。新架构的cpu向下兼容为旧架构编译的软件包.
i386.rpm与i686.rpm有什么区别?
x86体系结构虽然指令都一样,但是不同时代的具体实现,在编译优化上还是有自己的特点,而且后一代往往会多出一些指令,所以编译RPM时,可以针对不同的体系结构作不同的编译选项优化。
一般而言, 所有x86处理器都能执行386的指令集
80486处理器当然需要 486 的优化
Pentium 就是 586
PentiumPro (P6) 之后的统称为686, 包含了PentiumPro, PentiumII, PentiumIII和P4
出于效率考虑,在编译核心和glibc这样的软件包的时候,都是为不同体系结构编译不同的包,安装的时候选择适合自己机器的,以便得到最好的效率。
目前而言,只要有686的包,那就不必考虑386的包。
......
1.查看内核版本命令
1) cat /proc/version
2) uname -a
3) uname -r
2.查看linux的版本
1) lsb_release -a
2) cat /etc/redhat-release
3) cat /etc/issue
4) rpm -q redhat-release (redhat系统) ......