CentOS6 笔记

十二月 31, 2011

很久没有更新博客,都荒废了。最近忙于乐乐,也懒得学习。
整理整理CentOS的相关内容。算是2011年的最后一篇博客,一会就要到2012啦。

CentOS6安装后yum使用163的源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
yum makecache

参考页面:http://mirrors.163.com/.help/centos.html

 

使用xfce

  1. $ wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-5.noarch.rpm
  2. $ sudo rpm -ivh epel-release-6-5.noarch.rpm
  3. $ sudo yum search xfce
  4. $ sudo yum groupinfo xfce
  5. $ sudo yum groupinstall xfce

====================

安装第三方的rpmforge源,以便可以安装mplayer等常用软件

rpm –import http://apt.sw.be/RPM-GPG-KEY.dag.txt

rpm -K http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm

提示:http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm: (sha1) dsa sha1 md5 gpg OK

rpm -i http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm
这时就可以yum install hotp,yum install mplayer等等啦

更新修复我的LINKSYS-WRT54GC无线路由

四月 5, 2011

我的无线路由,LINKSYS-WRT54GC,淘宝上购买的,已经服役3年左右了,之前出现一些故障,有线一切正常但是访问不到无线信号了,手机笔记本都搜索不到,开始重启下就能找到,后来随你怎么折腾都没有无线信号,而无线的灯则正常的闪烁着。

先是更新了一次固件,从国外的官方网站上找到了v1版本的固件,地址在这:http://www.linksysbycisco.com/UK/en/support/WRT54GC/download

版本是:

08/18/2009

Ver.1.06.0

更新后好了几次,之后又不行了,我又从网上找到拆机图,参考拆机,也没什么动作,调整了下里面的弹簧片,又好了几次。这次乐乐出生后,我准备启用无线路由,再次拆开,屏蔽了内置天线,把弹簧片用塑料隔开了。从网上非常折腾的找到了1.10.1的固件,挺难找的,找到后我给传了上来方便自己和需要的朋友使用,我甚至发现了淘宝上在买,5块人民币。这个版本官方的网站也没有,不知道从哪里流出来的。

WRT54GC v1.0 Firmware v1.10.1下载:WRT54GC_FW1101_EN

刷机过程中,使用IE8,失败,更好chrome后成功。

刷后,目前路由一切正常,希望可以继续服役一段时间。

 

update on 2011-12-30

此路由,正常两次后就挂了,想折腾修理也没搞定,应该是无线天线的问题,有线都正常,留着当个有线路由备用了。

更换了一个TPLINK的TL-WR841N,双天线,凑合用,关键是价格便宜。

Android系统SVC命令教程

二月 19, 2011

参考自:http://51shouji.blogbus.com/logs/71788144.html

svc命令,位置在/system/bin目录下,用来管理电源控制,无线数据,WIFI

# svc
svc
Available commands:
help     Show information about the subcommands
power    Control the power manager
data     Control mobile data connectivity
wifi     Control the Wi-Fi manager

# svc power
svc power
Control the power manager
usage: svc power stayon [true|false|usb|ac]
Set the 'keep awake while plugged in' setting.//设置屏幕的常亮,true保持常亮,false不保持,usb当插入usb时常亮,ac当插入电源时常亮

# svc data
svc data
Control mobile data connectivity
usage: svc data [enable|disable]
Turn mobile data on or off.//设置移动网络的数据是否启用
svc data prefer
Set mobile as the preferred data network//设置移动网络的数据优先于WIFI

# svc wifi
svc wifi
Control the Wi-Fi manager
usage: svc wifi [enable|disable]
Turn Wi-Fi on or off.//设置WIFI是否启用
svc wifi prefer
Set Wi-Fi as the preferred data network//设置WIFI优先于移动网络的数据,一般应设置成这样,除非你刻意使用移动网络数据传输

上面的命令都要在shell中执行,需要root。

大家可以用gscript  ,然后输入这些命令做成在快捷方式放在桌面,跟那些开关软件一样方便使用。

硬盘分区不可用显示RAW的解决

二月 13, 2011

今晚伟哥的电脑重装后,两个盘符点击打开时显示不可用。显示无法访问,拒绝访问。如下:

我一开始以为是分区表在重装的时候出了问题,但看了提示,感觉不像。

右键属性,磁盘大小显示为0,分区格式显示为RAW.

打开管理工具中的磁盘管理,发现一切正常,可以正常识别分区格式为NTFS,于是感觉像是权限问题。

盘符上右键属性,找不到安全选项,需要先在文件夹选项里,关闭使用简单文件共享,把勾给去了。

再去盘符属性,找到安全。重新获取指定了所有人,记得勾选下面那个包括所有子元素。

然后再去权限列表里,省事的话添加个everyone,赋予所有权限,搞定。

