/etc/X11/xorg.conf ----启动X Server时,Xorg会读取这个配置文件
~/.xservicerrc ----位于用户家目录的X service配置文件
/usr/bin/X ----系统最原始的X Server执行档
/etc/X11/xint/xservcerrc ----X service配置文件与启动脚本
1. 什么是x window system
1. 什么是x window system
注意:美编、排版、制图、多媒体等应用必须依赖于图形接口(GUI,Graphical Interface Interface)
1.1x window的发展史【1-0 有价值的信息】
1984----x在unix的system v这个操作系统版本上开发出来(应用程序而非操作系统)
1987----更改x版本到x11,取得明显进步
1992----XFree86计划顺利展开,持续维护X11R6的功能性(早期linux所使用的x window核心都由XFree86提供)
1994----发布新版X11R6
1995----X11R6.3
2004----Xorg基金会接手X11R6的维护后,于这一年发布区X11R6.8
2005----X11R7.x
1.2主要组件:x server/x clent/window manager/display manager
注意:基本架构【1-1】
1.X Server:硬件管理、屏幕绘制与提供字型功能
2.X Client:负责X Server要求的事件的处理
3.X Window Manager:特殊的X Client,负责管理所有的X Client软件【1-2,3】
4.Display Manager:提供登入需求(几乎所有像KDE等大型window manager都会提供Display Manager),加载使用者选择的window manager
1.3x window的启动流程:startx,xinit
注意:启动x windows systom的两种方式
1.在文字接口输入startx
2.run level5启动,通过display manager选择登入
1.3.1在文字接口启动X:透过startx指令
startx 能够直接启动也能够外接参数【1-4】【1-5 startx获得X server和X client的配置参数的顺序】
# startx -- -depth 16 ---以颜色深度为16bit启动X(--前面可以跟x client的参数设定,后面跟x server的设定)
1.3.2由startx呼叫执行的xinit
注意:如果不通过startx呼叫xinit而是直接执行它,系统默认的X Server和X Client的情况是这样的【1-7】
xinit 【1-6】
# xinit /etc/X11/xinit/xinintrc -- /usr/bin/X <==> # startx ----默认情况下,参考startx参数搜寻顺序
1.3.3启动X Server的档案:x serverrc
/etc/X11/xorg.conf ----启动X Server时,Xorg会读取这个配置文件
~/.xservicerrc ----位于用户家目录的X service配置文件(默认不存在)
/usr/bin/X ----系统最原始的X Server执行档
/etc/X11/xint/xservcerrc ----X service配置文件与启动脚本(默认不存在)
1.3.4启动X Client的档案:xinitrc
注意:
1.鉴于发行版的差异,尽量阅读一下startx这个脚本的内容
2.自定义X Client的参数在~/.xinitrc这个档案,建议除了最后一个window manager或者x client外,都放到背景中执行
~/.xinitrc ----家目录的参数配置文件
/etc/X11/xinit/xinitrc ----没有上面的配置文件会搜寻这个预设的X Client的预设脚本
/etc/X11/xinit/xinitrc-common ----上面的xinitrc 会呼叫这个档案参数
/etc/X11/xinit/xinitrc/Xclints ----上面的xinitrc 会呼叫这个档案参数
/etc/sysconfig/desktop ----DESKTOP=GNOME或DESKTOP=KDE来决定默认的窗口管理员(如果都没有会使用twm)
1.3.5 X 启动的端口
注意:linux可以同时开启多个X,这种情况会向下面的情形,启动X service/client时应该注明其主要提供或接受来自哪个display的端口
x 窗口号码 | 显示接口号码 | 默认终端机 | 网络监听端口 | 快捷键 |
第一个X | hostname:0(:0) | tty7 | port 6000 | ctrl+alt+f7 |
第二个X | hostname:1(:1) | tty8 | port 6001 | ctrl+alt+f8 |
1.4x启动流程测试
注意:底下的指令都是在tty1中执行的,可以通过切换tty1和tty8进行切换(Rad hat这类系统需要xfs)
1.先启动第一个X在:1中
# X:1 & ---- 在tty8启动X srevice,然后系统会主动跳转到tty8,ctrl+alt+F1切换回tty1
2.输入数个可以在X当中执行的虚拟终端机(xterm是必须要在X底下才能够执行的终端机接口)
# xtem -display :1 & ----指出在第2个display中建立一个虚拟终端机,【ctrl+alt+F8】切换到tty8看看
# xtem -display :1 & ----【ctrl+alt+F1】回到tty1再打开一个
3.在输入不同的X client,去tty8观察观察
# xclock -display :1 & ----打开clock这个X client(时钟)
# xeyes -display :1 & ----打开eye(聚焦光标的一双眼睛)
4.输入可以管理上面多个X Client的windows manager
# twm -display :1 & ----这个窗口管理员是比较简陋的,不像kde或
5.将刚刚建立的X相关的工作全部杀掉
# kill %6
# kill %5# kill %4# kill %3# kill %2# kill %1
1.5我是否需要启动x window system
2. x server配置文件解析与设定
注意:在修改这个档案之前务必将这个档案备份,免得出错导致x server无法启动
/usr/lib/xorg/modules/ ----相关的显示模块放置的模块
/etc/X11/ ----X Server的配置文件预设放置的位置,比如xorg.conf
/usr/share/X11/fonts/ ----提供的屏幕字体
/usr/lib/xorg/modules/drivers/ ----显示适配器的芯片组
/usr/lib/xorg/modules/extensions/ ----更多模块在这个目录
chkfontpath 通过这个指令取得目前系统有的字型档案目录
2.1解析xorg.conf设定
# X -version ----查看当前的x server是第几版
# vim /etc/X11/xorg.conf ----修改这个配置文件
Section "section name" ----常见的section name【1-8】
... ... ----与这个section name有关的设定项目
EndSection
# cd /etc/X11
# cp -a xorg.conf xorg.conf.20140115 ----备份X server的配置文件
# vim xorg.conf ----编辑配置文件
Section "Module" ----下面的这些模块是X server启东时,希望能够额外获得的相关支持的模块
Load "dbe"
Load "extmod"
Load "record"
Load "dri"
Load "xtrap"
Load "glx"
Load "vnc"
EndSection
Section "InputDevice"
Identifier "Keyboard0" ----键盘的配置文件被定义为Keyboard0,最后会被用于ServerLayout中
Driver "kbd"
Option "Xkbmodell" "pc105"
Option "XkbLayout" "us" ----是us美式键盘对应
EndSection
...
... ---【1-9,...,12】
1.启动xfs(x font server)服务,Files项目如果使用使用直接写入字型的路径就不需要启动
# /etc/init.d/xfs start
2.测试X Server的配置文件是否正常
# startx ----直接在run level 3启动X
# X :1 ----在tty8单独启动x server看看
2.2x font server(XFS)与加入额外中文字形:chkfontpath,fc-cacche
/etc/X11/fs/config ----XFS的主配置文件
/usr/share/X11/fonts/ ----字型文件的位置
/etc/init.d/xfs ----启动脚本
# vim /etc/X11/fs/config ----编辑XFS的主配置文件(字型服务相关设定)【1-13】
2.2.1建置新的额外的中文字型
1.先安装中文字型软件,亦即fonts-chinese这个软件# yum install fonts-chinese2.查阅taipei字型的目录位置# rpm -ql fonts-chinese | grep taipei3.建立字型文件的目录架构# cd /uar/share/fonts/chinese/misc# mkfontdir ----建置fonts.dir这个档案,提供字型档案目录的说明4.将上述的目录加入xfs的支持之中# chkfontpath -a /usr/share/fonts/chinese/misc/ ---加入支持# chkfontpath ----列出支持的所有路径# /etc/init.d/xfs restart ----重启xfs服务5.在X window底下启动终端机,测试一下有没有捉到该字型# xlsofnts | grep taibei
2.2.3让窗口管理员可以使用额外的字型
注意:这里拿windows上的三个自行档案作为测试,kaiu.ttf(中楷体)、mingliu.ttc(明体)、times.ttf(times and romans),假设这三个档案在/root下
1. 将上述三个档案放置到系统设定目录,亦即底下的目录中# cd /usr/share/fonts/# mkdir windows# cp /root/*.tt[fc] /usr/share/fonts/windows2.使用fc-cache将上述的档案加入字型的支持中# fc-cache -f -v ---- -v:列出目前的字型数据,-f:强制重新建立字型快取3.透过fc-list列出目前已经被使用的档案# fc-list:file ----找出被快取的档案4.通过窗口管理员(以GNOME为例)设定【系统】->【偏好设定】->【字型】
2.3配置文件重建与显示器参数微调:透过gtf调整分辨率
2.3.1X无法启动救援(配置文件侧地损坏或丢失)
# Xorg -configure :1 ----X主动以内建的模块进行系统硬件的探索,并肩硬件与字型的侦测结果写入/root/xorg.conf.new这个档案# X -config /root/xorg.conf.new :1 ---在tty8环境下显示,避免切换到不同的run level注:如果一切顺利,将/root/xorg.conf.new复制成为/etc/X11/xorg.conf覆盖掉错误的档案,然后重启X2.3.2关于屏幕分辨率与更新率gtf 调整屏幕分辨率的指令【1-14】1.使用1024X768的分辨率,75Hz的更新频率来取得显示器的内容# gtf 1024 768 75 -x ----重点是modelline那一行2.将上述的数据输入xorg.conf内的monitor项目中# vim /etc/X11/xorg.confSection "Monitor0"Identifier "Monitor0"VendorName "Monitor Vendor"ModelName "Monitor Model"Modeline "1024X768_75.00" 81X80 1024 1080 1192 1306 768 769 772 802 -HSync +Vsync ----新增这一行内容EndSection3.重启X# init 3;init 5 ----切换到文本模式,再切换到图形模式,另外一种简单的方式是【alt+ctrl+backspace】,不过这要在run level5模式下
3.显示适配器驱动程序安装范例
注意:Xorg已经针对NVidia公司的显示适配器驱动程序提供了nv模块,不过这个模块不具备额外的功能
3.1NVidia
1. 下载驱动程序
档名(以Intel Core2架构为例):NVIDA-Linux-x86_64-185.18.14-pkg2.run
2. 开始安装驱动程序
# sh NVIDA-Linux-x86_64-185.18.14-pkg2.run
3.查阅/etc/X11/xorg.conf目录
# cat /etc/X11/xorg.conf ----会发现Device的Driver设定会变成nvidia而不是nv,而且/usr/lib64/xorg/modules/drivers 目录下会多出一个nvidia_drv.so的驱动程序档案
# nvidia-installer --update ----利用nvidia_drv.so进行驱动程序的升级检查
# ll /var/log/nvidia* ----从这些档案中查看新的显示适配器的功能
3.2ATI(AMd)
1.下载驱动程序
档名(使用的Randon HD 3200的显示适配器芯片):ati-driver-installer-9-6-x86.x86.x86_64.run
2.开始安装驱动程序
# sh ati-driver-installer-9-6-x86.x86_64.run
3.看看新的驱动程序
# ll /usr/lib64/xorg/modules/drivers/ ----新增fglrx_drv.so这个新的驱动程序
# aticonfig -v ----aticonfig帮忙设定xorg.conf,类似于Nvidia的 nvidia-installer
3.3Intel
注意:
1.只要是整合型主板芯片组,通常都整合了Intel的显示适配器
2.Intel的显示适配器常常会使用i810等驱动程序,而不是较新的intel驱动程序,需要做一下设置
# locate libdram
# locate intel | grep xorg ----查找intel的显示适配器驱动程序
/usr/lib64/xorg/modules/drivers/intel_drv.so ----CentOS已经安装了intel的驱动程序,因此不许重装
# vim /etc/X11/xorg.conf ----修改一些配置就可以【1-15】
3.重启X server
4.重点回顾【1-16】
5.本章习题【1-17,18,19】
6.参考数据与延伸阅读