BLFS 系統 Xorg-6.9 升級 7.4 手記
时间:2009-03-24
来源:互联网
直至某天拜讀深空兄<从 Xorg-7.3 部分升级到 7.4+ (使用准稳定版支持 ATI DRI)>http://www.linuxsir.org/bbs/thread345232.html 一文帶來啟發,於是立定決心升級去也。當然升級歸升級,前題是不能因為升級而導致系統癱瘓,引發大規模重建了。
首先第一件事要確定的是目標安裝路徑,Xorg-6.9 的默認安裝路徑是 /usr/X11R6,而 Xorg-7.4 主張安裝在 /usr,當然只要在設置上稍作修正,任何路徑都是可行的
BLFS 手冊曾經提及建立 symlink 去讓 7.x 往 X11R6 兼容,因此得到提示,策略上跟我安裝多版 gcc 的方式一樣,巧用 symlink 的技倆是也。見 http://www.linuxsir.org/bbs/thread329026.html
即是說,原來的 /usr/X11R6 移到 /usr/x11r6
mv /usr/X11R6 /usr/x11r6 ln -s /usr/x11r6 /usr/X11R6
如此,只要建一個 /usr/X11R6 的 symlink,連到 /usr/x11r6 就是使 Xorg-6.9,如果連到 /usr/X11R7 就會使用 Xorg-7.4 了,豈不快哉?
入正題,參照 BLFS 手冊關於 Xorg-7.4 的部份
1. 設置編譯環境:
mkdir xc && cd xc export XORG_PREFIX=/usr/X11R7 export XORG_CONFIG="--prefix=$XORG_PREFIX --sysconfdir=/etc \ --mandir=$XORG_PREFIX/share/man --localstatedir=/var"
2. 為免編譯安裝進行期間對任何現有系統有沖突,作如下臨時配置:
2.1 將 $PATH 裡所有 QT、KDE、/usr/X11R6/bin 之類的路徑清除(在後面裝好 Xorg App 再補回)
2.2 unset PKG_CONFIG_PATH (在後面會再次建立的)
2.3 將剛剛在上面建立的 /usr/X11R6 symlink 也除掉
Xorg Protocol Headers
共 29 包,沒啥特別,依書照做
Xorg Utilities
依賴 pkg-config,但 pkg-config 在現系統已裝好在 /usr 的了,除非要升級,否則可以繼續 wget 把包下回來後,有 6 個包,先建立環境變量
export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/share/pkgconfig:/usr/X11R7/lib/pkgconfig"
libXau-1.0.4,libXdmcp-1.0.2,xcb-proto-1.1 照手冊行事
libxcb-1.1 有兩個新依賴,libxslt 及 libpthread-stubs,前者在我的系統裡已裝好,後者安裝也是很直接的,基本沒有難度。 BLFS 手冊提到一個變量設置
export LIBXCB_ALLOW_SLOPPY_LOCK=1
xcb-utils-0.3.0,依賴的 Gperf 原來已裝,沒難度
Xorg Libraries
依賴的 Fontconfig 已有,新的 ed-1.2 乃 easy job。這次 wget 下了 36 個包,編譯方式照手冊做,這次比較麻煩,libraries 之間都有次序要求,還好 CBLFS 的 wiki 比較詳細,總的來說,xtrans、libX11、libXext 要最先裝,其他看 CBLFS 的次序也差不多了
前面 2.3 已把 /usr/X11R6 這 symlink 去掉,現在是時候重建它了,把它指向 /usr/X11R7
ln -s /usr/X11R7 /usr/X11R6
如果連結有效,那麼手冊的下列兩部可以省略跳過
ln -sv $XORG_PREFIX/lib/X11 /usr/lib/X11 &&
ln -sv $XORG_PREFIX/include/X11 /usr/include/X11
Xbitmaps-1.0.1,straightforward
MesaLib-7.2
原系統已有 freeglut-2.4.0,expat-2.0.1,只要追加/升級 libdrm-2.3.1 就能滿足依賴。安裝後檢查 /usr/include/GL,如果它仍是連結到 /usr/X11R6/include/GL 那麼手冊上的
ln -s -v ${XORG_PREFIX}/include/GL /usr/include 可以跳過
Xorg Applications
libpng 應該是已經有的,無需重裝,但升級一下到最新版也無妨。Xorg App 共 43 個包,沒有次序分,按手冊行事就能搞定
裝好後把 /usr/X11R6/bin 加到 PATH 變量裡:
export PATH=$PATH:/usr/X11R6/bin
Xorg Fonts
共 38 個包,只有 encodings,font-cursor-misc 及 font-misc-misc 三個包是必需的,其他都是可隨意選的字體,手冊後面交待過 cursor 及 "fixed" 是 Xorg 啟動時必需,可以卻沒有任何說明 "fixed" 是由 font-misc-misc 提供的,瀏覽這個 tarball 的內容也不會顯示出來,暈死!
以下步驟可以省略:
install -v -d -m755 /usr/share/fonts &&
ln -svn $XORG_PREFIX/lib/X11/fonts/OTF /usr/share/fonts/X11-OTF &&
ln -svn $XORG_PREFIX/lib/X11/fonts/TTF /usr/share/fonts/X11-TTF
因為 /usr/share/fonts 已經存在 /usr/share/fonts/X11-OTF 及 /usr/share/fonts/X11-TTF 都已存在,但現在是 dead link,因為它們連到 /usr/X11R6/lib/X11/fonts/ 之下,但 /usr/X11R6/lib/X11/fonts/ 再沒有 OTF 及 TTF,重建即可解決:
mkdir /usr/X11R7/lib/X11/fonts/{O,T}TF
intltool-0.40.6 是新依賴,XML::Parser 早已安裝了,基本又是普通料,一下子可搞定
Luit-1.0.2 及 Xorg-Server-1.5.3 同樣直接,這裡不採用 Xorg-Server-1.6,因為網上流傳的問題頗多,暫時沒空去探索,反正 Xorg-7 是模組化,日後個別升級也未遲。
Xorg Drivers
又有 45 個包下回來了,不過不用全裝,input 只裝了鼠標及 keyboard,顯驅就只裝了 nvidia(我用的是 N 卡)
至此,全部編譯經已完成,剩下來的是配置了
由於前面已建好 /usr/X11R6 連到 /usr/X11R7 的 symlink,所以"Creating an X11R6 Compatibility Symlink" 這步已經做了,下面的照做
for file in $XORG_PREFIX/{lib/X11/xinit,share/X11/{app-defaults,twm,xkb}} do mv -v $file /etc/X11/ 2> /dev/null && ln -v -s /etc/X11/$(basename $file) $file done
mv /etc/X11/xorg.conf /etc/X11/xorg.conf.69
6.9 放在 /usr/x11r6/lib/modules
7.4 放在 /usr/X11R7/lib/X11/modules
另外發現 7.x 的 xorg.conf 內容跟舊有格式好像有少許不同,為免出錯,現階暫時分開 6.9 及 7.4 的 xorg.conf 為上,新建的 xorg.conf 將取名叫 /etc/X11/xorg.conf.74,日後有空再把它們統一吧。
由於配置太麻煩,最快(最懶)的做法就是找張採用 Xorg-7.4 的 Linux LiveCD 來啟動,把它的 xorg.conf 拷過來修改,我用的是 Sidux-2009-01(基於 Debian Sid),拷過來再把字體的路徑更正並按手冊在 ServerFlags 下修改一下便行
Section "ServerFlags" Option "AllowEmptyInput" "false" EndSection EOF
6.9 的配置文件 /etc/X11/xorg.conf.69 及新的
7.4 的配置文件 /etc/X11/xorg.conf.74
建個 /etc/X11/xorg.conf 連到 /etc/X11/xorg.conf.74 便行
如果想用回 6.9,只要將 /usr/X11R6 連到 /usr/x11r6 同時將 /etc/X11/xorg.conf 連到 /etc/X11/xorg.conf.69 就可以了
哈哈,大功告成了!
PS:最後加裝 xterm 及 Bitstream Vera 字體,這些都是過去 Xorg-6.9 時默認添加的。
作者: d00m3d 发布时间: 2009-03-24
作者: 老李飞刀 发布时间: 2009-03-24
不需要重编译 qt gtk? 如果这样看来二进制兼容性不错,继续向上升级问题不大。
作者: 聚焦深空 发布时间: 2009-03-24
作者: nonplus 发布时间: 2009-03-25
如果明白它定义的方式,我想任何一种字都可以是 "fixed" 了
作者: d00m3d 发布时间: 2009-03-25
作者: 聚焦深空
没有出现兼容性问题?
不需要重编译 qt gtk? 如果这样看来二进制兼容性不错,继续向上升级问题不大。 |
小问题倒是有两个,但这些并非兼容性问题:
1. GTK2 的应用如 emelfm2、SeaMonkey 等很正常,但 GTK1 的 gentoo、PuTTy 等就会出现字体过大,不知道在哪里配置
2. libdrm.so.2 被投诉找不到,明白是装在 /usr/X11R7/lib 里连结到 libdrm.so.2.3.1,怎会找不到?临时在 /usr/lib 里建了一个连结就好,废解!
Xorg74.png (73.5 KB, 37 次查看) |
作者: d00m3d 发布时间: 2009-03-25
作者: d00m3d
我查看过 font-misc-misc 的 tarball,其实当中也没有任何一款字是以 "fixed" 为名的,也就是说 font.alias 为它定义的
如果明白它定义的方式,我想任何一种字都可以是 "fixed" 了 |
关于fixed字体解说我曾在一blog上看过详细解说,只是当时没保存,郁闷
作者: nonplus 发布时间: 2009-03-25
BLFS 手册提及过 "fixed" 是那些以数字开头字体,所以明显就是要找出它们的关系,知道定义的方式应该可以吧
我对字体不熟识,中文更糟糕,早年发帖都要用英文,惭愧死!
这方面还有待各位指教

