Tutoriál – Návod ako vyrobiť RTL-SDR server ovládaný na diaľku na Orange Pi Zero

Tutoriál – Návod ako vyrobiť RTL-SDR server ovládaný na diaľku na Orange Pi Zero

 
 

Úvod

V tomto tutoriále vysvetlím krok po kroku, ako spraviť server na vzdialené počúvanie cez internet alebo lokálnu sieť (LAN) cez program SDRSharp na klientovi. Na servri (Orange Pi Zero) rozbehneme RTL-SDR drivre, obslužné appky ako napr. rtl_tcp ktoré vie na diaľku ovláadať RTL-SDR dongle a rtl_433 na vyčuchanie nejakých zaujímavých dát z éteru. 🙂

Zakončím to svojím open-source skriptom, ktorý som zverejnil na Githube, ktorý vie výstup z rtl_433 zobrazovať ako dynamickú web stránku. Je napísaný v jazyku Python.

Takto bude vyzerať hotový projekt:

Čo budeme potrebovať

Na začiatok budeme potrebovať

  • Inštalačku programu Etcher na napálenie obrazu systému na SD kartu
  • Obraz základného systému Armbian pre Orange Pi Zero, samozreme sťahujeme Stable verziu, a ak to chceme mať rýchlo, tak cez torrent (to je legálny torrent)

  • Orange Pi Zero, ktoré sa dá kúpiť za cca 9€ tu na Aliexpresse
  • Ľubovoľný RTL-SDR dongle stačí ten najlacnejší a najmenší, ja som použil ten čierny malý
  • SD kartu aspoň 8GB ale určite Class 10, ja som si obľúbil overenú kvalitku firmy LD, je to čína ale šlape to… aj stoja viac trošku

Pod týmto symbolom zistíte akej classy je vaša SD karta. Nikdy nikdy nikdy nepoužívajte na server fakeové karty. (90% na Ebay, Aliexpress)…

 

Príprava karty

Najprv rozbalíme stiahnutý obraz systému napríklad programom WinRAR alebo 7Zip.

Spustíme Etcher, a vyberieme rozbalený .img súbor.

Cez Select drive potom vyberieme našu SD-kartu a klikneme na Flash!

Etcher by si mal vedieť sám kartu správne naformátovať, ale ak by mu to nešlo, použite pred flashovaním program SD-Formatter. Treba ale nastaviť Size Adjust na ON.




Prvý boot a napojenie na Orange Pi Zero

Nezľakni sa, prvý a druhý boot trvá dosť dlho.

Stiahni alebo nainštaluj Putty na Windows, alebo cez Mac OS sa môžeš pripojiť príkazom:

ssh -l root <IP ADRESA TVOJHO ORANGE PI ZERO>

v termináli.

Adresu zistíš, keď sa prihlásiš na svoj router a tam si pozrieš aké zariadenia sú prihlásené cez DHCP. Uvidíš „OrangePiZero“. Môžeš použiť aj aplikáciu Fing na Android alebo iOS.

 

Prvý boot

Samozrejme pripoj do Orange Pi Zero ehternetový kábel a USB napájanie. Je dôležité, aby si použil aspon 5V 2A zdroj.

Keď sa pripojíš, prihlás sa ako root a heslo bude 1234.

Pre tých čo to nevedia, na všetkých Linuxových strojoch heslo nevypisuje hviezdičky keď píšes, kvôli bezpečnosti. Takže len pokojne píš a daj Enter.

Po prvom prihlásení ťa Armbian hneď vyzve, aby si si zmenil heslo na roota. Napíš 1x pôvodné heslo, 2x nové heslo a daj enter.

Následne ta systém vyzve aby si založil bežného používateľa. Vyplň údaje, zadaj heslo a si ready.

Dostaneš hlášku:

Warning: a reboot is needed to finish resizing the filesystem

Teraz už len napíš

 reboot

a stlač Enter.

Orange Pi sa reštartuje. Chvíľku mu to potrvá. Po tom, čo sa znova prihlásiš, prihlás sa ako root a daj heslo ktoré si zadával ako prvé.

Prvé čo sprav, je plný ugprade systému:

apt update

apt upgrade

Môže sa stať, že sa spustia automatické aktualizácie, a preto sa ti nebude dať spustiť apt-get upgrade, resp. vypíše chybu. To skontroluješ, keď spustíš

