
Linux
文章平均质量分 68
YasinLeeX
yasin.lee.x@outlook.com
In fact, a good percentage of the total code in a program consists of nothing but error checking.
展开
-
vncpasswd 更新登录密码 如何设置短密码 空密码
ubuntu中vnc的用户密码以加密形式保存在 ~/.vnc/passwd中。修改密码可以用vncpasswdycli@AppSvr:~/.vnc$ vncpasswdPassword: 输入你的密码大于6个字符Verify: 再输一遍Would you like to enter a view-only password (y/n)? n 询问你是否要再输入一个只有观看权限而被禁止操作远程桌面的密码。一般我们都不需要这样的一个只能看屏幕的权限。所以此处输入n如果你想要密码短一些,比如...原创 2021-09-28 00:13:13 · 16099 阅读 · 2 评论 -
Linux内核模块常见问题
Linux内核模块常见问题内核模块签名的问题使用 insmod 命令加载内核模块时出现报错:[root@localhost ~]# insmod mbcache.ko ksign: module signed with unknown public key - signature keyid: 0fb015c8f72fe172 ver=4 insmod: error inserting 'mbcache.ko': -1 Unknown error 126此时可以使用 objcop转载 2021-07-15 22:31:02 · 2025 阅读 · 0 评论 -
为什么中断上下文不能休眠
这是早该知道的问题 1. 中断处理的时候,不应该发生进程切换,因为在中断context中,唯一能打断当前中断handler的只有更高优先级的中断,它不会被进程打断(这点对 于softirq,tasklet也一样,因此这些bottom half也不能休眠),如果在中断context中休眠,则没有办法唤醒它,因为所有的 wake_up_xxx都是针对某个进程而言的,而在中断context中,没有进程的转载 2021-07-15 22:20:07 · 1104 阅读 · 0 评论 -
通过内核源码查看内核版本
内核版本信息在顶层Makefile文件中yasin@HTPC:~/SSD-1T/msm-4.19/msm-4.19$ cat Makefile# SPDX-License-Identifier: GPL-2.0VERSION = 4PATCHLEVEL = 19SUBLEVEL = 157EXTRAVERSION =NAME = "People's Front"原创 2021-07-15 22:18:31 · 836 阅读 · 0 评论 -
同一个编译脚本下 arm 交叉编译 生成文件大小不一致的问题分析
最近在工作中需要编译一个库文件,使用gcc的交叉编译环境。遇到了一个令人迷惑的问题:同样的编译环境,同样的代码,只是因为在硬盘上存放的位置不同,编译出来的.o文件大小就会产生差异。此刻,终于搞明白了原因。记录一下。背景知识:先了解下gcc编译选项:(以下内容均载自网络,有的翻译可能有点拗口,凑合看吧)参考链接https://www.cnblogs.com/lsgxeva/p/7605141.htmlGCC的-g选项用于配置GDB调试级别如果不打开-g或者-ggdb(GDB专用)调试开关,GCC编译时原创 2020-05-26 21:18:58 · 2916 阅读 · 0 评论 -
彻底搞定0x0d和0x0a
<br />转载自:http://www.linuxdiyf.com/viewarticle.php?id=110597<br />什么是0x0d和0x0a,可能大部分人都知道是回车和换行字符,但那个是回车,那个是换行?估计很多人都一时说不清楚了---也许你不相信,那就调查下周围的同事吧,估计会包含以下字眼“大概。我记得。回车是0x0d吧”。这次我移植arm-linux C的程序,至VC++,发现了很多不同,尤其是这个回车换行浪费我一上午的时间,我决定借此机会彻底搞定他们,这两个令人讨厌的家转载 2010-06-28 21:49:00 · 1959 阅读 · 0 评论 -
Ubuntu 下 wine 安装 和 中文字体 显示为方块 的 处理
<br />wine 的 deb 下载地址:<br />http://www.winehq.org/download/deb<br />http://wine.budgetdedicated.com/archive/index.html<br /><br />关于字体的解决方案,在网上搜了几个,都搞的很复杂,其实最简单的就是把window系统中的C:/WINDOWS/Fonts目录直接copy到wine的WINDOWS目录中并覆盖其Fonts目录,然后就一切OK了。<br /><br /原创 2010-06-28 21:49:00 · 12783 阅读 · 0 评论 -
标准IO与文件IO 的区别
<br />转载:http://www.embedu.org/Column/Column165.htm<br />作者:王姗姗,华清远见嵌入式学院讲师。<br />先来了解下什么是标准IO以及文件IO。<br />标准IO:标准I/O是ANSI C建立的一个标准I/O模型,是一个标准函数包和stdio.h头文件中的定义,具有一定的可移植性。标准IO库处理很多细节。例如缓存分配,以优化长度执行IO等。标准的IO提供了三种类型的缓存。 <br />(1)全缓存:当填满标准IO缓存后才进行实际转载 2010-06-28 21:51:00 · 737 阅读 · 0 评论 -
what is notify-send (Ubuntu)
<br />I am try to use Thunderbird of my Email client. but I found the notify time is too short when a new message coming. so I try to modify it....<br />the notify-send !<br />This was pretty cool , Wanted to share with you all !!!!<br /><br />转载 2010-06-28 21:54:00 · 1492 阅读 · 0 评论 -
ubuntu 9.04 安装 thunderbird-3.0 和最小化插件
<br />对于ubuntu 9.04 和 8.10 通过编辑/etc/apt/sources.list添加,在终端输入:<br />sudo gedit /etc/apt/sources.list<br /><br />9.04版本使用如下命令中添加:<br />deb http://ppa.launchpad.net/ubuntu-mozilla-daily/ppa/ubuntu jaunty main<br />deb-src http://ppa.launchpad.ne转载 2010-06-28 21:54:00 · 1437 阅读 · 0 评论 -
android 调试中 addr2line 命令的使用
<br />关于调试:调试中addr2line命令的使用。<br />问题引出:i850的wifi定位开启后,在使用goole maps时出现rootfs重启现象,打印的log信息如下:<br />//////////////////////////<br />I/DEBUG ( 3411): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***<br />I/DEBUG ( 3411): Build fi原创 2010-06-28 21:56:00 · 11361 阅读 · 3 评论 -
fflush 的 作用
<br />int main(){ int j; for(j=0;j<=15;j++) { sleep(1); printf(" -> "); fflush(stdout);//注释掉这一行你就知道它的用法了! } return 1;}原创 2010-06-27 22:40:00 · 821 阅读 · 0 评论 -
linux fork 详解
<br />转自:http://blog.youkuaiyun.com/guichen83/archive/2009/05/08/4160697.aspx<br /> <br />fork简介: <br /> fork英文原意是“分岔,分支”的意思,而在操作系统中,乃是著名的Unix(或类Unix,如Linux,Minix)中用于创建子进程的系统调用。 <br /><br />【NOTE1】 <br />fork () 的作用是什么?换句话说,你用 fork () 的目的是什么? <b转载 2010-06-28 10:40:00 · 874 阅读 · 0 评论 -
Linux 时间 函数
<br />Linux日期时间篇#include<time.h> char *ctime(const time_t *timep); 将参数中秒数转换为日期和时间形式(当地时间)用指针返回 char * asctime(const struct tm * timeptr);将参数中的结构体转换为日期和时间形式(当地时间)用指针返回 struct tm* gmtime(const time_t * timep);将参数所指的秒数转换为tm格式,并返回指向该tm的指针。(CPP注释:难道该原创 2010-06-26 21:15:00 · 673 阅读 · 0 评论 -
gcc的 printf 和 缓冲区的问题(关于fflush 函数)
<br />以下程序只是为了在终端上不断连续输出->而已,但是在没有加fflush之前发现根本无法向屏幕打印任何内容。为什么以前从来没有发现printf的这种特性呢?后来想到,以前在用printf时多收情况下都会在字符串尾部加一个/n。或者没有加/n,但是你的程序不是一个dead loop,便也不会牵扯到问题,因为就算执行printf后只是将内容送到缓冲区,但是你到程序结束里,程序结束便会导致缓冲区刷新,你便看到你到屏幕上有你期望到东西出现了。所以我最后得到一个这样到结论:printf会把东西送原创 2010-06-28 21:58:00 · 5821 阅读 · 4 评论 -
调试方法 之 直接写寄存器
<br />调试设备的时候可以直接从控制终端通过echo命令向设备的寄存器写入新值,这会很方便:比如i850上的电源管理器对应的设备文件是/sys/devices/platform/i2c-adapter/i2c-1/1-0008/mc13892_ctl<br />首先可以查看一下该设备的所有寄存器的当前值:用下面的命令<br />cat /sys/devices/platform/i2c-adapter/i2c-1/1-0008/mc13892_ctl<br />如果你打算把该设备的第原创 2010-06-28 22:01:00 · 2048 阅读 · 0 评论 -
select 的理解
<br />以下内容系转载,不仅会对select了解,或许还会觉察到所谓系统架构……<br /><br />select()函数的作用<br /> 系统调用select和poll的后端实现,用这两个系统调用来查询设备是否可读写,或是否处于某种状态。如果poll为空,则驱动设备会被认为即可读又可写,返回值是一个状态掩码<br />如何使用select()函数?<br /> select()函数的接口主要是建立在一种叫'fd_set'类型的基础上。它('fd_set'转载 2010-06-28 22:02:00 · 759 阅读 · 0 评论 -
Bionic C
<br />android 使用Bionic的C lib 其设计的核心思想是:尽量简单。<br />最近写一个android,HAL层的应用程序,需要创建一个线程,使用书本上介绍的方法,打算在线程执行过程中通过其他线程调用pthread_cancel(),来终止一个正在运行的线程,在交叉编译时总是报错:”pthread_cancel()未定义“,经检查,在pthread.h头文件中已经有该函数的声明。那就只有一种可能 了,该函数虽然声明了,但是其实现为空,后来在网上搜了下,Bionic Cl原创 2010-06-28 22:03:00 · 1228 阅读 · 0 评论 -
位运算总结 取模 取余
位运算应用口诀 <br />清零取反要用与,某位置一可用或若要取反和交换,轻轻松松用异或<br />移位运算要点 1 它们都是双目运算符,两个运算分量都是整形,结果也是整形。 2 "<<" 左移:右边空出的位上补0,左边的位将从字头挤掉,其值相当于乘2。 3 ">>"右移:右边的位被挤掉。对于左边移出的空位,如果是正数则空位补0,若为负数,可能补0或补1,这取决于所用的计算机系统。 4 ">>>"运算符,右边的位被挤掉,对于左边移出的空位一概补上0。<br /转载 2010-06-28 22:11:00 · 9140 阅读 · 0 评论 -
linux中改变文件的所有者和组
<br />linux中改变文件的所有者和组<br /><br />chown user.group file<br />比如将adb.txt 的属性改为system组的system用户<br />chown system.system abc.txt原创 2010-06-28 22:23:00 · 1245 阅读 · 0 评论 -
电子电路 专业术语表 英汉对照
<br />电压源 voltage source<br />电流源 current source<br />理想电压源 ideal voltage source<br />理想电流源 ideal current source<br />伏安特性 volt-ampere characteristic<br />电动势 electromotive force<br />电压 voltage<br />电流 current<br />电位 potential<br />转载 2010-06-28 22:29:00 · 4388 阅读 · 0 评论 -
什么是基带芯片
<br />本文载自<br />http://baike.eepw.com.cn/baike/show/word/%E5%9F%BA%E5%B8%A6%E8%8A%AF%E7%89%87<br /><br />基频是手机中最核心的部分,也是技术含量最高的部分,全球只有极少数厂家拥有此项技术,包括德州仪器、爱立信移动平台、高通、联发科、NXP、飞思卡尔、英飞凌、博通、展讯。常见基带处理器负责数据处理与储存,主要组件为DSP、微控制器、内存(如SRAM、Flash)等单元,主要功能为基带编码/译转载 2010-06-28 22:42:00 · 1624 阅读 · 0 评论 -
Linux操作系统下的串口通信学习笔记
<br />转载自:http://hi.baidu.com/xuyanwu2007/blog/item/58ad9151d8df6f1f377abee1.html<br />一、什么是串口通信<br />串口通信是指计算机主机与外设之间以及主机系统与主机系统之间数据的串行传送。使用串口通信时,发送和接收到的每一个字符实际上都是一次一位的传送的,每一位为1或者为0。<br />二、串口通信的分类<br />串口通信可以分为同步通信和异步通信两类。同步通信是按照软件识别同步字符来实现数据的发送和转载 2010-06-28 22:56:00 · 1674 阅读 · 0 评论 -
tftp 配置 详解
<br />1.安装3个程序<br /> sudo apt-get install tftp-hpa (客户端)<br /> sudo apt-get install tftpd-hpa (服务器端)<br /> sudo apt-get install xinetd<br /><br />2.设置服务器中的对应目录(我将把根目录下的tftpboot作为对应服务器目录)<br /> cd /<br /> sudo mkdir /tf原创 2010-06-28 23:00:00 · 1373 阅读 · 0 评论 -
Linux中 strsep 函数 详解
<br />现出原型:char *strsep(char **stringp, const char *delim)参数1:指向字符串的指针的指针,参数2:指向字符的指针功能:以参数2所指的字符作为分界符,将参数1的值所指的字符串分割开,返回值为被参数2分开的左边的那个字符串,同时会导致参数1的值(指向位置)发生改变,即,参数1的值会指向分隔符号右边的字符串的起始位置(这一点会比较有用,比如:“1999-12-14”,可以用这个方法很容易的被提取出各个项)!以下是一个例子,看看运行结果你转载 2010-06-28 23:01:00 · 2414 阅读 · 2 评论 -
可重入 详解
<br /> 主要用于多任务环境中,一个可重入的函数简单来说就是可以被中断的函数,也就是说,可以在这个函数执行的任何时刻中断它,转入OS调度下去执行另外一段代码,而返回控制时不会出现什么错误;而不可重入的函数由于使用了一些系统资源,比如全局变量区,中断向量表等,所以它如果被中断的话,可能会出现问题,这类函数是不能运行在多任务环境下的。<br /> 也可以这样理解,重入即表示重复进入,首先它意味着这个函数可以被中断,其次意味着它除了使用自己栈上的变量以外不依赖于任何环境(包括stat转载 2010-06-28 23:05:00 · 844 阅读 · 0 评论 -
特殊设备文件 /dev/null 和 /dev/zero
<br />/dev/null,外号叫无底洞,你可以向它输出任何数据,它通吃,并且不会撑着!<br />/dev/zero,是一个输入设备,你可你用它来初始化文件。<br />/dev/null------它是空设备,也称为位桶(bit bucket)。任何写入它的输出都会被抛弃。如果不想让消息以标准输出显示或写入文件,那么可以将消息重定向到位桶。<br />/dev/zero------该设备无穷尽地提供0,可以使用任何你需要的数目——设备提供的要多的多。他可以用于向设备或文件写入转载 2010-06-28 23:06:00 · 1184 阅读 · 0 评论 -
深入理解linux系统下proc文件系统内容
<br />Linux系统上的/proc目录是一种文件系统,即proc文件系统。与其它常见的文件系统不同的是,/proc是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以通过更改其中某些文件来改变内核的运行状态。<br /><br />基于/proc文件系统如上所述的特殊性,其内的文件也常被称作虚拟文件,并具有一些独特的特点。例如,其中有些文件虽然使用查看命令查看时会返回大量信息,但文件本身的转载 2010-06-28 23:09:00 · 922 阅读 · 0 评论 -
linux内核的数据类型总结
<br />本文载自网络,备用!对linux内核的数据类型做一下总结。下面部分内容参考了:http://book.youkuaiyun.com/bookfiles/12/100126.shtml当Linux内核在体系结构差异较大的平台之间移植时,会产生与数据类型相关的问题。在编译内核时使用 -Wall -Wstrict-prototypes选项,可以避免很多错误的发生。内核使用的基本数据类型主要有:?? int 标准C语言整数类型;?? u32 32位整数类型转载 2010-06-28 23:12:00 · 1457 阅读 · 0 评论 -
Fedora root无法登录到X
<br />今天刚刚安装好FC11就遇到问题!竟然无法用root登录到X,忙活了近一个小时怎么会有这个问题!?难道是安装过程出现了问题?正在想是不是要重新安装下呢!突然灵机一动,要不去网上搜搜看,会不会是一个Bug呢?毕竟这是一个刚刚发布的新版本!<br />没想到一下就搜到了!问题得以解决!办法如下:<br /><br />为了用root登入,就先用普通用户登陆,打开系统工具-终端<br />输入命令: su - (该命令可以切换到其他用户身份,本次将切换到root身份)<原创 2010-06-28 23:14:00 · 924 阅读 · 0 评论 -
Linux平台makefile文件编写基础
<br />目的:<br /> <br /> 基本掌握了 make 的用法,能在Linux系统上编程。<br /> <br /> 环境:<br /> <br /> Linux系统,或者有一台Linux服务器,通过终端连接。一句话:有Linux编译环境。<br /> <br /> 准备:<br /> <br /> 准备三个文件:fil原创 2010-06-28 23:17:00 · 765 阅读 · 0 评论 -
X Window 和控制台(命令行模式)的切换
<br />原来从X Window也可以和命令行模式任意切换!!!!<br />一直以来我发现按照书上说的,在X Window下按Ctrl+Alt+F1~F6想切换到命令行模式时根本无法实现!<br />今天终于找到问题之所在了!原来是VMware的问题!<br />是VMware的热键和linux 的热键发生冲突导致的!在VMware中的菜单 Edit -> Preferences -> Hot Keys 中 选择Ctrl+Alt+Shift即可解决问题!<br />以原创 2010-06-28 23:18:00 · 1836 阅读 · 0 评论 -
C常用字符转换函数
<br />atof(将字符串转换成浮点型数)相关函数 atoi,atol,strtod,strtol,strtoul表头文件 #include <stdlib.h>定义函数 double atof(const char *nptr);函数说明 atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('')才结束转换,并将结果返回。参数nptr字符串可包含正负号、小数点或E(e转载 2010-06-28 22:08:00 · 782 阅读 · 0 评论 -
守护进程 创建 详解
<br />转载 <br /> <br /> 在linux或者unix操作系统中在系统的引导的时候会开启很多服务,这些服务就叫做守护进程。为了增加灵活性,root可以选择系统开启的模式,这些模式叫做运行级别,每一种运行级别以一定的方式配置系统。<br /> 守护进程是脱离于终端并且在后台运行的进程。守护进程脱离于终端是为了避免进程在执行过程中的信息在任何终端上显示并且进程也不会被任何终端所产生的终端信息所打断。<br /> 守护进程,也就是通常说的Daemon进转载 2010-06-28 22:12:00 · 928 阅读 · 0 评论 -
Linux中的伪终端编程
<br />如何操作伪终端:伪终端的使用是成对出现的,分为master 和 slaver主设备:/dev/ptmx (i850上的主设备名)从设备:动态生成:/dev/pts/0.......x功能:写入主设备的信息,可以从从设备上读出;写入从设备的信息,可以从主设备读出。用以实现对串口的多路复用。以下是测试代码Ubuntu 下的编译方法:gcc -Wall ptyhost.c -o ptyhost -util /lib/libutil-2.9.so# include <st原创 2010-06-28 22:16:00 · 4172 阅读 · 0 评论 -
软件流控制 和 硬件流控制
<br />关键词:RTS/CTS XON/XOFF 流控制<br /><br />前言:我们在串行通讯处理中,常常看到RTS/CTS和XON/XOFF这两个选项,这就是两个流控制的选项,目前流控制主要应用于调制解调器的数据通讯中,但对普通RS232编程,了解一点这方面的知识是有好处的。那么,流控制在串行通讯中有何作用,在编制串行通讯程序怎样应用呢?这里我们就来谈谈这个问题。<br /><br />1. 流控制在串行通讯中的作用<br /> 这里讲到的转载 2010-06-28 22:45:00 · 2686 阅读 · 0 评论 -
串口通讯学习笔记
<br />http://dns.easysw.com/~mike/serial/serial.html#9_1<br /> <br />串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal Serial Bus或者USB混淆)。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。同时,串口通信协议也可以用于获取远程采集设备的数据。 <br />串口通信的概念非常简单,串口按位(bit)发送和接收字节转载 2010-06-28 22:55:00 · 1589 阅读 · 0 评论 -
gcc 详解
<br />本文系转载,部分内容经本人修改<br /><br />经过长时间的学习linux gcc,发现要理解linux gcc也是必要的,今天小编给大家搜集了关于块设备的概念以及作用,希望大家看后会有很多收获。<br /> 1、linux gcc包含的c/c++编译器<br /> gcc、cc、c++、g++:<br /> gcc和cc是一样的,c++和g++是一样的,一般c程序就用gcc编译,c++程序就用g++编译<br /> 2、linux转载 2010-06-28 22:57:00 · 937 阅读 · 0 评论 -
little-endian & big-endian 大端 和 小端
<br />什么是little-endian and big-endian?这个涉及到CPU两大派系的问题,IBM的CPU,多数RISC的cpu,和MOTO的微处理器采用的是big-endian,Intel的x86系列都是采用little-endian,而ARM同时支持 big和little,实际应用中通常使用little endian。。。所以我们使用的大多数PC都是little-endian了。他们具体的区别何在呢,big-endian是指一个WORD里面的高位BYTE存放在内存中这个W转载 2010-06-28 23:02:00 · 893 阅读 · 0 评论 -
什么是内核
<br />载自网路:<br />http://topic.youkuaiyun.com/t/20020926/18/1056123.html#<br /><br />1 内核调度也算是一个任务吗?? <br /> 不,内核调度只能说是一种任务调度的算法,它不一直在运行,只是在任务结束/时间片结束的时候才执行,选择下一个要运行的任务。 <br /> <br /> 2 任务和内核的关系:<br />任务是运行在内核的管理之下的,也可以说任务是运行在内核的这个环境里转载 2010-06-28 23:11:00 · 1279 阅读 · 0 评论