2008年12月22日星期一

小思的第一次受伤

原本卖了个关子,今天在思令部论坛上写出来了,顺便也贴到这里。
我的第一次还是比较独特的。当时把车停在了小区草坪上(我们小区 只能停草坪或路边)。我和女儿从楼上下来,女儿比较着急,要了车钥匙就先下来了。我给她车钥匙是让她开车门的。她开了车门还不过瘾,还要开天窗。于是就把 钥匙插到了那里。天窗还是不开。她可不知什么I、II、III档,把钥匙拧到了最深处。我因为听人说,停车后挂上档可以防盗,那会停车时挂了一档。于是车 就缓慢但却勇敢而坚毅地向树冲去。此时我已经下了楼了。我就这样无助地看着小思离我而去。再后来,车撞上了树,女儿把钥匙拧了回来,火灭了。我也不知道这 三者发生的先后顺序。
再后来,带女儿一起去4S店。从后备箱里拿出了没拆封的本田自行车,装配、打气、开始了我们的炮换鸟枪之旅。

2008年9月15日星期一

emerge nautilus-dropbox-0.4.1

现在官方portage里还没有,我是在bugs.gentoo.org上找的ebuild. dropbox是我发现的唯一一款支持linux客户端的在线存儲网站了。dropbox 的Linux客户端是集成到nautilus中的。
有以下特点:
設置极简单,注冊一个帐户,设上本地目录就可以了。
上传速度很快,满速运行。
另外它也支持 windows 和 mac 平台。
有2G的免費空间。

2008年9月13日星期六

送礼记

我和老婆的教练

我和我的教练


女儿作为老婆的代表



今天到JDF驾校去给老婆拿驾驶证,并拿上两盒月饼准备送给我的教练和老婆的教练。本来想做一面锦旗,但实在没时间了。打了几份带上。内容如下:
顾前顾后顾左右
志长指短志不休
强踩刹车莫撞头
沈着拐弯不给油
广纳四海学车客
军旗猎猎马池口
牛人皮卡起伏路
强师慧徒忘年友
用了约一个半小时走了部分冤枉路之后,到了驾校,拿了老婆的驾驶证之后,就开始了我漫长的送礼之路,先是找培训部主任老X,我说我已经毕业了,不算学员了,想给教练送月饼。他说那也不行。我说那我只好找你们校长了。他说他没有校长手机号,于是我又把报名处、办公室、财务去问。都说不行,最后终于把校长抓到了,送礼成功,并照了几张合影。

又让二位老师欣賞了一下我的红思域。当时我驕傲地说,到目前为止还没有剐蹭。(不幸的是下午就破记录了)
想起个故事,某管理专家在机场想转签前一班飞机。前一班飞机也有座位,办事人员就是不给转。他说如果是航空公司的老总来处理这件事的话,肯定会给转的。



红思域入手



买了有些时日了,现在回忆一下,

8月30日
欲买未果,因孩子的四姨强烈反对买红车和买思域。

8月31日
拿到驾照,技愈痒。

9月1日
办牡丹交通卡,痒益甚。

9月6日
付钱挑车。仍决定力排众议买红思域。因我们一家三口的意见是統一的。最后没把车开回来,空落落的。
附男人开红车的理由:
红男绿女
红属阳
拉力红富有活力,运动感强
如果你不喜欢红思域,那说明你老了

9月7日
正好老婆要用身份证,决定提车,自己去办手续。据说像我这样从驾校出来就去提自己新车的人凤毛麟角。

9月8日
牡丹卡寄到。

9月9日
上牌儿。还是让4S店给上,但车是孩子她四姨开的,前边是4S店的后,后面是我的车,一路上风驰电掣。手续一切顺利,还上了个比较吉利的号。临时决定去老丈人、丈母娘的墓地去。最后我开了一部分。

9月10日~12日
开车上下班,抽空练车。
12日有某4S店销售给我打电话,车价又降3k矣。

9月13日
第一次走高速,为十一回老家增强了信心。
第一次撞,撞树上了。这次撞纯属阴沟翻船。具体原因我就不说了。开到4S店去修,1800元。把原来附赠的一直没启用的折叠车从后备箱拿出来,这回炮换鸟枪了。要周一才能去取车了。



2008年8月28日星期四

俺成为准司机了--兼谈学车攻略

