Építsünk HotSpotot! – 3. rész, a szoftverek telepítése
Működik a hardverünk, elértünk hát a szoftver telepítéséig és konfigurálásáig. Nem azt mondom hogy egyszerű, de lépésről lépésre követve könnyen elvégezhető. Nincs szükség jtag kábelekre, sem a Cisco diplomára.
A szoftveres rész abszolválásában HG3FUG Gabi volt segítségemre, hogy a teljes folyamat könnyen követhető és ellenőrzött lépésekből álló leírássá váljon. Néhány – igyekezetem szerint tényleg minimális – praktikában igazodtam a lemezkép egyes nyilvánvalóan sajátosságához, ha ezeken a fejlesztő változtat, adódhatnak kisebb kitérők, problémák. Mindezt a lenti kommentekben kövessük nyomon, ha valami nem megy, kérdezz bátran.
A szoftver oldal – mint korábbi cikkemben írtam – alapvetően két nagyobb részből áll. A Raspberry – mely önmagában egy teljes értékű számítógép – kap egy Linux alapú operációs rendszert, ez a Pi-Star. Neki egyetlen felülete van, amit leginkább egy router beállításához használt felülethez tudok hasonlítani és amit hálózatra való egyszerű csatlakoztatása után egy böngészőből érünk el.
A másik nagy programozási feladat az STM32-vel épített modem firmware-jének feltöltése, melyhez konzolon keresztül csatlakozunk a Raspberry-hez és néhány egyszerű paranccsal végezzük el. Vele a továbbiakban nem is kell majd foglalkoznunk, csendben, a háttérben teszi a dolgát.
Harmadik, opcionálisan választható lépésként későbbi írásban egy kijelzőt is beállítunk a hotspothoz, hogy böngésző nélkül is lássuk, mit is csinál a kis berendezés, ki használja.
A leírás ugyan az általam választott installációra vonatkozik, ám a legtöbb, Raspberryből és STM32-ből álló konfigurációra egyaránt érvényes, nem beszélve az egyes metódusok önálló használhatóságáról.
A Pi-Star telepítése
Először is tisztázzuk, hogy ez az operációs rendszer egy memóriakártyára fog kerülni, amit beteszünk a Raspberrybe, ahol háttértárként funkcionál majd. A gép bekapcsolásakor arról töltődik minden be, a szükséges módosításokat, beállításokat arra menti el. A mikro SD memóriakártya legalább 8 gigabájtos legyen, és ha tehetjük, gyors típust válasszunk. Az írási és olvasási sebességbe nem mennék bele, elég annyit tudni, hogy a tárolókat ez alapján különböző osztályokba sorolják. A leglassabbtól a leggyorsabbig Class 2-10, illetve U1-3, valamint V6-90 jelölést kaptak. Esetünkben célszerű legalább Class 10 típust választani, ami megfelel a következő osztályok aljának (U1; V10), ám árban nem sok különbséget jelent.
Célszerű márkás kártyát venni szaküzletben, sajnos sok a hamisítvány, ami az intenzív használat során egy idő után rendre el is dobja a láncot, tönkremegy. Megbízható típusok közül nekem leginkább a SanDisk (Ultra vagy Extreme) és a Lexar (Professional) jött be. Szintén a felső kategóriába tartozik még a Silicon Power, Samsung Evo, Transcend vagy a Polariod EP.
1. lépés: Letöltések
A program hivatalosnak mondható oldaláról a Pi-Star NanoPi vagy NanoPi Air verziójának tömörített lemezképét ide kattintva válasszuk ki és töltsük le attól függően, LAN-os vagy WiFi-s alaplapunk van. Ez utóbbi az Air verzió. Ha ez megvan, egy ZIP kiterjesztésű fájlt fogunk találni gépünkön, benne egy img-vel, amit csomagoljunk ki. Az egész művelethez valamivel több mint két gigabájt tárhelyre van szükségünk.
Töltsük le a Win32 Disk Imager nevű segédprogramot is, amit ide kattintva találunk. Ezzel fogjuk az előbb kicsomagolt fájlt úgymond felmountolni, felhúzni a kártyára. A művelet után a kártya egy indítólemezként fog működni a Raspberry számára.
2. lépés: Lemezkép kiírása
Tegyük be a mikro SD kártyát a kártyaolvasónkba, és ne foglalkozzunk azzal az üzenettel, amit feldob a Windows: akár új a kártya, akár használt, ha nem volt több részre osztva, nem lesz vele gond, a program úgyis formázni és darabolni fogja.
Telepítsük és indítsuk el a Win32DiskImagert. A megjelenő ablak sorában válaszuk ki az előbb kicsomagolt fájlt, majd mellette a kis ikonszerű rubrikában azt a meghajtót, amelyik a kártyánk behelyezésekor jelent meg. Ha ezzel megvagyunk, tehát megmondtuk, hogy melyik lemezképfájlt hova szeretnénk felhúzni, kattinthatunk a Write gombra. A rendszer a kártyaolvasó és a kártya sebességétől függően néhányszor tíz másodperc alatt elkészíti a Pi-Star operációs rendszert indító háttétárat, amit elkészültekor tegyünk át a Raspberry SD foglalatába.
3. lépés: Tesztelés
Átkerült a kártya a Raspberrybe, szakítsuk hát le munkánk első gyümölcsét. Most még nem fogunk varázsolni, beállítani, nem foglalkozunk a lehetőségekkel sem, egyszerűen csak megnézzük, hogy működik-e. Csatlakoztassuk a gépet a hálózathoz, majd adjunk neki tápfeszt: ha alaplapon van akkor azon keresztül, ha csak az asztalon, akkor egy USB töltő is megteszi. Miközben felvillannak a ledek, indítsunk el egy böngészőt. Az viszonylag fontos, hogy ugyanazon a hálózaton üzemeltetett gépen tegyük ezt.
Egy perc múlva a rendszernek üzemkésznek és elérhetőnek kell lennie. Erről ide kattintva, vagy a böngésző címsorába írt pi-star címmel győződhetünk meg. Ha jól végeztük dolgunkat, a hotspotunk első képernyőjét láthatjuk.
Néhány másodperc múlva kéri, hogy jelentkezzünk be. Ehhez az alapértelmezett felhasználónév pi-star , a hozzá tartozó jelszó pedig raspberry . Később megváltoztathatjuk, most még ne foglalkozzunk vele, inkább lépjünk tovább.
Az MMDVM_HS telepítése
Elérkeztünk a hotspot telepítésének kevésbé látványos, ám annál fontosabb lépéséhez, a rádiót is kezelő modem programjának felöltéséhez. Ehhez egy segédprogrammal, a legendás, ám magyarul kicsit komikus nevű PuTTY-al érjük el a hálózaton ketyegő Raspberryt. Az ott megnyíló konzolon parancsokat adunk majd neki, amitől ő letölti a megfelelő programokat és telepíti a portjára akasztott mikrovezérlőre.
A következő műveletek a Pi-Star felületén lévő SSH Access menüpont alatt nyíló konzollal is elvégezhetőek, de a másolás és egyéb megfontolások miatt most nem ott csináljuk. Kezdjük hát.
1. lépés: Letöltések
Elsőként a PuTTY-ot szerezzük be, aminek legfrissebb verzióját ide kattintva le is tölthetjük eredeti élőhelyéről. Ha már épp kéznél van, telepítsük, elindítva pedig a háttérbe tehetjük, hamarosan szükség lesz rá.
A firmware-t, az MMDVM_HS nevű programot nem kell külön letölteni. Nem bonyolítjuk az életünket, erre a PuTTYon keresztül adunk majd utasítást a Raspberrynek.
2. lépés: Kapcsolódik a PuTTY
Helyezzünk a Raspberryt és a modemet is az alaplapban lévő foglalatába. Csatlakoztassuk a helyi hálózathoz, adjunk neki tápfeszt. Várjunk egy kicsit, néhány másodperc kell, míg feláll a rendszer. Addig indítsuk el vagy keressük elő a PuTTY-unkat, és írjuk be a Host Name rublikába a címet, amin az előbb böngészőből értük el a gépet: pi-star . Ha megvan, kattintsunk az Open gombra.
A felugró fekete képernyő előtt, lehet, hogy egy hosszú figyelmeztetést is kapunk, ezzel ne törődjünk, kattintsunk az igen lehetőségre és többet nem tolakszik elénk.
A fekete képernyős ablak az a konzol, ami a Raspberry szöveges felülete. Itt kell bejelentkezni a már megszokott pi-star felhasználónévvel és raspberry jelszóval. A felhasználónév után ütött enter után gépelhetjük a jelszót, ami közben nem kell megijedni: nem látjuk a bevitt karaktereket.
Bejelentkezést követően megkapjuk a konzol kezdő képernyőjét, a szép zöld kurzorral. Innentől kicsit nagyobb léptékben haladunk, nem magyarázom el mindennek a lényegét és jelentését, egyszerűen csak követni kell az utasításokat.
Fontos: A PuTTY parancssoros abalakában nem működik az egyébként beillesztéshez használt CTRL+V billentyűkombináció és nincs jobb oldali egérgombbal lenyíló menü sem. A böngészőből vágólapra hagyományos módon másolt utasítássort egyszerűen csak a jobb oldali gomb képernyőn való megnyomásával illeszthetjük be. Egyszerre akár több sort is kimásolhatunk, jobb oldali gombbal egymás után fogja őket végrehajtani a távvezérlő ablak, legfeljebb az utolsó után kell majd entert nyomni.
3. lépés: Alapvető frissítések
Ha már itt vagyunk, minden előtt elvégzünk egy frissítést és néhány modul telepítését. Ezeket csupán néhány utasítás kiadásával tesszük majd megnézzük, milyen képernyőt kapunk, ha minden rendben van. Először bemásoljuk a frissítések parancsát és megnézzük hogy az alábbi képernyőt kapjuk-e:
rpi-rw
sudo apt–get update
A következőkben csinálunk egy kis helyet a kártyán és újraindítjuk a Raspberryt, mindezt ugyanitt, parancssorral.
sudo pistar-expand
sudo reboot
Amikor szól a terminál, hogy eltűnt a kis gép a hálózatról, szépen újraindítjuk a PuTTY-ot és ismét bejelentkezünk. Ha eleget vártunk és sikerült, a modulok telepítésének állunk neki egy újabb paranccsal:
rpi-rw
sudo apt-get install gcc-arm-none-eabi gdb-arm-none-eabi libstdc++-arm-none-eabi-newlib libnewlib-arm-none-eabi
A telepítés közben megáll egy pillanatra, azt kérdezve, hogy Do you want to continue? [Y/n]. Itt nyomjunk egy ipszilont, majd enter. Amíg nem kapjuk meg az alábbi képernyőt, várjunk türelemmel. Az egyes lépések letöltései, kicsomagolások és telepítések akár több percet is igénybe vehetnek.
4. lépés: A programozási mód bekapcsolása
Mielőtt kalandokba verjük magunkat, át kell kapcsolni a mikrovezérlőt egy olyan üzemmódba, ami lehetővé teszi a nekünk kellő módú programozását. Ezt a rajta levő két jumper (boot0 és boot1) segítségével végezhetjük, melyek alapállásban 0-0 pozíciót foglalnak el, azaz mindkettejük az USB csatlakozó felé van zárva. A programozás idejére ezek egyikét, nevezetesen a boot0-t át kell helyezni 1-es állásba. Ezután nyomunk egy RESET-et az STM32 panelen.
Fontos: néhány panelen az R10 10k ellenállással érkezik. Ezt cseréljük 1k – 1k5 értékűre. Mint HA8CU jelezte, néhány alaplapon ki van alakítva egy ellenállásnak hely, így oda beforrasztva a megfelelő parallel értéket, nem kell a mikrovezérlő paneljén bíbelődni.
A művelet legvégén ezt a kapcsolót vissza kell majd tenni, jelezni fogom ha odaértünk.
5. lépés: A mikrovezérlő életre keltése
Egy paranccsal kezdjük, ami letölti az MMDVM_HS aktuális verzióját:
git clone https://github.com/juribeparada/MMDVM_HS
Ezt követően letöltjük az STM32 könyvtárát:
cd MMDVM_HS/
git clone https://github.com/juribeparada/STM32F10X_Lib
No és most megcsináljuk a konfigurációs fájlt. Kiadjuk a parancsot, ami megnyitja a fájl szerkesztését:
nano Config.h
Itt módosítjuk a vonatkozó sorokat erre, voltaképpen csak az UART sor elől kiszedjük a két perjelet, és az USB-s beállítást szkippeljük ki vele:
Ezzel nem mást mondtunk meg a rendszernek, mint azt, hogy a Raspberry az STM32 mmodemet nem az USB, hanem a belső portján keresztül éri el. Ebből a szerkesztőből a CTRL+X billentyűkombinációval kilépünk, majd az ipszilonnal elmentjük a művünket. Most jön a bootloader lefordítása a mikrovezérlő számára is emészthető kódra.
rpi-rw
make clean
make
A legfőbb lépés pedig az egész feltolása az STM32-be:
sudo make serial devser=/dev/ttyS1
Amikor mindezzel végeztünk, tegyük vissza a boot0 jumpert a nullás állásba, azaz az USB csatlakozó felé zárva a tüskéket. Ha minden klappol, egy reset nyomása után azt kell látni, hogy a hotspot panelen lévő LED-ek egyszerre felvillannak és az STM32 modulon lévő egyik LED néhány másodpercig gyorsan villog, majd lassabb ütemre kapcsol.
Ezzel elkészültünk a firmware telepítésével is, hamarosan a böngészős felület és a Brandmeister konfigurálásával, beállításával folytatjuk. Ez előbbiben van bug bőven, egyelőre igazodunk hozzájuk és sorba vesszük őket, de mire elkészül a cikk, talán ki is javítják. A hardverek ilyen mélységű programozására a továbbiakban nem lesz szükség, a modem beállításait a böngészőből konfigurált Pi-Star fogja elvégezni a portján keresztül.