X200 入手之後,基於某種固執的看法,不裝 X86_64 (amd64) 而裝了 IA32 (x86) 版本的 Debian sid,且為了擴增的 4G 記憶體,換裝了啟用 PAE2.6.28 核心。

雖說 2.6.28 中,已經納入了 GEM Memory Manager for GPU memory,不過由於啟用 PAE 後,記憶體傳址的相容性問題,造成 GEM 被關閉,無法使用。若此時執行 glxgears,系統會同你抱怨 ‘Failed to initialize GEM.  Falling back to classic.’

我所使用的 Thinkpad X200 上所使用的顯示晶片組是 Intel GM45 (4500MHD),用 lspci 顯示的訊息是

00:02.0 VGA compatible controller [0300]: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller [8086:2a42] (rev 07) (prog-if 00 [VGA controller])

照理若因為無法啟用 GEM 而造成無法利用 EXA 加速的話,Xorg 的 Intel 驅動程式會改用 XAA,不過實際上似乎是完全只用軟體作描繪,因此速度奇慢無比。除了一般的桌面軟體反應緩慢外,時常使用 Firefox 瀏覽網頁時,Xorg 會吃滿 CPU 資源。甚至,開啟某些含有大量表格的網頁時,Firefox 甚至會停止反應好幾分鐘。

為了改善顯示效果,我試著升級了 Xorg (1:7.4+1), xserver-xorg-video-intel (2:2.7.0-1), libdrm2 (2.4.9-1), libdrm-intel1 (2.4.9-1) 等軟體套件。同時為了可以充分利用記憶體,於是裝了 linux-image-2.6.29-1-amd64 核心,但系統部份 (userland) 依然沿用 IA32,重新開機後一般的應用程式執行上沒有太大問題。

改用了新的核心後,預設使用 EXA 效率上比錯用 PAE 核心的狀況好很多。有些人測試 UXA 說有些問題,但是我改用 UXA 後,特別是 compiz 的速度改善相當多,用 compiz benchmark 大約是 144 fps. 使用 Firefox 時網頁繪製的速度也快多了,Xorg 相對的只佔用少量的運算資源。順道測試了 KMS 的效果,很遺憾的結果是開機後一片漆黑,只好暫時打消玩弄超絢麗 Plymonth 的念頭。

你若也想測試一下新的驅動程式,目前在 Debian Sid 中,都可以找到上述的軟體版本。剩下的只是稍加修改一下系統設定,主要是 /etc/X11/xorg.conf 中的 Device 一節,如使用 UXA 則改為

Section "Device"
... omitted ...
Option          "AccelMethod"   "UXA"
... omitted ...
EndSection

若用 EXA 則是

Section "Device"
... omitted ...
Option          "AccelMethod"   "EXA"
# Option          "MigrationHeuristic" "greedy"
... omitted ...
EndSection

其中 MigrationHeuristic 之設定據聞在舊版 Intel 驅動程式中可以加速顯示速度 (但也可能引起其他問題),你可以依照自己的版本增改。由於搭配的驅動程式版本、設定眾多,且不同的搭配,所造成的優劣各有不同,並沒有一個最佳的設定,因此在此不多加說明我個人的測試。在 Phoronix 上的 Does A Greedy Intel Driver Improve Performance? 做了相當詳盡的全方面測試,若可參考文中的數據。你若使用不同的顯示卡,而想嘗試 EXA 的效能,請參考 Intel Graphics DriverExa Status 一文來了解你的顯示卡支援程度。

在測試過程中,我也修改了其他的設定,主要是為了同步垂直掃描頻率的問題。可以利用 DriConf 更改了同步垂直掃描頻率 (vblank_mode) 的設定,我的系統預設設定是開啟的,這種狀態下啟動 glxgears 後,系統會出現 ‘Running synchronized to the vertical refresh.  The framerate should be approximately the same as the monitor refresh rate.’ 只會得到 60fps,必須關掉後才能得到數據。此外,我也更改了 Compiz 中的 sync_to_vblank 設定,可以在 CompizConfig Settings Manager 的 /General/Display Settings 設定。

