這是 Arjan van de Ven 與 Auke Kok Linux Plumbers Conference 2008 上的展示畫面。

在讀 O’Really 對 Arjan van de Ven 的訪問 How PowerTOP, LatencyTOP, and Five-Second Boot Improve Desktop Linux) 時,知道了在 Intel Open Source Technology Center 工作的 Arjan 在 PowerTop, LatencyTop 上的努力,以及其他開發者如何利用這些工具來改進軟體的效能與品質。

在訪問後段提到了 Arjan 最近在 Linux Plumbers Conference 2008 上的實做展示,Arjan 的簡報中提到了開發的思維態度應該以五秒鐘內開機為目標,不要把加速開機當作目標。同時也不要弄先開機,再做後續處理,造成系統無法使用的暫時性解決方式。應該想辦法把正確的事情作對來加速速度,如開機時以平行執行方式 (Parallel boot) 啟動系統也不是正確的行為。

這樣的論點,當然讓長期使用這種解決方案的開發者不甚認同,像是 MandrivaFrederic Crozat 就跳出來說明過去幾年來各種平行執行的策略,並說明在 EeePC 上碰到的一些硬體問題,經過調整後,可以讓 Mandriva 在 Eee PC 上以 15 秒內開機。

而 Arjan 的作法是將開機分成四個程序,分別是 Kernel, Early boot, X Server, GUI/Desktop。其中除了 Desktop 系統外,其他的程序都只能花用一秒鐘執行!

在核心的主要修改是利用從 RedHat readahead 改來的 sreadhead 加速軟體的檔案載入速度 (上個月我也介紹過 readahead 加速 Linux 開機速度 ? 。另外 sreadhead 的原始碼會在 Moblin Project 釋出) ,並將所需驅動程式先編入核心,關掉 initrd,預先建好 /dev 下需要的 device files, 同時利用新的 asynchronous initcall level 來載入較不重要的核心模組。如此可將核心載入時間壓縮在一秒。

相關的新 APIs 已經丟到 LKML 上供檢閱,希望可以納入 2.6.28 中。

而開機程序 (init scripts) 則還是利用 sysvinit,不用平行執行 (Parallel Boot) 之方法,也不利用 udev 動態產出 /dev 下的檔案,而是先固定寫死。另外雖說 initscripts 都還保持著原本的版本,在此預設也是不執行的。

另外 X Server 則稍加修改了 xorg-x11-drv-intel 顯示卡驅動程式,讓其在偵測硬體時,就一併先進行硬體設定,且修正了一些 PCI posting 的臭蟲。而且修改 XKB 快取 keyboard mappings,因為 XKB 居然會每次開啟時呼叫 C preprocessor 來編譯 keyboard mappings!至於桌面系統則使用輕量的 XFCE,稍加修改讓桌面程式同時執行。

如此如此,讓 Arjan 硬幹出來的版本,讓那天展示的跑在 ASUS EeePC 901 上 FedoraMoblin 可以在五秒鐘內開機!相較於其他在 ASUS EeePC 901 上得套件系統開機動輒要約30秒到一分鐘,的確快了很多。

但是我要一個只有桌面沒有網路連線的機器要做什麼呢 ? 且許多硬幹的方法,必須針對特定硬體作調整,的確不適用一般新安裝的系統。不過 Arjan 的 Fastboot 的確很值得參考使用,另外許多低效能問題的解決方法也都可以採用。希望這些新的研究可以盡快的套用到更多的環境上才是。

對了 Arjan van de Ven 也是 Linux-ready Firmware Developer Kit 的發起人,Linux-ready Firmware Developer Kit 是協助 BIOS/EFI 開發工程師測試的工具,若你是開發主機板或 BIOS/EFI 軔體的工程師,請別忘了下載來玩玩,或許可以避免發生 Foxcomm 前陣子的窘狀

還記得我在 OSDC.TW 2008 無線網路架設說過 OpenWrt trunk 的 Atheros MadWifi hal binary 有相容性問題,以至於某些網路卡無法連接使用。

HAL 是所謂 Hardware Abstraction Layer,是 MadWifi 驅動程式的核心,也是少數由於版權的緣故無法提供程式碼,而只能以二進位檔案散佈。因此某些驅動程式的問題,在沒有開放原碼的狀態下,大部分的開發者就算想修改也無能為力。

最近幾個月來,Madwifi Team 的幾位成員,包含 OpenWrtnbd, DD-WRTBrainSlayerMaksat Wireless 開始合作以 Atheros 的新 HAL 與 BSD 大神 Sam Leffler 的程式碼為基礎,改進了新版的 HAL 驅動程式,修正許多過去已知的問題與加強訊號抗擾性。目前仍陸續改版測試中,新版 HAL 與程式可於 http://svn.madwifi.org/madwifi/branches/madwifi-hal-testing 取得。

