Dávno sú preč časy, keď nebolo jednoduché rozbehať Linux na prenosných počítačoch. Často neexistovali linuxové ovládače pre rôzne kusy „mobilného“ hardwéru, a ak existovali, neboli súčasťou distribúcií a už vôbec nie jadra. V súčasnosti je situácia oveľa lepšia, súčiastky notebookov sú často podporované priamo v jadre. Obvykle stačí spustiť inštaláciu distribúcie a Linux si automaticky nájde väčšinu hardwéru.
Veľa informácií o Linuxe na prenosných počítačoch nájdete na odkazoch pod článkom. A ak chcete len otestovať (bez inštalácie na disk), ako bude Linux fungovať na vašom notebooku, stačí skúsiť nabootovať z CD niektorú „live“ distribúciu (odporúčam Knoppix) a za pár minút budete vedieť výsledok.
Z rôznych dôvodov však niektoré kusy „železa“ alebo ich funkcie nefungujú po inštalácii Linuxu „von-z-krabice“ (out-of-the-box) a je treba venovať trochu úsilia ich spojazdneniu.
Tento článok je venovaný mobilnej architektúre Centrino. Táto sada súčiastok od Intelu obsahuje tri komponenty – procesor Pentium M, čipovú sadu Intel 855 a bezdrôtovú sieťovú kartu Intel Pro Wireless 2100. Centrino je základom súčasných prenosných počítačov, ktoré majú poskytovať mobilnú konektivitu a nízku spotrebu batérií.
Väčšina bežných funkcií sady Centrino je detekovaná a podporovaná v Linuxe priamo. Na nasledujúcich riadkoch sa budeme zaoberať dvoma dôležitými mobilnými vlastnosťami Centrina – spojazdníme pretaktovanie procesora a zabudovanú wi-fi kartu.
SpeedStep (tm:-)
Mobilné procesory Intel obsahujú technológiu SpeedStep, ktorá umožňuje za behu znížiť ich taktovaciu frekvenciu. Prečo by však niekto mal znižovať rýchlosť počítača? Dôvody sú minimálne dva: zníženie rýchlosti znamená menšiu spotrebu a tým väčšiu výdrž batérií. Naviac nižšia frekvencia procesora tvorí menej tepla, ventilátor nemusí bežať tak často a počítač je tichší.
Linux CPUFreq
Zmena frekvencie pod Linuxom (Linux CPUFreq) je podporovaná priamo v jadre od jeho verzie 2.6 (pre podporu v jadre 2.4 musíte stiahnuť patch). To znamená, že podporu musíte zakompilovať do jadra (ak ju tam už nemáte). Záležitosť je to triviálna, tu je relevantná časť môjho konfiguračného súboru.
Po skompilovaní a nainštalovaní jadra by ste mali mať k dispozícii modul s názvom speedstep-centrino, ktorý po zavedení do pamäte vytvorí adresár /sys/devices/system/cpu/cpu*/cpufreq/
, v ktorom nájdete súbory s informáciami o vašom procesore.
Nástroje
Modul obsahuje ovládač pre procesor, priamo s ním však frekvenciu meniť nemôžete. Na to slúžia rôzne nástroje ako lamp, powernowd, speedfreq, cpudyn alebo cpufreqd. Posledné dva sú súčasťou distribúcie Debian, osobne používam cpufreq.
Cpufreqd
Tento démon nastavuje automaticky frekvenciu procesora, pričom berie do úvahy jeho aktuálnu záťaž, pripojenie/nepripojenie notebooku do siete, stav nabitia batérie a spustené programy. Všetky jeho parametre sa dajú jednoducho konfigurovať. Cpufreqd pracuje s APM, ACPI a s PMU, vyskúšaný ho mám len s APM.
Démona stiahnite z jeho stránok alebo nainštalujte z vašej distribúcie. V /etc/cpufreqd.conf
nájdete konfiguračný súbor. Ten obsahuje tri sekcie: všeobecné nastavenie, profily výkonu a pravidlá. Samotný súbor je dostatočne popisný (viac informácií na cpufreqd.conf(5)
):
[General] pidfile=/var/run/cpufreqd.pid poll_interval=2 pm_type=apm #(acpi, apm or pmu) [Profile] name=full minfreq=1100000 maxfreq=1200000 #maximum cpu speed policy=performance [Profile] name=save minfreq=900000 maxfreq=1100000 policy=performance [Rule] name=with_ac ac=on battery_interval=0-100 cpu_interval=0-100 profile=full [Rule] name=without_ac ac=off battery_interval=0-100 cpu_interval=0-100 profile=save
Skúste takýto jednoduchý konfiguračný súbor, reštartujte démona a potom zapojte a odpojte napájací kábel… Či všetko funguje, ako má, sa môžete presvedčiť vypísaním súboru /proc/cpuinfo
.
Môj vlastný konfiguračný súbor nájdete tu. Vzhľadom na to, že moje Centrino má 5 úrovní rýchlosti (od 600MHz s krokom 200MHz), rozdelil som profily tak, aby tieto úrovne pokryli. Vlastnú konfiguráciu si však vytvorte podľa informácií o vašom procesore.
Intel Pro Wireless 2100
Linuxová história tohoto kusu „železa“ je poriadne pohnutá a patrične medializovaná:). Po vydaní Centrina totiž Intel neposkytol pre wi-fi kartu linuxové ovládače, len sľúbil uvoľniť jej špecifikáciu. Čas plynul a špecifikácia ani ovládače sa neobjavovali, takže linuxová komunita začala riešiť problém vlastnými silami.
Koncom roku 2003 sa objavil projekt WLANDriverLoader firmy Linuxant, ktorý obaľoval windowsovské ovládače karty pre Linux. Softwér však stál 20 dolárov, a tak krátko potom vznikol open-source NdisWrapper, ktorý robí to isté, ale zadarmo. Nakoniec to Intel nevydržal a v marci 2004 uvoľnil špecifikáciu a vytvoril vlastný opensource projekt na vývoj linuxových ovládačov – ipw2100. Vzhľadom na to, že natívne linuxové ovládače ešte nie su k dispozícii a NdisWrapper funguje výborne, použijeme pre oživenie wi-fi karty práve tento ovládač.
NdisWrapper
NdisWrapper je modul jadra, ktorý obalí existujúce ovládače wi-fi karty pre Windows a poskytne ich funkčnosť linuxovému jadru.
Pre program potrebujete minimálne jadro 2.4.23 alebo 2.6.0. Naviac musí byť odkaz /lib/modules/VERZIA_JADRA/build
smerovať na adresár so zdrojákmi jadra. Po stiahnutí a rozbalení balíka zdrojákov spustite v jeho adresári make install
. To by malo nainštalovať modul jadra a tiež obslužné programy. NdisWrapper nájdete na jeho stránkach aj ako balíčky pre Debian a RedHat/Fedora.
Windowsovské ovládače
Ďalším krokom je pridanie windowsových ovládačov (používajte len XP ovládače, W2000 majú nejakú chybu). Ovládače nájdete niekde v inštalácii WinXP. Ak sa vám náhodou podarilo kúpiť notebook bez Windows, skúste stiahnuť ovládače zo stránok výrobcu notebooku (napríklad z ftp ACER-u). Adresár s XP ovládačmi rozbaľte na nejakom prístupnom mieste, prepnite sa do neho a spustite
ndiswrapper -i /cesta/k/XP/ovladacom/infsubor.inf
To by malo skopírovať všetko potrebné do /etc/ndiswrapper
a nakonfigurovať ovládače. Potom pre kontrolu môžete skúsiť
ndiswrapper -l
čo by malo vypísať napríklad
w70n51 present
pričom present
znamená, že karta pre daný ovládač je fyzicky prítomná.
Pripojenie do siete
Vzniknutý modul nahráte do pamäte príkazom modprobe ndiswrapper
(prípadne modul pridajte do /etc/modules
). Či je všetko v poriadku, môžete skontrolovať vo /var/log/syslog
, kde by sa mala ukázať správa
wlan0: ndiswrapper ethernet device xx:xx:xx:xx:xx:xx using driver driver.sys
Zároveň (ak je okolo nejaký signál) začne blikať kontrolka karty. Je však nutné, aby wi-fi nebolo zakázané v BIOS-e ani vo Windows.
Karta žije, a tak sa môžete skúsiť pomocou nej pripojiť. K tomu potrebujete wireless-tools. Ich inštaláciou získate sadu nástrojov pre konfiguráciu bezdrôtových sieťových kárt. Skúste teda
iwconfig wlan0
Mali by ste získať informácie o nenakonfigurovanej a nepripojenej karte. Okolo seba sa karta rozhliadne pomocou
iwlist wlan0 scanning
Zo zoznamu prístupových bodov si vyberte ten váš a pripojte sa k nemu pomocou
iwconfig wlan0 ap VybraneESSID
Pomocou iwconfig môžete nastaviť aj ďalšie parametre karty, ktorú nakoniec pripojíte do siete príkazom
ifconfig wlan0 up
Na konfigurovanie siete a prácu s wi-fi kartami existuje množstvo nástrojov, slušný zoznam nájdete na stránkach Jeana Tourrilhesa.
Poznámka na záver:
Uvedené inštrukcie boli testované na IBM R-40, procesor 1400MHz, operačný systém Debian Sid, jadro 2.6.3_10. Autor neručí za žiadne škody, ktoré by mohli vzniknúť pri opakovaní jeho experimentov:).
Linky:
Linux na notebookoch
Tuxmobil
Tuxmobil – Linux a Centrino
Linux on laptops
Speedstep
Wi-fi
Wifi pre Linux HOW-TO
Projekt wifi-tools
Nástroje pre wi-fi v Linuxe