htop

a pozreš sa, či beží proces bla bla bla /unattended-upgrade.

Htop ukončíš tlačítkom q.

Takto vyzerá bežiaci apt upgrade:

Keď skončia upgrady, spusti

apt install librtlsdr0
apt install librtlsdr-dev

To nainštaluje librtlsdr driver.

Ešte potrebujeme:

apt install rtl-sdr

Na nainštalovanie utilít k RTL-SDR.

Keď ale spustíme appku rtl_test, dostaneme chybu:

root@orangepizero:~# rtl_test
Found 1 device(s):
 0: Realtek, RTL2838UHIDIR, SN: 00000001

Using device 0: Generic RTL2832U OEM

Kernel driver is active, or device is claimed by second instance of librtlsdr.
In the first case, please either detach or blacklist the kernel module
(dvb_usb_rtl28xxu), or enable automatic detaching at compile time.

usb_claim_interface error -6
Failed to open rtlsdr device #0.

Túto chybu ľahko odstránime blacklistovaním drivera, ktorý slúži na pozeranie DVB-T TV a počúvanie terestriálneho DVB-T rádia.
Upravíme blacklist súbor pomocou textového editora nano:

nano /etc/modprobe.d/rtl-sdr-blacklist.conf

A do súboru vložíme:

install dvb_usb_rtl2832u /bin/false

Potom stlačíme F2, odpovieme „y“ a stlačíme Enter.

Tým sa súbor uloží.

Teraz treba reštartovať, takže zase

reboot

A pripojíme sa znovu.

Len taká pripomienka, že príkazy ukončujeme cez skratku Ctrl-C alebo Cmd-C na Macu.

Teraz, keď spustíme

rtl_test

dostaneme hlášku že vie čítať sample.

Reading samples in async mode…

To je super! Vieme komunikovať s našim RTL-SDR donglom.

Keby sme teraz chceli iba vytvoriť vzdialený server, spustili by sme napríklad

rtl_tcp -a 0.0.0.0 -p 1234

Tak sa môžeme z iného počítača kde je napr. SDR-Sharp pripojiť na Orange Pi Zero a na porte 1234 nám tam pobeží krásne dekódovanie aj so zvukom.




Takto jednoducho môžeme mať vzdialený server na mieste so zlou prístupnosťou, ale dorbrou anténou.

Teraz si skompilujeme rtl_433.

Príkazy kopírujte po jednom.

apt install git cmake libtool libusb-1.0.0-dev librtlsdr-dev

git clone https://github.com/merbanan/rtl_433.git

cd rtl_433

mkdir build

cd build

cmake ../

make

make install

Takto by to malo vyzerať pri kompilácii:

Teraz by sme mali mať rtl_433 nainštalovaný.

Vyskúšame ho spustením

rtl_433

ak nám začne dekódovať dáta, je všetko v poriadku.



Teraz moja čerešnička na torte.

Vypracoval som program rtl_433_publish, ktorý spustí rtl_433 a vytvorí webserver kde zobrazuje všetky prijaté dáta, takže údaje sa dajú pozerať live cez prehliadač.

Postup inštalácie:

apt install python3-dev python3-pip
pip3 install flask
pip3 install shellcode
git clone https://github.com/tekk/rtl_443_publish
cd rtl_443_publish
chmod +x app.py
./app.py

Keď sa vám toto všetko podarí, server vypíše:

root@orangepizero:~/rtl_443_publish# ./app.py
 * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)

Keď prídete na IP adresu Orange Pi Zero na port 5000, uvidíte toto:

Text bude stále pribúdať a scrollovať.

Pridávam ešte pár obrázkov.

Ako otvoriť porty na vašom routri už nechám na inokedy…

Orange Pi Zero má aj Wifi, takže budúcu prácu na tomto projekte by som videl v rozchodení bezdrôtovej siete cez terminál (tým ale asi stratíme nejakú šírku pásma)…

Dúfam že som niekoho inšpiroval a tiež sa začne zabávať s Linuxom ako ja. 😀

Ostanťe kreatívni. Zatiaľ… 🙂

73, Tekk BB, OM7AXT

 

 




259 total views, 17 views today

Leave a Reply

Vaša e-mailová adresa nebude zverejnená.