其實這樣的合作一直在進行,但礙於 Atheors 簽訂條款有權可讀相關程式碼的人並不多,許多的討論都是在私下進行的。如此一來造成自由軟體社群間的溝通出現隔閡,造成許多新來後到的人無法了解狀況。於是 mrenzmann 決議將原本封閉的郵遞論壇開放為 madwifi-project,希望可以因此塑造一個比較健康的溝通環境。

最近 MadWifi 社群也在探討未來的發展走向,由於目前的 Code Base 過於雜亂,眾人已無力維護。希望最終目標為從封閉的 HAL 驅動程式改為使用正在開發中的 ath5k/ath9k 等完全開放原碼的驅動程式。為此,madwifi 正在徵求意見調查,希望可以了解大家使用 Atheros 相關無線網路卡的驅動程式時,最需要的功能是哪些 ? 若你也是用 Atheros 的無線網路卡,不妨填填此問卷調查吧。

(對,說得是你們這些 EEEPC/Acer One/Netbooks 使用者阿)

前陣子翻查了 ASUS 的新版 (1.6) 軟體套件,發現華碩電腦為 P1000H, P1000HD, P904, P904HD 等新款機型找了幾個搭售的商業軟體。分別是 Ai Wizard (Dr E), Dr. Eye (譯點通), EeeStock, EzPeer, StarOffice, IQChinese Let’s Learn Chinese, Xcome XLex (擎願科技, 雙語字典通) 與 yostore 等。不過目前除了 IQChinese, XLex, yostore 有 P701 的更新檔,其他的軟體都只有含硬碟的機型上才有內建或可下載安裝檔。

老實說,身為一個使用 Debian GNU/Linux 作為桌面系統多年的使用者,我頗興奮看到這些商業軟體開始出現在 Linux 平台上,特別是除了 EEEPC 以外的眾多 Subnotebook,如Acer Aspire One, HP 2133 Mini-Note PC, Dell Inspiron Mini 9, OLPC XO-1, One A110, Skytone Alpha-400, CloudBook, Classmate PC, LG X110, MSI Wind PC, Lenovo IdeaPad SVIA OpenBook 等都搭售 Linux 出貨。剎那間,已經足夠撐起一個生態環境,讓軟體產業開始投資發展 Linux 桌面系統的軟體產品,而不僅有龐大的企業、伺服器用商用軟體。

試著安裝了比較感興趣的 Dr Eye、Eee Stock 與 EzPeer,發現這些軟體都加上了系統檢查功能,要嘛檢查核心版本、要嘛檢查 DMI 系統編號、或者根本去檢查記憶體內容,總之就是限制一般使用者將軟體移到其他安裝 Linux 的桌面系統上使用。每次你執行程式時,系統便會跳出以下視窗「抱歉,此軟體僅供Asus EeePC使用」,真是可惜。

雖說像 Dr. Eye 這樣的軟體,在 Linux 有 GPL 授權的 StarDict 的自由軟體可使用,但是眾多使用者都已經熟悉了 Dr. Eye 的使用介面與習慣,即使其他替代軟體的操作介面都非常類似,但許多使用者大概因為品牌因素使用 Dr. Eye 吧。但目前 Dr. Eye 在 Linux 的版本字庫非常貧乏,不知道什麼時候才有專業版出現?

除了常見的字典軟體,像先前介紹過的 Ezpeer 就沒有開源的替代軟體可使用,勢必要有商業法人取得音樂授權後,才能合法的線上聆聽音樂。在較新版的 Ezpeer V1.3.05 中,執行的權利也被關閉了。只有在 EeePC 上才能執行使用。

另外一個我個人認為非常實用的軟體是聲達資訊EeeStock 看盤軟體。日常的時候,我通常使用 Invest Stock 來看接近即時大盤與個股報價,也用 qtstalkerSMTM 來看盤後交易資訊與技術線圖。特別是 qtstalker 的技術線圖功能,類型多到眼花撩亂,且你還可自己寫報價與技術指標的模組,彈性非常大。而 Invest Stock 藏在 Gnome Panel 上,最適合隨時觀察一下大體走勢。兩個軟體得資訊來源都是 Yahoo, 使用時只要特別注意一下 Yahoo! Finance 的股市名稱,如 華碩為 2357.TW, 台股大盤指數為 ^TWII。Invest Stock 目前可於 gnome-applets 中取得,至於 qtstalker 由於缺乏 Sponsors 的原因,新版可於 Marco van Zwetselaar網站下載

