2006-10-09

CPU的功能和组成

5.1 CPU的功能和组成

5.1.1 CPU的功能

使用CPU可以自动完成取出指令和执行指令的任务。

CPU的基本功能:

l 指令控制:程序的顺序控制,称为指令控制。

l 操作控制:管理并产生由内存取出的每条指令的操作信号,把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作。

l 时间控制:对各种操作实施时间上的定时,称为时间控制。

l 数据加工:所谓数据加工,就是对数据进行算术运算和逻辑运算处理。

5.1.2 CPU的基本组成

传统CPU的组成:运算器、控制器。(在诺曼机的定义中)

现代的CPU的基本部分有:运算器、Cache和控制器。

控制器的组成:程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器。控制器的主要功能:

1) 从内存中取出一条指令,并指出下一条指令在内存中的位置。

2) 对指令进行译码或测试,并产生相应的操作控制信号,以便启动规定的动作。

指挥并控制CPU、内存和输入/输出设备之间数据流动的方向。

运算器的组成:算术逻辑单元(ALU)、累加寄存器、数据缓冲寄存器和状态条件寄存器。运算器的主要功能:

1) 执行所有的算术运算。

2) 执行所有的逻辑运算,并进行逻辑测试。

这一章的主要内容是对控制器的讲解。

5.1.3 CPU中的主要寄存器

CPU中最基本的六类寄存器:指令寄存器(IR)、程序计数器(PC)、地址寄存器(AR)、缓冲寄存器(DR)、累加寄存器(AC)、状态条件寄存器(PSW)。

5.1.4 CPU操作控制器与时序产生器

操作控制器可分为:

l 硬布线控制器,它是采用组合逻辑技术来实现的;

l 微程序控制器,它是采用存储逻辑来实现的;

l 门阵列控制器,它是吸收前两种的设计思想来实现的。

本章重点介绍微程序控制器,因为这种控制方式较为灵活。

 
5.2 指令周期

5.2.1 指令周期的基本概念

存储器中指令和数据的区分,使用的是指令周期的方法。

指令周期是取出并执行一条指令的时间,由于各种指令的操作功能不同,有的简单,有的复杂,因此各种指令的指令周期是不尽相同的。

指令周期常常用若干个CPU周期数来表示,CPU周期也称为机器周期。通常用内存中读取一个指令字的最短时间来规定CPU周期。

一个CPU周期时间又包含有若干个时钟周期。

通常情况下,取出和执行任何一条指令所需的最短时间为两个CPU周期。

5.2.2 CLA指令的指令周期

CLA指令是一个非访内指令,需要两个CPU周期,其中取指令阶段需要一个CPU周期,执行指令阶段需要一个CPU周期。

在第—个CPU周期,即取指令阶段,CPU完成三件事:(1)从内存取出指令;(2)对程序计数器PC加1,以便为取下一条指令做好准备;(3)对指令操作码进行译码或测试,以便确定进行什么操作。

在第二个CPU周期,即执行指令阶段,CPU根据对指令操作码的译码或测试,进行指令所要求的操作。

具体描述见P158~P159。

5.2.3 ADD指令的指令周期

ADD指令是一条访问内存取数并执行加法的指令,它由三个CPU周期组成,第一个是取指令周期;第二个CPU周期将操作数的地址送往地址寄存器并完成地址译码,在第三个CPU周期中从内存取出操作数并执行相加的操作。

5.2.4 STA指令的指令周期

第一个CPU周期为取指令、译码阶段,第二个CPU周期为送操作数地址,第三个CPU周期是送操作数和执行写操作阶段。

5.2.5 NOP指令和JMP指令的指令周期

NOP指令在第二CPU周期中不发出任何控制信号。

JMP指令是一个程序控制指令,它在第二CPU周期中只是改变了PC的内容。

5.2.6 用方框图语言表示指令周期

公操作的概念:是指一条指今执行完毕后,CPU所开始进行的一些操作,这些操作正要是CPU对外设请求的处理,如中断处理、通道处理等。

方框图的画法是一项较为重要的内容,见例1。

 
5.3 时序产生器和控制方式

5.3.1 时序信号的作用和体制