整個效能測試過程中,我用到了幾個測試工具,包含了

  • sysprof 可以用來觀察設定前後,Xorg 與 Firefox 的資源佔用比例。
  • x11prefgtkpref 來測試 2D 的繪圖效能。
  • Compiz Benchmark (包含在 compiz-fusion-plugins-extra 中),用以測試 3D 的繪圖效能。
  • PeaceKeeper 用來測試 Firefox 的顯示效能。

若想進一步了解本文中大量使用的縮寫意義,請參考 Pavel RoitbergEXA, UXA, DRI, GEM, TTM 一文。

去年年中試用過 Adobe AIR for Linux beta 後,從去年年底 Adobe 發行1.0 正式 版,一直都沒有安裝新版。剛剛又再度試玩一下,比較有趣的是,Adobe AIR 跟系統本身的軟體套件管理系統高度整合,例如你裝了一個新的 Adobe AIR 軟體時,他會自動封裝並安裝成 dpkg ,於是你若使用一般的套件軟體管理工具如 aptitude / synaptic 也可以移除 Adobe AIR 軟體。

之前提到的 Adobe AIR XIM 問題已經修正 (當初回報的論壇文章已經被刪掉 ?!),至少在 twhirl 下可以正常輸入中文,不過一併測試了 Balsamiq Studios 的好用軟體打樣工具 Balsamiq Mockup,結果發現這個工具還是無法接受 scim 的中文輸入,真可惜,只好繼續用英文設計版面。相較於其他的軟體版面打樣軟體,Balsamiq Mockup 算是最直覺簡單的一套,而且隨便拉一拉做出來的成果還算美觀,有手繪筆記的風格。在 Mockups To Go 上,還有不少人分享設計樣板可供參考。

若是想嘗試更多的 Adobe AIR 軟體,Adobe 建了一個 Marketplace,可以直接下載安裝不同的軟體,許多軟體都是免費授權使用的。

終於,Adobe Reader Unix/Linux/OpenSolaris 跟 Adobe Reader Windows 作業系統的最新軟體版版號相同了,長久以來在 Unix 平台上只能用慢好幾版的彆腳版本。終於新版的 Adobe Reader 9.1 在上個月底發行,Linux 使用者可以於此下載頁,下載安裝程式與 Font Pack (Font Pack 可以讓你開啟特定編碼的文件). 根據目前已知的安全問題,建議你升級到 Adobe Reader 9.1。

雖說自由軟體社群中一直有  PDF 閱讀軟體的開放原碼替代品可以免費下載用,不過有商業公司持續維護的軟體也是一個很好的選項阿。新版的 Adobe Reader 除了修了不少問題,開啟速度加快很多,支援 Tab 瀏覽外,還支援了 PDF Portfolios 等功能。

若使用 Debian 系統,也可透過 debian-multimedia 安裝已封裝的 Debian package. 請根據你的套件系統版本,加入 apt source,然後以 apt-get install acroread 安裝之。

話說,為了新的 HP Pavilion dv3509 裝了新版的 Firefox 後,發現在 Microsoft Vista 上瀏覽器三不五時就當機一次。Firefox 時常跳出 Microsoft Vistual C++ Runtime Library – Runtime Error, abnormal program termination.

一度還以為 Firefox 跟 Microsoft Visital Home 有相容性問題,或者新購入的筆記型電腦的記憶體出了。後來反覆查了查,發現是指紋辨識資料安全系統 Digital Persona 的問題,系統預設會安裝 DigitalPersona 擴充套件。根據網路上的反應,看來他除了跟 Firefox 3 不相好,時常當機外,他也會妨礙你下載檔案,在加上似乎還有 memory leaking 的問題,我看還是暫時關掉他吧。

上一篇文章提到 Intel Trusted Execution Technology 害我的電腦休眠後一睡不醒,研究 TXT 時,我無意中看到原來上個月的 Black Hat DC 2009 中,Invisible Things Lab Rafal Wojtczuk 與 Joanna Rutkowska 發表了 「Attacking Intel® Trusted Execution Technology」的研究,其中 Joanna Rutkowska 是 Invisible Things Lab 的執行長,而且還是個女性,是位厲害的女駭客阿!

