2009年07月13日

GDM 令我傷腦筋的怪問題

系統是Debian 5.0.2(Lenny)

Debian login screen: Unreadable #1
這是Debian Desktop的登入視窗,中間使用者名稱輸入的其實是ABCDEFGHIJLMNOPQRSTUVWXYZ。但是畫面上根本看不清楚。

這不影響正常登入,只要使用者輸入時完全沒搞錯就好了,但總是不能看。


Debian login screen: Unreadable #2
完全看不到的選項。

但是為什麼其他字又很正常呢?我想大家也注意到了。這個登入畫面嚴格來說是圖形化的登入GDM,也就是GNOME Display Manager,在純文字登入時其實不需要它,他只有在Xwindow(X11)被執行且使用GNOME這個視窗shell時才會需要。而這視覺化的介面又有多套Theme可以互換,畫面中這套Theme是叫做「Debian MoreBlue Orbit」。講了這麼多......重點就是Theme定義的字看似完全正常,系統的字(非Theme)就無法閱讀了。

目前我還是沒找到解決方法,不過我發現在切換使用者時,呈現的登入畫面是正常的,那便是在有人登入的狀況下,這GDM的顯示完全沒問題。

我一開始就肯定的朝GDM出問題來找答案。

在網路上有人曾經談過這是X的問題,要在執行Xserver的時候增加dpi的參數,例如- dpi 96。我照做後重開,可是沒作用,可能這招在Debian 5.0沒用了,或是我根本不知道正確的指令該放在哪份設定檔中。

我又在網路上找到修改gdm.conf跟GDM的default.conf的方法,也都沒用。

在Debian Desktop安裝後的/usr/share/doc中,我找到了關於GDM的README.Debian。文件約略提到以前有一個手法是在gdm.conf中添加如下指令:

[server-Standard]
command=/usr/bin/X -dpi 96 -audit 0

我嘗試這個(因為看起來較簡易),試過後發現還是沒用,而且在Debian 5上面發生反效果。

我無法修改任何登入畫面的選項,它變成無法儲存任何異動。另外在我執行gdmsetup時會產生以下的錯誤:

gdmsetup[3004]: GLib-CRITICAL: g_key_file_set_string: assertion `key_file != NULL' failed
gdmsetup[3004]: GLib-CRITICAL: g_key_file_to_data: assertion `key_file != NULL' failed
gdmsetup[3004]: GLib-CRITICAL: g_file_set_contents: assertion `contents != NULL || length == 0' failed
gdmsetup[3004]: GLib-CRITICAL: g_key_file_free: assertion `key_file != NULL' failed
gdmsetup[3004]: GLib-CRITICAL: g_key_file_set_string: assertion `key_file != NULL' failed
gdmsetup[3004]: GLib-CRITICAL: g_key_file_to_data: assertion `key_file != NULL' failed
gdmsetup[3004]: GLib-CRITICAL: g_file_set_contents: assertion `contents != NULL || length == 0' failed
gdmsetup[3004]: GLib-CRITICAL: g_key_file_free: assertion `key_file != NULL' failed
gdmsetup[3004]: GLib-CRITICAL: g_key_file_set_string: assertion `key_file != NULL' failed
gdmsetup[3004]: GLib-CRITICAL: g_key_file_to_data: assertion `key_file != NULL' failed
gdmsetup[3004]: GLib-CRITICAL: g_file_set_contents: assertion `contents != NULL || length == 0' failed
gdmsetup[3004]: GLib-CRITICAL: g_key_file_free: assertion `key_file != NULL' failed
gdmsetup[3004]: GLib-CRITICAL: g_key_file_set_string: assertion `key_file != NULL' failed
gdmsetup[3004]: GLib-CRITICAL: g_key_file_to_data: assertion `key_file != NULL' failed
gdmsetup[3004]: GLib-CRITICAL: g_file_set_contents: assertion `contents != NULL || length == 0' failed
gdmsetup[3004]: GLib-CRITICAL: g_key_file_free: assertion `key_file != NULL' failed

「看來GDM不喜歡人家亂塞東西。」有人表示這樣的看法。

聽說最好的方法是管理者協助Xorg去設定正確的dpi,我還得花時間找方法試試看。


2009/10/27 Update:

更新,這個問題可以很簡單的避免,就是在例如800x600這麼小的解析度上安裝Debian中文相關工具時,避免安裝Truetype字型。

是的,Truetype字型例如文鼎新宋,安裝下去會讓中文變的很漂亮,不過那是特別在字型顯示夠大時,反之在字型顯示太小時,就會變的如此例一樣無法閱讀!800x600以下的螢幕還是用預設的Unifont較能恰當的顯示中文。


Posted by spania at 樂多Roodo! │05:42 │回應(0)引用(0)Sugi,自問自答
樂多分類:網路/3C 共同主題:Unix-like菜鳥學習筆記 工具:編輯本文
Ads by Roodo! 

引用URL

http://cgi.blog.roodo.com/trackback/9435175