64位Ubuntu上使用Network Connect

Network Connect 是 Juniper 公司出品的配合其安全硬件 VPN 解决方案的软件包,很多公司使用这个 VPN 解决方案,一般需要使用 RSA Token 动态密码登录。Network Connect 支持 Windows 和 Linux 操作系统,但很遗憾的是,它只支持 32 位 Linux。下面以 Ubuntu 为例,介绍如何

在 64 位 Linux 上安装并使用 Juniper Network Connect

1. 安装浏览器 Java 插件(64位);

$ sudo apt-get install icedtea-plugin

虽然看起来只安装了一个软件包,但实际上可能会下载依赖的 OpenJDK 的一系列软件包。这是为了在 Firefox 下能够正确启动 Network Connect 的安装过程。

2. 修改 root 密码;

$ sudo passwd

由于 Ubuntu 默认不使用 root 用户,下面自动安装 Network Connect 软件时候又必须提供 root 密码,所以这里必须先初始化 root 的密码。

3. 打开 Firefox,访问 VPN 网站。

像在 Windows 下那样,先登录进入 VPN 页面,再点击 start,启动 Network Connect 的自动安装过程。过程中会弹出一个很丑的终端,安装时需要输入 root 密码,但是最终必定是无法弹出 Network Connect 小图标,也连接不上。

4. 下载脚本 junipernc[1],并且安装到执行目录 /usr/bin 中;

$ wget http://mad-scientist.net/junipernc -O junipernc 
$ chmod 755 junipernc
$ sudo mv junipernc /usr/bin

5. 安装 Network Connect 二进制程序依赖的 32 位动态链接库;

NC 具体的可执行程序是 ~/.juniper_networks/network_connect/ncsv ,是 32 位的可执行程序。如果不安装它依赖的 32 位动态链接库[2],该程序是执行不了的。

$ sudo apt-get install libc6-i386 lib32z1 lib32nss-mdns

6. 执行 junipernc 脚本,会跳出各种对话框,对应填入各种参数;

$ junipernc --nojava

URL 就填入 VPN 网站的域名,USER 就是自己的用户名,REALM 比较麻烦,需要自己查看 VPN 网站登录页面的源代码,看对应 REALM 域实际表单提交的 value 是什么,填进去即可。

--nojava 的意思是,只执行 VPN 连接,不启动 Network Connect 小锁图标的 Java 程序。因为该 Java 程序要求 32 位 Java 环境。

连接失败会有提示;连接成功后,junipernc 会一直停在那里,终止连接可以使用 Ctrl-C 命令行,或者 sudo killall -9 ncsv。

6-1. 修改 junipernc 配置;

junipernc 有两个配置文件,一个是 ~/.vpn.default.cfg,保存着用户手工输入的配置;一个是 ~/.vpn.default.crt,这个是从网站上下载下来的证书。

这样,一般的 VPN 连接功能就实现了。如果希望启动 Network Connect 小锁图标并监控 VPN 的流量信息,就需要

在 64 位 Ubuntu 上安装 32 位 Java 环境[3]

如果不是特别需要,不建议折腾下面这套东西。

a. 到 Oracle 网站上下载 32位 Java 的 tar 包;

到这个地址:http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html#javasejdk下载例如 jre-7u3-linux-i586.tar.gz 的 Linux JRE 包。重要的特征是那个 i586。

b. 解压并安装到 jvm 目录,调整默认 java 的链接到 32位 JRE。

$ tar xzvf jre-7u3-linux-i586.tar.gz
$ sudo mv jre1.7.0_03 /usr/lib/jvm
$ sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jre1.7.0_03/bin/
java 73
$ sudo update-alternatives --config java

最后一个命令会给出一个 Java 的列表,如下所示,选择 jre1.7.0_03 对应的编号即可。

There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                      Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      auto mode
  1            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      manual mode
* 2            /usr/lib/jvm/jre1.7.0_03/bin/java          73        manual mode

Press enter to keep the current choice[*], or type selection number: 2

c. 验证 java 可以执行且版本正确(其实依赖上面的第 5 步);

$ java -version
java version "1.7.0_03"
Java(TM) SE Runtime Environment (build 1.7.0_03-b04)
Java HotSpot(TM) Server VM (build 22.1-b02, mixed mode)

d. 安装 32位 JRE 可能依赖的 32位动态链接库。

$ sudo apt-get install ia32-libs

这个包会依赖非常多的 32位链接库,安装过程会比较漫长。

参考文章:

[1] Using Juniper Network Connect on Ubuntu
[2] Debian6(64位)搞掂Juniper VPN
[3] Installing 32 bit java now that ia32-sun-java6-bin is not available

Fix Black Screen After Boot Problem of Ubuntu 9.10 on D630

Platform: Dell Latitude D630, Nvidia NVS 135M, Intel CPU, Ubuntu 9.10

Problem:

1. Boot from livecd, select install. After a glowing ubuntu Symbol, screen shows nothing, even no CLI.

2. After installation with "text mode", boot from HD. After a glowing ubuntu Symbol, screen shows nothing, even no CLI.

Solution:

I am not very sure whether this problem is caused by the NV 185 driver(nvidia-glx-185). Installing or removing this package gave no help. I googled a lot, found many people encountered the same problem. However, no answer could work on my laptop. Then I tried to install NV driver manually...it works! So, here is the fix:

1. When you get the GRUB boot menu screen, press 'e' to edit the fist entry. Add a word 'single' after 'linux /boot/vmlinuz..... quiet splash', then press 'Ctrl+x' to boot. (I cannot enable networking in recovery mode, so I tried with the single mode.)

2. Select the 'netroot' entry. You will get a root command line with network support.

3. Download the latest NV driver for linux (2010-11-3):

# wget http://us.download.nvidia.com/XFree86/Linux-x86/190.42/NVIDIA-Linux-x86-190.42-pkg1.run