8月27日顺利通过实际路考试,光荣地成为一名准司机,只待周二拿本儿。
我是5月底在驾校报的名,基本上用了三周月完成艰巨的学车任务。拿出一些经验来与大家分享。
学车之报名
报名时面临多种选择:驾校、车型、快慢班。
这次我是和老婆一起报的名,选的是一个名气不太大的学校,名字不提了,有感兴趣的可以给我发邮件。后来听说这家驾校是北京唯二能增驾大客的驾校。当时我们没有太费斟酌。基本还算满意。
车型我们选的是皮卡,当时也没有太多考虑,好象是因为捷达没有快班。事后证明除了没空调多数时间不开、方向盘比较费劲外,其他差不多。
我们选的是周末快班,这也是上班族的首选。慢班约车困难,周期很长,不建议学慢班。
另外多人报名的话,可一人先报,其他后报,占教练的拉人名额,会有些额外的照顾。也可以跟我联系,我也给我们师傅拉几个学员。
学车之食堂
食色性也,先说说吃。此驾校的食堂给学员准备的是十元的份饭,材料还行,厨艺太差。我有时在小卖部买方便面吃换换口味。教练们的饭菜是免费的,但质量明显不如学员的收费饭菜,也许这是人们觉得免费软件比收费软件质量差的原始诱因。
原来教练早餐免费供油饼,有教练扔了三个油饼,结果全体不给了。还是有人不明白"权力的滥用就意味着权力的丧失"这个道理呀。
学车之班车
当初选这个驾校的一点原因就是有直达的班车,后来居然把回来的班车取消了,所以回来得倒公交车。去的班车实在是太没谱儿了,我有5次没赶上(全都不是我的原因),一次是改时间未通知,两次车坏,两次是司机走错了路线。一开始还傻等,后来一不来就打车到关键路线截别的班车。
学车之师傅
学车赶上个好师傅是你上辈子修来的福气。教练的教学水平和方法是三六九等,另外还有太多的猫溺。我是有这种福气的人。我的师傅是个明白这些花招却不使的好人,德艺双馨。我学完车跟师傅的关系应该说已经亦师亦友。
中间有一天,我们的师傅有事儿,临时有个师傅替补,这个师傅脾气也很好,跟我们师傅的教法不一样,互相补充也学到不少东西。总体感觉我们师傅是针对考试教的,替补师傅是针对真正开车教的。比如坡起,我们师傅教的是先轰油门,后松离合到半联动,替补师傅教的是先松离合到半联动,再轰油门。我感觉是后者比较合理,但是新手容易熄火儿。后来我还真听说这位替补师傅的徒弟因为坡起熄火折了。
学车之徒弟们
我们这个车上一共有四个人,我是老大,还有一个师弟两个师妹。我们来自五湖四海,为了一个共同的学车目标,走到一起来啦!在这段共处的日子里,我们互谅互让,互相提醒,好象一个大家庭一样。老二学得很快,比我们早很多就去考试了,且顺利通过,老三开得也很好,人也稳重,也顺利通过。老四非常热情,不过和我一样,场内路补考了一次,按师傅的说法,"你们俩都是栽到那个胖子手里了,那孙子下着小雨都下来看。"(我们师傅是不是挺护犊子的?)不过老四也算是福将了,她本来是我们最担心的一个。
学车之法培
我们的法培老师是个"纲丝",讲起这么枯燥的课来跟说相声似的。学到不少有用的知识。我法培考了97。让考99的老婆气坏了,这家伙一刻不停地背,只比我多了2分。
学车之穿桩

穿桩在这些考试项目是最先考也是最难的,但毕竟桩是死的,人是活的。压稳离合,记住点位,适当调整就没问题了。我的特点是做一回一个样儿,不过也因此学到很多变通的道理,我们的师傅一般是不出错就不告诉你的。到考试前的一次练习,我还撞了一次前杆,又学到一点东西。我对穿桩还是比较有信心的。一次就通过 。
学车之场内路
这次学车最遗憾之处就是场内路了,平时练得好好的,第一次考居然折了。"折了"是驾校的流行语,意指考试通不过。折到定点停车上了,当时我是快停到位时,突然想起忘掰灯了,然后赶快掰灯,这时就看角上的点己经跟点位对上了,赶快踩刹车,没顾上看保险杠,结果这车和我们平时练的车点位不一样,没停到位,折了。补考应该是拿了满分,完美无缺。
补考时有一位也是补考的,到坡起的时候居然说太紧张,腿软了,开不了了。举手投降了。最后这车还是她开回来的。这么折就太不值了。虽然我当时也很紧张,但我还要嘱咐列列位看官遇到这种情况不要紧张,硬着头皮上。
学车之实际路
实际路考试是最容易的,但也会折20%,而且听说有人4次才过,这个人很顽强地一直不看反光镜。我们这拨考试的25人中也有至少5人折了。多是折在看反光镜或掰灯上。我最后80分通过,可能是忘了回灯了。
学车之恶补
快班的主要目的是通过考试,所以学得不全面也不透澈,我在网上找了些视频来看,还是很有帮助的,虽然通过考试了,但我以后还会看的。
学车之笑料
我们考场内路的时候,学员要轰一下油门,说一句"报告,各项仪表检查正常,请求起步。" ,然后考官说"可以起步"。有个学员给说成了"请求起飞"了,考官也就说:"同意起飞!"。还有一个说成了"请求上路",考官说:"我送你一程。"

2008年8月12日星期二

subversion 中在 svn status中忽略多类文件

