Linux
CedarDiao
80后技术狂,拖延症晚期,强迫症重度患者!
展开
-
Android9 Sepolicy规则基础 - MTK平台
1. SELinux的基础原则默认拒绝原则 - 任何未经明确允许的行为都会被拒绝(即:白名单制)2. SELinux的两种执行模式宽容模式 - 权限拒绝事件会被记录下来,但不会被强制执行。(权限不够时,仅警告)强制模式 - 权限拒绝事件会被记录下来并强制执行。(权限不够时,拒绝执行)3. SELinux在安卓平台上的演变低于安卓4.3 - 默认不支持SELinu...原创 2020-02-29 13:15:11 · 5084 阅读 · 0 评论 -
Linux SVN服务器搭建
1. Ubuntu PC一台,最好是最新的Ubuntu稳定版本2. 执行以下命令安装subversion:sudo apt-get updatesudo apt-get install subversion3. 假设代码svn仓库的根路径定为 /home/svnroot,执行以下命令新建目录:sudo mkdir /home/svnroot4. 新建一个代码仓库,原创 2014-11-03 18:06:49 · 1082 阅读 · 0 评论 -
Linux设备树的用法
本文通过为一个新machine写一个设备树来介绍设备树相关的概念,以及如何来描述一个machine。关于设备树的技术细节描述,需要参考ePAPR文档,ePAPR文档中包含了大量的基础语法之外的细节,如果你需要了解更多本文之外的设备树细节,请参考ePAPR文档。基本数据格式设备树是一个由节点及属性组成的简单树结构。属性是基于key-value对的,节点则可以包含子节点翻译 2014-11-03 17:50:00 · 3466 阅读 · 0 评论 -
Linux服务器磁盘维护命令
1. 使用df命令查看磁盘使用情况df -h2. 使用du命令查看子目录占用的空间du -h --max-depth=13. 使用ls命令查看具体的文件大小ls -lh4. 使用rm命令删除冗余文件rm -f file_xxxrm -rf dir_xxx原创 2014-11-03 17:45:15 · 828 阅读 · 0 评论 -
fastboot命令的自动补全
在Ubuntu13.10以及之后的Ubuntu 14.04上,通过APT安装fastboot以及adb工具之后,发现fastboot的自动补全有问题了, fastboot flash 之后的自动补全有问题了, 特别是mbn以及bin类型的文件根本无法补全.查了一下,发现是fastboot的自动补全脚本限制了补全规则,稍微修改一下就能解决这个问题.文件路径: /etc/bash_原创 2014-11-17 14:28:33 · 1850 阅读 · 0 评论 -
Ubuntu 14.04 配置GNOME经典界面
本文部分内容翻译自: http://www.tuicool.com/articles/Ub2aya原创 2014-09-28 10:35:19 · 2568 阅读 · 0 评论 -
Ubuntu13.04上JDK6的安装方法
最近为同事安装Ubuntu13.04以及Android开发环境,发现一个恶心的事情,在之前的一篇文章(http://blog.csdn.net/diaoxuesong/article/details/9151035)中提到的sun-java1.6的安装方法已经失效了。我不禁感概:这操蛋的Oracle公司,就会给人添堵!好吧,找来找去,终于找到了一个好用的方法,再也不依赖原创 2013-11-23 14:37:27 · 1924 阅读 · 0 评论 -
使用gdb取得kernel oops或kernel pannic的错误行号
kernel上我们可能经常会遇到kernel oops或kernel pannic错误,通常我们通过串口LOG应该能得到类似下面的debug信息:----------------------------------------------------------------------------------------------------[ 3.256221] [] (__原创 2014-08-13 17:07:45 · 1936 阅读 · 0 评论 -
遍历删除.svn .git .repo目录
find -name '.git*' |xargs rm -rf原创 2014-08-13 16:53:36 · 2651 阅读 · 0 评论 -
Ubuntu 添加命令行启动方式
1. 为grub.cfg添加写权限sudo chmod +w /boot/grub/grub.cfg2. 编辑grub.cfg文件sudo gedit /boot/grub/grub.cfg找到:menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuen原创 2014-11-03 17:36:09 · 1675 阅读 · 0 评论 -
FAT格式磁盘镜像制作方法
工作中需要制作一个名为udisk.bin的文件。此文件是一个FAT格式的磁盘分区的镜像文件,大小为20MB。对于FAT文件格式,制作一个2GB的FAT镜像就会有2GB大小,但由于只是一个空文件系统(其中并没有存储具体的文件),其中有意义的只有前面一部分,包括引导记录以及FAT表所在的部分,所以实际上前20MB就能表示整个FAT文件系统了。以制作1GB大小的udisk.b原创 2015-03-06 20:41:45 · 3802 阅读 · 0 评论 -
使用grep快速定位代码位置
有时候临时修改代码时,我们不需要或者没有条件使用复杂的代码编辑器。此时使用普通的文本编辑器如nano或vim,加上grep命令即可快速定位并修改代码。例如,在kernel目录下搜索 CONFIG_BOARD_S3C4410_XXX 内容:grep -nrE 'CONFIG_BOARD_S3C4410_XXX' kernel参数说明:n - 输出行号r - 遍历E原创 2015-03-06 20:48:50 · 3537 阅读 · 0 评论 -
HEX2BIN在WIN7下不能用之后
之前的开发环境一直在WINXP下,有一个工具HEX2BIN.exe,最初也不知道哪里来的,反正是没有源码的了。开发环境换成了WIN7后,其他工具都没大问题,唯独这个HEX2BIN怎么都不能在WIN7环境下运行,各种找,终于找到一个简单直接的办法:在Cygwin及Linux环境下,使用objcopy工具即可:HEX2BIN:objcopy -I ihex -O binary xx原创 2017-03-08 17:20:42 · 3964 阅读 · 0 评论 -
GPT分区中使用的CRC32算法
/* * A8h reflected is 15h, i.e. 10101000 00010101*/int reflect(int data, int len){ int ref = 0; for (int i = 0; i < len; i++) { if (data & 0x1) { ref |= (1 << ((len - 1) - i)); } data原创 2013-07-16 15:58:48 · 3074 阅读 · 2 评论 -
Android为动态枚举设备ttyUSB0提权
在系统中存在这样的设备:通常情况下,这个设备不存在,只有在特定情况下才会出现。比如:ttyUSB0, 只有在插入USB转串口的OTG设备后才会出现。对于这样的设备,默认是没有写权限的。如果有root权限,使用命令:chmod 0666 /dev/ttyUSB0即可赋予其写权限。但是,对于产品来说,你不能要求用户或第三方开发人员每次去输入一个命令,而且,最原创 2016-05-17 15:42:37 · 6127 阅读 · 0 评论 -
重装Ubuntu13.04后需要做的事情
注:本文的配置方法同样适用于Ubuntu14.04版本。1. 搭建Android 编译环境sudo apt-get updatesudo apt-get install -y git gnupg flex bison gperf build-essentialsudo apt-get install -y zip curl libc6-dev libncurses5-dev:i386 x11pr原创 2016-04-13 15:33:07 · 696 阅读 · 0 评论 -
重装Ubuntu13.04后需要做的事情
由于以前的PC太老了,内存升级不了,所以更换了一台机器,将内存升级到了8GB,保险起见,重装了一下Ubuntu13.04(amd64)。这里记录下安装完成后还需要做的事情:1. 搭建Android 编译环境sudo apt-get updatesudo apt-get install -y git gnupg flex bison gperf build-essential原创 2013-07-12 22:26:44 · 2241 阅读 · 0 评论 -
Ubuntu 15.04 Android编译环境
大部分都与13.04及14.04没有区别:参考: 重装Ubuntu13.04后需要做的事情需要注意的是两个问题:1. JAVA环境会报错sudo apt-get remove jayatana将这个玩意删除后JAVA环境检查报错的问题解决.2. make工具被升级make工具需要自己下载3.81版本,自己编译安装.再这里下载3.81版本的gn原创 2015-05-06 12:16:00 · 2808 阅读 · 0 评论 -
Ubuntu下的Notepad++
Ubuntu下的Notepad++: notepadqq....适合从Win平台转移到Linux平台的用户.如果你之前一直再Win下使用nodepad++, 推荐你再Linux下尝试一下这个编辑器: notepadqqnotepadqq的介绍页面: http://itsfoss.com/notepadqq-notepad-for-linux/Ubuntu下的安装方法原创 2015-05-12 14:19:21 · 6875 阅读 · 1 评论 -
Linux man系统使用基础
man系统是linux下强大的帮助系统,能提供给系统用户,程序员几乎所有的帮助信息。这些帮助信息主要来自于Linux开源世界众多的文档维护者的无私贡献。man系统本身有一些基本的使用技巧,摘录如下:1. 打开xxx的帮助信息man xxx2. 查看某shell命令的帮助信息man 1 xxxman将所有的帮助信息进行了分类,各个分类使用数字来标记:原创 2015-03-06 20:30:31 · 1224 阅读 · 0 评论 -
tar命令排除.svn .git等目录
压缩:tar -jcvf bz2/xxx.tar.bz2 xxx --exclude=*.svn --exclude=*.git --exclude=*.repo此命令将当前目录下的xxx目录压缩为bz2/xxx.tar.bz2,并排除其中的.svn, .git, .repo目标解压:tar -xjvf file.tar.bz2 此命令将file.tar.bz2 解原创 2014-08-13 16:57:56 · 9837 阅读 · 0 评论 -
Ubuntu 普通用户访问fastboot及adb设备
1. 新建如下文件/etc/udev/rules.d/51-android.rules2. 编辑该文件内容如下:SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0600", OWNER="diao"SUBSYSTEM=="usb", ATTR{idVendor}=="05c6", MODE="0600"原创 2014-08-13 16:12:51 · 1234 阅读 · 0 评论 -
Linux下获取目录下的文件列表,并按字符串排序
本程序大部分参考 man scandir 的内容:#include #include #include #include #include #include #include int main(void){ struct dirent **namelist; int n; n = scandir(".", &namelist, NULL, alphasort); i原创 2014-02-22 15:43:03 · 3368 阅读 · 0 评论 -
Linux Shell if 常用写法
Linux Shell编程中最常用的一个条件判断语句就是if了,下面就我经常用到的地方写出来以作参考:1. 基本语法if [ 条件测试语句 ]; then执行语句Aelse执行语句Bfi单行的语法如下:if [ 条件测试语句 ]; then 执行语句A; fi2. 条件测试语句- 判断字符串是否为空if [ -n "`ls | grep .img`" ];原创 2012-12-29 16:16:47 · 4108 阅读 · 0 评论 -
如何解决Ubuntu10.10装ATI驱动后不能进桌面的问题
DELL N4050在安装Ubuntu10.10后自动弹出一个ati驱动安装对话框,于是手痒点了一下,驱动没安装成功,系统进不了gnome了,悲剧。。。网上搜索了10来分钟,找到答案,一试,还真行,差点就重装了。。。下面公布答案:sudo stop gdmsudo原创 2011-08-16 22:45:34 · 1099 阅读 · 0 评论 -
VIM常用命令及技巧
最近才发现,在Linux下,还是只有VIM是最强大的代码编辑工具,也不知道是该庆幸还是该悲哀。。。庆幸的是VIM功能确实强悍,悲哀的是这么多年了,linux下还找不出一个像样的类似sourceinsight那样的代码编辑器,没办法,硬着头皮学VIM吧:1. 建立目录下的tags文件 ctags -R 目录名2. 用VIM打开函数xxx_init所在的文件 vim -t xxx_init3. 跳转光标到第1行 :14. 复制当前行到系统粘贴板 "+Y 或 "+yy 剪切当前行到系原创 2010-09-01 10:35:00 · 866 阅读 · 0 评论 -
如何在Linux下编译Windows版本的adb和fastboot
<br />理论上,只要下一个windows版本的SDK,里面就自带了fastboot和adb工具。<br />但我最近确实遇到了一个需要在linux下编译出windows版本的adb的问题,废话不多说,步骤如下:<br />1. 执行:apt-get install mingw32<br /> 安装了linux-windows交叉编译环境mingwin<br /> <br />2. 执行:. build/envsetup.sh<br />3. 执行choosecombo,选择各个参数原创 2010-08-06 13:02:00 · 6035 阅读 · 1 评论 -
MSI U210x netbook wifi在ubuntu下如何安装
<br />在MSI U210x上安装了ubuntu后发现wifi不能用了,找了好长一段时间才解决这个问题...<br />1. 下载这个: http://ppa.launchpad.net/markus-tisoft/rt3090/ubuntu/pool/main/r/rt3090/rt3090-dkms_2.3.1.3-0ubuntu0~ppa1_all.deb并安装<br />2. 重新启动<br /> <br />OK,就这样就搞定了......<br />看来新系统出来后还是要过段时间才能用...原创 2010-08-05 18:14:00 · 1315 阅读 · 0 评论 -
触摸屏的校准与坐标变换
最近做了一点触摸屏的驱动工作,总结了一下,触摸屏的校准的核心其实就是坐标的变换问题。下面将触屏校准的思路简单记录一下:第一步,记录LCD的4个角上的Touch坐标值(不是LCD坐标值,而是Touch传出来的坐标值)(x1,y1) ----- (x2,y2) | | | | | |(x4原创 2010-04-25 14:20:00 · 6342 阅读 · 1 评论 -
U-BOOT编译环境的搭建及编译步骤
首先个人认为还是得有一台安装了Ubuntu的PC,我用的是Ubuntu9.04,目前用起来“Ubuntu,挺好”。。。 1. 下载U-BOOT最新代码,在下面的ftp路径下能找到源代码 ftp://ftp.denx.de/pub/u-boot/ 目前为止,最新的版本为u-boot-2010.03.tar.bz2 2. 下载ELDK交叉编译环境,在下面的FTP中能原创 2010-04-11 17:06:00 · 3581 阅读 · 0 评论 -
Linux I2C Input设备驱动代码的几点理解
最近在做一个I2C键盘的Linux驱动,参考了其他芯片的一些代码,其中陆续发现有些让人迷惑的东西,把我的迷惑及理解在这里加以记录:1. i2c_driver结构体的probe成员的原型: int (*probe)(struct i2c_client *, const struct i2c_device_id *); 即:probe函数被调用时会从上边传两个个参数下来,类型原创 2010-03-05 15:53:00 · 4385 阅读 · 2 评论 -
Makefile依赖关系中的竖线“|”
近日在阅读一个Makefile的时候发现一个依赖关系中有竖线“|”的写法,网上搜索无果,于是自己查看了一下makefile的info文件,其中解释如下: target : prerequisites[TAB]command1[TAB]command2[TAB]...[TAB]commandN其中的[TAB]就是键盘上的Tab键,不可以用空格替代,这些Makefi原创 2013-01-08 10:48:45 · 4673 阅读 · 0 评论 -
grep与sed配合使用一例
有时候我们需要知道搜索的内容x位于文本文件的哪一行,然后需要查看这一行附近的内容,典型的例子有:- 查看kernel的dmesg信息时- 阅读函数实现代码时可以简单的通过两个命令行解决,举例如下:$grep -n 'BUG' snow_dmesg.log10:[ 0.000000] BUG: mapping for 0x00b00000 at 0xc0900000原创 2013-01-15 10:32:36 · 5778 阅读 · 0 评论 -
Wine中UE32工具栏乱码问题解决方法
查出来是因为我的Ubuntu默认语言设置的英文所致,但我又不想修改默认语言于是需要在快捷方式中添加一句:LANG="zh_CN.UTF-8"完整的属性如下Lenv LANG="zh_CN.UTF-8" WINEPREFIX="/home/my/.wine" wine C:\\Program\ Files\\IDM\ Computer\ Solutions\\UltraEdit-32\\原创 2013-05-08 16:46:36 · 2304 阅读 · 0 评论 -
Ubuntu13.04 内核重编与定制
一直在Android平台下做Kernel开发,对于Kernel的编译已经烂熟于心,今天突然想自己编译一下PC上的Kernel,看起来过程类似,定制内核所需的也就是时间了。。。废话少说,过程记录如下。1. 本人的环境如下:Ubuntu 13.04 虽然13.10已经发布了,但暂时还不想升级。。。由于已经安装过了Android的开发环境,所以我已经不再需要安装其他环境即可编原创 2013-11-04 13:45:15 · 2220 阅读 · 0 评论 -
GPT分区数据格式分析(图已补上)
本文主要介绍GPT分区的数据结构,并辅以实例说明GPT的数据结构在实际硬盘中的内容进行对照分析。原创 2013-07-22 11:09:37 · 13725 阅读 · 2 评论 -
Ubuntu 13.04 Launcher中加入Wine应用程序快捷方式
在Ubuntu 13.04上,在Wine中使用SourceInsight是没有问题的。问题是不能将SourceInsight的快捷方式固定到左侧的Launcher中。下面是解决这个问题的方法:1. sudo apt-get install gnome-panel 此命令会安装一个gnome的组建及其工具2. sudo gnome-desktop-ite原创 2013-07-03 19:58:33 · 4384 阅读 · 0 评论 -
Ubuntu13.04 Android 编译环境搭建
升级是因为升级svn把旧的11.04搞坏了,懒得去折腾,于是干脆升级到13.04了。不得不提的是,新版本的svn使用体验有质的飞跃,update一套Android代码需要花费的时间可能只是以前的1/20。。。环境搭建大部分的内容可以参考:http://source.android.com/source/initializing.html1. 安装JAVA6-原创 2013-06-22 15:39:44 · 2481 阅读 · 0 评论 -
二进制转换为C语言数组-Python实现
下面的Python程序可以实现将一个二进制文件转换为C语言的数组格式:#!/usr/bin/pythonimport sysDEBUG = Falsedef printline(): print '-'*80def ShowCmdArgs(): i = 0 for arg in sys.argv: print 'arg', i, ':原创 2013-06-19 17:04:53 · 2002 阅读 · 0 评论 -
Linux环境C语言编程的命令行参数处理
在Linux下有一个头文件:#include其中有一系列函数及其定义:int getopt(int argc,char * const argv[ ],const char * optstring);extern char *optarg;extern int optind, opterr, optopt;这一系列定义专门用于解析命令行参数。范例:#incl原创 2013-06-19 10:56:59 · 2422 阅读 · 0 评论