还有半小时就到情人节啦,祝愿我所有还单身的兄弟们,情人节快乐!

情人节孤独的人是可耻的,赶紧找个伴!╭∩╮(︶︿︶)╭∩╮

Javascript获取最新AndroidSDK下载地址

二月 10, 2011

Android官方网站时常被墙,而且下载下来的sdk只是一个sdk manager,还需要以非常慢的速度下载需要的sdk版本。
写了一个简单的JavaScript脚本,可以方便的获取最新的全部SDK版本的下载链接。复制一下内容,另存为本地的一个HTML文件,打开即可通过迅雷下载。下载后,放至android-sdk-windows目录下的temp目录下,使用SDK Manager升级即可,免去下载直接安装。

很久没写js,生疏的紧,正则也调试了半天,懒得用xml解析了。
发现问题

  1. 本想直接在页面执行,获取并展示url地址,但是在xmlhttp.open执行时,错误,想起来不能跨域执行,代码在本地可以执行,在站点上可就算跨域了。回头要结合服务端代码php改写一个。
  2. 代码在chrome和firefox下执行有问题,本地也不允许跨域。
  3. 判断xmlhttp.status时,返回值ie和firefox不同。索性不判断了。
<script language="javascript">
var xmlhttp;
if(window.ActiveXObject)
{
	xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
	}else if(window.XMLHttpRequest)
	{
		xmlhttp=new XMLHttpRequest();
	}
	xmlhttp.open("GET", "http://dl-ssl.google.com/android/repository/repository.xml",true);
	xmlhttp.onreadystatechange=function() {
 	if (xmlhttp.readyState==4)
	{
		var str=xmlhttp.responseText;
		var pattern=/[A-Za-z0-9_\-\.]*zip/gi;
	 	var addrs=str.match(pattern);
	 	var strAddress="";
	 	if(addrs!=null)
	 	{
			for(var i=0;i<addrs.length;i++)
		 	{
				strAddress+="<a href=\"http://dl-ssl.google.com/android/repository/"+addrs[i]+"\">"+addrs[i]+"</a><br />";
		 	}
	 	}
		document.write(strAddress);
	}
}
xmlhttp.send(null);
</script>

milestone修改boot logo

一月 20, 2011

修改了启动画面还是很不过瘾,索性连moto的启动logo一并改了,在国外的论坛上找到资料,小心翼翼的尝试后,成功,总结如下:
boot logo素材要求bmp图片,大小为480×182,注意中间的图案一定要调到比较大才行,不然显示的logo很小。
使用工具MilestoneBootLogo.exe加载图片,并另存为mylogo.bin。
工具图片:

我自己的Logo效果:

注意:此工具需要dotnet framework 3.5支持。
将此文件传送到SD卡上。
重启进入recovery模式,进入console界面

erase_image logo
flash_image logo /sdcard/mylogo.bin

结束重启,欣赏你自己的boot logo吧。
给出参考的国外论坛地址:http://modmymobile.com/forums/555-motorola-milestone-themes/559148-tool-milestone-custom-boot-logo.html

工具从这里下载,注意OpenRecovery的版本,需要修复bug后的1.46版本。

创建android开机动画

一月 20, 2011

今天心血来潮分析整理了一下android系统的开机动画,用LP照片制作了一个开机动画。
开机动画文件为:/system/media/bootanimation.zip
是一个标准的zip文件,不过设置压缩率时选择存储。
打开压缩包结构如下:
bootanimation.zip
|– desc.txt
|– part0
`– part1

part0和part1为文件夹,下面保存着png图片

part0
|– boot_00001.png
|– boot_00002.png
|– boot_00003.png
|– boot_00004.png
|– boot_00005.png
|– boot_00006.png
|– boot_00007.png
|– boot_00008.png
|– boot_00009.png
`– boot_00010.png

