Építsünk HotSpotot! – 3. rész, a szoftverek telepítése

2018. június 13. szerda

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.

pi-star-elso-screenshot

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.

bejelentkezes

 

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.

putty-start-mmdvm

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.

putty-login-raspberry

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.

pi-star-logged-in

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 aptget update

sudo-aptupdate

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.

sudo-hosszu-vege

 

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.

boot2

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

sudo-hs-letolt

Ezt követően letöltjük az STM32 könyvtárát:

cd MMDVM_HS/
git clone https://github.com/juribeparada/STM32F10X_Lib

sudo-stmlib

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

sudo-config_h

sudo-config-mod

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:

// Host communication selection:
#define STM32_USART1_HOST
//#define STM32_USB_HOST

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

sudo-boot-rw

A legfőbb lépés pedig az egész feltolása az STM32-be:

sudo make serial devser=/dev/ttyS1

sudo-bootloader-done

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.