对时序信号的理解,CPU的时间表。

CPU 识别指令和数据的方法:从时间上来说,取指令事件发生在指令周期的第一个CPU周期中,即发生在“取指令”阶段,而取数据事件发生在指令周期的后面几个 CPU周期中,即发生在“执行指令”阶段。从空间上来说,如果取出的代码是指令,那么一定送往指令寄存器,如果取出的代码是数据,那么一定送往运算器。这个方法体现了时序控制的重要性。

对电位-脉冲制的理解:脉冲到达之前,电平信号必须要稳定。

硬布线控制器中,时序信号往往采用主状态周期-节拍电位-节拍脉冲三级体制。—个节拍电位表示一个CPU周期的时间,它表示了一个较大的时间单位;在一个节拍电位中又包含若干个节拍脉冲,以表示较小的时间单位;而主状态周期可包含若干个节拍电位,所以它是最大的时间单位。

在微程序控制器中,时序信号比较简单,一般采用电位-节拍脉冲二级体制。就是说,它只有一个节拍电位,在节拍电位中又包含若干个节拍脉冲(时钟周期)。节拍电位表示一个CPU周期的时间,而节拍脉冲把一个CPU周期划分成几个较小的时间间隔。

5.3.2 时序信号产生器

微程序控制器中使用的时序信号产生器由:时钟源、环形脉冲发生器、节拍脉冲和读写时序译码逻辑、启停控制逻辑等部分组成。

5.3.3 控制方式

形成控制不同操作序列的时序信号的方法,称为控制器的控制方式。常用的有同步控制、异步控制、联合控制三种方式。

同步控制方式:在任何情况下,已定的指令在执行时所需的机器周期数和时钟周期数都固定不变。

异步控制方式:每条指令、每个操作控制信号需要多少时间就占用多少时间。

联合控制方式:同步控制和异步控制的结合,有两种情况。一种情况是,大部分操作序列安排在固定的机器周期中,对某些时间难以确定的操作则以执行部件的“回答”信号作为本次操作的结束。另一种情况是,机器周期的节拍脉冲数固定,但是各条指令周期的机器周期数不固定。

 
5.4 微程序控制器

优点:微程序控制器同组合逻辑控制器相比较,具有规整性、灵活性、可维护性等一系列优点,因而在计算机设计中逐渐取代了早期采用的组合逻辑控制器,并已被广泛地应用。

基本思想:微程序设计技术是利用软件方法来设计硬件的一门技术。即仿照通常的解题程序的方法,把操作控制信号编成所谓的“微指令”,存放到一个只读存储器里。当机器运行时,一条又—条地读出这些微指令,从而产生全机所需要的各种操作控制信号,使相应部件执行所规定的操作。

5.4.1 微命令和微操作

控制部件与执行部件之间联系的方法:

l 控制部件与执行部件的一种联系,就是通过控制线。控制部件通过控制线向执行部件发出各种控制命令,通常把这种控制命令叫做微命令,而执行部件接受微命令后所进行的操作,叫做微操作。

l 控制部件与执行部件之间的另一种联系是反馈信息。执行部件通过反馈线向控制部件反映操作情况,以便使控制部件根据执行部件的“状态”来下达新的微命令,这也叫做“状态测试”。

微操作在执行部件中是最基本的操作。微操作可分为两种:

l 相容性的微操作,是指在同时或同一个CPU周期内可以并行执行的微操作;

l 相斥性的微操作,是指不能在同时或不能在同一个CPU周期内并行执行的微操作。

5.4.2 微指令和微程序

在机器的一个CPU周期中,一组实现一定操作功能的微命令的组合,构成一条微指令。一般由操作控制和顺序控制两大部分组成。

一条机器指令的功能是用许多条微指令组成的序列来实现的,这个微指令序列通常叫做微程序。

5.4.3 微程序控制器原理框图

微程序控制器原理框图如图5.24所示。

它主要由:

l 控制存储器:用来存放实现全部指令系统的微程序,它是一种只读型存储器。要求速度快,读出周期短。