他們研究出可以在 SMM Memory (SMRAM) 中塞入 shell code,由於 TXT 並未檢驗或清除 SMRAM 的內容,可以讓入侵程式躲到虛擬作業系統啟動之後才執行,於是可以取得任何應該受到 TXT 保護的資料。據說 Invisible Things 還有兩個可行的 SMRAM 漏洞,會等到今年稍候的 BlackHat 研討會發表。

關於此安全問題的簡報、論文與影片可於 Invisible Things Lab 的 blog 取得,或於 BlackHat 網站下載高畫質演講錄影。簡報中明白的說明了 TXT 的運作方式與技術細節,我個人認為比 Intel 的官方文件來的簡單易懂多了,想進一步了解 TXT 的實用方式,也可詳盡參考。

話說最近換了新的 Thinkpad X200,剛拿到換裝了 Debian Sid 後,發現一個問題,重度使用的休眠功能在第二次喚醒時,系統只亮了一下硬碟燈號,然後就停止了。必須重新「冷」開機後,系統才會恢復正常。

之前查找了 ThinkWiki 還沒有人說明這類休眠的問題,而且硬體在第一次重新開機時,是絲毫沒有問題的。心中一直懷疑是某個軟體/硬體元件出了問題,怎麼會休眠一次就失敗 ?

於是便開始從 GNOME PowerManager 一路查到 halpm-utils (README.debugging, /var/log/pm-suspend.log)。然後配合 Documentation/kernel-parameters.txt 與 Documentation/power/basic-pm-debugging.txt 文件中說明的方法,重複開關機,試用不同的 acpi 參數,絲毫看不出端倪。重開機前後,acpidump 與 dmidecode 的資料大同小異。

再瞎子摸象的鑽進 kernel acpi driver 翻找,也將 DSDT 轉成 ACPI Source Language (ASL) 來檢查,kernel 也上了 ACPI DSDT in initrd patch。差點就要開始讀 Shaohua Li 在 Linux 內核開發中文社群上寫的一篇 ACPI 除錯的技巧中的延伸參考訊息。

結果才在 bugzilla 上發現有人回報了類似的問題 Bug 11963 – S3: second resume fails unless BIOS “Intel TXT Feature” disabled。我的症狀跟回報人一模一樣,只要將 Intel TXT (Trusted Execution Technology) 關閉,系統就可以隨意的休眠、喚醒。

我手上的這台 Thinkpad X200, 使用的是 Intel Centrion 2 vPro,依照 Intel 的新聞稿vPro (白皮書) 包含了 Trusted Execution Technology, 改良型系統防禦過濾器, 信任機制代理程式, 主動式管理技術 等等。從展示中,你可以看到 vPro 提供了強大的管理能力,資訊管理人員可以遠端的開機、收集資訊,使用 remote console 修復作業系統問題,甚至可以抓小偷 (Anti-Theft Technology)

而造成我的問題的是 TXT,TXT 的功能是用於保護虛擬機器中的資訊,藉由 TPMSME 指令集的運用,可以避免虛擬機器開機時的記憶體或儲存資料被竊取。

Intel 為了此功能開發了一個開放原碼的 tboot (Trusted Boot) 專案,可搭配 Xen 使用,Intel 的 Joseph Cihula 在 Xen Summit November 2007 時分享了一份關於 Trusted Boot 的簡報 (Trusted Boot:  Verifying the Xen Launch)

不過對我這種個人使用者來講,真是可怕到了極點,根本是一台內建後門的筆記型電腦。既然這些功能會影響我休眠,不如一股腦全把他們關了。或許我該寫封信問問 Joseph 看看他是不是知道為什麽 TXT 會防止我重新開機。

話說這台新電腦真是多災多難,最早拿到的時候,試玩新硬體,前後嘗試 Windows Vista 會頻繁出現藍屏當機,心想這大約是正常的Vista 該死問題。結果裝了 MacOS 也會 Kernel Panic,這才開始覺的真有問題。前後用微軟的記憶體測試程式Memtest86+ 測試,才證明廠商贈送的 2G 記憶體有問題,多浪費了許多時間。