part1
|– boot_00011.png
|– boot_00012.png
|– boot_00013.png
|– boot_00014.png
|– boot_00015.png
|– boot_00016.png
|– boot_00017.png
|– boot_00018.png
|– boot_00019.png
`– boot_00020.png

desc.txt文件内容如下:

480 854 2
p 0 0 part

480 854为分辨率
2为fps,即每秒显示几幅图片
p为part,标识这是一部分
0为循环次数,0代表无限次循环
0为暂停,最大值为10
part为文件夹名称
如有多个动画可以定义多个p,分别放在不同的文件夹中

替换方法:
使用RE将其复制到/system/media目录下,记得备份原文件,以便以后恢复。指定权限,省事的话就全部给予。

milestone使用技巧收集

一月 19, 2011

收集一些milestone(xt702)的使用技巧,有些可以适用其他android手机
拨号界面输入:*#*#4636#*#*,可以查看手机详细信息

全键盘下复制、粘贴的方法:
首先要按shift+space切换成英文输入,然后

alt+menu+c 复制
alt+menu+v 粘贴
alt+menu+a 全选
alt+menu+x 剪切

对,没错,要alt和menu同时按,好在这两个键在space的右侧,挨着,看来当初就是这么设计的。

当然还可以用第二种方法:
按shift+space切换成英文后,连续按两次alt,这样就成了输入数字的模式,此时只需按
menu加c、v、a、x就可以分别实现复制、粘贴、全选和剪切了,这样方便连续粘贴。

关键就在两点
1、必须切换成英文输入,在中文下即使同时按alt和menu,还是跳出菜单,本人亲测
2、必须配合alt键,或者和menu同时按住,或者先连续按两次。

1.“↑”键就是我们电脑键盘上的“shift”键,“alt”键和电脑上的同名按键功能也相同。利用这两个键可以实现类似于电脑键盘的很多操作。
2.中文和英文输入法切换:“↑” 键+“空格”键
3.切换英文的大小写:摁一下“↑”键,或者摁住“↑” 键+相应字母键
4.锁定英文大写:摁两下“↑”键
5.只有英文状态能使用数字键
6.输入一个数字:摁一下“alt”键,或者摁住 “alt”键+相应数字键
7.锁定输入数字:摁两下“alt”键
8.键盘上的“菜单键”(就是四条横杠那个键)在文本编辑时可以部分等同于电脑的“ctrl”键,可以快捷复制粘贴。
9.每个键上有蓝色和白色两种字母或符号,但只用安装moto输入法,才能完全利用“alt”键实现键盘上白色符号的输入。其他输入法,比如google 拼音,会在alt输入时有很大出入,比如,“alt”键+D输入的不是#号,而是顿号。

输入和英文符号不同的符号:
1—Alt+F不是“$”,而是人民币的“¥”
2—Alt+Z或Alt+X,不是小于号和大于号,而是左右书名号《和》
3—Alt+/,不是^号,而是省略号
无论中英文状态,输入Alt+空格,都会调出一个符号对话框,里面有如下符号:省略号、人民币¥符号、外文姓名连接号、注册商标符号、版权符号、加减号、左右方括号、左右花括号、反斜杠符号。

JAVA线程的一点记录

一月 18, 2011
//启动新线程执行任务
class MyRunnable implements Runnable
{
	public void run()
	{
		try
		{
			...
			//判断thread状态,是否中断
			//除了isInterrupted()还有一个静态方法static boolean interrupted()测试当前线程是否中断,并将当前线程的中断状态重置为false
			while(!Thread.currentThread().isInterrupted() && more work to do)
			{
				do more work
				Thread.sleep(delay);
			}
		}
		catch(InterruptedException e)
		{
			//thread was interupted during sleep or wait
			//如果线程被阻塞就无法检测中断状态,产生InterruptedException
		}
		finally
		{
			cleanup,if required
		}
		//exiting the run method terminates the thread
	}
}
Runnable r=new MyRunnable();
Thread t=new Thread(r);
//启动线程,将引发调用run()的方法。并立即返回,新线程并行运行
t.start();

//中断线程
//向线程发送中断请求。线程的中断状态将被设置为true。如果目前该线程被一个sleep调用阻塞,那么,抛出异常InterruptedException
t.interrupt();

//synchronized

public synchronized void method()
{
	method body
}

public void method()
{
	this.intrinsicLock.lock();
	try
	{
		method body
	}
	finally
	{
		this.intrinsicLock.unlock();
	}
}

public void method()
{
	synchronized(lock)
	{//这里要求method body里的对象使用内部锁
		method body
	}

}

弃用stop和suspend方法的原因:
stop方法天生不安全,该方法终止所有未结束的方法,包括run方法。当线程终止,立即释放被它锁住的所有对象的锁。这会导致对象处于不一致的状态。当线程要终止另一个线程时,无法知道什么时候调用stop方法是安全的,什么时候导致对象被破坏,所以stop被废弃了。
suspend会经常导致死锁。如果用suspend挂起一个持有一个锁的线程,那么,该锁在恢复之前是不可用的。如果调用suspend方法的线程试图获得同一个锁,那么程序死锁:被挂起的线程等着被恢复,而将其挂起的线程等待获得锁。

修改Syntax Highlighter ComPress实现自动换行

一月 10, 2011

修改/wp-content/plugins/syntax-highlighter-compress/styles/shCoreDefault.css (Default对应所设置的样式)为如下:

.syntaxhighlighter .line {
  /*white-space: pre !important;*/
 white-space: pre-wrap;
 white-space: -moz-pre-wrap;
 white-space: -pre-wrap;
 white-space: -o-pre-wrap;
 word-wrap: break-word;
}
 
Powered by Wordpress and MySQL. Theme by Shlomi Noach, openark.org