svn status要冒出很多没用的临时文件来,比较烦人。
一开始用
svn propset svn:ignore "*.cash *.pyc" .
这类的命令老是不行。后来找到了方法,备忘如下:
vi .svnignore
每种要忽略的文件加一行,如:
*.pyc
*.cash
然后
svn propset svn:ignore -F .svnignore .
svn status
清净了。

2008年7月10日星期四

狗猛酒酸①

(别说我是转贴啊,我从来都是原创的。)
宋人有酤酒者②,升概既平③,遇客甚谨,为酒甚美,县帜甚高④,著然不售⑤,酒酸,怪其故,问其所知。问长者杨倩,倩曰:"汝狗猛耶。"曰:"狗猛则酒何故而不售?"曰:"人畏焉。或令孺子怀钱挈壶瓮而往酤⑥,而狗迓而龁之⑦,此酒所以酸而不售也。"
【注释】
①选自《韩非子•外储说右上》。②宋人,招聘的老板。酤:读gū姑。卖酒。招聘。酒:工资。③客:人才。升概:这里指量酒的器具。职位。④县:同"悬"。帜:招牌幌子。⑤著:同"贮"。积久。⑥或:有的人。酤:买酒。从事工作。迓:迎 。⑦龁:读hé合。咬。

2008年7月8日星期二

要用gentoo的稳定版还是非稳定版

以下在我在linuxsir的一篇回贴:
~还是会有些问题的。当然多数都很容易解决。
我现在用稳定版。然后个别需要的软件加keywords或unmask,有的用overlay,还有的要在bug.gentoo.org或其他地方找。虽然有时也会有问题,但要好很多。
我还是推荐用稳定版。因为我办公机器也用gentoo,有时遇到在5分钟之内解决不了的问题会很惨的。家里的机器老婆也用,她老抱怨,经常这个不能用了,那个不能用了,linux在她心目中可能一点都不稳定。所以我连家里也用稳定版。in
fact, 稳定版与~区别不大,求新其实是一种强迫症。我也有,在努力克服。
选择其实依据两个因素:
一个是你是不是认为值得花时间去折腾,每个人情况不一样。
另一个是你对解决问题的时间的能否容忍。这主要取决于使用场合。
另外,不同软件的~标准似乎也不同,有的比较谦虚,有的比较自大。这就只能凭经验了。

2008年6月10日星期二

路在何方

我知道你在等我,
我后悔进这个迷宫了,
耽误了你也耽误了我,
有能力也发挥不出来,
得循着别人给我指的方向走,
各种各样的桎梏限制着我。
曲折的围栏,高大的墙。
我在里面转来转去,
偶尔会有不努力也前进的机会,
但别想超越前人,
也和大家一样,
挤在快行道上,
卑鄙地挡住后来者,
大家都在这里论资排辈儿,
挤着,被挤着,
甚至无法呼吸。
流着香汗的美女,
淌着臭油的丑男,
我们在这里怀着各种各样的梦想,
提防着三只手,
盼望着离开的机会。
盼望着离开这乞丐也无法生存的地方。
制服的呵斥下,
信心如何凝聚,
深深的隧道里,
作何飞天之想?
路在何方呀,
只能走西直门地铁吗?
听老婆的,
自己买车吧。

(改编自在西直门地铁换车时给在阜成门等我的老婆发的短信。)

2008年5月15日星期四

地震了,总该写点什么

我是唐山人,是那次地震的漏网之鱼。虽然最近运交华盖,但总比唐山地震和汶川地震中被砸死的人的运气不知要好上多少。真想为他们做点什么,但不知该怎么做。关键是不知道该相信谁,最方便的是通过发短信捐款了,可是中国移动居然还收短信费。也就是说你每捐一元钱,中国移动至少也要收一毛,当然中国移动承诺会把这一毛也捐了。真是……太无耻了。暂且不说原来的定价是否合理。每发一条短信,中国移动的边际成本约等于零,还好意思出来收钱。人家邮局的汇费都免了。中国移动居然要收10%。总以为贪婪的人也会有良心发现的时候,可这一天何时才能来到?
笔者更倾向于相信非法募捐的牛博网
列位看官可自行判断,因为募捐中的猫溺太多了。比如你可以用同样的名字,比如"无名氏",同样的数额捐多次,看看最后公布出几个来。
实际上灾区现在最不缺的就是钱了。
谁有更可行的帮助方式可留言。俺不相信祈祷能管什么用。

2008年5月9日星期五

after emerge -C mktemp

<bigmonk> I emerge -C mktemp, and emerge world -uND then my wife
poweroff my computer.
<reisio> bigmonk: nice :)
<altaran> bigmonk, u need help with death body?
<altaran> :)
<chithead> bigmonk: boot from livecd, chroot into your install and
emerge coreutils
<mki> bigmonk, boot with init=/bin/bash, mount -o remount,rw / && ln
-s busybox /bin/mktemp, reboot
<bigmonk> thank u , let me try
<bigmonk> mki, ur method is so easy, I have succeed. thank u.
<mki> bigmonk, np.. busybox ftw!
<bigmonk> chithead, thank u . mki's method is better.