l 微指令寄存器:微指令寄存器用来存放由控制存储器读出的一条微指令信息,分为微地址寄存器和微命令寄存器两个部分。其中微地址寄存器决定将要访问的下一条微指令的地址,微命令寄存器则保存一条微指令的操作控制字段和判别测试字段的信息。

l 地址转移逻辑:地址转移逻辑就承担自动完成修改微地址的任务。

5.4.4 微程序举例

注意微指令的划分,微命令的执行。

5.4.5 CPU周期与微指令周期的关系

在串行方式的微程序控制器中,微指令周期等于读出微指令的时间加上执行该条微指令的时间。一般来讲,一个微指令周期时间设计得恰好和CPU周期时间相等。

5.4.6 机器指令与微指令的关系

1) 一条机器指令对应一个微程序,这个微程序是由若干条微指令序列组成的。因此,一条机器指令的功能是由若干条微指令组成的序列来实现的。简言之,一条机器指令所完成的操作划分成若干条微指令来完成,由微指令进行解释和执行。

2) 从指令与微指令,程序与微程序,地址与微地址的一一对应关系来看,前者与内存储器有关,后者与控制存储器有关。与此相关,也有相对应的硬设备。

3)每一个CPU周期就对应一条微指令。

 
5.5 微程序设计技术

微程序设计的关键是如何确定微指令的结构。

5.5.1 微指令编码

l 直接表示法:特点是操作控制宇段中的每一位代表一个微命令。这种方法的优点是简单直观,其输出直接用于控制。缺点是微指令字较长,因而使控制存储器容量较大。

l 编码表示法:编码表示法是把一组相斥性的微命令信号组成一个小组(即一个字段),然后通过小组(字段)译码器对每一个微命令信号进行译码,译码输出作为操作控制信号。优点是可以用较小的二进制信息位表示较多的微命令信号,可使微指令字大大缩短。缺点是微程序的执行速度稍稍减慢。

l 混合表示法:这种方法是把直接表示法与字段编码法混合使用,以便能综合考虑微指令字长、灵活性和执行微程序速度等方面的要求。

5.5.2 微地址形成的方法

产生后继地址的方法有两种:

l 计数器法方式:这种方法同用程序计数器来产生机器指令地址的方法相类似。计数器方式的基本特点是:微指令的顺序控制字段较短,微地址产生机构简单。但是多路并行转移功能较弱,速度较慢,灵活性较差。

l 多路转移方式:一条微指令具有多个转移分支的能力称为多路转移。多路转移方式的特点是:能以较短的顺序控制字段配合,实现多路并行转移,灵活性好,速度较快,但转移地址逻辑需要用组合逻辑方法设计。

5.5.3 微指令格式

水平型微指令:一次能定义并执行多个并行操作微命令的微指令,叫做水平型微指令。

垂直型微指令:微指令中设置微操作码字段,采用微操作码编译法,内微操作码规定微指令的功能,称为垂直型微指令。垂直型微指令的结构类似于机器指令的结构。

比较:

l 水平型微指令并行操作能力强,效率高,灵活性强。垂直型微指令则较差。

l 水平型微指令执行一条指令的时间短,垂直型微指令执行时间长。

l 由水平型微指令解释指令的微程序,具有微指令字比较长,但微程序短的特点。垂直型微指令则相反,微指令字比较短而微程序长。

l 水平型微指令用户难以掌握,而垂直型微指令与指令比较相似,相对来说,比较容易掌握。

5.5.4 动态微程序设计

对应于一台计算机的机器指令只有一组微程序,而且这一组微程序设计好之后,一般无需改变而且也不好改变,这种微程序设计技术称为静态微程序设计。

通过改变微指令和微程序来改变机器的指令系统,这种微程序设计技术称为动态微程序设计。

 
5.6 硬布线控制器

硬布线控制器是一种由门电路和触发器构成的复杂树形网络。

硬布线控制器是早期设计计算机的一种方法,但是随着新一代机器及VLSI技术的发展,硬布线逻辑设计思想又得到了重视。

与微程序控制相比,硬布线控制的速度较快。其原因是微程序控制中每条微指令都要从控存中读取一次,影响了速度,而硬布线控制主要取决于电路延迟。因此,近年来在某些超高速新型计算机结构中,又选用了硬布线控制,或与微程序控制器混合使用。

 
5.7 传统CPU

