筆記本上的 Linux

來源:互聯網
上載者:User

在過去的幾年中,Linux走出了機房,進入了案頭系統甚至是筆記本系統中。就像伺服器系統中的Linux,PC系統中的Linux同樣提供了速度和可靠性,以及大量功能強大久經考驗的應用程式。案頭系統中使用Linux已經相當平常,但是在筆記本中使用Linux還不是那麼常見。大多數Linux發行版並沒有為移動使用者提供所需要的有限電力和無線網路支援。

這篇文章為移動使用者提供了使用Linux需要的十件武器。它們包括了HOW-TO、技巧和配置方案來協助你建立一個可以依賴的移動Linux環境。【1】。是時候拜託束縛了!

如果你的案頭系統中運行Linux,你應該清楚它運轉飛快、可靠,能輕鬆解決工作。但是,這種效能所需要的代價是:電力。

在案頭系統中,電力從不會成為一個問題:你的案頭系統或 disk-side 電腦——裝著高速處理器,多功能主板和各種外設——都會串連到牆上的電源,而你的液晶顯示器和其它裝置都有各自的電源介面。電力從來不會出現短缺。

但是,在筆記本中,電力資源非常寶貴。有限的一點電能必須為所有組件所共用。事實上,如果嘗試在一個靠電池供電的筆記本系統中執行一些複雜的工作,很可能會遇到電量方面的限制。

絕大多數 Linux 發行版的預設配置都是為具有無限制電力供應的系統設計的。因此,如果要在移動環境中使用Linux,你需要進行一些最佳化配置以利用現有的許多工具來管理並節約能源。

節約能源:apmd 服務管理
Linux的進階電源管理守護進程,apmd,從作業系統內部管理各種基本節點功能。例如,apmd能檢測電源狀態變化,啟動、停止各種服務,並針對電源狀態調用其它程式。要配置apmd你需要配置apmd守護進程自身以及apm配置指令碼。

apmd的設定檔一般在 /etc/sysconfig/apmd,裡麵包含了apmd守護進程的各種基本配置資訊。預設配置一般都沒什麼問題,所以一般而言你只需要修改很少量的地方就可以了。最重要的條目包括 POWER_SERVICES、LOWPOWER_SERVICES 和 CPUFREQ。

*POWER_SERVICES 列舉了所有當電源切換到電池供電的時候停止的服務。(這些服務會當筆記本重新串連到交流電源的時候再次啟動。)預設情況下這個列表很短,因此你應該將包括 crond、autofs、cups、pcmcia 和 syslog 等服務加入這個列表中。【2】

* LOWPOWER_SERVICES列表中的服務包括當電池電量降低到一個標準的時候停止的服務。

*CPUFREQ啟用處理器頻率調節功能。稍後會介紹關於處理器頻率調節的更多資訊。當你配置了處理器頻率調節功能只好,你應該將這個選項設定成yes。

當你調節了這些選項之後,運行命令 service apmd restart 以載入新的設定。

下一處需要配置的是 apm 指令碼。這個指令碼一般儲存在 /etc/sysconfig/apm-scripts/apmscript。從 /etc/rc.local 直接運行apmscripts是個不錯的主意,因為這樣可以讓系統自動適應啟動時的電池狀態。這個指令碼有幾個小節,每個小節針對一個特定的電源管理資訊。我們需要關注的是 resume 和 change 功能。

不過先不要編輯 apmscripts ——讓我們先看看一些與電源管理相關的工具。

節約電能:CPU 頻率調節

筆記本系統中最耗電的組件是CPU。為延長電池壽命,多數新CPU都支援頻率調節(也稱為時鐘調節 clock modulation)以便當電池成為主要能源的時候降低自身運行速度。降低的幅度取決於不同的處理器。

