在升级 XFree86 以前, 你应该确认已经安装了来自 RedHat ftp 站点 的最新补丁. 查看 ftp.redhat.com/pub/redhat/updates 以确认是否 RedHat 已经加入了新的更新.
到 1998年4月为止, RedHat 5.0 系列目前有如下的补丁.
ftp://ftp.redhat.com/pub/redhat/updates/5.0/i386/ \ Xconfigurator-3.26-1.i386.rpm ftp://ftp.redhat.com/pub/redhat/updates/5.0/i386/ \ xserver-wrapper-1.1-1.i386.rpm
最新版本 XFree86 在站点:
ftp://ftp.redhat.com/pub/home/wanger/XFree86/i386/
你将发现如下适合于 XFree86 的文件:
XFree86-100dpi-fonts-X.X.X-Y.i386.rpm XFree86-X.X.X-Y.i386.rpm XFree86-75dpi-fonts-X.X.X-Y.i386.rpm XFree86-8514-X.X.X-Y.i386.rpm XFree86-AGX-X.X.X-Y.i386.rpm XFree86-I128-X.X.X-Y.i386.rpm XFree86-Mach32-X.X.X-Y.i386.rpm XFree86-Mach64-X.X.X-Y.i386.rpm XFree86-Mach8-X.X.X-Y.i386.rpm XFree86-Mono-X.X.X-Y.i386.rpm XFree86-P9000-X.X.X-Y.i386.rpm XFree86-S3-X.X.X-Y.i386.rpm XFree86-S3V-X.X.X-Y.i386.rpm XFree86-SVGA-X.X.X-Y.i386.rpm XFree86-VGA16-X.X.X-Y.i386.rpm XFree86-W32-X.X.X-Y.i386.rpm XFree86-devel-X.X.X-Y.i386.rpm XFree86-libs-X.X.X-Y.i386.rpm
(注释: X.X.X 代表 XFree86 的当前版本号码, Y 代表软件包的修订号. 到1998年4月为止, 最新版本的 XFree86 是 3.3.2, 最新的包修订号码是 5.)
你至少需要这些文件:
XFree86-X.X.X-Y.i386.rpm XFree86-75dpi-fonts-X.X.X-Y.i386.rpm XFree86-100dpi-fonts-X.X.X-Y.i386.rpm XFree86-libs-X.X.X-Y.i386.rpm XFree86-VGA16-X.X.X-Y.i386.rpm
还有 XFree86-XF86Setup-X.X.X-Y.i386.rpm
在 /pub/contrib/hurricane/i386 中.
如果你想重建 X 应用(如果你不是一个程序员, 我怀疑能否成功).
同时你也需要
XFree86-devel-X.X.X-Y.i386.rpm .
你也许还需要一个适应于某种适配卡的服务器程序. 准确地说, 需要 那一个服务器程序决定于那一个支持你的显卡. 有几个办法可以发现那一个 服务器程序可以使用. 首先, 你需要知道你的显卡类型. 如果你不知道, 查一查手册. 若这样还不行, 打开你的计算机, 直接看一下显卡, 或者 使用 SuperProbe , 它位于目录 /usr/X11R6/bin/.
然后阅读 XFree86 FAQ, 它位于目录 /urlhttp://www.xfree86.org/FAQ/, 版本相关的信息位于目录 /urlhttp://www.xfree86.org/X.X.X/index.html, 他们可以帮助你决定使用那一个服务器程序. 你也可以查阅 XFree86-X.X.X-Y.i386.rpm 附带的文档, 位于目录 /usr/X11R6/lib/X11/doc/. 注意, 你必须安装它, 然后才能读取文档.
将所有的软件包下载到一个临时目录, 例如 /tmp. 记住一定要使用 ftp 的 binary 模式下载文件. 你可以使用 rpm -K -nopgp *.rpm 检查软件包 -- 检查 他们是否在传输过程中发生损坏.
你可以像下面所示安装一切软件包:
rpm -Uvh --force XFree86*
一旦完成安装, 运行 Xconfigurator 或 XF86Setup 配置系统.
如果你使用 XF86Setup 配置 X(你也许必须使用它, 因为 Xconfigurator 不知道一些新型号显卡如何配置, 而 XFree86 支持), 你也许需要手工纠正 一些符号连接. 下面指示怎样做, 假设你安装了 xserver-wrapper (也许):
/usr/X11R6/bin/X 应该是一个符号连接, 指向 xserver-wrapper and /etc/X11/X 应该是一个符号连接, 指向你所选择的适应于某种显卡的 服务器程序, 例如 XF86_SVGA.
这里是一个如何建立符号连接的例子, 需要 root 权限:
ln -sf /usr/X11R6/bin/xserver-wrapper /usr/X11R6/bin/X ln -sf "../../usr/X11R6/bin/XF86_SVGA" /etc/X11/X
XF86Setup 并不知道如何做这些工作, 所以在运行完 XF86Setup, 产生 /etc/X11/XF86Config 后, 需要手工完成(符号连接的建立).
当你看到一个没有安装服务器程序的错误时, 首先你应该检查是否安装 了正确的 X 服务器程序和(符号)连接是否已经建立.
如果你使用最新版本的 RedHat 系统, 你应该使用 xserver-wrapper 来保护你的系统, 应付各种安全性问题.
/usr/X11R6/bin/X 应该是一个符号连接, 指向 xserver-wrapper and /etc/X11/X 应该是一个符号连接, 指向你所选择的适应于某种显卡的 服务器程序, 例如 XF86_SVGA.
这里是一个如何建立符号连接的例子, 需要 root 权限:
cd /usr/X11R6/bin ln -sf xserver-wrapper ./X cd /etc/X11 ln -sf "../../usr/X11R6/bin/XF86_SVGA" ./X
这样就可以正确地为你的系统建立符号连接.
一个最可能的原因是你没有使用正确的命令启动 X 服务器. 启动 X 窗口系统的最好命令是:
startx
如果你使用了这个命令, 依然只有灰色背景, 那么还有别的原因. 首先, 你是否已经等待了足够长的时间? 或是由于处理器的速度, 或是 由于内存容量(少于16M), 或是由于网络问题, X 窗口系统也许需要 6分钟才能全部启动完毕. 在大多数情况下, 你可以依次为提示查出问题( 更快的处理器, 更多的内存, 网络那里断掉等等).
另一个问题是启动脚本不能启动某些命令. 你可以产生一个很简单的 /.xinitrc, 然后运行 startx, 看看有没有 问题. 也可以检查流水纪录文件 /var/log/Xerrors, 也许对你解决问题有帮助.
为了定制缺省的 window magnager 设置参数, 例如从菜单中增加或删除程序, 或是改变自动启动的程序, 你需要修改文件 /etc/X11/AnotherLevel. 请参见 xinit, startx, AnotherLevel, fvwm2, FvwmM4, 和 wmconfig 的帮助信息(man pages).
如果不喜欢缺省的 window manager 配置, 你可以从 Preferences 菜单选项中选择另外一种风格, 然后点击 WM Style 菜单选项.
如果对其他的 window manager 感兴趣, 你可以到这个主页参观:
/urlhttp://www.plig.org/xwinman/
当 XFree86 Xserver 崩溃, 死机, 停止或其他难解的问题时, 你将看到 '_X11TransSocketUNIXConnect: Can't connect: errno = 111'或其他 类似的信息.
这条信息是由 X-客户方(任何运行在 XFree86 Xserver 下的程序, 例如 window manager)发出的, 通知你它尝试连接 Xserver, 但是由于某些原因失败了.
为了进一步诊断此问题, 你需要查看服务器的输出. 一般来说, 你可以看到真正的 错误信息(为什么服务器停止工作), 就在 错误 111 信息的前面几行信息. 如果你仍然不能确定错误原因, 记住在发送问题报告(发往技术支持或讨论组时), 一定 要引用全部的服务器输出信息.
别像许多人所做的一样, 只是提交错误 111 问题, 这样是不可能解决你的问题的. 必须提交全部的服务器输出信息, 这可以通过重定向标准输出和标准错误输出到一个 文件中做到. 你可以如下运行 X :
startx &> startx.out
其他有用的信息是, 检查 X 的符号连接, 检查 .xinitrc(如果存在), 或者检查 发生错误时正在运行的命令.
如果使用 Metro-X, 你需要作如下工作
cd /usr/X11R6/lib/X11/xkb/keymap cp xfree86 metro
这可以解决大多数已经发现的问题. 但是由于一些 XFree86 的映射 已经落后于现代的键盘, 因此这并不是一个完整的解决方案. 如果你依然 存在键盘影射问题, 那么需要使用 xmodmap 和 xev 命令来解决问题. 请将这些纠正措施发往 bugs@redhat.com 和 bugs@xfree86.org, 这样他们就可以在主要的发行版本中纠正这些问题.
一般来说, 这些必须的库文件并没有安装. 你需要安装(或重新安装)这些软件包 来获得(必须的库文件).
插入安装光盘.
mount /mnt/cdrom cd /mnt/cdrom/RedHat/RPMS rpm -Uvh --force XFree86-devel* XFree86-libs* Xaw3d*
这样可以安装大多数你需要的 X 库文件. 如果依然出错, 那说明 我们并没有提供这些你所需要的库文件(qt,xforms, motif, 等等).
3.3.2以前的 XFree86 不支持 AGP 显卡. 如果安装了 3.3.2, Xconfigurator 将显示它所支持的 AGP 显卡. 注意 Red Hat Linux 5.1 和其后的版本已经带有 XFree86 3.3.2(或更高版本).
如果你还没有版本3.3.2, 那么需要考虑升级到这个版本. 请参观他们(XFree86)的网页以获得更多的信息 /urlhttp://www.xfree86.org/ .
NeoMagic 显卡目前不能被 Red Hat Linux's X 服务器支持. 这是因为 NeoMagic 要求在提供编程信息之前, 必须签署不公开(内容)的 协议, 这就排除了发行源码的可能性.
Xi Graphics' Accelerated X 已经可以在膝上型 X 服务器中支持 NeoMagic 芯片组. 可以到他们的主页 /urlhttp://www.xig.com/ 得到更多关于他们的 X 服务器的信息.
这个问题是由于每一个用户目录中的(.Xclients)文件引起, 其中:
fvwm95-2 -cmd 'FvwmM4 -debug /etc/X11/TheNextLevel/...'
但是 5.0 中并没有包括他们的 window manager, 这可以通过如下命令解决:
rm -f ~/.Xclients
(超级用户 root 可以采用如下命令解决所有用户的问题):
rm -f /home/*/.Xclients
这个问题是由如下错误引起:
Cannot allocate colormap entry for default background.
原因是不能为应用程序提供更多的颜色深度(许多16和256色应用发现了这个问题). 你可以尝试如下的方法解决这个问题:
startx -- -bpp 16
如果还不能工作, 参考你的 X 驱动程序手册, Xconfigurator 或升级你的显卡.
我们发现 2.1A或更高版本的微软串行两键鼠标是一种'智能'鼠标. 经过测试, 它等待来自 windows 的唤醒信号, 否则它并不回应计算机.
所以 X 或 gpm 不能工作, 因为这种鼠标并不按照他们期望的方式反应. 若想唤醒这种类型的鼠标, 让它工作, 有几种方法. 使用 mouseconfig 在运行 X 以前设置此种鼠标.
mouseconfig --kickstart --device cuaX
X 是 0 (串口一) 或者 1 (串口二)
另外一种办法是安装 gpm-1.13, 带所示参数运行 gpm -t pnp -R, 然后配置 XFree86 使用 /dev/gpmdata 作为(鼠标)设备, 运行 MouseSystems 协议.