Ralink rt2500-as chipset-tel szerelt wlan kártyák beüzemelése Tesztelve: • Terjesztések: UHU2.0/2.1, Fedora7/8, OpenSuSE 10.2/10.3, Frugalware 0.6/ 0.7, Ubuntu 7.10/8.04, Debian Etch/Leeny/Sid, CentOs 5.1, X/Os5.1 • Hardver: Acer aspire 3103; Conceprtonic C45rc pcmci wlan kártya Először meg kellene próbálni végigolvasni az egész leírást, kikapcsolt gép mellett. Ha már járatos valaki egy kicsit Linux téren és gyorsan végezni akar, akkor a leírás végén található egy összegyűjtött szkript-gyűjtemény. Az alábbiakban a Ralink gyártó rt2500-as chipset-tével szerelt pci és pcmci wlan kártyák beüzemelésének _egy lehetséges_ módja olvasható. Megjegyzendő, hogy az itt leírtak titkosítás nélküli illetve wep titkosítás esetén működnek. A wpa titkosításra vonatkozóan tervben van a kiegészítés (mondjuk úgy, tesztelés alatt van, jelenleg UHU, Fedora7 tesztelve, Mandriva 2008.1 esetén béta mivolta végett tényleg csak teszt jellegű volt a próba, de működik). 1 2 3 4 5
Előkészületek.........................................................................................................1 Töltsük le a megfelelő drivet-r:..............................................................................2 Szoftveres függőségek:..........................................................................................2 Driver telepítése....................................................................................................3 Beállító szkript elkészítése.....................................................................................4 5.1 Titkosítatlan és wep titkosítású hálózat beállítása .......................................................................................... 4 5.1.1 DHCP módon kiosztott script. ................................................................................................................... 4 5.1.2 A statikus IP szkript .................................................................................................................................. 4 5.2 WPA titkosítású hálózat beállítása ................................................................................................................. 5
6 Szkript automatikus indítása..................................................................................6 7 ------Szkriptek-----....................................................................................................6 1
Előkészületek
Szükségünk lesz türelemre, internet kapcsolatra és a konzol (terminál) használatára. Ha nincs bent a gépben a pcmci kártya, akkor tegyük be. (PCI esetén feltételezzük ennek meglétét.) Amennyiben a konzol használatát még nem sajátítottuk el, nézzük meg az erre vonatkozó dokumentációt. A terminálban root jogokkal kell majd parancsokat kiadni, ezért legyünk figyelmesek! Root jogokkal a rendszert életképtelenné is tehetjük! Ha Ubuntu-t használunk, akkor ne feledjük a parancsok elé a sudo -t odaírni. Másik fontos, hogy a parancsokat a copy/paste segítségével áttehetjük rögtön konzolba (parancssorba). Nézzük meg, hogy valóban rt2500-as chipset-tel állunk-e szemben: lspci | grep RT Amennyiben szerepel az rt2500 a kapott eredményben (kimenetben), akkor valóban jó helyen vagyunk. Nézzük meg, van e betöltött modul a kártyánk kezeléséhez: lsmod
Ha azt látjuk, hogy van a kimenetben rt2500, akkor az illesztőprogramot valószínűleg nem kell lecserélni. Ugyanakkor rt2500pci-as modul estén ellenőrzést kell végrehajtanunk, konzolban root-ként. iwconfig Ha ennek a kimenete tartalmaz "wmaster0 no wireless extensions"-t, akkor nem jó a driver (kernelmodul), ezt le kell cserélni. Először távolítsuk el ezt az rt2500pci modult: rmmod rt2500pci Majd feketelistára kell tenni, így később sem fog betöltődni. echo blacklist rt2500pci >> /etc/modprobe.d/blacklist 2
Töltsük le a megfelelő drivet-r:
http://rt2x00.serialmonkey.com/rt2500-cvs-daily.tar.gz Ezt konzolos módon a wget http://rt2x00.serialmonkey.com/rt2500cvsdaily.tar.gz paranccsal tehetjük meg, vagy internetböngésző segítségével is letölthetjük. 3
Szoftveres függőségek:
gcc kernel-headers wireless-tools Ezeket meglétének ellenőrzését grafikus telepítőben (synaptic, YAST, stb.), vagy konzolosan lehet megtenni. Grafikus csomagkezelő esetén a keresés funkciót használva könnyen megtudhatjuk, hogy telepített-e. Konzolosan pedig: RPM csomagok esetén (Fedora, Mandriva, CentOS, OpenSuSE, X/OS) rpm qa | grep gcc rpm qa | grep kernelheaders Pl. a kiadott lista, Fedora7-ből: [root@localhost ~]# rpm qa | grep kernelheaders kernelheaders2.6.23.1252.fc7 [root@localhost ~]# rpm qa | grep gcc gccgfortran4.1.227.fc7 gccc++4.1.227.fc7 gccjava4.1.227.fc7 libgcc4.1.227.fc7 gcc4.1.227.fc7 Itt mind a gcc, mind a kernel-headers rendelkezésre állnak deb csomagok esetén (Debia, Ubuntu, UHU) dpkg l | grep gcc dpkg l | grep linuxheaders Pl. a kiadott lista Ubuntu esetén cappapa@huvsr8:~$ dpkg l | grep gcc ii gcc 4.1.21ubuntu1 The GNU C compiler ii gcc3.3base 3.3.615ubuntu1 The GNU Compiler Collection (base package) ii gcc4.1 4.1.20ubuntu4 The GNU C compiler ii gcc4.1base 4.1.20ubuntu4 The GNU Compiler Collection (base package)
ii lib32gcc1 4.1.20ubuntu4 GCC support library (32 bit Version) ii libgcc1 4.1.20ubuntu4 GCC support library cappapa@huvsr8:~$ dpkg l | grep linuxheaders ii linuxheaders2.6.20152.6.2015.27Header files related to Linux kernel version ii linuxheaders2.6.2015generic2.6.2015.27Linux kernel headers for version 2.6.20 on x ii linuxheadersgeneric 2.6.20.15.14Generic Linux kernel headers Ez esetben az ii jelenti, hogy telepítve van. (Megjegyzendő, hogy a kernel-headers linux-headers vagy linux-kernel-headers néven is előfordulhat.)
Amennyiben a gcc és a kernel-headers nem áll rendelkezésre, akkor telepíteni kell. Ehhez használhatjuk a grafikus telepítőket (pl. Synaptic, YAST, stb.), vagy a konzolos megoldást. Érdemes grafikus módon telepíteni, mert a fent említett példán látható, hogy más volt a neve a kernel-headers-nek Fedora és Ubuntu esetén. Még egy nem elhanyagolható tapasztalat: SuSE 10.3 esetén a kernel-source csomagot , Mandriva 2008.1 esetén a kernel-devel csomagot kellett telepíteni. Ahol most tartunk: • driver letöltve • függőségek telepítve A függőségek telepítése után jöhet a 4
Driver telepítése.
Nyissunk konzolt, majd lépjünk be root-ként su Password: # itt a root jelszót kell begépelni; nincs villogó kurzor és nem is lesz. Ha Ubuntu-t használunk, ott alapesetben nincs root felhasználó, ne feledjük a parancsok elé a sudo -t odaírni. Most, hogy root jogosultságunk van, kicsomaglojuk és telepítjük a drivert. Lépjünk abba a könyvtárba, ahova letöltöttünk a drivert. cd /ahol/a/driverletoltes/van tar xzvf rt2500cvsdaily.tar.gz cd $(ls | grep rt2500cvs2*) cd Module make && make install modprobe rt2500 Fontos! Amennyiben Fedora alá szeretnénk a driver-t befordítani, make && make installfedora parancsot kell használni. PCI kártya esetén indítsuk újra a gépet. Ezt megtehetjük – ha már terminálban vagyunk – a reboot paranccsal. Pcmci kártya esetén vegyük ki a kártyát, majd újra behelyezve a megfelelő kernelmodul töltődik be. Ennek ellenőrzést ismét
iwconfig paranccsal tehetjük meg. Az iwconfig kimenetben - elméletileg - most nem lehetséges a wmaster0, helyette csak wlan0 vagy ra0 interfész-nevet kell találnunk. Ha ezek közül valamelyik megvan, akkor sikeresen végrehajtottuk a megfelelő driver telepítését. Amennyiben zavaró, hogy a ra0 helyett wlan0 interfész név szerepel (vagy fordítva), akkor az ifrename i wlan0 n ra0 parancs átnevezi, de csak akkor, ha az eszköz nem aktív: ifconfig wlan0 down 5
Beállító szkript elkészítése.
Titkosítatlan hálózat esetén jól használható a networkmanager Ubuntu és Mandriva esetén, nincs szükségünk szkriptre. WEP titkosítást a Mandriva megfelelően kezeli, a speciális beállítások résznél az iwconfig paracs szekciót kitöltve: ap a:halozat:ap:címe. A legtöbb networkmanager azonban nem igazán sikeresen kezeli a titkosított hálózatot. A szkript írása az alábbiak szerint történhet. Konzol megnyitása, majd gedit fájl.neve de lehetőleg kerüljük az ékezetes fájlneveket. Gedit helyett kwrite (KDE), mcedit (legtöbb esetben az alaptelepítés része) vagy mousepad (Xfce) is használatos. 5.1 Titkosítatlan és wep titkosítású hálózat beállítása Amennyiben titkosítatlan hálózatot kívánunk elérni (ha magunk hozunk ilyet létre, tudnunk kell: az internet-szolgáltatók ezt hivatalosan nem engedélyezik), akkor viszonylag egyszerű dolgunk van, ugyanis a networkmanager-ek ezzel többkevesebb sikerrel elboldogulnak – UHU például nem, ott célszerű kikapcsolni. Az alábbiakban a wep titkosított hálózatra vonatkozó szkripteket találhatjuk, a titkosítatlan verziót a iwconfig ra0 key s:mysecretcode sor el távolításával kapjuk. 5.1.1 DHCP módon kiosztott script. Legyen ez egy rt2500.dhcp nevű fájl. gedit ~/rt2500.dhcp #a ~ jel a felhasználó home könyvtára. Másoljuk be az alábbiakat: #!/bin/bash ifconfig ra0 up iwconfig ra0 key s:mysecretcode dhclient ra0 #end Mentsük el a fájlt. Tegyük futtathatóvá: chmod +x rt2500.boot Futtassuk le a szkriptet: sh rt2500.dhcp Elméletileg készen vagyunk, próba: böngésző nyitása, valami beírása.
5.1.2 A statikus IP szkript Statikus IP címet használóknak a szkript megírásához az alábbi adatokra lesz szükség: 1, a wlan hálózat essid-je. 2, a wlan hálózat ap-je (access point); ez titkosítatlan hálózat esetén nem létfontosságú, wep titkosításnál kell. 3, a router IP címe 4, a kártya IP címe - ehhez viszont tudni kell, hogy a router milyen IP címeket oszt ki. (ha DHPC-vel csináljuk, akkor nem kell.) 5, a titkosított hálózat jelszava Honnan nyerhetők ki az adatok? ifconfig ra0 up #ezzel életre keltjük a kártyát iwlist ra0 scanning Erre kidobja az elérhető hálózatok listáját, essid-vel, ap-vel együtt, illetve, hogy titkosítótt az adott hálózat, vagy nem. ra0 Scan completed : Cell 01 Address: 00:12:AF:7D:70:84 Mode:Managed ESSID:"Homenetwork" Encryption key:on Channel:1 Quality:53/100 Signal level:85 dBm Noise level:213 dBm A fájlt a gedit (kwrite, mcedit) segítségével hozzunk létre. Ez egy szövegfájl, amit a későbbiekben futtathatóvá teszünk. gedit ~/rt2500.boot #a ~ jel a felhasználó home könyvtára. Másoljuk be az alábbiakat: #!/bin/bash ifconfig ra0 up iwconfig ra0 essid a_halozat_neve # pl. Homenetwork iwconfig ra0 channel auto iwconfig ra0 ap a:halozat:acces:pointja #pl. 00:12:AF:7D:70:84 iwconfig ra0 key s:mysecretcode #a wep titkosításhoz használt jelszó, ami jelen esetben ascii, tehát szöveges ifconfig ra0 inet a:te:ip:cimed up route add default gw a:router:ip:cime (értelem szerűen, ha az iwconfig ra0 helyett wlan0-t adott, akkor az összes ra0 helyett wlan0-t kell írni) Tegyük futtathatóvá a szövegfájlt: chmod +x rt2500.dhcp Futtassuk le a szkriptet: sh rt2500.dhcp Szükség van úgynevezett névszerverre is, ehhez a echo nameserver a:router:ip:cime >> /etc/resolv.conf parancs használatos Elméletileg készen vagyunk, próba: böngésző nyitása, valami beírása. 5.2
WPA titkosítású hálózat beállítása
Itt a két szkript között minimális különbség van, így egyben kerül leírásra. A különbség az utolsó 3 sorban van. Ha automatikus ip cimet választunk, akkor az utolsó két sort (ifconfig és route parancsokat) kell kikommentezni (# karakter a sor elejére), statikus ip cím esetén pedig a dhclient sort. Legyen a szkript egy rt2500.wpa nevű fájl. gedit ~/rt2500.wpa #a ~ jel a felhasználó home könyvtára. Másoljuk be az alábbiakat: #!/bin/bash ifconfig ra0 down killall dhclient #ha ez előzőleg futott, akkor célszerű lelőni ifconfig ra0 up sleep 2 #ez csak egy késleltetés, semmi más iwconfig ra0 essid a_halozat_neve #routerban beállítandó iwconfig ra0 channel auto iwconfig ra0 ap a:halozat:access:pointja #pl. 00:12:AF:7D:70:84 iwpriv ra0 set AuthMode=WPAPSK iwpriv ra0 set EncrypType=TKIP #ez is routerben található iwpriv ra0 set WPAPSK=AAAAAFFFFF #a routerbe beírt jelszó dhclient ra0 #ha statikus ip cimmel kell akkor ezt ki kell kommentezni ifconfig ra0 inet a:te:ip:cimed up #a hálózati kártyának szánt ip route add default gw a:router:ip:cime #end Amennyiben nem működik, feltétlen szükség lesz a hibakereséshez az lsmod iwconfig lspci parancsok kimenetére 6
Szkript automatikus indítása
Amennyiben a rendszer indításakor szeretnénk elindítani a szkriptet (hasonlítva a régi autoexe.bat-ra vagy az startup menüre), úgy disztribúciótól függően az alábbiakat kell megtenni: UHU: cp ~/root/rt2500.boot /etc/rc.boot/ Ubuntu: echo sh /home/felhasznalo/rt2500.boot >> /etc/rc.d/local.boot Más Linux terjesztések esetén általában echo sh /root/rt2500.boot >> /etc/rd.d/rc.local 7
------Szkriptek-----
A szkriptek mibenléte: Olyan parancsok sorozata fájlba összegyűjtve, amely egyenként is begépelhető parancssorba (terminál). (Ld. win esetén batch <*.bat> fájl.) A #!/bin/bash szerepeljen az első sorban, ezzel tudatjuk, hogy a bash lesz a parancsértelmezőnk. Letöltő/telepítő szkript #!/bin/bash
rmmod rt2500pci echo blacklist rt2500pci >> /etc/modprobe.d/blacklist wget http://rt2x00.serialmonkey.com/rt2500cvsdaily.tar.gz tar xzvf rt2500cvs.tar.gz cd $(ls | grep rt2500cvs2*) cd Module make && make install modprobe rt2500 #end ------DHCP szkript #!/bin/bash ifconfig ra0 up iwconfig ra0 key s:mysecretcode dhclient ra0 #a „key AF3B5C5A003D” hexadecimális jelszó, míg a „key s:mysecretcode” ún. ascii (karakteres) jelszót takar. Ezt a sort titkosítatlan hálózat esetén elhagyhatjuk #end ------Statikus IP szkript #!/bin/bash ifconfig ra0 up iwconfig ra0 essid a_halozat_neve # pl. Homenetwork iwconfig ra0 channel auto iwconfig ra0 ap a:halozat:access:pointja #pl. 00:12:AF:7D:70:84 iwconfig ra0 key s:mysecretcode #a wep titkosításhoz használt jelszó, ami jelen esetben ascii, tehát szöveges ifconfig ra0 inet a:te:ip:cimed up route add default gw a:router:ip:cime #end ------WPA titkosítás DHCP szkript #!/bin/bash ifconfig ra0 down killall dhclient #ha ez előzőleg futott, akkor célszerű lelőni ifconfig ra0 up sleep 2 #ez csak egy késleltetés, semmi más iwconfig ra0 essid a_halozaz_neve #routerban beállítandó iwconfig ra0 channel auto iwconfig ra0 ap a:halozat:access:pointja #pl. 00:12:AF:7D:70:84 iwpriv ra0 set AuthMode=WPAPSK iwpriv ra0 set EncrypType=TKIP #ezt is routerban nézd meg iwpriv ra0 set WPAPSK=AAAAAFFFFF #amit a routerba beírtál jelszó dhclient ra0 #end ------WPA titkosítás statikus IP szkript #!/bin/bash
ifconfig ra0 down killall dhclient #ha ez előzőleg futott, akkor célszerű lelőni ifconfig ra0 up sleep 2 #ez csak egy késleltetés, semmi más iwconfig ra0 essid a_halozaz_neve #routerban beállítandó iwconfig ra0 channel auto iwconfig ra0 ap a:halozat:access:pointja #pl. 00:12:AF:7D:70:84 iwpriv ra0 set AuthMode=WPAPSK iwpriv ra0 set EncrypType=TKIP #ezt is routerban nézd meg iwpriv ra0 set WPAPSK=AAAAAFFFFF #amit a routerba beírtál jelszó ifconfig ra0 inet a:te:ip:cimed up #a hálózati kártyának szánt ip route add default gw a:router:ip:cime #end Szerző: Szvath Cappa Imre Elérhetőségek:
[email protected] [email protected] Licenc: A dokumentum szabadon másolható, de nem módosítható. A dokumentumot tilos pénzért, vagy bármilyen járandóságért árusítani. Minden jog a szerzőnek van fenntartva. További információk: Az esetleges hibákért a szerző nem vállal felelősséget. A szövegben felfedezett hibákat és észrevételeket a Makay József email-címére kérjük. Minden jog fenntartva! © SKL-Projekt