但若你已經習慣玩台股,且在 Windows 上使用證卷商所提供的軟體,肯定已經習慣台股看盤軟體所提供的介面,選單上整合好了即時個股行情、類股、整合報價、上市、上櫃大盤、即時資訊、國際資訊等。操作起來實在非常便利。

最後,另我感興趣的軟體則是 StarOffice,StarOffice 目前下載版一套要價 USD 69.96,與 OpenOffice 的主要差異在於多了些私有版權的字型、圖庫、樣板、Adabas D 資料庫、巨集轉換等。相較起來,對使用者而言提供了更便利且合法的文書處理工具。

據聞 Google 軟體集 也免費提供 StarOffice 供下載,不過我實際逛了一下,發現其實目前沒有提供 Linux 版本的 StarOffice 免費下載。EeePC 使用者算是賺到一套相對好使的文書處理工具。不過 OO.o 對我而言已經足夠,便未額外安裝測試為 ASUS EeePC 客製化的 StarOffice.

看來 ASUS 恐怕礙於需防守於各家廠商所追進市場的新產品,必須與軟體商取得獨佔權,以便(暫時)保有領先地位。希望在今年接下來幾個月,市場陸續上市 Netbook 後,能夠看到更多商業軟體移植到 Linux 平台阿。

我在 OSDC 的佈建一文中提到做場勘時,需要使用 Spectrum Analyzer。這是為了要挑選一個比較少訊號、雜訊干擾的頻帶。

很多人都知道,在設定無線網路 (WiFi) 時必須小心選擇將使用的頻道 (Channel),避免與其他的基地台使用相同的頻道,以免互相干擾。

比較少人注意的是,由於 IEEE 802.11 b/g 使用的頻是 22MHz 寬,因為法規技術規格上的限制,其實真正不重疊的頻道只有三、四個 (端視你在甚麼國家)。在某些國家如台灣雖然允許 11 個頻道,但是其實只有 1, 6, 11 這三個頻道是沒有與其他頻道重疊的。

Source: How Wifi channels overlap

於是,你最好只使用 1, 6, 11這三個頻道。根據 Cisco 的一篇舊文章 「Channel Deployment Issues for 2.4-GHz 802.11 WLANs」,即便你選用 1, 4, 9, 11 等看似只稍微重複的頻道,也會因為高密度的接取使用,使 802.11 所應用的 CSMA/CA (停看聽才過馬路協定) 協定會因為避免碰撞而造成網路使用停頓 。(Co-channel interference)

更甚者,因為重疊的干擾訊號不夠強,而其他的設備無法辨識為 802.11 訊號,誤認頻段是乾淨的而持續的送出訊號,如此一來偶爾可辨識、偶爾視為雜訊的狀態下,反而加重碰撞現象,使網路效率更加惡化。(Adjacent-channel interference) 更糟的是且 802.11g 所使用的 OFDM 技術所使用的頻譜訊號強度比 802.11b 所應用的 CCK 更強 (應該說相較之下,OFDM 的訊號衰減較小),干擾影響更為嚴重。

除了頻道必須小心選用較少無線網路基地台佔用的頻道外,還要注意其他的干擾源。由於無線網路使用的是 2.4Ghz 免授權頻譜 ISM Band,而這段頻譜是有可能被其他的射頻源所干擾的。在家庭中,最常見的干擾源是微波爐藍芽無線電話以及某些無線監視系統等。

不像是選用頻道,你可以用無線網路卡掃描現有的無線網路基地台狀態,有許多干擾訊號是你的網路卡無法辨識、也無法告知有許多雜訊的。特別是舉辦研討會時,不少人都會攜帶會干擾無線網路訊號的藍芽手機。這個時候,你就需要使用頻譜分析器來辨識真正乾淨無干擾的頻道了。

然而,好的一套頻譜分析儀加上軟體,市場價格常常會超過一兩萬美金。而且這些設備都十分龐大,只適合擺在實驗室,不方便帶著到處跑。

所幸有些公司開發了給筆記型電腦使用的便利頻譜分析儀,像是 Fluke NetworksAnalyzeAirAirMagnetSpectrum Analyzer、Cognio (被 Cisco 收購) 的 Spectrum Expert

這些工具都十分強大,如 Cognio Spectrum Expert 辨識解析度為 10 kHz,應用軟體甚至可以幫你辨識出發出特定訊號的裝置類型,可以輕鬆的找出無線網路問題。不過價格也高達 4000 上下美金,不算是很經濟的解決方案。

