linux
文章平均质量分 65
believe209
这个作者很懒,什么都没留下…
展开
-
linux下串口(serial)和串口驱动
PC上的串口一般是ttyS,板子上Linux的串口一般叫做ttySAC,是usb口转串口的是ttyUSB外插串口卡的话默认是dev下的ttyS* ,一般ttyS0对应com1,ttyS1对应com21. 查看串口的驱动信息 #cat /proc/tty/driver/serial2. 查看串口的波特率 # stty -a -F /dev/ttySAC原创 2017-08-04 17:37:21 · 31129 阅读 · 1 评论 -
GCC常用编译选项
-g 只是编译器,在编译的时候,产生调试信息-C 在预处理的时候,不删除注释信息,一般和-E使用,有时候分析程序,用这个很方便的 -M 生成文件关联的信息。包含目标文件所依赖的所有源代码你可以用gcc -M hello.c 来测试一下,很简单。 -pipe:管道,它可以用来同时连接两个程序,其中一个程序的输出将直接作为另一个程序的输入,这样就可以避免使用临时文件,原创 2015-07-30 17:12:12 · 9638 阅读 · 4 评论 -
linux errno查看和使用
1. void perror(const char *s)函数说明perror ( )用来将上一个函数发生错误的原因输出到标准错误(stderr),参数s 所指的字符串会先打印出,后面再加上错误原因 字符串。此错误原因依照全局变量 errno 的值来决定要输出的字符串。2. char *strerror(int errno)将错误代码转换为字符串错误信息。errno 在 中原创 2015-07-29 10:28:28 · 17298 阅读 · 0 评论 -
Linux NFS服务器的安装与配置
一、NFS服务简介 NFS 是Network File System的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法。 NFS 的基本原则是“容许不同的客户端及服务端转载 2015-07-02 17:52:32 · 400 阅读 · 0 评论 -
modprobe、insmod内核模块区别
linux设备驱动有两种加载方式insmod和modprobe,下面谈谈它们用法上的区别1、insmod一次只能加载特定的一个设备驱动,且需要驱动的具体地址。写法为: insmod drv.ko2. modprobe则可以一次将有依赖关系的驱动全部加载到内核。不加驱动的具体地址,但需要在安装文件系统时是按照make modues_install的方式安装驱动原创 2015-06-29 16:36:52 · 2031 阅读 · 0 评论 -
linux内核I2C子系统学习
因为I2C的通信肯定至少要有2个芯片完成,所以它的驱动是由2大部分组成:主芯片的i2c的驱动从芯片的i2c的驱动 注:万一选的都不支持咋办???(惨了,只能2个芯片的驱动都得实现了,不过过程差不多) (一).主芯片的I2C的驱动:(具体如何实现在后面在具体讲解) 首先要查看linux内核是否支持主芯片中i2c驱动器,如果支持就配置一下就转载 2015-06-29 18:08:57 · 675 阅读 · 0 评论 -
Linux开发中常见段错误问题原因分析
1 使用非法的内存地址(指针),包括使用未经初始化及已经释放的指针、不存在的地址、受系统保护的地址,只读的地址等,这一类也是最常见和最好解决的段错误问题,使用GDB print一下即可知道原因。 2 内存读/写越界。包括数组访问越界,或在使用一些写内存的函数时,长度指定不正确或者这些函数本身不能指定长度,典型的函数有strcpy(strncpy),sprintf(snprint)等转载 2015-05-14 11:20:47 · 669 阅读 · 0 评论 -
Linux启动过程详解
随着Linux的应用日益广泛,特别是在网络应用方面,有大量的网络服务器使用Linux操作系统。由于Linux的桌面应用和Windows相比还有一定的差距,所以在企业应用中往往是Linux和Windows操作系统共存形成异构网络。在服务器端大多使用Linux和Unix的,目前Linux的擅长应用领域是单一应用的基础服务器应用,譬如DNS和DHCP服务器、Web服务器、目录服务器、防火墙、文件和打印服转载 2015-05-14 11:15:13 · 495 阅读 · 0 评论 -
splint的学习与使用
引言最近在项目中使用了静态程序分析工具PC-Lint,体会到它在项目实施中带给开发人员的方便。PC-Lint是一款针对C/C++语言、windows平台的静态分析工具,FlexeLint是针对其他平台的PC-Lint版本。由于PC-Lint/FlexeLint是商业的程序分析工具,不便于大家对其进行学习和使用,因而下面我将介绍一个针对C语言的开源程序静态分析工具——splint。静转载 2015-05-14 11:07:09 · 2339 阅读 · 0 评论 -
linux下代码分析工具Splint
1. C代码静态分析工具Its4读取一个或多个 C/C++源程序,将每个源程序分割成函数标志流,然后检查生成的标志是否存在于漏洞数据库中,从而得到每个源程序的所有错误警告列表,并带有相关的描 述。其规则库vulns.i4d定义了各种函数的危险等级,描述等,通过规则匹配来报出风险,但它不能理解程序上下文意思,存在很大的误报。Fl原创 2015-05-14 10:47:36 · 4478 阅读 · 0 评论 -
.bash_profile、profile和.bashrc的区别
/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置./etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登转载 2015-05-14 11:16:28 · 555 阅读 · 0 评论 -
linux下iconv()函数的用法
linux shell 配置文件中默认的字符集编码为UTF-8 。UTF-8是unicode的一种表达方式,gb2312是和unicode都是字符的编码方式,所以说gb2312跟utf-8的概念应该不是一个层次上的。在LINUX上进行编码转换时,可以利用iconv命令实现,这是针对文件的,即将指定文件从一种编码转换为另一种编码。 查了下iconv命令用法如下:iconv [选项转载 2015-04-24 16:26:30 · 2654 阅读 · 1 评论 -
linux下查看文件编码及修改编码
查看文件编码在Linux中查看文件编码可以通过以下几种方式:1.在Vim中可以直接查看文件编码:set fileencoding即可显示文件编码格式。如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码的问题,那么你可以在~/.vimrc 文件中添加以下内容:set encoding=utf-8 fileencodings=ucs-bom,utf-8,c转载 2015-04-24 16:22:34 · 638 阅读 · 0 评论 -
GCC编译选项
gcc提供了大量的警告选项,对代码中可能存在的问题提出警 告,通常可以使用-Wall来开启以下警告: -Waddress -Warray-bounds (only with -O2) -Wc++0x-compat -Wchar-subscripts -Wimplicit-int -Wimplicit-function-declaration转载 2015-07-30 16:37:42 · 1191 阅读 · 0 评论 -
添加用户到sudoers
1 修改/etc/sudoers文件,进入超级用户,因为没有写权限,所以要先把写权限加上# chmod u+w /etc/sudoers。2 编辑/etc/sudoers文件,找到这一 行:"root ALL=(ALL) ALL"在起下面添加"zhc ALL=(ALL) ALL"(zhc是用户名),然后保存。3 最后恢复没有写权限模式,撤销文件的写权限,# chmod u-w /e原创 2015-09-01 16:00:25 · 6654 阅读 · 0 评论 -
Linux启动过程(开机启动顺序)
启动第一步--加载BIOS当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它。这是因为BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等。在此之后,计算机心里就有谱了,知道应该去读取哪个硬件设备了。启动第二步--读取MBR众所周知,硬盘上第0磁道第一个扇区被称为MBR,也就是Ma转载 2017-05-17 13:38:19 · 8152 阅读 · 0 评论 -
linux网卡绑定
1、单网卡绑定多个IP有时,我们需要在一块网卡上配置多个IP,例如,在上面的例子中,我们还需要为eth0配置IP 192.168.168.2和192.168.168.3。那么需要再在/etc/sysconfig/network-scripts下新建两个配置文件:ifcfg-eth0:0内容如下:DEVICE=eth0:0BOOTPROTO=staticIPADDR=192.1转载 2017-04-24 10:18:50 · 399 阅读 · 0 评论 -
linux网络配置文件
linux网络相关配置文件linux系统一般来说分为两大类:1、RedHat系列:Redhat、Centos、Fedora等;2、Debian系列:Debian、Ubuntu等。linux系统中,TCP/IP网络是通过若干个文本文件来进行配置的,需要配置这些文件来联网,下面对linux两大类系统中基本的TCP/IP网络配置文件做学习总结。第一类Debian中Ubun转载 2017-04-24 10:13:49 · 1829 阅读 · 0 评论 -
RPM包下载网址
可供下载的RPM网址:http://rpm.pbone.net/http://fr.rpmfind.net/linux/rpm2html/search.php原创 2017-03-09 09:29:20 · 5020 阅读 · 0 评论 -
GNU官网网址
http://ftp.gnu.org/gnu/ftp://ftp.gnu.org/gnu/原创 2017-03-09 09:47:52 · 4362 阅读 · 0 评论 -
ioctl调用流程图
参考《unix网络编程》.下面贴出网络ioctl调用流程图:转载 2016-09-22 11:50:50 · 1866 阅读 · 0 评论 -
基于Linux(中标麒麟)上QT的环境搭建——解决cannot find lGL的问题
一、下载QT安装包访问地址:http://download.qt.io/official_releases/qt/,进入到QT下载界面,选择对应的版本型号下载,如下图所示:一、问题描述:在中标麒麟上配置好QT的环境后,新建一个工程,不做其他的任何操作,直接运行都会报cannot find lGL的错误。如图所示: 这个问题找了很久,网上有的资料都转载 2016-09-18 13:52:20 · 7751 阅读 · 0 评论 -
LINUX 下tcp 和 udp 套接字收发缓冲区问题
Socket的send函数在执行时报EAGAIN的错误当客户通过Socket提供的send函数发送大的数据包时,就可能返回一个EGGAIN的错误。该错误产生的原因是由于send 函数中的size变量大小超过了tcp_sendspace的值。tcp_sendspace定义了应用在调用send之前能够在kernel中缓存的数据量。当应用程序在socket中设置了O_NDELAY或者O_NO转载 2016-03-01 16:27:13 · 8326 阅读 · 3 评论 -
网口配置文件ifcfg-ethX
环境为Fedora14/etc/sysconfig/network-scripts/ifcfg-eth1文件如下:TYPE=EthernetDEVICE=eth0BOOTPROTO=staticONBOOT=yesIPADDR=10.58.21.27NETMASK=255.255.255.0PREFIX=24HWADDR=00:25:43:48:00原创 2015-11-05 20:58:51 · 1880 阅读 · 0 评论 -
ubuntu配置DNS
方法一、修改/etc/network/interfaces(看我说的interfaces文件是万能的吧,能配IP,能配路由(参见:http://blog.sina.com.cn/s/blog_67be3b450101de44.html),还能配DNS)dns-nameservers 111.111.111.111方法二、修改/etc/resolvconf/resolv.转载 2015-08-22 11:24:31 · 887 阅读 · 0 评论 -
动态库与静态库【linux】
一、基本概念1.1、什么是库在 windows 平台和 linux 平台下都大量存在着库。本质上来说库是 一种可执行代码的二进制形式,可以被操作系统载入内存执行。由于 windows 和 linux 的平台不同(主要是编译器、汇编器和连接器 的不同),因此二者库的二进制是不兼容的。本文仅限于介绍 linux 下的库。 1.2、 库的种类转载 2015-09-06 10:40:21 · 596 阅读 · 0 评论 -
GCC同时使用静态库和动态库链接
一在应用程序需要连接外部库的情况下,linux默认对库的连接是使用动态库,在找不到动态库的情况下再选择静态库。使用方式为:gcc test.cpp -L. -ltestlib如果当前目录有两个库libtestlib.so libtestlib.a 则肯定是连接libtestlib.so。如果要指定为连接静态库则使用:gcc test.cpp -L. -static转载 2015-07-30 17:14:44 · 16132 阅读 · 3 评论 -
xrandr命令
输入xrandr,查看输出中状态是connected的显示设备,如LVDS。具体命令可以是:# xrandr | grep -v disconnected | grep connected调整亮度:# xrandr --output LVDS --brightness 0.5注:output后面的参数为上一步中查出的显示设备,不同主机结果可能不同。brightness后面的参数原创 2015-04-23 11:23:04 · 20479 阅读 · 0 评论 -
CentOS6.3x86显示器的分辨率有限或刷新频率无法调整
转载地址:http://blog.csdn.net/taiyang1987912/article/details/42963909一、问题 (1)一般安装完linux后默认的kernel给的tty分辨率是非常有限的,有时安装完centos的gnomeGUI后无法使用高分辨率。 (2)有时使用命令#xrandr时,显示的最大分辨率比硬件支持的分辨率转载 2015-04-23 10:49:50 · 1456 阅读 · 0 评论 -
xorg.conf配置文件
X的配置,实际上就是生成 /etc/X11/xorg.conf 这个文件。通常的配置主要对以下的Section作操作:a. 显示器的信息写在该节 Section “Monitor” Identifier “monitor0” VendorName “VSC” ModelName “V转载 2015-04-23 10:55:32 · 20041 阅读 · 1 评论 -
USB OTG连接方式
1. 概要OTG设备使用插头中的ID引脚来区分A/B Device,ID接地被称作为A-Device,充当USB Host,A-Device始终为总线 提供电力,ID悬空被称作为B-Device,充当USB Device,设备的USB Host/USB Device角色可以通过HNP(主机交换 协议)切换。OTG设备连接时不能跨越USB Hub,如果跨越USB Hub则失去HNP功能。A-De转载 2014-09-17 11:32:19 · 11050 阅读 · 0 评论 -
Linux 下使用USB 网络
Andrew Huang 转载请注明作者及联络方式. 在介绍USB的驱动开发时,我通常会用用Linux的的USB网络来演示,它兼容RNDIS网络,一台Linux即可充当USB的device端,也可以由另一台Linux来充当USB的Host端,Host端的也可以由安装的微软的标准的Rndis驱动来充当. 这种网络有相当强的实用价值,而且完整实现的Linux转载 2014-09-17 16:36:48 · 52769 阅读 · 3 评论 -
rndis/usbnet
原文地址:http://blog.csdn.net/absurd/article/details/2840360转载 2014-09-18 18:17:36 · 6577 阅读 · 0 评论 -
串口参数的具体含义
此文章主要以串口为例子进行讲解,USB只需要修改打开的终端设备就可以串口简介串行口是计算机一种常用的接口,具有连接线少,通讯简单,得到广泛的使用。常用的串口是 RS-232-C 接口(又称 EIA RS-232-C)它是在 1970 年由美国电子工业协会(EIA)联合贝尔系统、 调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是"数据终端设备(DTE)和数据通讯转载 2014-06-20 16:37:24 · 20936 阅读 · 0 评论 -
minicom在虚拟机(linux)安装配置过程
1. minicom需要ncurses库的支持,介绍了安装的步骤以及安装过程中出现的问题和解决方法,并简单说明了其使用方法,并注释了一些在虚拟机下对串口的操作以及可能会游泳的命令查询信息等。原创 2014-06-20 15:28:55 · 5105 阅读 · 0 评论 -
交叉编译lrzsz
A.# tar -zxvf lrzsz-0.12.20.tar.gz# cd lrzsz-0.12.20# ./configure --cache-file=arm-linux.cache# vi arm-linux.cache修改ac_cv_prog_CC=${ac_cv_prog_CC=gcc}为ac_cv_prog_CC=${ac_cv_prog_CC=arm原创 2014-06-20 15:38:21 · 3486 阅读 · 0 评论 -
kill进程的N种方法
常规篇:首先,用ps查看进程,方法如下:[plain] view plaincopy$ ps -ef …… smx 1822 1 0 11:38 ? 00:00:49 gnome-terminal smx 1823 1822 0 11:38 ? 00:转载 2014-06-25 11:18:10 · 908 阅读 · 0 评论 -
Linux驱动修炼之道-INPUT子系统(下)
http://blog.csdn.net/l627859442/article/details/7550928input子系统最重要的部分就是向上层report了。这里还是先介绍几个数据结构:[c-sharp] view plaincopyprint?struct input_event { struct timeval time; //事件发生转载 2013-08-12 22:31:00 · 759 阅读 · 0 评论 -
Linux驱动修炼之道-INPUT子系统(上)
http://blog.csdn.net/l627859442/article/details/7550923内核的输入子系统是对分散的,多种不同类别的输入设备(如键盘,鼠标,跟踪球,操纵杆,触摸屏,加速计和手写板)等字符设备进行统一处理的一层抽象,就是在字符设备驱动上抽象出的一层。输入子系统包括两类驱动程序:事件驱动程序和设备驱动程序。事件驱动程序负责和应用程序的接口,而设备驱动程序负责和底转载 2013-08-12 22:28:16 · 642 阅读 · 0 评论 -
Input event驱动
Input event驱动Andrew Huang Linux 专门对输入设备。键盘,鼠标,手柄,触摸屏。按键。封装一个类驱动。主要统一与应用程序接口。这一类的设备结点都是在/dev/input/eventn( 0用户程序读驱动的输入都采用统一格式,即struct input_event,方便应用程序来读写Linux/input.hstruct in转载 2013-08-12 21:50:54 · 905 阅读 · 0 评论