CPUFreq 是一個提供時鐘調節功能的Linux核心補丁(可以從http://brodo.de/cpufreq得到)。一些發行版預設包含這個功能,而另一些需要另外打補丁。
要檢查CPUFreq是否已經被加入核心,輸入這個命令:cat /proc/cupfreq。你應會看到類似這樣的輸出:

minimum CPU frequency  -  maximum CPU frequency  -  policy
CPU  0      1998345 kHz (100 %)  - 1998345 kHz (100 %)  -  performance

如果你看到全部兩行輸出,則說明CPUFreq已經載入入你的系統核心中。如果你看見第一行卻沒看見CPU資訊則說明CPUFreq存在但是驅動沒有正確載入。

你應該可以用modprobe命令從表格一中選擇針對你的系統中CPU的驅動載入。最簡單的載入驅動的方法是將modprobe命令加入/etc/rc.local。如果你的核心根本部支援CPUFreq,你需要下載補丁包並給核心打上補丁。

--
表格一:Linux中用於時鐘調節的模組

模組  處理器
speedstep 通用speedstep,在舊版CPUFreq中出現
speedstep-ich 大多數迅馳奔騰處理器之前的CPU
speedstep-centrino 支援迅馳技術的奔騰處理器
p4-clockmod 奔騰4時鐘調節;常見於奔騰4移動處理器
longrun  支援 LongRun 技術的 Transmeta Crusoe 處理器
powernow 支援 PowerNow 技術的 AMD K6、K7、K8處理器
longhaul 支援 LongHaul 的處理器
--

CPUFreq正確運行之後你可以讀寫 /proc/cpufreq。可以使用類似下面幾條的命令設定一個值:

# echo -n "0%100%100%performance" > /proc/cpufreq
# echo -n "0%60%60%powersave" > /proc/cpufreq
# echo -n "0%12%80%userspace" > /proc/cpufreq

第一個值是處理器序號——在一個單一處理器的筆記本系統中通常為0。第二和第三個值表示允許調節處理器頻率的百分比範圍。最後一個參數表示模式(governor)。三個可選模式分別為performance、powersave和userspace。performance在電池模式下提供最大的效能;powersave保持處理器功率在最低狀態;而userspace是一個比較好的中間態,按需確定處理器工作頻率。

一種很可能的情況是,你希望系統在串連到交流電源的時候以全負荷工作,而當系統依靠電池工作的時候運行在一個較低的水平。一旦你確定了這些值,你可以將它們寫入/etc/sysconfig/apm-scripts/apmscript。順便一提,CPUFreq在必需的情況下會自動修改你的設定值到一個最接近的合理的值。因此,取決於處理器的不同,你要求的值可能不同於你實際得到的結果。

列表一中是一個apmscript的例子,修改自Fedora Core 1發行版。

--
列表一:在apmscript中設定CPU頻率

if test "x$CPUFREQ" = "xyes"; then
  if apm | LC_ALL=C grep -q on-line &>/dev/null; then
    echo -n "0%100%100%performance" > /proc/cpufreq
  else
    echo -n "0%12%60%userspace" > /proc/cpufreq
  fi
fi
--

如果CPUFreq還沒有啟動,別忘了在apmd配置中啟用CPUFreq。

節約更多的能源:關閉硬碟
除了CPU,你的筆記本中就屬硬碟消耗電能。只要它在旋轉就需要電力支援。

Linux預設配置使硬碟停轉成為幾乎不可能完成的任務,因為作業系統每隔一會都會重新整理資訊到硬碟中。因此,要讓硬碟停轉你需要兩個工具:一個在核心中設定laptop_mode的指令碼荷hdparm公用程式。

laptop_mode 開關曾是你讓硬碟停轉的一切,然而後來增加了更多需要調整的設定。Internet 上能找到很多設定筆記本模式的指令碼,不過從 http://www.linux-mag.com/downloads/2004-07/laptop/laptop_mode.sh 就可以下載到一個相當不錯的。這個指令碼的好處在於它同時支援 2.4 和 2.6 核心。以 start 或 stop 為參數運行這個指令碼,並且在啟動時候運行這個指令碼,譬如從 /etc/rc.local 中運行,或者僅當進入電池模式的時候運行它。

啟用 laptop_mode 後,用 hdparm 程式設定硬碟停轉前的等待期限。你可以利用 hdparm 的 -S 參數設定停轉逾時,用 -C 參數檢查驅動狀態。從 hdparm 手冊中查看關於逾時的值的特定資訊。

hdparm 命令可以加入到 apmscript 中以便在切換交流電源和電池的時候自動修訂逾時。當串連到交流電源的時候
# hdparm -S 48 /dev/hda
設定等待時間為 4 分鐘。這個值適用於大多數筆記本。當以電池模式啟動並執行時候
# hdparm -S 12 /dev/hda
設定等待時間為 1 分鐘。取決於硬碟的啟停速度和電池壽命,你也可以相應增加或減少這些值。

堅持長期抗戰:交換區管理

延長電池壽命的最後一招是當系統運行在電池模式的時候禁用交換分區。禁用交換分區的後果是迫使所有的程式和資料都保留在記憶體中,從而降低硬碟資料流量。同時,禁用交換分區也可以讓硬碟更快進入停轉狀態。需要注意的是你的系統中需要有足夠的實體記憶體支援所有的程式。

要啟停交換分區,以 -a(指全部 all)參數調用 swapon 和 swapoff 命令。這些命令也可以加入到 apmscript中。

最終版本的適用於筆記本系統的 apm 指令碼如列表二所示。

--
列表二:從apmscript下手節約電能
/etc/rc.local
modprobe p4-clockmod
sh /etc/sysconfig/apm-scripts/laptop_mode.sh start
sh /etc/sysconfig/apm-scripts/apmscript change

/etc/sysconfig/apm-scripts/apm-script
if test "x$CPUFREQ" = "xyes"; then
  if apm | LC_ALL=C grep -q on-line &>/dev/null; then
    echo -n "0%100%100%performance" > /proc/cpufreq
    hdparm -S 48  /dev/hda
    swapon -a
  else
    echo -n "0%12%60%userspace" > /proc/cpufreq
    hdparm -S 12  /dev/hda
    swapoff -a
  fi
fi
--

轉向移動世界:MiniPCI Prism2 卡
使用筆記本的真正的好處在於你可以進行無止境的創造。正如電源管理中所展示的,一些聰明的裁剪可以讓你更好地利用你的系統。

許多新筆記本,例如 IBM 的,標準配置都包含了基於一種稱為 MiniPCI 技術的無線網卡。其中許多都基於 Prism2,因此,許多使用者安裝linux-wlan-ng驅動來使它工作。不幸的是,linux-wlan-ng驅動缺少許多特性,包括與無線擴充的相容性,使許多網卡只能通過專屬的介面進行配置。

一個少有人知的事實是,Linux中包含的orinoco_pci驅動實際是一款基於 Prism2 的驅動,可以用於驅動基於 Prism2 的內建無限網卡。更好的是,orinoco_pci驅動可以使用iwconfig和iwpriv等無線擴充、工具。

要使用orinoco_pci驅動,編輯modules.conf,將現有的無線網卡別名替換成這樣:

alias eth1 orinoco_pci

然後你可以選擇重啟系統或者卸載舊的模組並運行 modprobe orinoco_pci。你的內建無線網卡應該正確地被Orinoco PCI 核心模組驅動,使你可以使用標準的無線工具集。

最絕的:在Linux中使用Windows驅動
如果你很不幸的正在使用一款Linux仍然無法支援的無線網卡,你會很高興得知只需要$20,你就可以在你的Linux系統中使用廠商為Windows提供的驅動程式。你需要做的就是前往 Linuxant(http://www.linuxant.com/)並下載 Driver Loader。如果你沒有廠商提供的CD,Driver Loader 會協助你從廠商網站下載合適的驅動。

保持移動:沿街掃描基礎

如果你希望進行駕車沿街掃描或者徒步沿街掃描,你會很快發現 Kismet 和 Airsnort 是必不可少的工具。這兩個工具提供了 Linux 系統獨一無二的無線網路攻擊和診斷工具。

按照Kismet網站(http://www.kismetwireless.net/)的說法,Kismet是一個完整的無線網路探測、嗅探和入侵偵查工具。這個免費的工具允許你掃描無線網路,進行即時WEP解碼,甚至能告訴你在這個網路中使用的IP範圍。Kismet會告訴你網路使用了哪種(如果確實使用了)加密方法,每個網路連接了多少客戶,並且顯示那些仍保持工廠預設配置的存取點裝置。如果你有某些你有權接入的網路的WEP密鑰,你甚至可以進行即時WEP解碼和嗅探。結合諸如Driftnet(http://www.ex-parrot.com/~chris/driftnet)或Ethereal(http://www.ethereal.com/)等工具,你將可以對網路中的任何資訊傳遞進行完全的分析。

Airsnort是一個非常棒的WEP恢複工具。如果你經常旅行而新的WEP密鑰總沒法及時發送到你的郵箱,或者你是一個安全專家並對你的無線網路安全有一種偏執(或者你只是想和你的朋友互相攻擊取樂),Airsnort可以在大約一個小時中恢複網路的WEP密鑰,具體時間取決於網路上的資訊流量。(WEP有一個基本缺陷致使攻擊者可以通過分析所謂初始向量 initialization vectors 而獲得密鑰。)

利用手機進行資料呼叫

現在的市場中有無數種手機,不過其中大多數具有資料轉送能力的手機都使用一種通用的通訊方式與手機中或網路供應商那裡的資料 modem 溝通。Linux 抽象控制模型(ACM)設計用於與抽象裝置通訊,因此也可以用於行動電話中的資料 modem。Linux ACM 將這個裝置映射到/dev目錄下的一個TTY裝置,之後你就可以像與一個普通modem一樣與資料modem通訊了。

(大多數Linux發行版在預設情況下都沒有可以使用的ACM模組,因此有時需要重新編譯核心以使ACM正常工作。另外,有些版本的Red Hat和Fedora Linux要求先用modprobe載入這個模組進入核心。Linux ACM模組在重新編譯之後,在2.4和2.6核心上都能夠正常工作。如果你發現自己在嘗試讓ACM正常工作的時候卡殼了,考慮重新編譯你的核心。)

要使用ACM,首先你需要一條從筆記本串連到手機的線纜。多數情況下,一條可以串連到手機的通用的USB線就可以,但有時也必須從手機供應商那裡購買一套手機工具。多花$20買一套手機工具應該比從eBay上買一條便宜線纜然後遭遇各種麻煩更好一些。

一旦你有了這條線,運行命令 tail -f /var/log/messages。(如果你的筆記本正在以電池模式運行並停止了syslog,要麼把電源接入,要麼手工啟動syslog服務,這樣才能看到這些資訊。)如果你將電纜連線到手機和筆記本,你應該會看到類似這樣的資訊:

kernel: hub.c: new USB device 00:1d.1-2, assigned address 2
kernel: usb.c: registered new driver acm
kernel: ttyACM0: USB ACM device
kernel: acm.c: v0.21:USB Abstract Control Model driver for USB

這裡,核心的ACM模組發現了這個裝置並且映射到邏輯裝置/dev/input/ttyACM0以便串連手機。現在你可以將/dev/input/ttyACM0當作一個普通modem進行通訊,準備進行撥號連線。例如,補白《打電話回家》展示了利用流行的撥號程式wvdial進行撥號的過程。

----
打電話回家

要使用wvdial撥號程式通過手機進行資料撥號,需要以下這些步驟。

第一步:將Modem加入/etc/wvdial.conf
首先,將你的modem加入wvdial.conf。加入之後,其它工具如Red Hat Network Manager才能被用於設定資料連線,或者你可以像這個例子一樣進行寫入程式碼。

在wvdial.conf中的modem配置應該類似這樣:

[Mobile] Modem = /dev/input/ttyACM0 Baud = 57600 SetVolume = 2 Dial Command = ATDT Init1 = ATZ FlowControl = Hardware (CRTSCTS)

第二步:配置撥號程式介面

現在你已將modem加入wvdial.conf,你需要建立一個撥號程式介面以進行撥號連線。你要在/etc/sysconfig/network-scripts中做這個工作。建立一個檔案並命名為ifcfg-ISP(這裡ISP是你的互連網供應商名稱)。這個設定檔應該類似這樣:

ONBOOT=no USERCTL=yes PEERDNS=yes TYPE=Modem DEVICE=ppp2 BOOTPROTO=dialup CCP=off PC=off AC=off BSDCOMP=off VJ=off VJCCOMP=off LINESPEED=57600 MODEMPORT=/dev/input/ttyACM0 IDLETIMEOUT=600 PROVIDER=ISP DEFROUTE=yes PERSIST=no PAPNAME=username WVDIALSECT=ISP MODEMNAME=Mobile DEMAND=no

你應將username改為你在ISP處登記的使用者名稱。接下來,加入驗證資訊。

第三步:證明你的身份

配置了撥號程式介面之後,你需要提供用於撥號的使用者名稱、密碼和電話號碼。這些資訊應該加入/etc/wvdial.conf和/etc/ppp/chap-secrets。

回到/etc/wvdial.conf,在最下面加入以下一塊資訊:

[Dialer ISP] Username = username Password = mypassword Phone = [Phone Number to ISP] Stupid Mode = 1

同時將下面一行加入/etc/ppp/chap-secrets:

"username" "ISP" "mypassword"

現在你做好了串連的一切準備工作。輸入

# ifup ISP

以啟用撥號程式介面。手機應該明白它進行中資料撥號,而你也應該能從記錄檔中看見狀態資訊。一旦通過了驗證,多數 ISP 都會分配一個 IP 位址,之後你就可以在網路上通訊了。當你結束之後,輸入 ifdown ISP 關閉串連。

---- Phoning Home 結束

串連到 Verizon 的 MobileOffice 服務

Verizon Wireless 提供兩種無線服務。第一種,稱為 MobileOffice,提供最高 14.4k 的串連並基本按分鐘收費。第二種稱為ExpressNetwork,提供 144k 串連,不過相當昂貴,為無限制使用收取每月收80美圓費用。

MobileOffice 服務與傳統撥號連線使用基本相同的配置,只需要很少的一點配置技巧。

從補白《打電話回家》中的幾個步驟開始,然後將串連轉換為支援 Verizon Wireless 的 MobileOffice。

特別要注意的是,你需要從手機撥號#777。這需要在《打電話回家》中的第三步中作出修改。然後,添加一個初始化字串。一個特定的初始化字串設定了一個寄存器,通知 Verizon 的modem連接器你希望串連到他們的 Mobile Office 服務。將下面這句添加到/etc/wvdial.conf中的modem段落:

 Init3 = AT$QCMDR=2

如果你訂購了 Verizon 的高速 ExpressNetwork 服務,則將QCMDR的值設定為3。

 Init3 = AT$QCMDR=3

可以使用使用者名稱、密碼qnc在MobileOffice 網路上通過身分識別驗證。你需要同時在/etc/wvdial.conf和/etc/ppp/chap-secrets中進行修改。

要登陸到ExpressNetwork服務,使用xxxxxxxx@vzw3g.com作為使用者名稱登陸;那些x表示你的10位行動電話號碼。登陸密碼為vzw。當然,你必須訂閱了ExpressNetwork服務才能成功登陸。

這樣就行了!完成了以上這些設定過程,你就應該串連到其中一個Verizon服務網路了。請與Verizon聯絡以擷取任何費用方面的資訊。

建立動態 3D 配置的 X 伺服器

許多筆記本都有很有限的 VRAM,而這導致了一種衝突:要麼禁止顯示的 3D 支援,要麼色深受到限制。

建立動態 3D 配置的 X 伺服器讓你在兩種情況都有最佳的享受。當你進行正常工作的時候它運行在 2D 模式,而當你玩兒遊戲的時候建立一個新的 X 伺服器。

你可以通過一點指令碼和一個新的 XF86Config 檔案來達到這個效果。

首先,建立一個單獨的 XF86Config 檔案。主要的 XF86-Config 配置獎用於你日常工作所需的 2D 顯示,而新的配置將針對 3D 環境。

首先將現有的設定檔複製到一個新檔案,並命名為 XF86Config.3D(這些檔案應該都在 /etc/X11 目錄)。編輯新的 3D 設定檔設定所需的解析度和色深。

接下來,為遊戲建立一個 3D 啟動指令碼。建立新的 3D 伺服器是利用一個短小的指令碼和 X 的案頭切換熱鍵完成的。這個指令碼應該有些類似下面這樣:

/usr/X11R6/bin/X :1 -xf86config XF86Config.3D /
  -depth 16 -auth /var/gdm/:1.Xauth vt8 &
DISPLAY=:1.0
export DISPLAY

chromium
DISPLAY=:0.0
export DISPLAY

在這個例子中,我們建立了一個 3D X伺服器以運行 chromium。運行這個指令碼會建立一個新的視窗然後在其中運行chromium。從這裡你可以使用 X 的熱鍵 ALT-CTRL-BACKSPACE 中止 X 會話並返回原來的 2D 案頭,也可以用 ALT-CTRL-F7 和 ALT-CTRL-F8 在兩個案頭之間切換。一般說來在你結束遊戲的時候中止進程是個不錯的主意。

再次上路
這片文章只介紹了為移動環境最佳化Linux的很少一些技巧。Linux是一個極其靈活的作業系統;只要用一點創造力就可以為行動電腦提供可與商業作業系統匹敵的諸多特點。

(原文連結:http://www.linux-mag.com/content/view/1689/2190/ 。感謝 Linux Magazine 為我們提供這樣高品質的雜誌。)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.