作者: d00m3d 发布时间: 2009-03-25
比如 font-misc-misc 只是包名,
安装后,运行 mkfontdir 得到的 fonts.dir 中有完整字体名字,当中有 fixed 关键字。
只是现在大家几乎都不用纯 X 程序,当前 gtk+ qt 使用的 freetype 表现又相当的好,X 字体消失是趋势,不必深究,真的有疑问不如自己动手。
至于 fixed 字体的问题是 xinit 运行过程中有程序依赖,你跳过去直接开个 X 试试(就是直接运行 X,不要什么 startx xinit 之类)。
作者: 聚焦深空 发布时间: 2009-03-25
作者: 聚焦深空
楼上的楼上,X 字体名字不是你那样理解的。
比如 font-misc-misc 只是包名, 安装后,运行 mkfontdir 得到的 fonts.dir 中有完整字体名字,当中有 fixed 关键字。 只是现在大家几乎都不用纯 X 程序,当前 gtk+ qt 使用的 freetype 表现又相当的好,X 字体消失是趋势,不必深究,真的有疑问不如自己动手。 至于 fixed 字体的问题是 xinit 运行过程中有程序依赖,你跳过去直接开个 X 试试(就是直接运行 X,不要什么 startx xinit 之类)。 |
作者: nonplus 发布时间: 2009-03-25
纯正的 X 程序指定字体不使用文件名,而是字体名。
都说了不必深究,真有兴趣、有时间 不妨查查 X 官方文档,或读读 X 提供的小程序的源码,lfs、gentoo 也仅仅只是简单介绍一下罢了。
下面这个应能对您胃口
http://www.math.utah.edu/~beebe/font...tem-fonts.html
作者: 聚焦深空 发布时间: 2009-03-25
作者: d00m3d 发布时间: 2009-03-25
连个基本的表达都不行
好吧,我想说 其实我是想Xorg不再使用像素字体而已(纯粹的洁癖)
而目前来看只有gentoo下的xorg-server-1.5.3实现了这个,blfs/cblfs上都没有提及
看了一下xorg-server-1.5.3-r5的ebuild,突然发现有这么一句
mirror://gentoo/${P}-gentoo-patches-07.tar.bz2
下了解着,看到60几个patch。。。其中有几个跟font有关的,找个空档试验一下,成功的话应该可以把恶心的像素字体踢了
作者: nonplus 发布时间: 2009-03-25
当前在通用计算机上供人使用的 OS 或多或少都要使用点阵字体,比如 GNU/Linux 的字符界面(点阵字体编译进内核)、 M$ 诸系统进入图形界面之前的显示。
再有,点阵字体一点也不恶心,只是一种数据,ttf、ttc 之类的矢量字体为了提高低分辨率时的显示效果一般都会集成若干规格的点阵字体,如 wqy-zhenhei.ttf simsun.ttc。
还有,相信相当长时间内,任何字体最终出现在显示器上时,都是“像素”。
这会不会更"恶心"、更"刺激"?
何苦!何必!
如果只是想升级到 xorg-server-1.6.x ,大胆去做嘛。
作者: 聚焦深空 发布时间: 2009-03-26
相反 simsun 里的英文字型倒是觉得很恶心
作者: d00m3d 发布时间: 2009-03-26
作者: d00m3d
1. GTK2 的应用如 emelfm2、SeaMonkey 等很正常,但 GTK1 的 gentoo、PuTTy 等就会出现字体过大,不知道在哪里配置
|
这个可能是新旧驱动读出的 dpi 不一致引起:今天升级 ati 驱动才发现 radeon 和 radeonhd 两个驱动读出的值不一致。
以前太懒了,没心思算 dpi 的准确值,今天才发现对字体影响那么大。
作者: 聚焦深空 发布时间: 2009-04-21
作者: d00m3d 发布时间: 2009-04-21
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28