2008年4月25日星期五

谷歌财经,又一个阉割版

昐望已久的google finance
中文版终于出现,但遗憾的是,唉,又是一个阉割版。没有Portfolios,它又有什么用呢,他与普通的财经网站又有什么两样呢?仅仅做些翻译工作都比这强呀。
真不知道google中国的免费大餐究竟养着些什么人。开复也不过如此。

2008年4月13日星期日

家长寄语

山外青山人外人
人为上人勤上勤
严父慈母慧师生
化良为优更慰心

2008年4月7日星期一

7 habits for effective text editing

This morning I watched the lecture of Bram Moolenaar, the creator of
VIM. Its title is "7 Habits For Effective Text Editing". I can
understand a little of it. But I learned a method of auto completion.
I can use "CTRL-N" for it. Vim is a treasury. You can pick a tool and
use it easily. There is the movie at youtube too. See below.

2008年3月27日星期四

中文docbook转换成PDF终于实现

终于搞定了~~~
  • 首先安装fop
# autounmask dev-java/fop-0.94-r1
据说fop对中文的断行支持得比0.93好。另外"zh_cn"也可以正确处理了。
# emerge fop -av
  • 然后生成字体描述文件
# java -cp /usr/share/fop/lib/fop.jar:/usr/share/avalon-framework-4.2/lib/avalon-framework.jar:/usr/share/commons-logging/lib/commons-logging.jar:/usr/share/commons-io-1/lib/commons-io.jar org.apache.fop.fonts.apps.TTFReader /usr/share/fonts/fireflysung/fireflysung.ttf fireflysung.xml
TTF Reader for Apache FOP 0.94

Parsing font...
Reading /usr/share/fonts/fireflysung/fireflysung.ttf...
Font Family: AR PL New Sung
Creating xml font file...
Creating CID encoded metrics...
Writing xml font file fireflysung.xml...
This font contains no embedding license restrictions.

XML font metrics file successfully created.

# java -cp /usr/share/fop/lib/fop.jar:/usr/share/avalon-framework
-4.2/lib/avalon-framework.jar:/usr/share/commons-logging/lib/commons-logging.jar:/usr/share/commons-io-1/lib/commons-io.jar org.apache.fop.fonts.apps.TTFReader -ttcname "SimSun" /usr/share/fonts/winfonts/simsun.ttf simsun.xml
TTF Reader for Apache FOP 0.94

Parsing font...
Reading /usr/share/fonts/winfonts/simsun.ttf...
This is a TrueType collection file with 2 fonts
Containing the following fonts:
SimSun <-- selected
NSimSun
Font Family: SimSun
Creating xml font file...
Creating CID encoded metrics...
Writing xml font file simsun.xml...
This font contains no embedding license restrictions.

XML font metrics file successfully created.
# mkdir /etc/fop
# mv *.xml /etc/fop
  • 建立FOP配置文件
# cp /usr/share/doc/fop-0.94-r1/examples/conf/fop.xconf /etc/fop
# cd /etc/fop

建立zhfop.conf的内容如下:

<?xml version="1.0"?>
<fop version="1.0">
<base>.</base>
<renderers>
<renderer mime="application/pdf">
<filterList>
<value>flate</value>
</filterList>
<fonts>
<font metrics-url="/etc/fop/simsun.xml" kerning="yes"
embed-url="/usr/share/fonts/winfonts/simsun.ttf">
<font-triplet name="SimSun" style="normal" weight="normal"/>
<font-triplet name="SimSun" style="normal" weight="bold"/>
<font-triplet name="SimSun" style="italic" weight="normal"/>
<font-triplet name="SimSun" style="italic" weight="bold"/>
</font>
</fonts>
</renderer>
</renderers>
</fop>
  • 创建xsl文件
# cat /usr/share/sgml/docbook/xsl-stylesheets/fo/docbookzhcn.xsl
<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
exclude-result-prefixes="doc"
version="1.0">
<xsl:import href="docbook.xsl"/>
<xsl:param name="body.font.family">SimSun</xsl:param>
<xsl:param name="body.font.size">12</xsl:param>
<xsl:param name="monospace.font.family">SimSun</xsl:param>
<xsl:param name="title.font.family">SimSun</xsl:param>
<xsl:param name="page.margin.inner">2cm</xsl:param>
<xsl:param name="page.margin.outer">2cm</xsl:param>
<xsl:param name="hyphenate">false</xsl:param>
<xsl:param name="paper.type" select="'A4'"/>
<xsl:param name="draft.mode" select="'no'"/>
</xsl:stylesheet>

  • 用xsltproc来生成HTML或者XSL-FO文件

譬如,下面是根据Docbook文档生成HTML的例子:
$ xsltproc --output myfile.html /usr/share/sgml/docbook/xsl-stylesheets/html/docbook.xsl myfile.xml

