LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 3744|回复: 33

从 Xorg-7.3 部分升级到 7.4+ (使用准稳定版支持 ATI DRI)

[复制链接]
发表于 2009-2-25 13:48:30 | 显示全部楼层 |阅读模式
作为一懒人,用最小代价升级总是比较好的。

用 git 版本不错,稳定版本如提供稳定支持更好。 http://www.x.org/wiki/radeonhdRI

假设您已经安装 xorg-7.3,需要 按 如下顺序 安装或升级 软件包:
(xorg-7.4 http://xorg.freedesktop.org/archive/X11R7.4/src/ )
(xorg-7.4+ http://xorg.freedesktop.org/archive/individual/ )

libdrm-2.4.9
dri2proto-2.0 (xorg-7.4+)
Mesa-7.4.1


glproto-1.4.9 (xorg-7.4)
randrproto-1.3.0 (xorg-7.4+)
xextproto-7.0.3 (xorg-7.4)
xproto-7.0.13 (xorg-7.4)
inputproto-1.5.0 (xorg-7.4+)

xtrans-1.2.3 (xorg-7.4+)
pixman-0.15.2 (xorg-7.4+)
libpciaccess-0.10.5 (xorg-7.4+)
xorg-server-1.6.1 (xorg-7.4+)


xf86-video-ati-6.12.2 (xorg-7.4+)
xf86-video-radeonhd-1.2.5 (xorg-7.4+)

xf86-input-keyboard-1.3.2 (xorg-7.4+)
xf86-input-mouse-1.4.0 (xorg-7.4+)
xf86-input-evdev-2.2.1 (xorg-7.4+)

额外工作:支持 ATI DRI 需要 linux-2.6.28+ (Mesa-7.4.1 要求)

重要决定:
如果您喜欢传统方式,包括 ctrl+alt+backspace、键盘、鼠标,请在 xorg.conf 中添加如下小节
  1. Section "ServerFlags"
  2.     Option        "DontZap"        "false"
  3.     Option        "AllowEmptyInput"    "false"
  4.     Option        "AutoAddDevices"        "false"
  5. EndSection
复制代码
如果您喜欢时髦方式,包括用 evdev 驱动 键盘、鼠标,需要安装配置好 hal 并设置其自动启动,并且删除 xorg.conf 中 键盘、鼠标 设置部分,否则会出现按一个键相当于按了多次的情况。


完成,gtk gnome 等不需重编译,试用一星期表明无兼容性问题。

PS:这就是模块化的好处,可以部分升级。
发表于 2009-2-25 17:35:33 | 显示全部楼层
Post by 聚焦深空;1952396
作为一懒人,用最小代价升级总是比较好的。


我也是挺“懒”的,虽然我的系统已经是 7.4,不过总是有点小问题,争取按这个办法部分更新试试。
回复 支持 反对

使用道具 举报

发表于 2009-2-26 20:17:09 | 显示全部楼层
有些问题想请教:

1.  7.3 到 7.4+ 是否单纯独立的包个别升级?

2.  我想把旧的 6.9 升级为 7.x 但又因系统里有大量应用程序在跑,不想大干一场(懒人的想法),可有良方?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-26 20:39:14 | 显示全部楼层
问题一: 是的。

问题二: 不清楚能不能这样做。
或者,更安全的方案,可以仿照您安装 gcc 的方式,多版本 X 并存,将 xorg-7.x 的包统统安装到一个指定目录,浪费点空间,同时不会带来兼容性问题。
最小安装一个可工作的 xorg-7.x,不需要太多包的。
回复 支持 反对

使用道具 举报

发表于 2009-2-26 20:54:46 | 显示全部楼层
我起初也是想,但 X 有点不同,6.9 装在 /usr/X11R6,但新 7.x 装在 /usr 然後再建连结回到 /usr/X11R6 来达到相容目的

不幸的是 /usr/X11R6 现在已有 6.9,当然我知将 X 装到其他非主流目录是可行,但这样日後装其他 lib、QT、KDE 等又给自己制造麻烦,未想通前不想随意动手(因为该机子要作日常应用),正是此因系统里的旧 X 至今未换
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-26 21:09:12 | 显示全部楼层
也许这样考虑合理些:
X 是 server/client 架构,您系统上原有 6.9 两者都提供。
X 提供的库大半用于支持 client,更高层是 gtk+ qt 之类(貌似这些不依赖特定 X 版本)。
现在我们自愿放弃原来的 server 部分,转而使用 xorg-7.x 的 server 部分,只要按照最小依赖安装 server 部分及驱动即可,不会威胁到之前安装的东东。

另,xorg-7.x 使用 pkg-config 作配置,与原来系统分开很安全的。
回复 支持 反对

使用道具 举报

发表于 2009-2-26 21:15:50 | 显示全部楼层
谢谢提示。

是的,Gtk+、QT 之类是不依赖特定 X 版本,可是编译它们的时候却依赖指定 X 的路径,我说为自己带来麻烦的意思是指我自己去定义这路径,不幸的是 /usr/X11R6 已被占用,而且日常要用,这才不好办 :(
回复 支持 反对

使用道具 举报

发表于 2009-2-26 21:40:52 | 显示全部楼层
Post by 聚焦深空;1953167
问题一: 是的。

问题二: 不清楚能不能这样做。
或者,更安全的方案,可以仿照您安装 gcc 的方式,多版本 X 并存,将 xorg-7.x 的包统统安装到一个指定目录,浪费点空间,同时不会带来兼容性问题。
最小安装一个可工作的 xorg-7.x,不需要太多包的。

一言惊醒梦中人,我先把 /usr/X11R6 改名 /usr/x11r6 再建个 /usr/X11R6 的 symlink,如把 symlink 去掉,系统便当成没有 6.9,此时装 7.x 应该是可行的吧

唉~~现在系统正在 chroot 做 CLFS-SVN x86-64 multilib,不能动,只好完成後再试了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-28 14:09:21 | 显示全部楼层
Post by d00m3d;1953221
我先把 /usr/X11R6 改名 /usr/x11r6 再建个 /usr/X11R6 的 symlink,如把 symlink 去掉,系统便当成没有 6.9,此时装 7.x 应该是可行的吧

http://xorg.freedesktop.org/archive/X11R7.4/src/
/usr/X11R7 合理些

改 symlink 貌似不合适,那样 X 之上的 gtk qt 库不重编译直接使用可能有问题
  1. ldd /usr/lib/libgtk-x11-2.0.so
  2. linux-gate.so.1 =>  (0xffffe000)
  3. libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0xb7c30000)
  4. libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0xb7bad000)
  5. libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0xb7ba4000)
  6. libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0xb7b67000)
  7. libX11.so.6 => /usr/lib/libX11.so.6 (0xb7a79000)
  8. libXcomposite.so.1 => /usr/lib/libXcomposite.so.1 (0xb7a76000)
  9. libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0xb7a73000)
  10. libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0xb7a6e000)
  11. libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0xb7a54000)
  12. libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0xb7a1b000)
  13. libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0xb7a17000)
  14. libdl.so.2 => /lib/libdl.so.2 (0xb7a13000)
  15. libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xb7943000)
  16. libcairo.so.2 => /usr/lib/libcairo.so.2 (0xb78ca000)
  17. libm.so.6 => /lib/libm.so.6 (0xb78a4000)
  18. libc.so.6 => /lib/libc.so.6 (0xb7767000)
  19. libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb773b000)
  20. libXext.so.6 => /usr/lib/libXext.so.6 (0xb772d000)
  21. libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb7724000)
  22. libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0xb7721000)
  23. libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0xb771b000)
  24. libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0xb7712000)
  25. libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0xb76ea000)
  26. libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb7678000)
  27. libz.so.1 => /usr/lib/libz.so.1 (0xb7664000)
  28. libxcb-xlib.so.0 => /usr/lib/libxcb-xlib.so.0 (0xb7662000)
  29. libxcb.so.1 => /usr/lib/libxcb.so.1 (0xb764b000)
  30. /lib/ld-linux.so.2 (0xb7fc4000)
  31. libpng12.so.0 => /usr/lib/libpng12.so.0 (0xb7626000)
  32. libxml2.so.2 => /usr/lib/libxml2.so.2 (0xb74f2000)
  33. libXau.so.6 => /usr/lib/libXau.so.6 (0xb74ef000)
  34. libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb74ea000)
复制代码
回复 支持 反对

使用道具 举报

发表于 2009-2-28 14:25:01 | 显示全部楼层
這豈不是要 X 多版共存,連帶一切相關的庫也得多版共存?

這樣又不太好啊 :(
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表