Hlavní navigace

Linux na notebookoch s Centrinom

29. 4. 2004
Doba čtení: 6 minut

Sdílet

Tento článok sa zaoberá dvoma aspektami spolupráce Linuxu a notebooku s Centrinom. Pozrieme sa na to, ako za behu meniť rýchlosť procesora a ako rozbenúť a pripojiť do siete wi-fi kartu zo sady Centrino.

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/ne­pripojenie 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 nenakonfigu­rovanej 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

CS24 tip temata

Speedstep

CPUFreq

Wi-fi

Wifi pre Linux HOW-TO
Projekt wifi-tools
Nástroje pre wi-fi v Linuxe

Autor článku