終於,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 的問題,我看還是暫時關掉他吧。

話說最近換了新的 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 記憶體有問題,多浪費了許多時間。

open80211smailing list 上看到廣告,今年的 MeshTech 2009 是在澳門舉辦耶,跟著 IEEE MASS 2009 是同一時段 都是在 10 月 5 日至 9 日間舉辦,看似是非常的好的機會認識一些鑽研 Mesh Networks 的學長專家。

從 2007 年開始,Mesh Tech 已經舉辦到第三屆了,第一屆在義大利、第二屆在美國。許多議題都是我個人非常感興趣的,例如上一屆的 Keynote speech 中,Georgia Institute of TechnologyIan F. Akyildiz 博士,針對了 Mesh Network Protocols 未來的可能設計方向進行了一段演講 Cross Layer Design in Wireless Mesh Networks

在這段演講與簡報中,Dr. Akyildiz 先分析了幾個可能對網路造成影響的關鍵因素,

  • Radio Techniques (Directional and smart antennas, MIMO, Multi
  • Multi-radio/multi multi-channel systems, Reconfigurable radios, Cognitive radios)
  • Scalability (throughput degradation)
  • Mesh Connectivity
  • Broadband and QoS
  • Compatibility and Inter-Operability
  • Security
  • Ease of Use

然後再從 Mac Layer (Physical Layer) 的問題,一路往上分析 Data Link Layer, Network Layer 到 Transport Layer。

由於傳統的路由設計很多都是只依照某一層協定來開發或最佳化,如此會簡化牽涉的可能問題,比較容易除錯。但是相對的,由於無法兼顧其他層協定的變數,以至於效能不佳。

例如傳統的路由協定可能會選擇對短路由,但是若無線網路受到干擾,這條路徑並不見得是最佳選擇,反而變成系統中的效能瓶頸。而這種瓶頸,很容易就影響到整個 Wireless Mesh Network 系統的吞吐量衰減值 (throughput degradation)。

依照目前的研究說來,利用異層協定的資訊與 Generalized Network Utility Maximization (NUM) 架構來設計跨層式協定,一定會某種程度的提高網路效能,但是相對的這種協定的會帶來複雜性、互通性、可發展性 (Evolution Capability) 等種種的問題。這些都是研究人員需要考慮的問題。分層式設計 (layered design) 跟跨層式設計 (cross layer design) 還沒有一個孰是孰非的定論。

MeshTech 會議中,我感興趣的還有

警告: 本文所說明之內容僅適合進階使用者應用。未經適當使用,可能會造成系統無法正常運作。

不知道有多少人計算過,其實在你的 Linux 檔案系統中,有不少重複的相同檔案。特別是圖檔、說明文件與修改說明。若是拿將檔案整併,應該可以省下些空間。

於是 Julian Andres Klode (chf) 參考 hardlink.py 的概念寫了一個 hardlink 工具,這個工具會幫你從指定的目錄中找出相同的檔案,以 Hard Link 的方式將多份檔案刪減成一份,如此便可以節省硬碟空間。白話一點說明就是刪掉多重檔案的儲存空間,在檔案系統的目錄中新增一筆連結資訊到同一份儲存位置。

我試著對我的 Debian Sid 上的 /usr 下達這個指令,共找到 11391 個檔案,省下大約 135 MiB 的空間。

由於 Hard Link 的本質特性,此指令只能用在同一個分割區下,建議不要對全系統下此指令。此外,若已經被 “hard link” 過得檔案分屬不同的軟體,未來若升級軟體時,可能會覆蓋掉共用的檔案而造成軟體無法運作,這點風險請自行承擔。建議使用在較少更新的 Debian Stable 版本。

軟體可透過 apt 或於下載。

身為一個兼職網管,偶爾你總想找出到底是那一隻程式佔用了網路埠、或是找出某個連線是哪隻程式建立的。在 FreeBSD 上有一個工具非常好用,叫做 sockstat。但是 Linux 過去一直沒有人寫這樣的工具,你可以用 ‘lsof -i -n’ 或是 ‘netstat -anpe‘ 等指令來滿足這個需求。

最近 William Pitcock (nenolod) 重新改寫了一版給 Linux 用的 sockstat,目前已經進入 Debian Sid 中。

需要者請自行取用吧。

Continue reading