退而求其次,就是比較單純的 USB 介面簡易頻譜分析儀。如 Nuts About Nets、或 MetaGeekWiSpy 2.4x。這些產品只要上述的十分之一,約 USD 400 上下即可入手。雖然無法達到自動辨識設備類型,但是已經足以排除頻譜干擾的問題。若你經驗夠的話,也可以從訊號的模式猜測出可能的干擾類型

身為偏好使用自由軟體的偏執狂,我自然選用了 WiSpy 2.4x。除了因為 WiSpy 2.4x 有免費的 Chanalyzer (Windows) 與 EaKiu (Mac OS X) 可用外,還有強者 dragorn 做的開放原碼 Spectools

根據 Tim Higgins 在 SmallNetBuilder 所寫的 MetaGeek Wi-Spy 2.4x Review: Better, but Bigger Bucks 一文,你可以知道 WiSpy 2.4x 的主要元件是 Chipcon CC2500 (現為 TI) 2.4 GHz tranceiver 與 Silicon Labs 的 C8051F326 (8051 MCU with 25 MHz System Clock). 成本其實相當便宜。雖說成本便宜,不過由於這是 Niche Market,售價還是要達 400 美金,總而言之這個價格跟其他類似的產品比起來已經是相當實惠了。

使用 WiSpy 2.4x 搭配 ASUS EEEPC,再裝上 Debiankismet, Wireshark, Spectools 後根本是輕巧的神兵利器!由於 ASUS EEEPC 上得無線網路卡是 Atheros AR5007EG,只要裝上部份開放原碼的 madwifi 驅動程式,就可以把無線網路卡設定為 Monitor 模式。

於是你可以使用 kismet 一邊監測無線訊號中的 Beacons,一邊以 spectools 監測訊號強度與雜訊。

只要再配上一顆 USB Wirless NIC,就可以同時監測與連入各機器中作設定。若是 EEEPC 的螢幕換成 OLED,那就更完美了 (不過相對價格也會高很多)。由於我的 X60 也是用 Atheros AR5418 802.11bgn,因此大部分時候,我還是在 X60 上享受「大」螢幕的快感。

剛剛提到 WiSpy 2.4x 的軟體無法作設備自動辨識,與其他工具比起來稍遜。但 MetaGeek 在六月的時候,釋出了一版新的 Chanalyzer (beta, 現在已是 3.1 版),整合了 InSSIDer (或類似 NetStumbler) 利用無線網路卡掃描的結果,更友善的顯示出每個訊號的強度。也整合了頻譜訊號特徵比對功能,透過拖拉,就可以對照出可能的干擾類型。這些新的功能是目前開放原碼工具中尚欠缺的。

關於這些新功能,請參考以下展示畫面

順便提一下排名第二的音樂下載軟體 – ezPeer+。話說 ezPeer+ 其實為了 Linux 平台開了一版介面 ezPeer+ for Linux 1.0,是使用 XULRunnermplayer 等軟體元件開發。

後端直接呼叫 mplayer 接取線上串流,會同時執行前端介面與後端播放軟體。偶爾會因為軟體處理不當,造成使用者按下暫停時,系統依然於背景播放音樂。稍微有點惱人的小問題。介面上也未提供進階選項,如調整快取大小等,我在 Seednet 上聽取音樂有點停頓。

此外大約是為了 mplayer 拿掉了 Windows Media DRM 功能,目前並沒有提供下載的功能,只能聽線上串流音樂,不過這應該已經可以滿足很多想在 Linux 上享受音樂的朋友。

可惜的是 ezPeer+ for Linux 目前只提供給 ASUS EeePC 的使用者使用,並未提供下載。若你購買了 EeePC,其實可以透過 dpkg-repack 重新將程式包成 .deb 檔案後丟到其他的 Debian/Ubuntu 上執行。

我說,你們這些多媒體娛樂資訊商,快照顧照顧我們卑微的 Linux/Unix 使用者吧。

華碩選擇接近 4/1 釋出 Eee PC SDK 真是一個好時機阿,雖說 Sourceforge 上在 3/18 時就可以下載,這個 SDK 包含了

  • Open Circulation Edition of the Xandros Desktop OS
  • Eclipse development environment
  • Qt4 toolkit
  • Developer’s guide
  • Sample applications
  • Multilingual VMware testing and debugging environment.

晤,其實整組 SDK 並沒有對於開發 Eee PC 上的軟體有特別幫助阿。開發者比較需要的是 Software packaging framework 的說明吧,至少是關於選單系統的說明等。至於開發環境裝 Debian 就可以了嘛。:-)