5.7.1 M68000 CPU

为一典型的单总线结构的微处理器。M6800的主存和外设是统一编址的。

5.7.2 Intel 8088 CPU

产生于8086之后,被设计成准16位结构,为了和早期的8085兼容。

5.7.3 IBM 370系列CPU

使用了定点运算和浮点运算两种部件。

5.7.4 Intel 80486 CPU

使用了流水线技术。

 
5.8 流水CPU

5.8.1 并行处理技术

标准的冯·诺依曼体系结构,采用的是串行处理,即一个时刻只能进行一个操作。

并行性的两种含义:

l 同时性:两个以上事件在同一时刻发生。如多机系统中,同一时刻多个进程在运行。

l 并发行:两个以上事件在同一间隔内发生。如并发程序,某一时刻CPU中只有一个进程在运行,而在一个时间段内,多个进程同时运行。

并行性的三种形式:

时间并行:即使用流水处理部件,时间重叠。

空间并行:设置重复资源,同时工作。

时间并行+空间并行:时间重叠和资源重复的综合应用。

5.8.2 流水CPU的结构

流水CPU的组成:指令部件,指令队列,执行部件。

执行段的速度匹配问题的解决:

l 将执行部件分为定点执行部件和浮点执行部件两个可并行执行的部分,分别处理定点运算指令和浮点运算指令;

l 在浮点执行部件中,又有浮点加法部件和浮点乘/除部件,它们也可以同时执行不同的指令;

l 浮点运算部件都以流水线方式工作。

标量流水计算机:只有一条指令流水线。

超标量流水计算机:具有两条以上的指令流水线。

常见的流水线形式:指令流水线、算术流水线、处理机流水线。

5.8.3 流水线中的主要问题

l 资源相关:指多条指令进入流水线后在同一机器时钟周期内争用同一个功能部件所发生的冲突。
解决方法:指令推迟执行,或是设置重复资源。

l 数据相关:在一个程序中,如果必须等前一条指令执行完毕后,才能执行后一条指令,这两条指令就是数据相关。
解决方法:定向传送技术。

l 控制相关:当执行转移指令时,根据转移条件是否发生来控制指令的执行顺序。
解决方法:延迟转移法、转移预测法。

5.8.4 奔腾CPU

主要掌握其超标量流水线、指令Cache和数据Cache、浮点单元、转移预测四个方面的特性。

 
5.9 RISC CPU

5.9.1 RISC机器的特点

RISC的三个基本要素:

l 有限、简单的指令集

l CPU配备大量的通用寄存器

l 强调对指令流水线的优化

RISC机器的特征:

l 使用等长指令。

l 寻址方式少,绝不出现存储器间接寻址。

l 只有取数、存数指令访问存储器。指令中最多出现RS型指令,绝不出现SS型指令。

l 指令集中指令数一般少于100条,指令格式少于4种。

l 指令功能简单,控制器多采用硬布线方式。

l 大部分指令在一个机器周期内完成。

l CPU中通用寄存器数量相当多。

l 强调通用寄存器和流水线的优化使用。

l —般用高级语言编程,特别重视编译优化工作。以减少程序执行时间。

CISC与RISC的比较见表5.6。

5.9.2 RISC CPU实例

 
5.10 多媒体CPU

5.10.1 多媒体技术的主要问题

l 图像与声音的压缩技术

l 适应多媒体技术的软件技术

l 计算机系统结构方面的技术

5.10.2 MMX技术

MMX指令是一种SIMD并行处理指令,其先进性主要体现在:

l SIMD结构

l 饱和运算方式

l 积和运算方式

l 比较指令

l 转换指令

5.10.3 动态执行技术

动态执行技术就是通过预测程序流来调整指令的执行,并且分析程序的数据流来选择指令执行的最佳顺序。

实现动态执行的关键是使用一个指令缓冲池以开辟一个较长的指令窗口,以便允许执行单元能在一个较大的范围内调遣和执行已译码过的程序指令流。

转自:
http://hanlin2.hbu.edu.cn/cmc/dzja/zcyl/ch5.htm

2006-10-06

