代码: 全选
sudo hdparm -B 254 /dev/sda
设置硬盘APM为254,默认为128
sudo hdparm -B 255 /dev/sda
关闭硬盘高级电源管理,最佳性能
sudo hdparm -B /dev/sda
查看APM状态
代码: 全选
sudo hdparm -B 254 /dev/sda
设置硬盘APM为254,默认为128
sudo hdparm -B 255 /dev/sda
关闭硬盘高级电源管理,最佳性能
sudo hdparm -B /dev/sda
查看APM状态
代码: 全选
EC1261自带了Linux拨号程序Mobile Partner,插入设备后发现为光驱并加载,然后命令安装
sudo mkdir /etc/acpi/suspend.d
sudo bash /media/ChinaTelecom/Linux/install
装完后可以启动,但是中文界面有乱码,到网上下载一个微软雅黑字体,把下面的字体替换掉
/usr/local/Mobile_Partner/rt/lib/fonts/LucidaSansRegular.ttf
在“应用程序”-“互联网”-“Mobile_Partner”启动,
“工具”-“设置窗口”-“连接配置管理”里新建一个配置
号码#777
用户名ctnet@mycdma.cn
密码ctnet.cn
保存,然后拨号成功上网。
代码: 全选
Ubuntu中的Load/Unload Cycle Count问题及解决方案
说明:请大家注意,本文所描述的问题只有笔记本电脑才会出现。
1. 问题描述
几周前收到soldiers童鞋的短信说,Ubuntu伤硬盘?我说没事,好多人都用呢。过了一周,soldiers童鞋又问,Ubuntu伤硬盘?我说我查查看....
# 安装smart参数查看工具,由此可以查看硬盘的smart信息
$ sudo apt-get install smartmontools
# 查看/dev/sda这块硬盘的smart参数, 你可能需要把/dev/sda这部分修改成你的硬盘设备地址
# grep 193是只查看 Load Cycle Count这项
$ sudo smartctl -a /dev/sda | grep 193
193 Load_Cycle_Count 0x0012 090 090 000 Old_age Always - 109989
这样就可以看到Load/Unload Cycle Count数目了。用Windows的童鞋可以借助Everest工具,查看存储器->SMART信息,也可以找到相应项的数据。
不看不知道,一看吓一跳,我的是华丽的11W!!! T.T 据说到了60W,就离挂掉不远了。我才用了4个月,算下来照这个速度用下去的话,只能用4*60/10/12=2年.... 同寝的Acrest童鞋的也过了10W大关哈哈哈。
$ while true; do sudo smartctl -a /dev/sda | grep 193; sleep 300; done;
这样可以每隔5分钟查询一下LCC,一般来说每小时增长在15上下应该是正常的。这样的话即便你每天24小时开着本子,硬盘也可以坚持4年(当然是从理论上来讲)。
1.1 这个Load/Unload Cycle Count到底是什么?
Load/Unload Cycle Count(以下简称为LCC)就是Load/Unload的次数,那么什么叫做Load/Unload呢,下面是一段非常罗嗦的解释,建议不感兴趣的同学出门右转,直接看下一节吧。
大家都知道,硬盘的数据传输是通过磁头读写磁盘上的数据来完成的。在工作过程中,磁头并不与磁盘的盘面直接接触,两者之间有一层很薄的空气薄膜,这 层空气薄膜是由于磁盘的高速旋转产生的。如果磁盘停止旋转,空气薄膜消失,磁头则会直接接触到盘片,更详细一点说,会接触到盘片的landing zone,或者叫做start/stop zone,这无疑对盘片的寿命以及对存储在这块区域的数据造成不好的影响。因此在早期阶段,硬盘制造商一般会在对盘片的表面或landing zone部分做特殊的处理,并尽量避免在landing zone存储数据。
但是随着人们对于硬盘传输速度和硬盘容量需求的不断增加,制造商需要不断提高硬盘的面密度,同时要求盘片表面尽可能地平滑,这无疑与之前采用的技术 产生了冲突,再加上其他的一些因素,硬盘制造商迫切地需要一种新的方式来替代之前采用的磁头直接接触盘面的行为。这时IBM的工程师们提出了一种叫做 Load/Unload的技术。简单来说,Load/Unload技术有点像老式的点唱机,当盘片转速降低无法再产生空气薄膜的时候,就将磁臂以及磁头旋 转一下,停靠到磁盘旁边的一个小斜坡上。这样就完全避免了磁头与盘片的直接接触。
总体来说,Load/Unload技术是有利的,比如可以提高硬盘的可靠性:硬盘遭到撞击的时候磁头不会划伤盘面;可以提高硬盘的面密度:不再需要 对盘片表面做特殊的处理,可以提供平滑的盘面;以及可以有效地降低功耗:低功耗的程序可以通过多次请求Load/Unload来减少盘片的旋转时间,或者 设置旋转超时时间(spin down timeout)来让磁头定期的做Load/Unload等等。
1.2 这个参数值高了有啥危害?
虽然Load/Unload技术有很多优点,但毫无疑问频繁的Load/Unload操作会造成磁头的磨损,严重的话会造成数据读写失效,也就说,硬盘挂了。
那么到底Load/Unload多少次会挂呢?最流行的说法是到60W次,西部数据的一份产品规格说明书上也明确标示出了这一数字。
但也有人指出SMART参数根本就是扯淡,好多坏掉的硬盘SMART值很低好的硬盘SMART值超标,因此根本不能成为评判标准以至于现在好多新机 器都直接屏掉。但无论如何,频繁地卸载/挂载总不是什么好事。尤其是当你已经了解到Load/Unload次数过多有可能造成硬盘挂掉的时候,我想无论再 有人辟谣,你也不会高枕无忧了。毕竟相对于硬盘本身来说,上面的数据可是要重要的多。
1.3 LCC为啥会那么高?
简单来说,可能有下面几个原因:
1) 硬盘厂商在固件中制定的节能策略过于苛刻,以至于为了节能,硬盘频繁地Load/Unload
2) 操作系统的电源策略过于苛刻。
1.4 其他的发行版有没有这个问题?Windows呢,MAC OS呢?
各大linux发行版好像就Ubuntu被报告有这个问题,但这实际上并不是Ubuntu的电源策略太变态,恰恰相反,默认情况下Ubuntu会直 接沿用硬件固件里面的设定。其他的发行版中SUSE也有类似的电源管理的BUG,除此之外的发行版似乎默认会忽略硬盘的这个节能功能,所以不会有类似的问 题。
至于Windows,也会出现类似的现象,比如说我宿舍的Acrest童鞋,但我的没有。MAC OS也有报告出现类似的问题。
总体来说这个并不是个别现象,也并不应该算是操作系统的问题。感觉由于Windows下硬盘几乎会一直不停地运作,所以硬件厂商不太重视硬盘固件中 的初始设定,比如说我的日立硬盘,电源管理级别被设置为128,结果由于Linux并不像Windows那样频繁读盘,磁头为了节能会频繁地做 Load/Unload操作。
2. 如何修复这个问题?
2.1 硬件修改法 (***推荐使用***)
正如上面所说,如果你的硬盘在Ubuntu下有这个问题,那么有可能是硬件本身的节能策略太激进了。最简单也是最根本的方法,就是用厂商提供的固件修改工具对出厂的默认设置进行修改,比如说日立的Feature Tools。
在Feature Tools中,有一项"Change Advanced Power Mode",默认是128,可以选择从1到254不同的数值。
简单来说,数字越小越节能,数字越大性能越好。Feature Tools中将1-254分成三段并分别做了简单的说明,一般来说,设置到192-254则表示不允许Load/Unload操作,而255则表示禁用APM()。这个数字也就是后文提到的APM级别。
2.2 软件修改法
修改硬盘固件是最根本的解决方案,除此之外,关于在Ubuntu中修改相关策略,网上有很多种不同的解法,有兴趣的童鞋可以看关于这个Bug的讨论, Ubuntu Wiki上关于这个Bug的介绍,起因分析以及解决方案的总结等。基本上流传的方法有这么两种:
2.2.1 启用laptop-mode,通过修改laptop-mode.conf中的相关设置达到控制Load/Unload的目的
2.2.2 直接在/etc/acpi/start.d, resume.d等目录下放置脚本,通过hdparm命令修改APM级别和spin down time.
具体内容见文后附注。归根结底,这两种方法都是利用hdparm工具,通过-B参数修改高级电源管理(APM)级别,通过-S参数修改旋转超时时间 (Spin Down Timeout),从而控制硬盘的Load/Unload次数。所谓APM级别就是我们上面介绍过的1~255,而Spin-down Timeout就是指硬盘空闲(或者旋转?这个拿不准)多久后才会Spin Down,也就是停转,做Unload操作。相对应的,有一个Spin up Time,这是指硬盘重新启动到正常运转所需要的时间。
Windows下也有一款HDDScan软件可以很方便地做到这一点。这样的软件改法确实有效,但由于hdparm不会将设置写入固件,因此在关 机、休眠以及待机之后,由于硬盘掉电,这些通过软件的设置会失效,需要重新启用一次。目前这两种方法在我的机器上的测试结果是待机唤醒之后参数不会重新启 用。实际上,laptop-mode只会在开机的时候才会应用我们设定的参数,而 acpi的resume.d目录下放置的脚本并不会被执行,不知道这是不是个别现象。 所以如果大家非要用软件的修改方法时,推荐下面这一种。
2.2.3 pm.utils大法 (推荐使用)
除了这两种修改方法之外,还有另外一种通过pm.utils来调用hdparm的方法。这实际上是Suse的一个解决方案。pm.utils全称是 Power Management Utilities,与acpi类似,它可以通过加入Hook脚本的方法在待机、休眠和唤醒的时候修复一些待机/休眠方面的Bug或者实现某些特定的功 能。pm.utils很有可能会在8.10中就取代acpi,所以从这个意义上来讲这个方案也会有更长的效用。具体步骤如下:
1) 首先做一些配置,主要就是设置省电模式开启和关闭的模式下hdparm的参数,具体的内容脚本中有注释。
你可能需要将“/dev/sda"修改成你的硬件设备,比如你有两个硬盘,可以修改为"/dev/sda /dev/sdb"。
$ sudo vi /etc/pm/config.d/disk
# Configure disk power management settings to ensure both
# long disk life and good power management.
#
# Space delimited list of disk devices this affects.
#
DEVICES_DISK_PM_NAMES="/dev/sda"
#
#
# Power management modes
#
# Powersave mode off
# Set APM as 192
# Set spin-down for 30 minutes
#
DEVICES_DISK_PM_POWERSAVE_OFF="hdparm -q -B 192 -q -S 241 -q -M 128"
#
# Powersave mode on
# Enable APM to conservative 192 and set spin-down for 21 minutes
#
DEVICES_DISK_PM_POWERSAVE_ON="hdparm -q -B 192 -q -S 252 -q -M 128"
一般可设为:hdparm -q -B 254 -q -S 242
2) 在power.d中加入Hook脚本,作用是在使用电池和AC电源的时候可以自动切换省电模式。
$ cd /etc/pm/power.d
$ sudo vi disk
#!/bin/bash
. /usr/lib/pm-utils/functions
. /etc/pm/config.d/disk
if test -z "${DEVICES_DISK_PM_NAMES}"; then
exit 1
fi
case "$1" in
true)
echo "**enabled pm for harddisk"
for DISK_NAME in `echo ${DEVICES_DISK_PM_NAMES}`; do
${DEVICES_DISK_PM_POWERSAVE_ON} ${DISK_NAME}
done ;;
false)
echo "**disabled pm for harddisk"
for DISK_NAME in `echo ${DEVICES_DISK_PM_NAMES}`; do
${DEVICES_DISK_PM_POWERSAVE_OFF} ${DISK_NAME}
done ;;
esac
$ sudo chmod +x disk
3) 在sleep.d中加入脚本,目的是在休眠/待机之后唤醒的时候重新设定hdparm的参数:
$ cd /etc/pm/sleep.d/
$ sudo vi disk
#!/bin/bash
. /usr/lib/pm-utils/functions
. /etc/pm/config.d/disk
if test -z ${DEVICES_DISK_PM_NAMES}; then
exit 1
fi
case "$1" in
thaw|resume)
/usr/bin/on_ac_power;
if [ "$?" -eq 0 ]; then
echo "**disabled PM for harddisk"
for DISK_NAME in `echo ${DEVICES_DISK_PM_NAMES}`; do
${DEVICES_DISK_PM_POWERSAVE_OFF} ${DISK_NAME}
done
elif [ "$?" -eq 1 ]; then
echo "**enabled PM for harddisk"
for DISK_NAME in `echo ${DEVICES_DISK_PM_NAMES}`; do
${DEVICES_DISK_PM_POWERSAVE_ON} ${DISK_NAME}
done
fi
;;
esac
$ sudo chmod +x disk
***注意最后一定要为disk脚本添加执行权限。否则pm.tuils不会自动执行这段脚本
4) 如果你没有启用laptop mode (默认是不启用的),可以跳过这部分了。
由于Ubuntu中acpi和pm.utils是共存的,所以如果你启用了laptop mode,那么在改变电源状态(指电池->AC电源或者反之)的时候,acpi会在启用/停用laptop mode的同时设置hdparm参数,会覆盖掉pm-utils所做的设置。
所以如果你启用了laptop mode的话,需要做如下修改:
1' $ sudo vi /etc/default/acpi-support
将最后的
SPINDOWN_TIME=12
修改为
SPINDOWN_TIME=241
2' $ sudo vi /etc/acpi/power.sh
将function laptop_mode_enable部分的
$HDPARM -B 1 /dev/$drive 2>/dev/null
修改成
$HDPARM -B 192 /dev/$drive 2>/dev/null
上述的解决方案在Dell Inspiron 700m + Ubuntu 8.04.1上测试通过。在待机唤醒之后参数会重新被设置,但是由于我的机器上休眠有问题,所以没有办法测试休眠。但理论上来也是可以的。
3. 我想定期检测Load_Cycle_Count,怎么办?
好办,这里是一个脚本,具体用法在注释里面粗体标明了。(不好意思...注释好像比代码都长)
#!/bin/bash
#
# @Description:
#
# check_lcc v0.2
#
# Check Load_Cycle_Count from S.M.A.R.T info of your hard drive
# when power on and off and Save them to $FILE in following format:
#
# LCC TIME
# ON 110044 18:05:00 2008-09-08
# OFF 110044 18:10:03 2008-09-08
#
# "ON" indicates POWER ON while "OFF" indicates POWER OFF, LCC is
# exactly Load_Cycle_Count of your hard drive at TIME.
#
# @Usages:
#
# 1. sudo vi /etc/init.d/check_lcc
# 2. copy all the contents of this script to it
# *** Note that u need to modify "FILE" as what u want.
# save and quit.
# 3. sudo chmod +x /etc/init.d/check_lcc
# 4. sudo update-rc.d check_lcc start 1 2 . stop 99 0 6 .
# 5. Have fun.
#
# This script was tested under Ubuntu 8.04.1.
#
# @Author:
#
# breaddawson@gmail.com
# 2008/09/07
FILE="/home/bread/lcc_report.txt"
STAT=`smartctl -a /dev/sda | grep 193 | sed -nr "s/.*[[:space:]]([[:digit:]]{1,})$/\1/p"`"\t "`date +'%T %F'`
case "$1" in
start)
STAT="ON \t"$STAT
;;
stop)
STAT="OFF\t"$STAT
;;
*)
echo "Usages: $0 {start|stop}" >&2
exit 2
;;
esac
echo -e $STAT >> $FILE
按照上面的说明操作之后,LCC的结果就会存在你定义的log文件里面了。可以定期打开查看。
4. 最后附上之前的两种方法,启用laptop mode和添加acpi脚本。
4.1. 加入acpi脚本
1) 为使用电源和电池的时候定制不同的hdparm参数。你可能需要把/dev/sda修改成你的硬盘设备。
$sudo vi 99-hdd-ugly-fix.sh
#!/bin/bash
if on_ac_power; then
# on AC so don't do any head parking
hdparm -B 254 /dev/sda # you might need 255 or a different value
else
# either on battery or power status could not be determined
# so quickly park the head to protect the disk
hdparm -B 192 /dev/sda
fi
2) 将如上脚本安装到如下4个地方
$sudo install 99-hdd-ugly-fix.sh /etc/acpi/resume.d/
$sudo install 99-hdd-ugly-fix.sh /etc/acpi/start.d/
$sudo install 99-hdd-ugly-fix.sh /etc/acpi/ac.d/
$sudo install 99-hdd-ugly-fix.sh /etc/acpi/battery.d/
这个方案比开启laptop简单且方便。因此如果你实在是不想用pm.utils的时候,推荐使用这种方法。
4.2. 启用laptop mode
Ubuntu 8.04测试有效,但是待机/休眠唤醒之后设置会丢失。laptop mode 模块在Ubuntu 8.04中是默认包含的,只是没有启用。下面是具体的设置方法。
1) /etc/default/acpi-support中修改
# 启用laptop模式
ENABLE_LAPTOP_MODE=true
# 将spin down 时间改成 (241-240)*30min = 30min
# spin down time决定硬盘闲置多久以后关闭主轴电动机以节省功耗,0表示永远不关闭
# 具体的解释看 man hdparm的-S部分
SPINDOWN_TIME=241
2) /etc/laptop-mode/laptop-mode.conf中修改
# 即便是接上电源也用laptop mode
ENABLE_LAPTOP_MODE_ON_AC=1
# 显示器关闭的时候也用laptop mode
ENABLE_LAPTOP_MODE_WHEN_LID_CLOSED=1
# 让laptop mode控制硬盘闲置多长时间才卸载
CONTROL_HD_IDLE_TIMEOUT=1
# 改成半小时
LM_AC_HD_IDLE_TIMEOUT_SECONDS=1800
LM_BATT_HD_IDLE_TIMEOUT_SECONDS=1800
NOLM_HD_IDLE_TIMEOUT_SECONDS=7200
# 让laptop mode来控制硬盘的电源管理
CONTROL_HD_POWERMGMT=1
# 192表示不关闭,从128-254都表示不关闭,越大能耗越大
# 具体可以 man hdparm 看-B
BATT_HD_POWERMGMT=192
LM_AC_HD_POWERMGMT=254
NOLM_AC_HD_POWERMGMT=254
3) /etc/acpi/power.sh中
把 "$HDPARM -B 1 /dev/$drive 2>/dev/null"
修改为 "$HDPARM -B 192 /dev/$drive 2>/dev/null"
4) 禁用pm.utils的部分功能
$ sudo chmod -x /usr/lib/pm-utils/power.d/laptop-tools
否则laptop-mode不会随机启动。
5) 重启后,cat /proc/sys/vm/laptop_mode
结果是2表示laptop-mode已经启动,是0表示还未启动,请仔细检查上面的设置是否有遗漏。
###############我是很郁闷的分割线###############
附:关于为啥要禁用pm.utils,具体的解释如下:
我从网上找到了laptop mode的解决方案之后,按照说明一步步操作,但是重新启动之后,查看cat /proc/sys/vm/laptop_mode,发现仍然是0.(是2才表示已经启动)。查看/etc/rc2.d/目录下确实有 S99laptop-mode,这说明系统确实会加载这个服务(这个目录下的文件都是个符号链接,会链接到/etc/init.d目录下的同名脚本)。后 来Google了一下发现这样的解释:
首先来说/proc/sys/vm/laptop_mode这个变量和初始化进程laptop-mode并不是一个意思。前者是个内核控制的变量,作用是将磁盘写操作聚簇,后者是一个脚本。
其次,Hardy加入了pm-utils,会覆盖或忽略一部分根据linux传统的配置。为了解决这个问题,可以修改/usr/lib/pm-utils/power.d/laptop-tools中相关的内容或者运行下述命令:
$ sudo chmod -x /usr/lib/pm-utils/power.d/laptop-tools
这条命令会禁用pm-utils的部分功能,从而修复你所遇到的问题(指laptop-mode不会随机启动)。注意得重启以后设置才会生效。
实际上pm-utils盲目地覆盖掉laptop-mode或者是/etc/sysctl.conf中的配置,所以chmod -x禁用相关脚本后, 在从AC POWER转到电池供电的时候,pm-utils就不会执行相关的脚本(laptop-tools),从而也就不会覆盖相关的设置。这种做法改动最小,如 果之后你想重新启用pm-utils的这部分功能,只需要chmod +x就可以了。
###############很郁闷的分割线又来啦###############
5. 最后是References:
日立关于Load/Unload技术的解释: Load/Unload白皮书下载
StorageView关于Load/Unload技术的解释:http://www.storagereview.com/guide2000/ref/hdd/perf/qual/featuresHead.html
西部数据的规格:http://www.wdc.com/en/library/portable/2879-001121.pdf
日立的Feature Tool下载:http://www.hitachigst.com/hdd/support/download.htm#FeatureTool
Bug报告页面: https://launchpad.net/bug59695.html
Ubuntu Wiki的Bug总结:https://wiki.ubuntu.com/DanielHahler/Bug59695
Ubuntu Dev解释:http://www.advogato.org/person/mjg59/diary/82.html
laptop mode的解决方案:https://launchpad.net/ubuntu/+source/acpi-support/+bug/59695/comments/63
acpi的解决方案:http://ubuntuforums.org/showthread.php?p=5031046
Suse的解决方案:http://en.opensuse.org/Disk_Power_Management
休眠后重新设置pm.utils的方案:https://bugs.launchpad.net/ubuntu/+source/pm-utils/+bug/235105
pm.utils的wiki:http://pm-utils.freedesktop.org/wiki/
Suse的pm.utils介绍:http://en.opensuse.org/Pm-utils
CnBeta的报道:http://www.cnbeta.com/articles/42191.htm
CnBeta的一个总结:http://www.cnbeta.com/articles/42421.htm
国内用户的一个解决方案: http://lymanrb.blogspot.com/2008/01/loadunload-bug.html
Ubuntu中文论坛的讨论: http://forum.ubuntu.org.cn/viewtopic.php?p=555500
关于laptop mode和pm.utils冲突的解释:http://ubuntuforums.org/showthread.php?t=867728
Windows下修改硬盘APM和Spin-down time的工具:http://hddscan.com/
6. 最最后
折腾这个问题费了我一整天(实际上是半天,不过那天我中午才起...),总结这些破烂方法,再加上反复试验确定某个方法是否有效,硬着头皮分析脚本 的功能,零零碎碎加起来也有一整天的时间,再加上写这篇总结,又花去一整天加上两节入学教育的时间(罪过啊罪过啊)。到此为止距离开始解决这个问题就已经 过去整整一周了。就这还没总结全,好多东西都还没有写上来。不过倒是学到了不少东西,硬盘的原理是确确实实复习了一遍了又,另外学了些写Shell脚本的 技巧以及 ACPI和pm.utils的机制。感觉系统里面同时有俩搞电源管理的东西实在是太FT了,因为会有冲突的部分,好在据说Intrepid要搞掉acpi 只用pm.utils,也许会清净一些。
无论如何总算是写完了。一边实验一边记录,一度想放弃了(实在是太费时间,感觉也没太大的意义),但一个是为了我的宝贝硬盘考虑(钱啊钱啊!),又觉得折腾了那么多不记录下来,功夫不就都白费了。正好今天有两节入学教育,于是就勇敢地抱本过去,写完最后一段哈哈哈。
贴到这里,希望会对遇到这个问题的人有所帮助。
代码: 全选
缺省配置下,用 Ubuntu 的文本编辑器(gedit)打开 GB18030/GBK/GB2312 等类型的中文编码文本文件时,将会出现乱码。
出现这种情况的原因是,gedit 使用一个编码匹配列表,只有在这个列表中的编码才会进行匹配,不在这个列表中的编码将显示为乱码。您要做的就是将 GB18030 加入这个匹配列表。
命令行方式,适用于所有 Ubuntu 用户。
复制以下命令到终端中,然后回车即可:
gconftool-2 --set --type=list --list-type=string /apps/gedit-2/preferences/encodings/auto_detected "[UTF-8,CURRENT,GB18030,BIG5-HKSCS,UTF-16]"
图形化方式,适用于 Ubuntu 用户,而不适用于 KUbuntu/XUbuntu 用户。
您可以遵循以下步骤,使您的 gedit 正确显示中文编码文件。
按下 Alt-F2,打开“运行应用程序”对话框。
在文本框中键入“gconf-editor”,并按下回车键,打开“配置编辑器”。
展开左边的树节点,找到 /apps/gedit-2/preferences/encodings 节点并单击它。
双击右边的 auto_detected 键,打开“编辑键”对话框。
单击列表右边的“添加”按钮,输入“GB18030”,单击确定按钮。
列表的最底部新增加了一个“GB18030”。单击选中它,并单击右边的 “向上” 按钮直到 “GB18030” 位于列表的顶部为止。
单击确定按钮,关闭配置编辑器。
现在,您的 gedit 应该能够顺利打开 GB18030 编码的文本文件了。
默认情况下,GNOME桌面的面版的时钟小程序只有少许的可控制选项,我们只能选择12/24制式,或者选择日期/秒针的显示。现在,这则小技巧让你完全自由的控制你的时钟显示。
首先打开终端或按Alt+F2,运行gconf-editor,定位至:/apps/panel/applets
找到你的“时钟”Applet,像我这里是applet_1,再定位到prefs。
现在,你只要以HTML语法和strftime格式,就能定义你想要的样式和效果,在custom_format处输入定义的样式,并在format处改成custom,就可立即生效。
比如,我输入:%Y %B %d %A%H: %M,并将format设定为:custom。那么效果将会如下图所示:
图示
当然我定义的比较难看,大家可以根据自己的喜好,设定出喜欢的样式。下面是strftime的格式参考:
<sup><span rise="3000" font_desc="ubuntu 14">%b%d日, %I:%M, %a</span></sup>
1.%a星期几的缩写。
2.%A星期几的全名。
3.%b月份名称的缩写。
4.%B月份名称的全名。
5.%c本地端日期时间较佳表示字符串。
6.%d用数字表示本月的第几天(范围为00至31)。
7.%H用24小时制数字表示小时数(范围为00至23)。
8.%I用12小时制数字表示小时数(范围为01至12)。
9.%j以数字表示当年度的第几天(范围为001至366)。
10.%m月份的数字(范围由1至12)。
11.%M分钟。
12.%p以‘AM’或‘PM’表示本地端时间。
13.%S秒数。
14.%U数字表示为本年度的第几周,第一个星期由第一个周日开始。
15.%W数字表示为本年度的第几周,第一个星期由第一个周一开始。
16.%w用数字表示本周的第几天( 0为周日)。
17.%x不含时间的日期表示法。
18.%X不含日期的时间表示法。
19.%y二位数字表示年份(范围由00至99)。
20.%Y完整的年份数字表示,即四位数。
21.%Z时区或名称缩写。
代码: 全选
System > Administration > Users and Groups 里改全名, 配合下面的3个gconf命令行
命令1也可用于隐藏indicator-me,例如不想使用删除命令时 (sudo apt-get remove indicator-me)
命令2 恢复默认状态
命令3 显示全名
代码:
gconftool -s /system/indicator/me/display --type int 0
gconftool -s /system/indicator/me/display --type int 1
gconftool -s /system/indicator/me/display --type int 2
代码: 全选
sudo gedit /etc/default/cpufrequtils
ENABLE="true"
GOVERNOR="conservative" 或者 powersave
MAX_SPEED=0
MIN_SPEED=0
代码: 全选
wine运行bat文件时出现的问题
如果你直接wine ***.bat,则可能会出现如下提示:
wine: Bad EXE format for ...
记住,运行*.bat要用如下命令先打开wine的虚拟控制台:
wineconsole cmd
但如果出现如下提示:
err:wineconsole:WCUSER_SetFont wrong font
err:wineconsole:WCUSER_SetFont wrong font
err:wineconsole:WINECON_Fatal Couldn't find a decent font, aborting
那么需要这样输入命令:
$ export LANG=en_EN.UTF-8
$ wineconsole cmd
这样一个虚拟的windows终端便出来了,之后的用法同windows
还有一些小问题没有解决,不过上面的问题我想会是很多人遇到的大麻烦吧,呵呵。
代码: 全选
1.在 /etc/rc.local文件中的exit 0上面中加入以下命令:
mkdir -p /dev/cgroup/cpu
mount -t cgroup cgroup /dev/cgroup/cpu -o cpu
mkdir -m 0777 /dev/cgroup/cpu/user
echo "/usr/local/sbin/cgroup_clean" > /dev/cgroup/cpu/release_agent
2.执行:sudo chmod +x /etc/rc.local
3.在~/.bashrc文件中加入以下代码:
if [ "$PS1" ] ; then
mkdir -m 0700 /dev/cgroup/cpu/user/$$
echo $$ > /dev/cgroup/cpu/user/$$/tasks
echo "1" > /dev/cgroup/cpu/user/$$/notify_on_release
fi
4.运行命令:sudo gedit /usr/local/sbin/cgroup_clean
5.粘贴代码:
#!/bin/sh
rmdir /dev/cgroup/cpu/$*
6.保存文件,执行命令:sudo chmod +x /usr/local/sbin/cgroup_clean
7.重启电脑。
代码: 全选
dbus-send --system --type=method_call --dest=org.freedesktop.NetworkManager /org/freedesktop/NetworkManager org.freedesktop.DBus.Properties.Set string:org.freedesktop.NetworkManager string:WirelessEnabled variant:boolean:false
代码: 全选
syndaemon -i 2 -d
代码: 全选
# set to yes if you want Conky to be forked in the background
background no
cpu_avg_samples 4
net_avg_samples 2
out_to_console no
# Use Xft?
use_xft yes
# Xft font when Xft is enabled
xftfont Sans:size=8
own_window_transparent no
#own_window_colour hotpink
# Text alpha when using Xft
xftalpha 0.8
# on_bottom yes
# Update interval in seconds
update_interval 1
# Create own window instead of using desktop (required in nautilus)
own_window yes
own_window_transparent yes
own_window_hints undecorated,below,skip_taskbar
own_window_type override
# Use double buffering (reduces flicker, may not work for everyone)
double_buffer yes
# Minimum size of text area
minimum_size 250 5
maximum_width 250
# Draw shades?
draw_shades no
# Draw outlines?
draw_outline no
# Draw borders around text
draw_borders no
# Stippled borders?
stippled_borders no
# border margins
border_margin 4
# border width
border_width 1
# Default colors and also border colors
default_color white
default_shade_color white
default_outline_color white
# Text alignment, other possible values are commented
#alignment top_left
#minimum_size 10 10
gap_x 15
gap_y 80
alignment top_right
#alignment bottom_left
#alignment bottom_right
# Gap between borders of screen and text
# Add spaces to keep things from moving about? This only affects certain objects.
use_spacer none
# Subtract file system buffers from used memory?
no_buffers yes
# set to yes if you want all text to be in uppercase
uppercase no
TEXT
${color white}SYSTEM $stippled_hr${color}
Hostname: $alignr$nodename
Kernel: $alignr$kernel
Uptime: $alignr${color yellow}$uptime${color}
${color white}CPU $stippled_hr${color}
Temp: ${alignr}${color yellow}${acpitemp}${color}℃
${color yellow}${freq}${color}MHz ${color yellow}${cpu cpu}${color}% ${color #666}${cpubar cpu}${color}
#CPU:1 ${cpu cpu1}% ${cpubar cpu1}
#CPU:2 ${cpu cpu2}% ${cpubar cpu2}
#CPU:3 ${cpu cpu3}% ${cpubar cpu3}
#CPU:4 ${cpu cpu4}% ${cpubar cpu4}
${color white}RAM $stippled_hr${color}
Mem ${alignr}${color yellow}$mem${color} / $memmax (${color yellow}$memperc${color}%)
${color #666}${membar 6}${color}
Swap ${alignr}${color yellow}$swap${color} / $swapmax (${color yellow}$swapperc${color}%)
${color #666}${swapbar 6}${color}
# |--WLAN0
${if_up wlan0}${voffset -13}
${color white}NETWORK (${color yellow}wlan${color}) $stippled_hr${color}
Local IP: ${alignr}${color yellow}${addr wlan0}${color}
Public IP: ${alignr}${color yellow}${execi 1800 wget -q -O - checkip.dyndns.org | sed -e 's/[^[:digit:]\|.]//g'}${color}
Down ${color yellow}${downspeed wlan0}${color} k/s ${alignr}Up ${color yellow}${upspeed wlan0}${color} k/s
Total ${color yellow}${totaldown wlan0}${color} ${alignr}Total ${color yellow}${totalup wlan0}${color}
# |--PPP0
${else}${if_up ppp0}${voffset -13}
${color white}NETWORK (${color yellow}ppp${color}) $stippled_hr${color}
Local IP: ${alignr}${color yellow}${addr ppp0}${color}
Public IP: ${alignr}${color yellow}${execi 1800 wget -q -O - checkip.dyndns.org | sed -e 's/[^[:digit:]\|.]//g'}${color}
Down ${color yellow}${downspeed ppp0}${color} k/s ${alignr}Up ${color yellow}${upspeed ppp0}${color} k/s
Total ${color yellow}${totaldown ppp0}${color} ${alignr}Total ${color yellow}${totalup ppp0}${color}
# |--ETH0
${else}${if_up eth0}${voffset -13}
${color white}NETWORK (${color yellow}eth${color}) $stippled_hr${color}
Local IP: ${alignr}${color yellow}${addr eth0}${color}
Public IP: ${alignr}${color yellow}${execi 1800 wget -q -O - checkip.dyndns.org | sed -e 's/[^[:digit:]\|.]//g'}${color}
Down ${color yellow}${downspeed eth0}${color} k/s ${alignr}Up ${color yellow}${upspeed eth0}${color} k/s
Total ${color yellow}${totaldown eth0}${color} ${alignr}Total ${color yellow}${totalup eth0}${color}
${endif}${endif}${endif}
Still a long way to go...
代码: 全选
最近,我想把GNOME上面的面板设置成透明,可是总是一块白一块黑的,很丑。结果,只好维持原状,很无奈。最近看到一篇文章,介绍如何“使GNOME面板完全透明”。特此将该方法记录,以供大家参考。
1,如果你使用的主题是Ubuntu自带的比如Ambiance等主题,必须将该主题从/usr/share/themes 拷贝到主目录.themes文件夹下。
可以使用命令:
cp -R /usr/share/themes/theme_name ~/.themes
提示:要将命令中的theme_name 换成你使用的主题名字才可以!!
其他的主题就可以直接跳到第2步了。
2,打开主目录下的.themes文件夹(隐藏文件,可使用Ctrl+H显示隐藏文件)
在该目录下,找到你刚才复制的主题文件夹,进入gtk-2.0文件夹。你可能发现名为“panel.rc”的文件—这就是面板配置文件。如果有该文件,可以将其重命名为“panel.rc.bak”。若没有该文件,别急!在主题文件夹下找到“gtkrc”文件。
打开gtkrc文件,找到一行 include “apps/gnome-panel.rc” ,在该行前面添加 #
然后保存退出即可。换成另一主题,再切换回到该主题,怎么样,透明了吧。哈哈。
代码: 全选
2,打开主目录下的.themes文件夹(隐藏文件,可使用Ctrl+H显示隐藏文件)
在该目录下,找到你刚才复制的主题文件夹,进入gtk-2.0文件夹,再进入apps文件夹。你可能发现名为“gnome-panel.rc”的文件—这就是面板配置文件。
打开gnome-panel.rc文件,找到前面的一段
style "panel" = "dark"
{
xthickness = 0
ythickness = 0
bg_pixmap[NORMAL] = "img/panel.png"
bg[NORMAL] = "#4b4a46"
engine "murrine" {
contrast = 1.0
textstyle = 2
text_shade = 0.35
}
}
改为
style "panel" = "dark"
{
xthickness = 0
ythickness = 0
/*bg_pixmap[NORMAL] = "img/panel.png"
bg[NORMAL] = "#4b4a46"*/
engine "murrine" {
contrast = 1.0
textstyle = 2
text_shade = 0.35
}
}
即是把定义背景图片,和颜色的句子
bg_pixmap[NORMAL] = "img/panel.png"
bg[NORMAL] = "#4b4a46"
用符号/* */屏蔽掉
然后保存退出即可。换成另一主题,再切换回到该主题。