或者根据docbook文档生成XSL-FO文档的例子:
$ xsltproc --output myfile.fo /usr/share/sgml/docbook/xsl-stylesheets/fo/docbook.xsl myfile.xml

  • 用fop生成PDF文档
$ fop -c /etc/fop/zhfop.conf -xsl /usr/share/sgml/docbook/xsl-stylesheets/fo/docbookzhcn.xsl -xml myfile.xml -pdf myfile.pdf

2008年3月2日星期日

Gentoo Linux nVidia指南(译)

最近翻译的一篇gentoo文档,响应乐伯特的号召贴出来。

可到下面这个链接去找全部gentoo简体中文文档:
http://www.gentoo-cn.org/trads/
如果想入伙,到下面这个链接看一看:
http://www.gentoo-cn.org/trads/#doc_chap4

Gentoo Linux nVidia指南

Sven Vermeulen 作者
Joshua Saddler 作者
M Curtis Napier 编辑
Chris Gianelloni 编辑
刘清 译者

更新于2007年 11月 15日

1. 简介

portage树中的nVidia驱动由nVidia发布,构建于Linux内核之上。驱动中包括一个担负与卡对话的艰巨任务的二进制部分。驱动包括两部 分,内核模块和X11驱动。两部分包括在一个单独的包中。因为nVidia给它们的驱动打包的方式,你需要在安装驱动前进行一些选择。

nvidia-drivers 包包括来自nVidia的最新驱动,支持所有nVidia的显卡。根据卡的新旧不同,有几个版本。它使用eclass检测你正在使用的是哪种卡,然后安装适合的版本。

2. 驱动兼容性

哪个版本?

nvidia-drivers包支持所有可用的nVidia卡。根据你使用的卡,有多个相应版本。

较新的卡(如GeForce 8, 7, 6和FX 5系列)应该使用100.x系列的较新的驱动。

较老的卡(如GeForce 3或GeForce 4系列)需要96.x驱动。对于这些卡,你应该在/etc/portage/package.mask中屏蔽掉>=x11-drivers/nvidia-drivers-97.00。这样将阻止安装你的显卡不兼容的新版驱动。

老的基于NV2x的显卡(如:TNT、TNT2、Geforce和GeForce 2)需要更老的71.x驱动(例如nvidia-drivers-71.86.01)。对于这类卡,你应该在/etc/portage/package.mask中屏蔽掉>=x11-drivers/nvidia-drivers-87.00

你可以在发布说明通过读相应的x86或x86-64的README来检查你的显卡与哪个驱动兼容。

3. 配置显卡

内核配置

正如刚才提到的,nVidia内核驱动在你当前内核上运行。它做成了一个模块,所以你的内核必须支持内核模块的加载才行。如果你是用genkernel all配置的内核,那就是可以的。如果不是,请再检查一下你的内核配置,保证这项支持被打开。

代码 3.1: 打开内核模块加载的支持

Loadable module support --->
[*] Enable loadable module support

你还要在内核中打开Memory Type Range Register

代码 3.2: 打开MTRR

Processor and Features --->
[*] MTRR (Memory Type Range Register) support

另外,如果你装的是AGP显卡,你可以选择打开内核里的agpgart支持,直接编到内核里或者编成模块。如果你不使用内核中的agpgart支持,驱动将使用它们自己的agpgart实现,这个实现叫做NvAGP。在某些系统中,它的表现要强于内核中的agpgart。在另外一些系统中,它的表现要弱于内核中的agpgart。你需要自己评估在你自己的系统中哪个更好以得到最佳性能。如果你搞不清楚该怎么做,那就使用内核中的agpgart吧。

代码 3.3: 打开agpgart支持

Device Drivers --->
Character devices --->
<*> /dev/agpgart (AGP Support)

注意: 在amd64平台,IOMMU控制着agpgart的设置。

平台相关注释

重要: 对于x86和AMD64的处理器,内核中的驱动与nvidia提供的二进制驱动冲突。如果你为这些CPU编译内核,你必须按照下面的方法完全去掉内核中的驱动。

代码 3.4: 去掉内核中的驱动

Device Drivers --->
Graphics Support --->
< > nVidia Framebuffer Support
< > nVidia Riva support

一个不错的framebuffer替代物── VESA

代码 3.5: 打开VESA支持

Device Drivers --->
Graphics Support --->
<*> VESA VGA graphics support

然后,在"VESA driver type"中选中vesafbvesafb-tng。如果你用的是AMD64的处理器,你应该选择vesafb而不是vesafb-tng

代码 3.6: 选择framebuffer类型

(X) vesafb
( ) vesafb-tng

要了解更多的信息,如果在用vesafb可以读/usr/src/linux/Documentation/fb/vesafb.txt,否则就到/usr/src/linux/Documentation/fb/下找你使用的framebuffer的相应文档。

继续进行内核配置