在DrapperDrake上利用VMware安装WinXP虚拟机

对Windows说byebye不是一朝一夕的事,毕竟Win平台上还有少优秀的软件。再加上有些软件厂商还没有为他们的产品开发Linux版本,使我们有时不得不用一下Windows。

Windows和Linux双启动是其中一种解决方案,但由于每次切换都必须重要启动电脑,多有不便。因此,在Linux平台搭设一个Windows虚拟机不失为一种较好的解决方案。

Vmware(Virtual Machine ware)就是用来搭建虚拟机的工具。该工具不仅可以搭设Windows虚拟机,还可以搭Linux、Novell Netware、Sun Solaris等。Vmware支持在Linux下运行 ,其VMware Server版可免费下载使用。

本文记录了自己在Ubuntu Dapper,安装VMware Server 1.0.1,并用之搭建WinXP的过程。如有遗漏和错误,敬请指正。

硬件环境: Compaq Presario X1000, Centrino 1.4, 768 RAM, 40G, Radeon 9200
系统环境: Ubuntu Dapper已经全部更新。Kernel为2.6.15-27-386

1. 准备编译工具 由于安装VMware过程中需要编译,所以要准备编译工具。
$sudo apt-get install build-essential
(以下操作直到"2. 安装Linux头文件"不一定执行,如果你启动VMware遇到问题,再返回来看。) 查看你的Ubuntu是用哪个版本的gcc编译的。
$cat /proc version

我的例子显示:

Linux version 2.6.15-27-386 (buildd@terranova) (gcc version 4.0.3 (Ubuntu 4.0.3-1ubuntu5)) #1 PREEMPT Sat Sep 16 01:51:59 UTC 2006

以上显示是gcc 4.0.3 查看你的gcc 的版本号是否与之相同.
$gcc -v
如不同,则需要下载与之匹配的版本。例如:

$apt-get install gcc-3.4
$apt-get install g++-3.4
$export CC=/usr/bin/gcc-3.42.
安装Linux头文件

$uname -r $sudo apt-get install linux-headers-'kernel version'
我的例子是:
$sudo apt-get install linux-headers-2.6.15-27-3863. 安装xinetd
$sudo apt-get install xinetd
4. 下载并安装VMWare Server


上面的网站可以下载VMware Server,大约有100M。注册可以免费获得serial number。
$tar xvfz Vmware-server-1.0.1-29996.tar.gz
$cd vmware-server-distrib
$sudo ./vmware-install.pl
在安装的过程中会出现许多提示,在多数情况下,用缺少的设置即可(敲回车)。上面最后一行命令也可以为:

$sudo ./vmware-install.pl d
对提示问题全以缺省设置回答。 最后你会被要求输入serial number。vmware-config.pl随之将自动运行 ,同样还是建议用缺少的设置。
5. VMware安装完毕 如果安装成功,Applications -> System Tools 下面将出现VMware Server Console图标。启动它,将出现下面的画面(见下图)。














如果你的VMware Server不能启动,可能是安装过程中有错误。欢迎你把安装过程中的提示贴出来,大家一起讨论。

6. 建立Windows XP虚拟机 点击VMwae Server Console的按钮Create a new virtual machine,在New Virtual Machine Wizard里选择你的搭建 的操作系统-Microsoft Windows;在Version下面选择Windows XP Professional(见下图)。


7. 配置WinXP的上网方式和分区大小 WinXP的上网方式选择(安装好虚拟机后也可以更改配置),我选择的Use bridged networking(见下图)















分区大小是设置WinXP最大可以用到的磁盘空间。我用的是8G(见下图)。



8. 安装Win XP Win XP虚拟机配置完毕后,将出现Windows XP Professional标签页。插入WinXP安装光盘,点Power on the virtual machine,即开始安装Win XP了。 安装过程和独立安装Win Xp一样的。安装成功后即可使用WinXP了(见下图)。