[You can visit http://www.nvidia.com/object/unix.html for the latest NV driver.]

4. Install development tools to build NV driver on you os.

# apt-get update
# apt-get install build-essential

5. Install the NV driver:

# chmod u+x NVIDIA-Linux-x86-190.42-pkg1.run
# ./NVIDIA-Linux-x86-190.42-pkg1.run

6. Reboot.

If you are using a livecd, please use the "text mode" to install Ubuntu 9.10. After installation, try the solution above.

Ubuntu 9.10 启动后黑屏的解决方法

平台: Dell Latitude D630, Nvidia NVS 135M, Intel CPU, Ubuntu 9.10

问题描述:

1. 从 livecd 启动后,选择安装,在白色 Ubuntu 图标闪烁结束之后,无任何屏显,连命令行都没有。

2. 用文本模式安装完成后,从硬盘启动,在白色 Ubuntu 图标闪烁结束之后,无任何屏显,连命令行都没有。

解决方法:

我不太清楚是不是 NV 的 185 驱动有问题(nvidia-glx-185),安装或者删除它对状况没有任何帮助。我搜索了一下,发现很多人遇到和我类似的问题,不过没有任何解决方法可以在我的电脑上工作。无奈下我尝试手动安装了一下 NV 的最新驱动——居然解决了!下面是我的解决方法:

1. 当你进入 grub 启动菜单选择屏幕时,在第一条上按 e 进入编辑状态,在 'linux /boot/vmlinuz..... quiet splash' 这一行最后添加一个单词 single,然后按 Ctrl+x 启动。其实 recovery mode 能做类似的事,但是 9.10 的 recovery mode 好像不能启动网络,所以只好自己进入 single 模式了。

2. 启动后选择 'netroot' 选项,进入带网络的 root 命令行。

3. 下载最新的 NV 驱动(2010-11-3):

# wget http://us.download.nvidia.com/XFree86/Linux-x86/190.42/NVIDIA-Linux-x86-190.42-pkg1.run

[你可以先访问 http://www.nvidia.com/object/unix.html 查看 NV 最新驱动的地址。]

4. 安装编译 NV 驱动需要的编译工具:

# apt-get update
# apt-get install build-essential

5. 安装 NV 驱动:

# chmod u+x NVIDIA-Linux-x86-190.42-pkg1.run
# ./NVIDIA-Linux-x86-190.42-pkg1.run

6. 重启

如果您使用 livecd 安装 Ubuntu 9.10 的话,您应该选择 "text mode" 进行安装。成功安装完成后,仍然遇到黑屏问题,请尝试上述方法。

NetworkManager 任重而道远

Ubuntu 8.04 以前的 NetworkManager(nm-applet) 还差强人意,好歹还能通过它来配置一下网络。中间跳过了 Ubuntu 8.10,而新的 Ubuntu 9.04 的 NetworkManger 则让我不知道该如何使用。

我依稀记得原来使用 nm-applet 对网络进行配置后,设置会被保存在它应该在的配置文件中,比如 /etc/network/interfaces, /etc/resolv.conf。但是我完全不知道目前的 nm-applet 会将网络配置保存在什么地方。无论是有线网络还是无线网络,无论是 DHCP 还是固定 IP,我一次都没有使用 nm-applet 配置成功过。有线网络还好,我很熟悉,直接写到配置文件中不费什么事情。最近忽然遇到要配置无线网络,一懒,就试试 nm-applet。用 nm-applet 可以扫描到无线网络,但是填入密钥就是无法完成验证,没办法只好转而用 iwconfig 命令配置。按说直接敲命令应该是最靠谱的事情,依然无法凑效,最后才发现原因——在使用 iwconfig 配置时,一定要 disable nm-applet 对无线网络的管理!

我觉得目前 nm-applet 可能在做一些革新性的改变,大概是想简化网络的配置方法增强易用性吧。但是一些不愉快的经历让我觉得现在的 nm-applet 是一个相当不靠谱的东西,所以我只好在所有的 Ubuntu 里禁用了 nm-applet,还是直接修改配置文件靠谱呀!

Ubuntu 9.04 安装手记

此次安装是在一台 Dell OptiPlex 740 台式机上进行,处理器 AMD Athlon 64 X2 4400+,显卡 nVIDIA GeForce 6150,声卡 SigmaTel STAC9200。Ubuntu 版本为 9.04 Jaunty Jackalope Alpha 5 amd64 位版,硬盘安装。

1. 硬盘安装时在分区那步仍无法列出分区表,需要 Ctrl-Alt-F2 进入控制台 2 手动 umount -l /hd-media 后重试。

2. 开箱显示正常,但 Compiz 3D 特效无法开启,可能因为没有可用的受限驱动。

3. 默认 ALSA 驱动不支持该声卡,但选择 OSS 驱动可以支持(很奇怪)。必须在音量设备那开启对 capture 设备,才能录入声音,此时可以使用 ALSA 驱动。在使用 Mplayer、SMplayer 之类播放器播放视频时,需要手动在选项中选择声音输出的驱动为 OSS。

4. 安装 smplayer 之后即支持 avi 格式解码,不用手动下载 codecs。在播放 720p 以上高清视频时,最好将 smplayer 的本地缓存调整为 10M 以上(默认为2M),否则容易引起底层 mplayer 内存问题,会无法播放、内存占用过大死机或崩溃。

5. Socks 代理软件 Dante 源代码在该 x86_64 平台上编译后运行会出现段错误;更换为 antinat,经源码编译后运行正常。

6. Libfetion for 64 位 deb 包不可用,异常退出;经源码编译后运行正常。

7. sendsms 编译为 64 位版本会出现段错误,但短信仍能发送成功。

9. 网易的 Ubuntu 软件仓库镜像不包含 Jaunty,cn 的镜像没有总镜像快,security 的连接速度太慢。正式发布后,网易已经有了 Jaunty 源。

10. 使用 Firefox 时可直接安装 Adobe Flash Player 10 64 位版本。

11. 新的状态通知很漂亮,可以显示 Pidgin 上好友的登录和短讯。

12. 根分区使用 ext4 文件系统,数据分区为了与其它系统保持共享仍采用 ext3 文件系统。

13. 安装中文支持时可以选择是否安装该语言用户常用软件,选择是则会增加 PCManX、StarDict 等软件。PCManX 中包含非常全的港台和大陆 BBS 地址簿,但是字体有问题,未解决;QTerm 5.3 会崩溃。

14. 传说中的启动加速没有明显感觉,也许是因为启动的服务太多。

15. Ubuntu 9.04 Jave 程序中文显示不正常,部分文字变成方格。文泉驿字体从 wqy-zenhei.ttf 改为 wqy-zenhei.ttc,导致 java 程序中文字体显示不正常。在 /etc/java-6-sun/fontconfig.properties 中添加 wqy 相关内容,diff 文件可以从这里下载。Java 貌似不可用 ttc 字体,从 8.04 拷来 wqy-zenhei.ttf 到 /usr/share/fonts/truetype/wqy 目录下可解决,wqy-zenhei.ttf 也可以从这里下载。

16. 在另一台笔记本 Dell D630 上安装 9.04 正式版时,发现居然默认不支持 NVS135M 视频驱动,需要配置好网络后,使用命令 sudo apt-get install nvidia-glx-180 安装 Nvidia 180 版本的驱动,或者自己到 NV 网站上下载最新驱动。

使用 Synergy 共享键盘和鼠标

今天我使用了一个让我感觉非常震撼的软件:Synergy,相见恨晚!

简单地来说,这个软件的功能是在 n 台电脑间共享同一个电脑上的鼠标和键盘。和扩展桌面不同,扩展桌面是一台主机拖两台以上的显示器,这个软件是用一套鼠键控制两台以上的主机。(我曾经见到过一个医学仪器用的 IBM 的键盘,可以控制几台工作站,貌似是几万块。)

像我们计算机科学的学生,一般来说都会有两台电脑。比如我自己,实验室一台台式机,自己一台笔记本,当我把笔记本电脑拿到实验室的时候,总会发愁把我的笔记本外接键盘和外接鼠标放在哪里(我不喜欢用笔记本自带键盘,用外接键鼠我就可以半躺在椅子靠背上打字)。手底下放着两个键盘和两个鼠标,总要想一想我现在要用哪个。通过这个小软件,我的笔记本和台式机可以共用台式机的键盘,这样我就不必注意我到底在用哪台机器的键盘和鼠标了,感觉好爽!

还有一个非常牛的特性就是:支持共享剪贴板。因为大部分程序员使用两个以上的显示器是为了写代码的同时在另一个显示器上翻看文档或者网页,我们使用两台以上电脑的作用也在于此。如果两台电脑之间可以共享剪贴板,再加上 NFS 或者 Samba,那么在大部分情况下来说,这和一台电脑拖两台显示器没任何区别了(也许更方便,比如你可以一端跑 Linux,一端跑 Windows)。

关于这个软件的介绍可以见下面两篇博客:用 Synergy 共享两台电脑的键盘鼠标用 Synergy 共享鼠标键盘

需要解释一下使用 Synergy 时容易引起混淆的概念: Server 是指被共享鼠标键盘的主机,比如我就是使用台式机作为 Server;Client 是指使用 Server 的鼠键的主机。

使用 QuickSynery 时也要注意:Server 端 QuickSynery 需要指定 Client 主机在哪个位置,比如我希望笔记本在左面,就在左面填入笔记本的主机名,但不需要指定 Server IP;Client 端 QuickSynery 只需要指定 Server IP,但不需要选择机器的相对位置;另外,在尝试连接不成功后,一定要杀死后台所有 synery 进程,最好用命令行启动 quicksynery 通过屏显来查找错误。

QuickSynery 的最新版本是 0.8,Ubuntu 仓库中版本是 0.6,如果您使用 QuickSynery 过程中出现错误或者希望使用更新的版本,可以到我的共享网站上下载我自己编译打包的 QuickSynery 0.8: http://share.solrex.org/ibuild/quicksynergy_0.8_i386.deb

安装 Ubuntu 8.10 失败记

今天上午四个小时的折腾:

1. 想装个 FreeBSD 6.2,出现未知错误,找不到 /dev 下面的一个东西(仿佛回到了刚开始学 Linux 的时代,盲目呀);

2. 把分区表搞坏,一个扩展 data 分区丢失(这绝对是 FreeBSD 的问题,因为在安装时分区表中居然把这个 ext3 分区标示为 unused)。我也居然愚蠢到认为不到最后时刻它就不会写入分区表,结果导致整个分区数据丢失。还好这只是我工作用电脑,损失还不大;

3. 既然 data 都丢了,就随便再装个 Ubuntu 8.10 玩玩吧,结果遇到安装光盘的 bug。整整花了我两个小时呀,下了 RC 和 dailybuild 两个光盘镜像,都是一个问题,走到分区那一步,新建和修改分区的选项都是空白的,无法选择。到 launchpad.net 就发现不是我一个人在战斗,然后也插了一腿子。这是我自从注册 launchpad 那几天以来第一次登录,也是第一次灌水,注册时间是 2006-06-10。

4. 到了最后,还是用我原来的 Ubuntu 8.04,把分区重新建立挂载起来,下定决心再不折腾了。其实我想用 8.10,仅仅是被那个 nautilus 的标签式浏览诱惑了...

转了一圈,啥也没落着。得了一个教训:不要在双系统上装 FreeBSD,居然会犯 RedHat9.0 都不可能犯的错误,识别出错误的分区表。(话说今天遇到的 Ubuntu 8.10 的问题也类似,不过人家是 RC, 不是正式版。)

在 Ubuntu Linux 8.04 上安装永中 Office 2007

这篇文章介绍了在 Ubuntu Linux 8.04上安装永中 Office 2007 遇到的问题以及解决的办法。由于其主要问题在于 Java 虚拟机,其它 Linux 平台如果遇到同样情况也可以借鉴这里的方法。

永中 Office 2007 Linux

目录

1. 介绍
2. 下载
3. 安装问题
4. 运行问题

1. 介绍

用 OpenOffice 总会遇到这样那样的中文问题,有时候怎么也搞不定,很令人沮丧。听说永中 Office 虽然只放出试用版,但在 Linux 下超过试用期后只会提示超期而不会禁止使用,就尝试着装了一下永中 Office。

2. 下载

从官方下载地址:http://www.evermoresw.com.cn/webch/download/downEIOffice.jsp 下载永中 Office 2007 Linux 安装包。

安装之后才知道 Ubuntu 中文源中有打包好的 deb 文件,要从源中直接安装就方便许多了。比如用 CN99 源的话,将:

deb http://ubuntu.cn99.com/ubuntu-cn hardy main restricted universe multiverse

加入 /etc/apt/sources.list 中,然后:

$ sudo apt-get install eio

即可。我没有尝试这一方法,从源直接安装显然不会出现下面的"3. 安装问题",但不知道会不会出现下面讨论的"4. 运行问题"。

3. 安装问题

下载好官方的 Office 2007 Linux 安装包之后,先解压:

$ tar -xzvf EIO2007BetaZH_Lin.tar.gz

然后,进入安装目录,执行安装脚本:

$ cd 4.3.1210.101ZH.L1/
$ sudo sh setup.sh

将会出现下面错误,而且安装窗口显示为空白(窗口空白可能是由于 Beryl 引起的 Java Swing 界面问题):

Decompression in Progress,Please Wait.
Locking assertion failure. Backtrace:
#0 /usr/lib/libxcb-xlib.so.0 [0xb2a66767]
#1 /usr/lib/libxcb-xlib.so.0(xcb_xlib_unlock+0x31) [0xb2a668b1]
...

这个问题可能因为永中 Office 使用自带的 JRE 和系统的某些库不匹配导致的,所以我们只需更改安装脚本,让它使用系统的 JRE。用编辑器(如 vim)打开 setup.sh,按照下面的方法注释掉解压和使用自带 JRE 的两行,添加一行使用系统 JRE 的命令。(注意:使用 gcj 的 jre 也会出现错误,最好使用 Sun 官方的 jre,Ubuntu 下使用 sudo apt-get install sun-java6-jre 安装。)

$ vim setup.sh
#unzip $progdir/Jre.zip -d /tmp/EIOffice/ &> /dev/null
#/tmp/EIOffice/Jre/bin/java -jar $progdir/dispose.jar $1
/usr/lib/jvm/java-6-sun/jre/bin/java -jar $progdir/dispose.jar $1

然后再执行 sudo sh setup.sh 命令,就能出现正常的安装窗口了。下面的安装步骤和 Windows 下软件的安装步骤颇为相似,只是选择安装路径那一项最好将 /usr/local 改成 /opt,因为永中 Office 不是开源软件。

4. 运行问题

安装完成后,运行永中 Office:
$ eio
Locking assertion failure. Backtrace:
#0 /usr/lib/libxcb-xlib.so.0 [0xb7d37767]
#1 /usr/lib/libxcb-xlib.so.0(xcb_xlib_unlock+0x31) [0xb7d378b1]
...

和刚开始安装时一样,出现下面错误,主窗口中也是空白。如前面所说,窗口空白可能是由于使用了 Beryl 窗口管理器引起的 Java Swing 界面问题,可以通过修改永中 Office 的启动文件解决,在 /usr/bin/eio 中正式代码前添加 export AWT_TOOLKIT=MToolkit 一行:

$ sudo vim /usr/bin/eio
#!/bin/bash
export AWT_TOOLKIT=MToolkit
exec 4<&0 0

笔记本磁盘高频加载/卸载循环问题

注意:本人非硬件专家,下面我仅仅阐述遇到的问题,解决方法,以及我的一些猜想。要仔细的了解这个 BUG,请阅读 Ubuntu Bug 列表的 BUG 59695:High frequency of load/unload cycles on some hard disks may shorten lifetime

我的笔记本是 DELL Latitude D630,从一开始使用我就发现 D630 的硬盘在正常使用中会经常发出“咯吱、咯吱”的响声(不是光驱,比光驱的咯吱声音要小得多),虽然我在 BIOS 里设置了硬盘模式为 Quiet。我一直认为这是正常现象,读取硬盘总会发出声响的。去年我曾经注意到 Ubuntu 的一个硬盘操作 BUG 引起了广泛的关注,但是在新闻中只提到了在电池模式下出现的问题,我也就没有仔细去浏览,而且我想随着 Ubuntu 升级,这个 BUG 应该被早已 fix。

但是今天我被一个事实给吓到了:我一直习以为常的“咯吱、咯吱”声居然是系统 BUG!而且这个 BUG 同样存在于 Windows 和 Linux 。

令我信服这一点的是,在我应用了 Ubuntu Bug 列表中提供的解决方案后,Ubuntu 下的硬盘“咯吱、咯吱”声消失了,而 Windows XP 下仍然会发出这种声音。

重要评论 by 徐宥:windows 没有专门的笔记本版, 电源管理的策略都是沿用桌面的. 如果节能设置为一直打开, 是没有问题的.

简单的来说,这个 BUG 讲述的是笔记本电脑的电源管理的一个问题:笔记本为了保持低功耗,采用了一个方法,就是在不使用硬盘的时候,将硬盘磁头 park 起来;需要使用的时候,再 unpark 磁头。而在实际使用中,这个节电策略被滥用了,导致过于频繁的 park/unpark 磁头,造成磁盘寿命变短,而且会带来磁盘“咯吱、咯吱”的噪声。这是很多笔记本电脑硬盘使用时间不超过一年的一个原因。

一些文章中介绍,一般磁盘设计承受的加载循环计数最多为 600,000 次,而当超过 300,000 次的时候磁盘的响应速度就会变慢,所以平均每小时的加载循环次数应该在 15 次左右,这样才能保证大约 4 年不关机的使用寿命。而我正常使用 7 个月的 D630 平均每小时加载循环次数为 76 次,是设计次数的 5 倍!!

有一个工具可以用来检测笔记本电脑硬盘的加载循环计数 smartmontools,这是开源软件,有 Linux 和 Windows 版本,在 Ubuntu 下可以直接 apt-get。Ubuntu 下用 sudo smartctl -a /dev/sda 命令,Windows 命令行下用类似的命令,可以打印出磁盘的检测信息,主要关注下面两行:
9 Power_On_Hours 0x0032 099 099 000 Old_age Always - 1647
193 Load_Cycle_Count 0x0032 037 037 000 Old_age Always - 126354

Power_On_Hours 就是硬盘使用的总时间,Load_Cycle_Count 就是加载循环计数,二者相除,就能得到每小时加载循环次数,比如我的就是 126354/1647 = 76 次,5倍于设计水平,看了真让我感到恐怖。

Ubuntu 下推荐的解决方案有一个,我简化了一下,将下面的内容保存成一个脚本文件 fix_hdd.sh,用 sudo sh fix_hdd.sh 运行,然后重启即可:
cat > 99-hdd-spin-fix.sh << EOF #!/bin/sh hdparm -B 255 /dev/sda EOF chmod a+x 99-hdd-spin-fix.sh cp 99-hdd-spin-fix.sh /etc/acpi/suspend.d/ cp 99-hdd-spin-fix.sh /etc/acpi/resume.d/ cp 99-hdd-spin-fix.sh /etc/acpi/start.d/ 使用这个解决方案后,我发现在 Ubuntu 下我的 D630 磁盘不会发出频繁的“咯吱”声了,用 smartctl 检测发现 Load_Cycle_Count 增加的非常慢,问题应该是解决了。然后我重启到 Windows XP 下,发现仍有“咯吱”声,用 smartctl 测试了一下,在 20 分钟内大约有 18 个加载循环,和 76 次每小时的平均计数差不多,说明 windows 下也存在这个问题。 这就有点儿让我想不通了,Linux 下出现问题很容易理解,硬件厂商对 Linux 的支持本来就弱,为什么 Windows 下也会有这个问题?我想这些硬盘厂商在出品之前肯定对硬盘在各种情况下的表现进行过很多次测试,Windows 下的测试应该是最重要的一个吧。难道是故意的?

Ubuntu 8.04 长期支持桌面版本 Linux 发布

[本博讯,北京时间2008年4月24日19点] Canonical 公司发布了最新的开源 Linux 操作系统发行版:Ubuntu8.04 LTS(长期支持)桌面版,Canonical 也同时发布了 Ubuntu 8.04 长期支持服务器版。

Ubuntu(音:oo-BOON-too[u:'bu:ntu:]) 8.04 LTS(Hardy Heron) 是 Canonical 公司自 Ubuntu 6.06 LTS 以来发行的第二个长期支持版本,它将提供对桌面版 3 年,服务器版 5 年的长期升级和服务支持。Linux Foundation 2007 年的调查结果显示,Ubuntu Linux 已经成长为桌面市场的后起之秀,占据了 Linux 桌面版本的头把交椅。同样,这次 Ubuntu 8.04 将以更完善的硬件支持,更漂亮的用户界面,更新更多的软件包选择,更方便的用户交互掀起一场 Linux 桌面系统的大革命。

Ubuntu 8.04 的完整下载地址列表:http://www.ubuntu.com/getubuntu/downloadmirrors

Ubuntu 8.04 的系统安装指导,常用程序安装,桌面效果截图,可以在这里找到。

如果你是新手也没有关系,一个小软件 Wubi 允许你在 Windows 下像安装应用程序一样轻松安装 Ubuntu Linux

另外,中国北京的清北DIY俱乐部目前宣布向全国提供免费 Ubuntu 光盘派送,每人可免费申请一套Ubuntu 8.04系统光盘(1DVD+1CD),详情见http://quickbest.com.cn/discuz/thread-26153-1-1.html

PS: 秀一个别人做的 Ubuntu Sticker:

Image

我的北京照片5

播放器看来还是 Amarok 更好,至少它能显示一部分中文歌曲文件名,不像 XMMS,怎么设置都看不到中文字(注意到没有,Ubuntu 8.04 的 Notification Area 现在带天气播报):

Amarok 播放器

写代码累了,拿起飞镖休息一下吧!虽然最近家乐福可能人少点儿,这个小玩意儿我还是在沃尔玛买的,才 11 块:

镖盘

无意间在卓越网看到下面这个木头小镜子,很喜欢,就买了下来准备送给女友:

很精致的小镜子

上周末班里组织春游去北京植物园玩,下面是同志们的合影:

植物园之大合照

又想起去年暑期的一张照片,小百合上版友在北京混的几个南大人,北航的兄弟们看了可能比较熟悉,这就是在北航西南门丽晶酒店门口照的。从左到右:我, baosheng,proline, daoming, ufx222, xum84(均为百合ID):

南大的北漂们

昨天随手搜了一下,发现 Google 搜索我的名字“杨文博”,我已经占到第一位了。用某人的话说:”做网络的人把自己做到搜索引擎第一位是基本要求。“因此,纪念我刚刚达到基本要求 ^_^:

Google 我的名字

在 Dell Latitude D630 上硬盘安装 Ubuntu Linux 8.04

最后更新时间:2008年4月18日

摘要

这份文档主要描述了我在自己的 Dell Latitude D630 上安装 Ubuntu Linux 8.04 的过程。

目录

1. 介绍
2. 安装
3. 效果截图
4. 总结

1. 介绍

虽然一直想忍着等 Ubuntu Linux 8.04(Hardy Heron) 正式发布了再安装它,但最后还是受不了诱惑,在还有 6 天就发布时候当了一次小白。这次 Ubuntu 真的是让我相当相当满意,安装过程什么问题都没有出,所有硬件均一步识别,太爽了!这次写的安装介绍,要比上次那篇简单多了,我真心希望以后的 Ubuntu 版本安装的时候再也不用看别人的安装介绍了。

而且这次 Ubuntu Studio 的 theme 也比 7.10 漂亮许多,Compiz-fusion 的 3D 桌面特效也更好了,真酷!兄弟姐妹们,来玩 Ubuntu 吧!

2. 安装

[安装基本操作系统]
由于我电脑上本来就有 Ubuntu 7.10 和 Cent OS 5.1,所以我的 Ubuntu 8.04 是通过修改 grub 的 menu.lst 来进行硬盘安装的。

首先,下载安装光盘镜像文件:
$ wget -c http://cdimage.ubuntu.com/daily/current/hardy-alternate-i386.iso
由于现在 Ubuntu 8.04 还没有正式发布,所以我是从 daily build 的地址下的,当看到这篇文章时可能它已经发布了,那就请到官方公布的地址下吧。

其次,下载硬盘安装文件:
$ wget http://archive.ubuntu.com/ubuntu/dists/hardy/main/installer-i386/current/images/hd-media/vmlinuz
$ wget http://archive.ubuntu.com/ubuntu/dists/hardy/main/installer-i386/current/images/hd-media/initrd.gz

将这三个文件放在某个分区根目录下,再修改 /boot/grub/menu.lst,在列表最后添加上以下几行:
title Ubuntu 8.04 Install Entry
root (hd0,3)
kernel /vmlinuz root=/dev/ram ramdisk_size=100000 devfs=mount,dall
initrd /initrd.gz
请注意第二行的(hd0,3)是指放镜像文件那个分区编号,请根据自己情况自行修改。一般情况下如果放到了 /dev/sdan 下的话,这个就应该是 (hd0,n-1)。

然后重启电脑,在 grub 中选择引导项 Ubuntu 8.04 Install Entry 进行安装,安装过程不赘述。我一般选择系统语言为英语,地域为中国。

[修改更新源列表]
选择速度最快的源,将 /etc/apt/sources.list 中默认的官方源替换掉,比如我的 sources.list 文件内容就是
deb http://debian.ustc.edu.cn/ubuntu/ hardy main restricted universe multiverse
deb http://debian.ustc.edu.cn/ubuntu/ hardy-updates main restricted universe multiverse
deb http://debian.ustc.edu.cn/ubuntu/ hardy-security main restricted multiverse universe
deb http://debian.ustc.edu.cn/ubuntu/ hardy-backports main restricted universe multiverse

[更新操作系统]
$ sudo apt-get update
$ sudo apt-get upgrade

[安装受限驱动]
在更新完操作系统后,System Notifacation Area(桌面右上角) 中会出现提示安装受限驱动的气泡,点击安装即可。

[安装中文输入法]
在 System->Administration->Language Support 中选择安装中文支持,并在下方勾选上 Enable support to enter complex characters. 系统会自动下载并安装中文支持和中文输入法,安装完后系统会要求重启,重启以后就可以在软件中直接用 Ctrl+Space 调出输入法了。^_^ 比以前的版本配置中文输入法简单太多了!!!

[安装 Windows XP 中文字体]
这是我写的一个小脚本,可以将双系统的 XP 字体拷贝到 Linux 下并使用它们。注意,这将涉及到版权问题,如果不确信的话,请跳过这一步。
$ wget http://share.solrex.org/scripts/install_win_CN_fonts_to_linux.sh
$ sudo sh install_win_CN_fonts_to_linux.sh
然后重新登录 X window

[安装 Ubuntu Studio 主题]
Ubuntu Studio 的黑色桌面主题是我非常喜欢的桌面主题,再配上诺贝尔和平奖得主戈尔的获奥斯卡最佳纪录片奖的电影 An Inconvenient Truth 的灰色背景海报,简直太配了。如果不喜欢,请跳过这一步。
$ sudo apt-get install ubuntustudio-theme
然后在 System->Preference->Appearance 中选择使用 Ubuntu Studio Theme。

[安装 Compiz-Fusion 3D 桌面特效引擎]
$ sudo apt-get install compiz-fusion-plugins-* compizconfig-settings-manager emerald
然后在 System->Preference->Advanced Desktop Effect Settings 中配置喜欢的桌面特效。

[安装 Mplayer/SMplayer 媒体播放器以及解码器]
$ sudo apt-get install mplayer smplayer
下载最新解码器:
$ wget -c http://www.mplayerhq.hu/MPlayer/releases/codecs/all-20071007.tar.bz2
将最新解码器库扔到 /usr/lib/win32 目录下:
$ tar -xjvf all-20071007.tar.bz2
$ sudo mkdir /usr/lib/win32
$ sudo mv all-20071007/* /usr/lib/win32
这样就可以使用 Mplayer/SMplayer 播放几乎任何格式的影片了。

[安装 星际译王(StarDict) 和辞典包]
$ sudo apt-get install stardict
然后到星际译王官方网站下载安装需要的辞典包

[安装 MP3 播放器 Amarok/xmms]
$ sudo apt-get install amarok

[安装 BBS 登录软件 Qterm]
$ sudo apt-get install qterm

[安装聊天工具 Pidgin, Eva]
$ sudo apt-get install pidgin eva

[安装邮件客户端 ThunderMail]
$ sudo apt-get install mozilla-thunderbird

[安装系统启动项管理软件 sysv-rc-conf]
$ sudo apt-get install sysv-rc-conf

[安装 vim 完全版(gvim)]
$ sudo apt-get install vim-full

[安装编译工具库, g++ 和 javac]
$ sudo apt-get install libc6-dev g++ g++-4.2 sun-java6-jdk

[安装压缩解压缩工具 unzip, unrar, 7zip]
$ sudo apt-get install unzip unrar p7zip-full

[安装 Internet 时间同步工具 ntp]
$ sudo apt-get install ntp

[安装程序开发工具 kscope, eclipse, SVN tool, 十六进制文本编辑器, 网络文件系统]
$ sudo apt-get install kscope eclipsesubversion hexedit nfs-client

[安装工程图画图工具]
$ sudo apt-get install dia kivio

[安装摄像头查看工具]
$ sudo apt-get install cheese

[安装 CHM 文件查看工具]
$ sudo apt-get install chmsee kchmviewer

[安装 tex 编辑编译工具]
$ sudo apt-get install texlive cjk-latex kile

[安装 dos unix 文件转换工具]
$ sudo apt-get install tofrodos

[安装 Adobe Reader]
$ sudo apt-get install acroread
如果上面命令不管用,用下面方法下载安装:
$ wget -c http://debian.cn99.com/ubuntu-cn/dists/gutsy/main/binary-i386/adobe/AdobeReader_chs-8.1.1-1.i386.deb
$ sudo dpkg -i AdobeReader_chs-8.1.1-1.i386.deb

3. 效果截图

Amarok 播放器

4. 总结

Ubuntu 8.04 对电脑硬件的支持又进了一步,至少在我以前曾经有问题的显卡和声卡上都没有出现问题,让人很开心。而更好看的桌面主题,更酷的 3D 桌面效果,更简化的安装过程,更完善的多语言支持,真的很赞,我相信 Ubuntu 将借此进一步巩固和扩大它在 Linux 桌面市场占有率。大家都来用 Ubuntu 吧,它可 Windows 酷多了!

中科院 IP 网关 Linux 登录客户端版本 1.0 发布

愚人节和大家开了个 小玩笑,不过这次可不是玩笑了。CAS NET 正式发布版本 1.0,官方主页:http://share.solrex.org/casnet/

CAS Net 是中科院内部 IP 控制网关的 Linux 登录客户端,此软件完全使用 Python 语言写成,同时支持命令行和图形界面,使用简单,安装方便,实乃中国科学院 Linux 使用者居家旅行必备之良品 :)。

最新版本(1.0)特性:

1. 客户端同时具有命令行和图形界面,满足不同用户需要。
2. 可设置选项多,拥有较高扩展性。
3. 可保存用户设置,登录简单快捷。
4. 纯 Python 编程,修改简单,扩展性强,可移植到不同操作系统平台。
5. 开放源代码,确保程序无后门。

软件效果截图:

Ubuntu 7.10 系统下截图
Ubuntu 7.10 系统下截图

中科院 IP 网关 Linux 登录客户端版本 1pre 发布-注意日期

更多请访问官方主页:http://share.solrex.org/casnet/

CAS Net 是中科院内部 IP 控制网关的 Linux 登录客户端,此软件完全使用 Python 语言写成,同时支持命令行和图形界面,使用简单,安装方便,实乃中国科学院 Linux 使用者居家旅行必备之良品 :)。

最新版本(1 pre)特性:

  1. 客户端同时具有命令行和图形界面,满足不同用户需要。
  2. 可设置选项多,拥有较高扩展性。
  3. 可保存用户设置,登录简单快捷。
  4. 纯 Python 编程,修改简单,可移植到不同 Linux 平台。

感谢列表:

  • giv<goldolphin[at]163.com>: 命令行客户端脚本的原型作者

版权声明:

Copyright (C) 2008 Wenbo Yang<http://solrex.org> 祝大家节日快乐!

本软件遵从 GPL 协议<http://www.gnu.org/licenses/gpl.txt>,在此协议保护之下,您可以自由地使用、修改或分发本软件。

Ubuntu 7.10 系统下截图CentOS 5.1 系统下截图

雪和太阳

前天北京下了 2007 年冬天的第一场雪,不过意思意思就过去了,隔日又是阳光明媚。坐在教室中向外看去,忽然发现窗外的杨树叶子已经干净。印象中前次上课还是满满的绿叶呢,恍惚间觉得冬天才刚刚来到。

昨天上计算机网络课又睡了三个小时,而且梦中还在上课。结果老师说下课的时候,我迷茫机械地从教室走出,脚下直发软,觉得还在梦中,在一楼大厅里坐了一会儿才回味过来是真的下课了。我历来讨厌人多的教室,选的课程里就计算机网络人最多,所以这个也是听课听得最少的一门,也只有这一门课时最多,考得最晚,要到元月 23 号才考试。

圣诞节前会结束掉四门考试,隔一个月再考最后两门,所以南京之行又在计划中了 :-)。准备 26 号到南京,过了元旦假期吧,1 月 6 号左右回北京,多陪 xixi 几天。

现在在网上都不敢随便乱逛了,2G 的流量只够我和女友视频半个月,超过了还得交流量费,只好节省流量只聊天了。所以如果想限制自己上网的同学们,找个人视频吧!哦,那流量不限制的就算了~~~

今天才发现,原来 Ubuntu Linux 下使用摄像头都不用装驱动了,直接用 cheese 之类的视频管理软件打开就可以,真不错。那就意味着可以使用 skype 视频聊天了?有空试试。

在 Ubuntu 上部署 Snort 入侵检测系统

最后更新时间:2009年7月1日

摘要:

这份文档主要描述了我在 Ubuntu 7.10 上安装部署 Snort 入侵检测系统和 acid 基于 PHP 的网页入侵检测数据库分析控制台的过程。

目录

1. 介绍
2. 安装过程
3. 总结
4. 参考文章

1. 介绍

Snort 是一款非常优秀的开源主机入侵检测系统软件,可以用来对主机的网络状况进行记录、分析和报警,并且支持用户自定义规则库。Snort 在 Windows 平台和 Linux 平台上均可运行,详细介绍请访问 Snort 的官方网站:http://www.snort.org

Snort的默认记录是存放在 log 文本文件中,而为了观察监控方便起见,一般使用 acidbase 这个网页控制台来查看(好像 MySQL 的 phpmyadmin)。所以整个过程需要:安装 snort 和相应包;安装 LAMP(Linux, Apache, MySQL, PHP) 服务器;在MySQL数据库中建立好Snort数据库并配置 Snort 使其将 log 存放在 MySQL 数据库中;为基于 PHP 的入侵检测数据库分析控制台 (acidbase) 配置好数据库连接。

2. 安装过程

[安装LAMP,Snort和一些软件库]

由于 Ubuntu 是 Debian 系的 Linux,安装软件非常简单,而且 Ubuntu 在中国科技大学有镜像,在教育网和科技网下载速度非常快(2~6M/s),就省掉了出国下载安装包的麻烦,只需要一个命令即可在几十秒钟内安装好所有软件。这里使用 Ubuntu 默认命令行软件包管理器 apt 来进行安装。

$ sudo apt-get install libpcap0.8-dev libmysqlclient15-dev mysql-client-5.0 mysql-server-5.0 bison flex apache2 libapache2-mod-php5 php5-gd php5-mysql libphp-adodb php-pear pcregrep snort snort-rules-default

需要注意的是在安装 MySQL 数据库时会弹出设置 MySQL 根用户口令的界面,临时设置其为“test”。

[在 MySQL 数据库中为 Snort 建立数据库]

Ubuntu 软件仓库中有一个默认的软件包 snort-mysql 提供辅助功能,用软件包管理器下载安装这个软件包。

$ sudo apt-get install snort-mysql

安装好之后查看帮助文档:

$ less /usr/share/doc/snort-mysql/README-database.Debian

根据帮助文档中的指令,在 MySQL 中建立 Snort 的数据库用户和数据库。所使用的命令如下:

$ mysql –u root –p

在提示符处输入上面设置的口令 test

mysql> CREATE DATABASE snort;
mysql> grant CREATE, INSERT, SELECT, UPDATE on snort.* to snort@localhost;
mysql> grant CREATE, INSERT, SELECT, UPDATE on snort.* to snort;
mysql> SET PASSWORD FOR snort@localhost=PASSWORD('snort-db');
mysql> exit

以上命令的功能是在 MySQL 数据库中建立一个 snort 数据库,并建立一个 snort 用户来管理这个数据库,设置 snort 用户的口令为 snort-db。

然后根据 README-database.Debian 中的指示建立 snort 数据库的结构。

$ cd /usr/share/doc/snort-mysql
$ zcat create_mysql.gz | mysql -u snort -D snort -psnort-db

这样就为 snort 在 MySQL 中建立了数据库的结构,其中包括各个 snort 需要使用的表。

[设置 snort 把 log 文件输出到 MySQL 数据库中]

修改 Snort 的配置文件:/etc/snort/snort.conf

$ sudo vim /etc/snort/snort.conf

在配置文件中将 HOME_NET 有关项注释掉,然后将 HOME_NET 设置为本机 IP 所在网络,将 EXTERNAL_NET 相关项注释掉,设置其为非本机网络,如下所示:

#var HOME_NET any
var HOME_NET 192.168.0.0/16
#var EXTERNAL_NET any
var EXTERNAL_NET !$HOME_NET

将 output database 相关项注释掉,将日志输出设置到 MySQL 数据库中,如下所示:

output database: log, mysql, user=snort password=snort-db dbname=snort host=localhost
#output database: log, mysql

这样,snort 就不再向 /var/log/snort 目录下的文件写记录了,转而将记录存放在 MySQL 的snort数据库中。这时候可以测试一下 Snort 工作是否正常:

$ sudo snort -c /etc/snort/snort.conf

如果出现一个用 ASCII 字符画出的小猪,那么 Snort 工作就正常了,可以使用 Ctrl-C 退出;如果 Snort 异常退出,就需要查明以上配置的正确性了。

[测试 Web 服务器 Apache 和 PHP 是否工作正常]

配置 apache 的 php 模块,添加 msql 和 gd 的扩展。

$ sudo vim /etc/php5/apache2/php.ini
extension=msql.so
extension=gd.so

重新启动 apache

$ /etc/init.d/apache2 restart

在/var/www/目录下新建一个文本文件test.php

$ sudo vim /var/www/test.php

输入内容:

<?php
phpinfo();
?>

然后在浏览器中输入 http://localhost/test.php,如果配置正确的话,就会出现 PHP INFO 的经典界面,就标志着 LAMP 工作正常。

[安装和配置 acid-base]

安装 acid-base 很简单,使用 Ubuntu 软件包管理器下载安装即可:

$ sudo apt-get install acidbase

安装过程中需要输入 acidbase 选择使用的数据库,这里选 MySQL,根用户口令 test,和 acid-base 的口令(貌似也可以跳过不设置)。

将acidbase从安装目录中拷贝到www目录中,也可以直接在apache中建立一个虚拟目录指向安装目录,这里拷贝过来主要是为了安全性考虑。

sudo cp –R /usr/share/acidbase/ /var/www/

因为 acidbase 目录下的 base_conf.php 原本是一个符号链接指向 /etc/acidbase/ 下的base_conf.php,为了保证权限可控制,我们要删除这个链接并新建 base_conf.php 文件。

$ rm base_conf.php
$ touch base_conf.php

暂时将 /var/www/acidbase/ 目录权限改为所有人可写,主要是为了配置 acidbase 所用。

$ sudo chmod 757 acidbase/

现在就可以开始配置 acid-base 了,在浏览器地址栏中输入 http://localhost/acidbase,就会转入安装界面,然后就点击 continue 一步步地进行安装:

选择语言为 english,adodb 的路径为:/usr/share/php/adodb;选择数据库为 MySQL,数据库名为 snort,数据库主机为 localhost,数据库用户名为 snort 的口令为 snort-db;设置 acidbase 系统管理员用户名和口令,设置系统管理员用户名为 admin,口令为 test。然后一路继续下去,就能安装完成了。

安装完成后就可以进入登录界面,输入用户名和口令,进入 acidbase 系统。

这里需要将 acidbase 目录的权限改回去以确保安全性,然后在后台启动 snort,就表明 snort 入侵检测系统的安装完成并正常启动了:

$ sudo chmod 775 acidbase/
$ sudo snort -c /etc/snort/snort.conf -i eth0 –D

[检查入侵检测系统工作状况,更改入侵检测规则]

正常情况下在一个不安全的网络中,登录 acidbase 后一会儿就能发现网络攻击。如果没有发现网络攻击,可以添加更严格的规则使得正常的网络连接也可能被报攻击,以测试 Snort IDS 的工作正确性,比如在 /etc/snort/rules/web-misc.rules 的最后添加下面的话:

$ sudo vi /etc/snort/rules/web-misc.rules
alert tcp any :1024 -> $HTTP_SERVER 500:

这一行的意思是:对从任何地址小于 1024 端口向本机 500 以上端口发送的 tcp 数据包都报警。杀死 Snort 的后台进程并重新启动,就应该能检测到正常的包也被当作攻击了。

$ sudo kill `pgrep snort`
$ sudo snort –c /etc/snort/snort.conf –i eth0 -D

3. 总结

使用 Ubuntu 部署 Snort 入侵检测系统和网页控制台是相当容易的,因为 Ubuntu 提供了很方便的软件包安装功能,只是有时候定制性能太差,需要用户手动去寻找软件包的安装位置。

4. 参考文章
http://www.howtoforge.com/intrusion-detection-with-snort-mysql-apache2-on-ubuntu-7.10

使用最新 ALSA 驱动解决 Ubuntu Linux Intel 集成声卡问题

目前用户所抱怨的 Ubuntu 系列的声卡问题,基本上归结为几类:一,找不到声音设备;二,不发声;三,耳机和音箱同时发声;四、话筒没声。大部分这种问题都是由笔记本上 Intel 集成声卡驱动引起的,关于这个问题的具体描述和解决方案,可以查看下面两个页面:

BUG:
https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.22/+bug/131133

SOLUTION:
https://wiki.ubuntu.com/Gutsy_Intel_HD_Audio_Controller

其实大部分问题都可以通过自己动手编译安装最新 ALSA 驱动解决,解决方法上面两个链接中已经解释得很清楚了,我这里介绍一下我的思路:

第一,查看 ALSA 版本,如果最新,就不用重新安装了,仔细查看一下配置吧。

$ alsactl -v

如果打印出: alsactl version 1.0.20,那么 ALSA 已经是最新了。

第二,在 ALSA 官方网站 http://www.alsa-project.org 上,下载最新的 ALSA 驱动,怎么解压我就不说了吧。

$ wget ftp://ftp.alsa-project.org/pub/driver/alsa-driver-1.0.20.tar.bz2
$ wget ftp://ftp.alsa-project.org/pub/lib/alsa-lib-1.0.20.tar.bz2
$ wget ftp://ftp.alsa-project.org/pub/utils/alsa-utils-1.0.20.tar.bz2

第三,查看自己的内核版本和声卡解码芯片是否被支持。
查看支持的内核版本

$ less alsa-driver-1.0.15/SUPPORTED_KERNELS

查看自己声卡解码芯片(如果系统不能识别声卡,可能无法由下面两个查到,那么查看你电脑配置单吧)

$ tail -2 /proc/asound/oss/sndstat

$ head -1 /proc/asound/card0/codec#0

比如我的 DELL D630 就显示的是下面这个

Codec: SigmaTel STAC9205

在 alsa-driver-1.0.20/sound/Documentation/ALSA-Configuration.txt 中查找自己声卡解码芯片对应的 model 名字,比如我的 STAC9205 对应的就是:

STAC9205/9254
ref Reference board
dell-m42 Dell (unknown)
dell-m43 Dell Precision
dell-m44 Dell Inspiron

如果存在对应的 model,恭喜你可以继续安装了。

第四,准备好编译环境,安装 gcc, libc 等等工具,还需要下载 Linux header,这是编译 ALSA 驱动必须的。

$ sudo apt-get install build-essential linux-headers-2.x.xx-xx(你的内核版本)

第五,编译安装,一般的 ./configure, make, make install 流程。注意的是驱动编译时候需要 module 名字,就是第三步中找到的 modle 对应的 module 名字,去掉 snd-即可。比如我的 STAC9205 对应的 modle 是 dell-m44,对应的 module 是 snd-hda-intel,那么 configure 时候需要加上 --with-cards=hda-intel。编译安装时遇到问题请仔细阅读源码附带的 INSTALL。

$ cd alsa-driver-1.0.15
$ ./configure --with-cards=MODULE_NAME
$ make
$ sudo make install
$ cd ../alsa-lib-1.0.15
$ ./configure
$ make
$ sudo make install
$ cd ../alsa-utils-1.0.15
$ ./configure
$ make
$ sudo make install

第六,配置 ALSA。
如果以前系统中没有使用 ALSA 驱动,可能需要 alsaconf 来配置,还要将 ALSA 加入内核模块中,我没有经验;
如果系统原来已经有 ALSA 驱动,但是没有识别声卡或者声音驱动有问题。那么理论上只需要在两个地方做改动:

添加 /etc/modprobe.d/sound 文件,内容为:

alias snd-card-0 snd-MODULE_NAME
alias snd-slot-0 snd-MODULE_NAME

比如我的就是:

alias snd-card-0 snd-hda-intel
alias sound-slot-0 snd-hda-intel

在 /etc/modprobe.d/alsa-base 中最后一行添加:

options snd-MODULE_NAME model=MODEL_NAME

比如我的就是:

options snd-hda-intel model=dell-m44

第七,重新启动查看效果,可以使用 alsamixer 调节声音设置。

其它都好,话筒没声
如果您已经安装了 alsa 驱动,话筒没声的问题可以通过设置解决。命令行输入 alsamixer:
1. Digital 那列,设置为 Analog I。
2. 点击 tab 制表键,在第一个 Capture 上点空格,显示出来红色的 "Capture, LR"字样表示选中,并把音量设置为 0。
3. Digital 那列,将音量设置为 67,这样能减少杂音。

由于各种各样的问题,比如 ALSA 驱动重复安装,内核版本,内核模块添加不全等等,本文并不保证能完美解决声卡问题。本人不是声卡驱动专家,本文只是阐述我解决声卡问题的做法,如果您在本文指导下仍然不能解决声卡问题,请您到熟悉的论坛上寻求帮助。请尽量不要发邮件给我,谢谢。

Ubuntu 7.10 的一些小问题

这两天用 Ubuntu 7.10 和 Compiz-Fusion 遇到了几个小问题:

1. Firefox 相关

Ubuntu 自带的 Firefox 2.0.0.6 好像有很多问题,用起来总不舒服。很诡异的一点是,如果启用默认的 Ubuntu Extension for Firefox,无法打开 Windows Live Space 的博客页面。我起初还以为是 Feedburner 的统计图片无法显示造成的假死呢,但在卸载 Ubuntu Extension for Firefox 后一切正常,这就让人搞不明白了 Ubuntu team 做出来这个东西究竟是想干吗?

2. Nvidia 显卡相关

我使用的驱动是 Nvidia 官方最新的 for linux 驱动,单屏是没有任何问题的。但当使用双屏时,就是 TwinView,笔记本是 1280x800 的分辨率,外接 LCD 是 1280x1024 的分辨率,这时候笔记本屏幕会使用外接 LCD 的高度,造成的效果是在笔记本屏幕上看不到工具栏,因为工具栏在底部...所以只能用 Alt+Tab 切窗口。

2. Compiz-Fusion 相关

开启了 Compiz-Fusion 3D 特效之后,由于吸附作用,窗口的标题栏会不正常,经常会跑到桌面面板工具栏的后面,或者说不停的在尝试吸附,表现就是标题栏闪屏。

在使用双屏时,第一次桌面立方体旋转需要很长时间,像死机了一样,我经常先切到 console 再重新切回 X window,但第一次旋转以后的旋转就很正常了,和单屏没什么区别,就是两个独立的屏一起转。

另外,双屏还是很耗资源的,虽然我是 1.8G 双核 CPU, 1G 内存, 256M 显卡,在跑双屏时应用程序反应会稍微慢一点儿,不过并不很明显,还是在可以忍受的范围之内。感觉上在 Linux 上使用双屏没有在 Windows 上快,不过,嘿嘿,Windows 双屏只能算两个桌面,我的 Ubuntu 双屏可是 8 个桌面!!!

北京马拉松 2007 和 QQ

早上来上班的路上发现知春路上多了很多人,每个路口都有站得笔直的警察和军人,偶尔还有几个保安,沿路二三十米一个带着治安巡逻红袖标的老大妈。本来我还为自己闯红灯惴惴,但想了一下查交通违规用不着这么大场面吧!到公司后马上到很少访问的新浪网上看了看新闻,哦,原来知春路是 2007 年北京马拉松的经过路段。反正是首都,总有这样那样的事情,比其它城市热闹多了。

最近有些厌学情绪,我不知道是因为前几天熬夜太多了精神不好还是因为天气转凉要有个适应期。虽然没有学多少,但也没有闲着,我基本连静静思考问题的时间都没有。前两天还抽空装了一下 Ubuntu Linux,在很新的硬件上安装 Linux 果然是一种很痛苦的事情,我忽然怀念起自己原来台式机落后的 Gforce MX440 显卡了。虽然安装了 Ubuntu 7.10,不过我还没有怎么用,这几天回去以后还是 Windows 用的比较多。

虽然我喜欢给别人宣扬开源的理念,可我从来不是一个彻底的 Linux 用户,从未把 Windows 从自己电脑上删除(曾经考虑过,但没实施),因为 Windows 也有很多让我不得不用的理由:我的 Samsung 手机数据传输,只有 Win 驱动;更包括很多 Office 文件,超星文件的使用问题;在中国的环境下,Linux 还没有适合中国用户的好的音乐播放器,好的下载软件,还有,现在对我来说很重要的一点是:好的语音聊天软件。不要和我提 Skype,在中科院(科学网)加南京大学(教育网+代理服务器)的条件下,还没有任何语音聊天软件比 QQ 更稳定(QQ 也不是很稳定)。所以我的 QQ 签名档是:“如果我QQ在线,说明正在和女朋友聊天,请勿打扰。闲时请使用 Gtalk 和我联系。”这是说真的,我只有在和女朋友语音聊天时候才会上 QQ,我们文字聊天也是使用 Gtalk 的。所以求求您了别对我的 QQ 签名档感到很好奇专门为此点开和我聊几句,请勿打扰就是请勿打扰,除非您觉得和我的关系非同一般。

讲到 QQ,现在恐怕很多人都会想起“珊瑚虫”的案子,我对那个倒不是很在意,侵犯知识产权就是侵犯知识产权,不要扯上什么企业道德,总之侵权是犯法的,受害者就有权告,受害者告不告和要求怎样,和侵权人的行为性质没有关系。我想说的是最近发现 QQ 也在悄悄改变,包括:可以使用“自定义状态”,像 MSN 和 Gtalk 的状态一样,会覆盖原始签名档;可以把 QQ 号与一个 Email 帐户绑定,然后对别人而言在所有显示 QQ 号码的地方都变成了 Email;据说 QQ Hummer 蜂鸟计划中有 Linux 版,希望能提供语音聊天功能,那样我又能减去一条不得不用 Win 的原因。

最近我的脑子里面没有一点安安静静的想法,所以,生活记录到这里吧。

在 Dell Latitude D630 上安装 Ubuntu LInux 7.10

摘要

这份文档主要描述了我在自己的 Dell Latitude D630 上安装 7.10 的过程,Ubuntu 7.10 现在在我的笔记本电脑上运行正常(准确说基本功能工作正常,因为我未做太多测试)。

目录

1. 介绍
2. 安装
3. 总结
4. 计算机硬件信息
5. 参考文章

1. 介绍

我最近买了一台 Dell Latitude D630 笔记本电脑。除了原装的 Windows XP Home Edition, 我已经在这台笔记本上安装 RHEL5,然后又安装了 Ubuntu 7.10 Linux 操作系统,下面是我安装 Gutsy Gibbon(Ubuntu 7.10) 的过程介绍。

2. 安装

[ 安装基本操作系统 ]
# wget http://releases.ubuntu.com/7.10/ubuntu-7.10-alternate-i386.iso
# wget http://archive.ubuntu.com/ubuntu/dists/gutsy/main/installer-i386/current/images/hd-media/initrd.gz
# wget http://archive.ubuntu.com/ubuntu/dists/gutsy/main/installer-i386/current/images/hd-media/vmlinuz
# cp vmlinuz initrd.gz /media/sda5
# echo "title Gutsy Install Entry" >> /boot/grub/menu.lst
# echo " root (hd0,4)" >> /boot/grub/menu.lst
# echo "kernel /vmlinuz root=/dev/ram ramdisk_size=40000 devfs=mount,dall" >> /boot/grub/menu.lst
# echo "initrd /initrd.gz" >> /boot/grub/menu.lst
# reboot
以上下载地址可以换成任何 Ubuntu 镜像站点的下载地址。重新启动时在 Grub 的启动列表中选择 Gusty Install Entry,接下来就是标准的安装过程了。关于里面硬盘分区的位置问题(即 (hd0,4), sda5) 等这些名字,每个计算机有所不同,请根据自己计算机分区和硬盘情况相应修改。最简单的办法,把那两个文件放在某个分区根目录下,一个分区一个分区的试。

[ 修改更新源列表 ]
添加以下行到 /etc/apt/source.list 中:
deb http://ubuntu.cn99.com/ubuntu/ gutsy main restricted
deb http://ubuntu.cn99.com/ubuntu/ gutsy-updates main restricted
deb http://ubuntu.cn99.com/ubuntu/ gutsy universe
deb http://ubuntu.cn99.com/ubuntu/ gutsy-updates universe
deb http://ubuntu.cn99.com/ubuntu/ gutsy multiverse
deb http://ubuntu.cn99.com/ubuntu/ gutsy-updates multiverse
deb http://ubuntu.cn99.com/ubuntu/ gutsy-security multiverse
deb http://ubuntu.cn99.com/ubuntu/ gutsy-security main restricted
deb http://ubuntu.cn99.com/ubuntu/ gutsy-security universe

在其它行前加上注释符 #

[ 更新操作系统,安装工具软件包 ]
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install libc6 libc6-dev
$ sudo apt-get install gcc-4.2
$ sudo apt-get install g++-4.2
libc6 和 gcc 主要是为下面安装显卡驱动准备的。

[ 下载 nVidia 最新显卡驱动 ]
$ wget http://us.download.nvidia.com/XFree86/Linux-x86/100.14.09/NVIDIA-Linux-x86-100.14.09-pkg1.run

[ 修改 root 用户密码 ]
$ sudo passwd

[ 安装显卡驱动 ]
$ sudo reboot
重新启动时在 Grub 的启动列表中选择 Ubuntu 7.10, kernel 2.6.22-14-generic (recovery mode),输入 root 用户密码,运行 NVIDIA-Linux-x86-100.14.09-pkg1.run,按照指示进行。安装成功后重新启动系统,在系统启动前跳出的对话框里选择配置显示效果,选择 1280x800 分辨率的基本配置,并在下方的使用宽屏选项栏打上勾。

[ 解决 DVD±RW 驱动问题 ]
$ cp /etc/modules /etc/modules.bak
$ cp /etc/modules /tmp
$ echo piix >> /tmp/modules
$ sudo cp /tmp/modules /etc/modules
$ sudo reboot
这个我未曾尝试,因为还没有在 Linux 下刻录过光盘。

[ 解决声卡驱动问题 ]
因为 Dell Latitude D630 声卡版本比较新,用 Ubuntu 自带的 ALSA 驱动无法配置。解决办法是手工安装 ALSA 最新版本的 driver, lib 和 utils。详细步骤请参考:
http://blog.solrex.org/articles/solve-ubuntu-intel-soundcard-problem-with-latest-alsa-driver.html

[ 安装中文输入法 ]
首先在 System->Administration->Language Support 中选择安装中文支持,自动安装完中文支持以后:
$ sudo apt-get install scim-bridge-agent
$ sudo im-switch -s scim -z default
在 /etc/X11/xinit/xinput.d/scim 中找到以下两行并更改:
GTK_IM_MODULE=scim-bridge
QT_IM_MODULE=xim
如果 im-switch 不成功,可以手动将设置文件 copy 到 default 去
$ sudo cp /etc/X11/xinit/xinput.d/default /etc/X11/xinit/xinput.d/default.bak
$ sudo cp /etc/X11/xinit/xinput.d/scim /etc/X11/xinit/xinput.d/default
$ sudo reboot
如果重启后 Firefox 仍然不可以使用中文输入,可以在 Firefox 的启动脚本 /usr/lib/firefox/run-mozilla.sh 中最后 exit 前面加这么一句:
export GTK_IM_MODULE=xim

[ 安装 Windows 中文字体 ]
未在电脑上安装 Windows 操作系统者不需要此步骤,已安装者也可以选择跳过。我写了一个脚本做这个工作,可以下面链接下载。

$ wget http://share.solrex.org/scripts/install_win_CN_fonts_to_linux.sh
$ sudo sh install_win_CN_fonts_to_linux.sh
重新登录 X window

[ 安装 compiz-fusion 3D 桌面效果 ]
为了这一步的安装,你需要修改一下 xorg.conf 文件,请参考:http://compiz.org/NVidia。需要特别注意的是,如果选择了官方驱动,请不要安装任何 Ubuntu 软件仓库里的驱动。你可以从下面得到我的 xorg.conf 文件。
$ wget http://share.solrex.org/scripts/xorg.conf
$ sudo apt-get install compiz-fusion-plugins-* compizconfig-settings-manager
安装完成以后在 System->Preference->Appearance 中的 Visual Effects 中多出一项 Custom,选择以后,点右侧的 Preferences 配置效果。
注:最新版本的 Ubuntu 官方驱动已经支持 D630 的显卡,在选择 Custom选项时会自动安装驱动。安装完驱动后自动配置的 xorg.conf文件为:
http://share.solrex.org/scripts/xorg.conf.glx 

3. 总结

硬件信息 Linux 下状态 备注
Intel Core2 Duo T7100 @ 1.8 GHz 工作正常
14.1" WXGA TFT (1280x800) 工作正常
nVidia Corporation Quadro NVS 135M 工作正常 手工安装驱动程序
1 GB RAM (2 x 512 MB DDR2 533 MHz) 工作正常
120 GB HDD (Hitachi HTS722016K9A300) 工作正常
DVD±RW (PBDS DVD±RW DS-8W1P) 未验证 据说可以在 /etc/modules 增加 piix 解决.
Broadcom NetXtreme BCM5755M Gigabit Ethernet 工作正常
Broadcom Corporation BCM94311MCG wlan mini-PCI 未验证
Intel 82801H sound card (ICH8) 工作正常 Ubuntu 7.10 参见上面讲的处理方法.
Memory card reader 未验证
Internal 56k modem 未验证

4. 计算机信息

[ 所有 pci 设备 ]
$ lspci
00:00.0 Host bridge: Intel Corporation Mobile PM965/GM965/GL960 Memory Controller Hub (rev 0c)
00:01.0 PCI bridge: Intel Corporation Mobile PM965/GM965/GL960 PCI Express Root Port (rev 0c)
00:1a.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Contoller #4 (rev 02)
00:1a.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #5 (rev 02)
00:1a.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #2 (rev 02)
00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 02)
00:1c.0 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 1 (rev 02)
00:1c.1 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 2 (rev 02)
00:1c.5 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 6 (rev 02)
00:1d.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #1 (rev 02)
00:1d.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #2 (rev 02)
00:1d.2 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #3 (rev 02)
00:1d.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #1 (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev f2)
00:1f.0 ISA bridge: Intel Corporation 82801HEM (ICH8M) LPC Interface Controller (rev 02)
00:1f.1 IDE interface: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) IDE Controller (rev 02)
00:1f.2 IDE interface: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) SATA IDE Controller (rev 02)
00:1f.3 SMBus: Intel Corporation 82801H (ICH8 Family) SMBus Controller (rev 02)
01:00.0 VGA compatible controller: nVidia Corporation Quadro NVS 135M (rev a1)
03:01.0 CardBus bridge: O2 Micro, Inc. Cardbus bridge (rev 21)
03:01.4 FireWire (IEEE 1394): O2 Micro, Inc. Firewire (IEEE 1394) (rev 02)
09:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5755M Gigabit Ethernet PCI Express (rev 02)
0c:00.0 Network controller: Broadcom Corporation BCM94311MCG wlan mini-PCI (rev 01)

以下省略了,只是写一下查看这些信息的命令
[ 电池信息 ]
$ less /proc/acpi/battery/BAT0/info
[ CPU 信息 ]
$ less /proc/cpuinfo
[ 内存信息 ]
$ less /proc/meminfo
[ 内核消息 ]
$ dmesg
[ 加载的内核模块 ]
$ lsmod
[ X.org 设置文件(显示及输入设置)]
$ less /etc/X11/xorg.conf

5. 参考文章

* HARDWARE Dell Latitude D630
* My Ubuntu Installation
* Ubuntu on my Dell Latitude D630

在双系统环境中使用Windows字体美化Linux中文字体

安装完 Linux 操作系统的中文支持后,看到那些难看的字体是不是很不爽,下面这个脚本就帮助你使用 Windows 字体来自动美化 Linux 中文字体。

下面的脚本使用 windows 自带字体美化 Linux 字体,主要是将软件中文字体使用宋体,终端使用黑体替换。脚本源程序可以在 http://share.solrex.org/scripts/install_win_CN_fonts_to_linux.sh 下载到。

首先确保 windows 系统所在分区被挂载到 /media 目录下将以下内容保存为脚本文件:install_win_CN_fonts_to_linux.sh

#!/bin/bash
check_answer()
{
    case $1 in
        y|Y|Yes|yes|YES)
            return 0;
            ;;
        n|N|No|no|NO)
            return 1;
            ;;
        *) echo "Answer either yes or no, default is yes"
            return 2
            ;;
    esac
}

LIN_FONTS_DIR=/usr/share/fonts/zh_CN/TrueType
LANG_SEL_FILE=/etc/fonts/language-selector.conf
SEARCH_DIR=/media

echo -n "This script is for installing Windows Chinese fonts to Linux on a dual-OS-installed computer. And the writer doesn't promise it will work on your system. Do you want to continue?(y/n)[y]:"
read ANS_STR
: ${ANS_STR:="y"}
check_answer $ANS_STR
ANS=$?
if [ $ANS -ne 0 ]; then
    echo "Exit."
    exit
fi

echo -n "There might be license problems, i.e. you have no permission to use Windows fonts in other program except Windows OS. Do you want to continue?(y/n)[y]:"
read ANS_STR
: ${ANS_STR:="y"}
check_answer $ANS_STR
ANS=$?
if [ $ANS -ne 0 ]; then
    echo "Exit."
    exit
fi

echo -n "You run this script with root account or "sudo" command?(y/n)[y]:"
read ANS_STR
: ${ANS_STR:="y"}
check_answer $ANS_STR
ANS=$?
if [ $ANS -ne 0 ]; then
    echo "Exit."
    exit
fi

echo -n "You mounted Windows System partation "C:\" to /media directory?(y/n)[y]:"
read ANS_STR
: ${ANS_STR:="y"}
check_answer $ANS_STR
ANS=$?
if [ $ANS -ne 0 ]; then
    echo "Exit."
    exit
fi

echo "Searching for windows's fonts directory..."
echo "That may take a few minutes, please wait."
WIN_FONTS_DIR=`echo $(find $SEARCH_DIR -name simsun.ttc -type f) | sed s/simsun.ttc//g`
if [ -d $WIN_FONTS_DIR ]; then
    while true; do
        echo "Windows fonts dir found! Your windows fonts directory is: "
        echo -n ""$WIN_FONTS_DIR" Is it right?(y/n)[y]:"
        read ANS_STR
        : ${ANS_STR:="y"}
        check_answer $ANS_STR
        ANS=$?
        if [ $ANS -eq 0 ]; then
            break
        elif [ $ANS -eq 1 ]; then 
            echo "Please enter path to your windows fonts dir?"
            read ANS_STR
            if [ -d $ANS_STR ]; then
                WIN_FONTS_DIR=$ANS_STR
                break
            else
                echo "Your input is not a dir. Exit."
                exit
            fi
        else
            echo "Unrecognized input."
        fi
    done
else
    echo "Can not find windows fonts directory. "
    echo -n "Please enter path to your windows fonts dir:"
    read ANS_STR
    if [ -d $ANS_STR ]; then
        WIN_FONTS_DIR=$ANS_STR
    else
        echo "Your input is not a dir. Exit."
        exit
    fi
fi

echo "Entering $WIN_FONTS_DIR"
cd $WIN_FONTS_DIR

echo "Creating Linux fonts directory: $LIN_FONTS_DIR..."
mkdir -p $LIN_FONTS_DIR
if [ $? -ne 0 ]; then
    echo "Creating Linux fonts dir failed. Exit."
    exit
fi

echo "Copying windows fonts to linux fonts dir... sim*|tahoma|tohomabd.ttf"
cp sim* SimSun18030.ttc tahoma.ttf tahomabd.ttf $LIN_FONTS_DIR
if [ $? -ne 0 ]; then
    echo "Copying windows fonts to linux fonts dir failed. Exit."
    exit
fi

echo "Changing font files' access permissions.."
chmod 644 $LIN_FONTS_DIR/*

echo "Entering $LIN_FONTS_DIR"
cd $LIN_FONTS_DIR

echo "Creating an index of scalable font files in $LIN_FONTS_DIR for X..."
mkfontscale
if [ $? -ne 0 ]; then
    echo "Creating an index of scalable font files for X failed. Exit."
    exit
fi

echo "Creating an index of X font files in $LIN_FONTS_DIR"
mkfontdir
if [ $? -ne 0 ]; then
    echo "Creating an index of X font files in $LIN_FONTS_DIR failed. Exit."
    exit
fi

echo "Creating an index of FreeType font files in $LIN_FONTS_DIR"
fc-cache $LIN_FONTS_DIR
if [ $? -ne 0 ]; then
    echo "Creating an index of FreeType font files in $LIN_FONTS_DIR failed. Exit."
    exit
fi

echo "Backing up $LANG_SEL_FILE"
if [ -f $LANG_SEL_FILE ]; then
    cp $LANG_SEL_FILE $LANG_SEL_FILE.bak
fi

echo "Generating new $LANG_SEL_FILE... for language select"
echo '
<fontconfig>
  <alias>
    <family>serif</family>
      <prefer>
        <family>Bitstream Vera Serif</family>
        <family>SimSun</family>
        <family>DejaVu Serif</family>
        <family>AR PL ShanHeiSun Uni</family>
        <family>AR PL ZenKai Uni</family>
      </prefer>
  </alias>
  <alias>
    <family>sans-serif</family>
      <prefer>
        <family>Bitstream Vera Sans</family>
        <family>SimSun</family>
        <family>DejaVu Sans</family>
        <family>AR PL ShanHeiSun Uni</family>
        <family>AR PL ZenKai Uni</family>
      </prefer>
  </alias>
  <alias>
    <family>monospace</family>
      <prefer>
        <family>DejaVu Sans Mono</family>
        <family>Bitstream Vera Sans Mono</family>
        <family>SimHei</family>
    </prefer>
  </alias>

<match target="font" >
  <test name="family" compare="contains" >
    <string>Song</string>
    <string>Sun</string>
    <string>Kai</string>
    <string>Ming</string>
  </test>
  <test compare="more_eq" target="pattern" name="weight" >
    <int>180</int>
  </test>
  <edit mode="assign" name="embolden" >
    <bool>true</bool>
  </edit>
</match>

<match target="font" >
  <test name="family" compare="contains" >
    <string>Song</string>
    <string>Sun</string>
    <string>Kai</string>
    <string>Ming</string>
  </test>
  <edit name="globaladvance">
    <bool>false</bool>
  </edit>
  <edit name="spacing">
    <int>0</int>
  </edit>
  <edit name="hinting">
    <bool>true</bool>
  </edit>
  <edit name="autohint">
    <bool>false</bool>
  </edit>
  <edit name="antialias" mode="assign">
    <bool>true</bool>
  </edit>
  <test name="pixelsize" compare="less_eq">
    <int>18</int>
  </test>
  <edit name="antialias" mode="assign" >
    <bool>false</bool>
  </edit>
</match>

<match target="pattern">
  <test name="family">
    <string>SimSun</string>
    <string>SimSun-18030</string>
    <string>AR PL ShanHeiSun Uni</string>
    <string>AR PL New Sung</string>
    <string>MingLiU</string>
    <string>PMingLiU</string>
  </test>
  <edit binding="strong" mode="prepend" name="family">
    <string>Tahoma</string>
    <string>Verdana</string>
  </edit>
</match>

<match target="pattern">
  <test name="family">
    <string>宋体</string>
  </test>
  <edit name="family" mode="assign">
    <string>SimSun</string>
  </edit>
</match>
<match target="pattern">
  <test name="family">
    <string>新宋体</string>
  </test>
  <edit name="family" mode="assign">
    <string>SimSun</string>
  </edit>
</match>
<match target="pattern">
  <test name="family">
    <string>仿宋_GB2312</string>
  </test>
  <edit name="family" mode="assign">
    <string>FangSong_GB2312</string>
  </edit>
</match>
<match target="pattern">
  <test name="family">
    <string>楷体_GB2312</string>
  </test>
  <edit name="family" mode="assign">
    <string>KaiTi_GB2312</string>
  </edit>
</match>
<match target="pattern">
  <test name="family">
    <string>黑体</string>
  </test>
  <edit name="family" mode="assign">
    <string>SimHei</string>
  </edit>
</match>
</fontconfig> ' > $LANG_SEL_FILE
echo "Finished. Please quit your X session and relogin."
echo "If you have problems on start X(sometimes happened on Ubuntu 7.04.), please delete $LIN_FONTS_DIR and copy the backuped $LANG_SEL_FILE.bak to $LANG_SEL_FILE. Then do "fc-cache" with no options. That may work."

执行:
sudo sh ./install_win_CN_fonts_to_linux.sh

登出 Xwindow,再重新登录即可。