nvidia-drivers的ebuild按/usr/src/linux符号链接自动检测你的内核版本。请确认你正确配置了你的内核而且这个符号链接指向了正确的内核源码。参阅安装手册中的"配置内核"一节。

首先,你需要emerge eselect(如果你没装它的话)。如果你在使用gentoo-sources-2.6.18-r4,你的内核列表看起来象下面一样:

代码 3.7: 检查你的/usr/src/linux符号链接

# eselect kernel list
Available kernel symlink targets:
[1] linux-2.6.18-gentoo-r4 *
[2] linux-2.6.20-gentoo-r7
[3] linux-2.6.20-gentoo-r8

(确认正确的内核被标了星号

在上面的输出中,你会注意到linux-2.6.18-gentoo-r4内核标记了星号(*),这表示它是符号链接指向的内核。

如果符号链接没有指向正确的内核源码,你必须象前面的例子那样选择想要的内核源码。

代码 3.8: 建立或更新/usr/src/linux符号链接。

(选择正确的内核)
# eselect kernel set 1

安装适宜的驱动

然后就要安装驱动了。

代码 3.9: 安装nVidia驱动

# emerge nvidia-drivers

注意: 安装驱动时可以加上gtk用户标识。加上后将会安装media-video/nvidia-settings。这是一个方便的用来查看和配置nVidia显卡各个方面的图形化工具。

重要: 每次你编译新内核或重新编译当前内核,你需要运行emerge nvidia-drivers重新安装nVidia模块。一个更容易的保持由ebuild安装的模块可用的方式是安装sys-kernel/module-rebuild。一旦你已经安装了它,简单地运行module-rebuild populate以把一个需要重新编译的包列表populate到数据库中。仅仅运行module-rebuild rebuild来为你的新内核重建驱动就行了。

安装完成后,运行modprobe nvidia把内核模块载入内存。如果是在升级的情况下,你应该把先前的模块移出内存。

代码 3.10: 载入内核模块

# lsmod | grep nvidia && rmmod nvidia
# modprobe nvidia

为避免不得不每次启动都手动地加载模块,你可能想要在启动系统时自动地加载,那就编辑/etc/modules.autoload.d/kernel-2.6,把nvidia加进去。不要忘了过后儿运行update-modules

重要: 如果你把agpgart编成模块,你需要把它加入/etc/modules.autoload.d/kernel-2.6

代码 3.11: 运行update-modules

# update-modules

配置X服务

一旦安装完合适的驱动,需要用nvidia驱动而不是默认的nv驱动来配置X服务。

用你喜欢的编辑器(如nanovim)打开/etc/X11/xorg.conf,到Device一节,把Driver一行改成如下:

代码 3.12: 在X服务配置中把nv改成nvidia

Section "Device"
Identifier "nVidia Inc. GeForce2"
Driver "nvidia""
VideoRam 65536
EndSection

然后到Module一节,确认glx模块加载,同时dri模块没加载:

代码 3.13: 更新Module一节

Section "Module"
(……)
# Load "dri"
Load "glx"

(……)
EndSection

下一步,在Screen一节,确保DefaultDepth指令被设为16或24,或者你只有 Depth设为16或24的Display小节。如果不这样做,nVidia的GLX扩展将无法启动。

代码 3.14: 更新Screen section

Section "Screen"
(……)
DefaultDepth 16
Subsection "Display"
(……)
EndSection

运行eselect,让X服务使用nVidia的GLX库:

代码 3.15: 运行eselect

# eselect opengl set nvidia

把你的用户加入video组

你必须把你的用户加入video组,他才会有访问nVidia设备文件的权限:

代码 3.16: 把你的用户加入video组

# gpasswd -a youruser video

如果你不使用udev,这个步骤不一定需要,但也不会有坏处,还能使你的系统适应将来的需要。

测试显卡

要测试你的nVidia显卡,就启动X,运行glxinfo,它是mesa-progs包的一部分。应该出现"direct rendering is activated"这类结果:

代码 3.17: 检查直接渲染状态

$ glxinfo | grep direct
direct rendering: Yes

如果要测试你的FPS,就运行glxgears命令。

打开nvidia支持

有些工具,如mplayerxine-lib,使用一个叫做xvmc的本地USE标识来打开XvMCNVIDIA支持。这个支持在看高清电影时很有用。在/etc/make.conf中的USE变量中加入xvmc或者在/etc/portage/package.use中为media-video/mplayer和/或media-libs/xine-lib加入这个USE标识。

也有一些程序使用nvidiaUSE标识,所以你可能需要把它加入/etc/make.conf

然后,运行emerge -uD --newuse world以重新编译这些获益于上述USE标识改变的应用程序。

使用NVidia配置工具

nVidia也为你提供了一个设置工具。这个工具使你能够查看并且不必重启X服务器就改变图形设置。这个工具在portage树的media-video/nvidia-settings包里。如前所述,如果你安装驱动时在/etc/make.conf/etc/portage/package.use中加入了gtkUSE标识,这个包将自动安装。

4. 故障排除

在拥有4Gb或以上的内存的机器上搞定2D

如果你在nVidia的2D加速方面有什么问题。那可能是你不能用MTRR建立混合写入区。要确认这个,请检查/proc/mtrr的内容:

代码 4.1: 检查你是否打开了混合写入

# cat /proc/mtrr

每行都应有"write-back"或"write-combining"。如果你看到有一行有"uncachable",你需要更改BIOS设置来修正它。

重启并进入BIOS,找到MTRR设置(可能会在"CPU Settings"下面)。把该项设置由"continuous"改为"discrete",再引导回Linux。你将发现没有带"uncachable"的行了。2D加速没有任何毛病了。

当我试图加载内核模块时,出现"no such device"。

这个错误通常出现在你没有匹配的显卡时。确认你有装了nVidia的显卡。你可以运行lspci再看一次。

如果你确信你有nVidia显卡,检查你的BIOS看一下Assign IRQ to VGA是否设置了。

5. 专家级配置

文档

nVidia驱动包还包含了包罗万象的文档。这些文档安装在/usr/share/doc,能够用以下命令查看:

代码 5.1: 查看NVIDIA文档

$ less /usr/share/doc/nvidia-drivers-*/README.gz

内核模块参数

nvidia内核模块能接受一些参数。你可以用这些参数调整驱动的行为。这些参数中的大部分都在文档中提到了。你可以通过编辑/etc/modules.d/nvidia来增加或改变这些参数的值。在改变这个文件后记住要运行update-modules,一定要牢记你所做的新设置只有在nvidia模块重新加载后才会生效。

代码 5.2: 调整nvidia驱动参数

(用你喜欢的编辑器编辑/etc/modules.d/nvidia)
# nano -w /etc/modules.d/nvidia
(更新模块信息)
# update-modules
(卸载nvidia模块……)
# modprobe -r nvidia
(……然后再次加载)
# modprobe nvidia

X的高级配置

GLX这个层次也还有相当多的参数可以设置。这些参数控制电视输出、双显、显示器刷新率检测等等的配置。同样,所有这些可用的参数的细节可以在文档中找到。

如果你想要使用这些参数,你需要把它们填入X配置文件(通常是/etc/X11/xorg.conf)的相关设备节。举例如下,假如我想要不显示飞溅屏幕:

代码 5.3: X配置中的nvidia高级配置

Section "Device"
Identifier "nVidia Inc. GeForce2"
Driver "nvidia"
Option "NoLogo" "true"
VideoRam 65536
EndSection

2008年2月17日星期日

linux下的休眠

简述休眠配置过程如下:
在内核中打开Hibernation,把Default resume partition设为你的swap分区。(不设也行,还有grub中的参数)
在grub中的内核参数中加上resume=/dev/swappartition(你的swap分区)
# emerge hibernate-script -av
# rc-update add hibernate-cleanup boot
把/etc/hibernate/blacklisted-modules中的nvidia注释掉
如需重启服务,在/etc/hibernate/common.conf加上这句
RestartServices ntp-client net.eth2 net.ppp0
(在我这里ppp0没问题了,但eth2重启也没用,还是不通。哪位看官有高见可留言。)
简单地用,这样配置就可以了。
用hibernate休眠
用hibernate-ram待机
也可使用gnome-power-manager
# emerge gnome-power-manager -av
但不知为什么,一台机器上可以,一台机器上不行。
错误如下:
$ gnome-power-cmd.sh hibernate
Hibernating
Error org.freedesktop.DBus.GLib.UnmappedError.GpmControlError.Code0: 根据 DBUS 安全规则,不会发送消息

2008年2月15日星期五

历年贺岁短信汇总

最近几年都是用类似藏头诗词给亲友发贺岁短信。收录如下。顺祝各位看官新春快乐。

今年的不是藏头,是藏尾巴根:

《自嘲》代贺岁

心还在刘浪
人依然清狂
要去向何方
收获这玉望

(阉割了思想)
(不需要壮阳)
(朦胧中惊梦)
(回忆时喜洋)
这段被老婆认为不雅,只好用下面这段替了。

失意时思乡
得志无壮况
鞭炮声惊梦
听万户喜洋

自嘲代贺岁
岁乐复岁伤

去年(2007)年的:
采桑子*贺岁
刘年华盖匆匆过
清雅无浊
何处堪托?
玉宇倾颓亦自得
思忧无益哈哈乐
壮志凌波
惊爆竹破
喜降今夕恼忘昨

前年(2006)的:
刘不住
清风朗月
何处寻
玉液琼浆
思念情
壮怀激烈
惊回首
喜舞霓裳
贺四方
岁岁吉祥

2005年的:
刘水落花又一年
清山不改人岁添
何期觅得佳友聚
玉门关外春风还
恭迎十里长亭外
贺发渐入迷离眼
新桃旧符互换时
禧上眉梢俱欢颜

2008年2月4日星期一

一夕三梦

寅时睡,辰时起,竟毕三梦。
梦一
呼朋引伴若干,探险亦旅游。吾与一人前行,至一山谷内,忽现水晶矿,大片水晶,煞是好看,友采之,山摇摇欲崩,急唤友退,吾亦退。然山崩石下,人慢石快,友惨然没于石下,吾亦被夹石缝中,胸下尽被埋。大呼同伴至,且挣且扎。同伴亦拉吾。终出。无伤也。众寻友无计,嗟叹而已。
梦二
吾为一抗倭分子,于某大剧场内行刺某要员,枪声大作,事未成。余退守至剧场边一小屋内。倭人搜至,竟视而不见。然大呼小叫,嘈杂之声不绝于耳。俄尔,倭人之上司至,此人又百般遮掩,遂去。然被围,终不得脱,亦不知此倭之为何。移时,此倭复至。尽陈缘由,盖反战人士也。嘱吾等在此安顿,暂勿逃也。以后饮食皆赖其供给。不忆后事如何。
梦三
吾与妻女至某地游,居于友之友家。三家连榻而卧。无睡意,邀妻起,游夜景。先至一某某故居,不忆谁何。影壁题诗,破败不堪,其中文字,醒时还约略记得,现已忘矣。细审之,则水泥铸就,非旧物也,不以为意。时一众游客,自门内喧哗而出。无趣,遂改道游。至一小径,四顾无人,风惨惨类鬼蜮之地,不甚惧。然忽忆囊中尚有金两千,设若遇砍手党,殆已。语妻知,妻亦忧。计折返。思回程亦未必安,欲藏之于履。探囊取币出,塞右履内,然杂物连绵不绝,终不能妥贴遽入。正迫怵间,又一人对面遥至。大窘始寤。

醒移时,觉妻之臂压吾胸上,始悟梦一之大石乃此臂也。

2008年1月16日星期三

vim中粘贴剪贴板中的数据如何让它不缩进

vim中在paste剪贴板中的数据时会自动增加缩进,这对python这种对缩进要求严格的语言来说简直是恶梦。如何让它不缩进,保持原格式?为了避免这些智能选项的影响,可以把paste开关打开。
输入 :set paste
需要关闭时
输入:set nopaste
我是在vimrc中加入了下面两句:
"Paste toggle - when pasting something in, don't indent.
set pastetoggle=<F3>
这样就可以用F3来切换了。

2008年1月15日星期二

X-window复活记

今天发现X-windows起不来了,xdm不行,startx也不行,有一个错误提示,
xinit: Resource temporarily unavailable (errno 11): Cannot register
with ConsoleKit: org.freedesktop.CkConnector.Error: Unable to open
session: The name org.freedesktop.ConsoleKit was not provided by any
.service files
reemerge consolekit,还是不行。
后来找到了原因,启动consolekit服务就不出这个错了。
但不幸的是X-window依然不能正常启动。只有把.xinitrc里的内容换成startkde时有关于字体的错误,但仍不得要领。在IRC里问,也没有结果。X
-ac -query remotehost 正常。
之前升级的包里只有fontconfig最可疑。降级,还不行。
一筹莫展。
于是,emerge xorg-x11 -e
期间还试过emerge xfs.并启动其服务,后来从乐乐那知道,xfs没用。不过emerge时发现一个段错误,后来知道那是fc-cache时的段错误。fc-list也是段错误。
停掉emerge xorg-x11 -e,strace
fc-list,发现遍历到文泉驿那个字体文件夹时会出段错误。那是我很久以前装的字体,不是用ebuild装的。
删之,一切归于正常。又见大脚丫,喜甚。

2008年1月5日星期六

emerge games-strategy/wesnoth并更改字体

wesnoth是类似英雄无敌那类的游戏。被人说成是2007年linux游戏之首,今天装了一个玩儿,中文缺字,用如下命令替换了一下字体。
#rm /usr/share/games/wesnoth/fonts/sazanami-gothic.ttf
#ln -s /usr/share/fonts/fireflysung/fireflysung.ttf
/usr/share/games/wesnoth/fonts/sazanami-gothic.ttf
中文OK了。

2008年1月1日星期二

emerge googleearth-4.2.205.5730

界面字体更小了,把
~/.googleearth/Registry/google/googleearthplus/User/render/guifontsize
由8改成了12,好了。

emerge mozilla-firefox-bin-3.0_beta2

这个beta版出了有些日子,原来在windows下试过,很多扩展都不能用了。今天看portage里有了,才装起来,绝大部分扩展依旧不能用,但是发现firefox能用gtk的原生界面了,在gnome下改字体也能对其生效了。$home/.mozilla/firefox/XXXXXXXX.default/chrome/userChrome.css完全可以不用了。浏览内容也比原来要清楚。还是值得升级的。我现在是两个混用,想用扩展时就启动firefox,想用新版就用firefox-bin.
顺祝列位看官元旦快乐。