总结:
在Ubuntu 6.06 (Dapper Drake)下安装VMware Server几乎不需要设置。运行WinXP感觉速度较慢,连移到鼠标都会有延迟(我的机器是Compaq Presario X1000, Centrino 1.4, 768 RAM, 40G, Radeon 9200,分配给Win XP 512M内存)。如果只是仅仅用Win上的几个小程序,模拟整个WinXP有点得不偿失。也许会有更好的办法。
参考文章:
1. 使用VMWare Player安装Windows 2000 虚似机, wolfg http://forum.ubuntu.org.cn/viewtopic.php?t=22330
2. Guide to Vmware on Breezy Preview, denisesballs http://www.ubuntuforums.org/showthread.php?t=65638
3. How to install Vmware Server on Ubuntu 6.06 LTS (Dapper Drake), Till Brehm http://www.howtoforge.com/ubuntu_vmware_server

安装Java环境 Ubuntu 6.06

为什么要在Ubuntu下安装Java环境?因为许多应用软件都必须有Java(JRE)的支持(如LumaQQ,Azureus等)。本文将介绍如何在Ubuntu 6.06下设置Sun Java环境。
安装Java环境
打开终端,执行以下命令,或使用《新立得软件管理器》,在其中分别搜索“sun-java5-jre“和“sun-java5-jdk”并标记安装。

sudo apt-get install sun-java5-jre

# 如果空间富裕,建议安装一个JDK。呵呵
sudo apt-get install sun-java5-jdk


设置当前默认的java解释器

sudo update-alternatives --config java

执行后会出现类似如下的画面:

There are 4 alternatives which provide `java'.

Selection Alternative
-----------------------------------------------
*+ 1 /usr/lib/jvm/java-gcj/jre/bin/java
2 /usr/bin/gij-wrapper-4.1
3 /usr/bin/gij-wrapper-4.0
4 /usr/lib/jvm/java-1.5.0-sun/jre/bin/java

Press enter to keep the default[*], or type selection number:

输入 有包含 "sun" 的行的前面的数字。如上面显示,则输入 4,然后回车确定。
设置SUN JAVA5 中文字体(可选)


使用此配置:http://paste.ubuntu.org.cn/323 替换/etc/java-1.5.0-sun/fontconfig.properties

sudo gedit(kate) /etc/java-1.5.0-sun/fontconfig.properties
复制 http://paste.ubuntu.org.cn/323 的内容进来,然后保存、退出。

安装浏览器的JAVA Plugin(可选)

sudo apt-get install sun-java5-plugin


注意确保debian alternatives指向正确的链接(第一次安装不需要考虑吧?)
使用如下命令(或图形化的galternatives工具)来配置

sudo update-alternatives --config mozilla-javaplugin.so


目前有一个臭虫,最后执行一下:

sudo ln -s /usr/lib/jvm/java-1.5.0-sun-1.5.0.06/jre/plugin /usr/lib/j2sdk1.5-sun/jre/


转贴来自:

快速设置指南/DapperDraker
http://wiki.ubuntu.org.cn/%E5%BF%AB%E9%80%9F%E8%AE%BE%E7%BD%AE%E6%8C%87%E5%8D%97/DapperDrake

2006-10-05

I'm back

I surprisingly find that Blogger can be accessed.

I surfed Blogger two years ago and liked it pretty much. But don't know why Blogger is blocked. Well, I had to move around to other blogs and finally quit to write blog. Some of blogger service are as complicated as doing a home page, while some are as simple as a note pad.

Now I using beta blogger and enjoy its improvement such as label, gadget. These changes are great. I decide to start my blogger from now on.

安装Realplayer

Last updated: 2008-10-5

本文讲述如何在Ubuntu6.06上安装Realplayer。解决了安装后的三个问题:
1. Realplayer安装后无法启动;
2. Realplayer启动后只显示图像,没有声音;
3. 在firefox里解决没有声音的问题
4. Ubuntu Hardy (8.04)下播放BBC Radio问题

1. 安装Realplayer
即可以通过Ubuntu自带的Synaptic Package Manager安装,也可以通过命令方式。启动Synaptic Package Manager(System -> Administration -> Synaptic Package Manager),搜索Realplayer,选择安装即可。如果是用命令行安装,可以在Terminal键入:

sudo apt-get install realplayer

安装成功后,在Applications -> Sound & Video 下面会出现 Real Player 10。

2. 解决Realplayer和Scim的冲突
如果你使用的Scim输入法,而安装Realplayer后又启动不了,那很有可能是由于Scim和Realplayer冲突造成。

出现如下提示:
/usr/bin/realplayer: line 75: 7497 Segmentation fault $REALPLAYBIN "$@"

解决方法是用Scim-bridge替换Scim。

* 安装scim-bridge;请确保已正确设置中文环境,打开终端,执行以下命令,或使用《新立得软件管理器》,在其中搜索“scim-bridge“并标记安装。

sudo apt-get install scim-bridge

* 编辑im-switch生成的scim配置文件

sudo gedit /etc/X11/xinit/xinput.d/zh_CN

* 将默认的 GTK_IM_MODULE=scim 修改为 GTK_IM_MODULE="scim-bridge"
* 将默认的 QT_IM_MODULE=scim 修改为 QT_IM_MODULE="xim" (不然可能无法在qt程序中输入中文),或者打开终端,执行以下命令,或使用《新立得软件管理器》,在其中搜索“install scim-qtimm“并标记安装。 sudo apt-get install scim-qtimm
* 或者简单的将 QT_IM_MODULE=scim 一行注释掉


3. 解决Realplayer有图像无声音的问题。在Terminal键入下面的命令:

$ sudo apt-get install alsa-oss

Realplayer需要这样启动。

$ aoss realplay
   
更改Applications菜单Real Player 10的快捷方式属性。在Applications -> Accessories -> Alacarter Menu Editor里,选择Applications -> Sound & Video 的Realplayer 10 属性,将Command改为: aoss realplayer。

现在单独启动Realplayer有声音了,但在Firefox内启动Realplayer还是没有声音。为了使Firefox也支持aoss wraper,只需在/etc/firefox/firefoxrc里加入:
export FIREFOX_DSP=aoss

4. Ubuntu Hardy (8.04)下播放BBC Radio问题
我在安装了Realplay后,总是无法播放BBC Radio,如下图:



现在问题已解决,总结如下:

a. Hardy 下安装Realplayer可直接去主页下载
http://www.real.com/linux/

在Terminal下输入:
chmod 770 RealPlayer11GOLD.bin
sudo ./RealPlayer11GOLD.bin

使用默认的安装路径
/opt/real/RealPlayer

b. 输入以下命令为Firefox添加Realpl插件
cd /usr/lib/firefox-addons/plugins
sudo ln -s /opt/real/RealPlayer/mozilla/nphelix.xpt nphelix.xpt
sudo ln -s /opt/real/RealPlayer/mozilla/nphelix.so nphelix.so
sudo mv /usr/lib/totem/gstreamer/libtotem-complex-plugin.so ~/.

c. 检查一下Realplayer插件是否正确安装
在firefox地址栏输入
about:plugins
如出现以下语句,说明Realplay插件已经正确安装了
Helix DNA Plugin: RealPlayer G2 Plug-In Compatible
File name: /opt/real/RealPlayer/mozilla/nphelix.so
Helix DNA Plugin: RealPlayer G2 Plug-In Compatible version 0.4.0.4005 built with gcc 3.4.3 on Feb 25 2008



参考文章:
1. 非官方新手入门指南
http://wiki.ubuntu.org.cn/%E9%9D%9E%E5%AE%98%E6%96%B9%E6%96%B0%E6%89%8B%E5%85%A5%E9%97%A8%E6%8C%87%E5%8D%97

2. 快速设置指南/DapperDrake
http://wiki.ubuntu.org.cn/%E5%BF%AB%E9%80%9F%E8%AE%BE%E7%BD%AE%E6%8C%87%E5%8D%97/DapperDrake

3. [求助]Realplay可以播放.rm,有图无声音问题。(3楼:种草得草)
http://forum.ubuntu.org.cn/viewtopic.php?t=18966&highlight=realplayer

4. [问题]用Real Player听在线广播没有声音[已解决]
http://forum.ubuntu.org.cn/viewtopic.php?p=130360#130360

5. Ubuntu Hardy Guide - Realplayer
http://ubuntuguide.org/wiki/Ubuntu:Hardy#Installing_Real_Player_11_and_Configuring_Mozilla_Plugin