Obsah
Příprava image stanice s ODROID-C2 a SDR-widget
Předpokládá se počítač s fungujícím operačním systémem Ubuntu 16.04. LTS. Architektura počítače může být jak ARM, tak i Intel. Oba případy jsou identické až na způsob připojení dalšího hardware, jako je například I²C.
$ sudo apt-get install build-essential cmake libusb-dev cython libudev-dev python-setuptools python-numpy python-cheetah libboost-all-dev libfftw3-dev libcfitsio-dev libjack-jackd2-dev autossh gpsd-clients buffer pv ntp libvolk1-dev git libhidapi-hidraw0 libhidapi-libusb0 libusb-1.0-doc curl python-websocket
I2C
git clone https://github.com/MLAB-project/i2c-tools.git cd i2c-tools make EXTRA="py-smbus" sudo make install cd py-smbus sudo python setup.py install sudo ldconfig
$ mkdir ~/repos $ cd ~/repos $ git clone https://github.com/MLAB-project/pymlab $ cd pymlab $ sudo python setup.py develop
U Odroidu-C2 je třeba I2C zprovoznit správným zápisem do /etc/modules
, jak je popsáno na MLAB wiki.
station-supervisor
$ cd ~/repos $ git clone https://github.com/MLAB-project/python-mlab-utils.git $ cd python-mlab-utils $ sudo python setup.py install
$ cd ~/repos $ git clone https://github.com/MLAB-project/station-supervisor.git
SDR-Widget
Nahrání firmware
Pro nahrání firmware potřebujeme upravený dfu-programmer, který stáhneme následujícím postupem:
sudo apt-get install autotools-dev automake git clone https://github.com/MLAB-project/dfu-programmer-sdr-widget.git cd dfu-programmer-sdr-widget/ ./bootstrap.sh ./configure make sudo make install
Předkompilovanou verzi Bolidozor firmware lze stáhnout z webu:
wget https://github.com/MLAB-project/sdr-widget/releases/download/bolidozor-v01/widget.elf
Před spuštěním nahrávacího sktiptu stiskneme na desce AVR32TQ tlačítko RESET a opět je pustíme. Následně stiskneme tlačítko BOOT (nepopsané tlačítko, držíme do opětovného stisku a uvolnění tlačítka RESET). Tím aktivujeme interní bootloader MCU a samotné nahrání firmware pak spustíme následujícím příkazem ze složky dfu-programmer-sdr-widget.
sudo ./program-widget widget.elf
Kontrola konfigurace
Po správném nahrání firmware bude sdr-widget hardware vidět na USB a VID a PID bude nastavené na fffe:0007
.
Taktéž po spuštění konfiguračního nástroje uvidíme toto nastavení (nelze jej měnit je pevně nastavené v Bolidozor verzi firmware)
Software na straně systému
Pro čtení dat z hardware sdr-widget se využívá nástrojů obsažených v repozitáři signal-piping-tools.
$ cd ~/repos $ git clone https://github.com/MLAB-project/signal-piping-tools.git $ cd signal-piping-tools $ make
Nastavení uživatelských práv
Standardní nastavení uživatelských práv neumožňuje přímou komunikaci s USB zařízeními přes libusb. Nastavení přístupových práv lze změnit vytvořením vhodného souboru v /etc/udev/rules.d/ . Ten vytvoříme následovně:
$ sudo su # curl https://raw.githubusercontent.com/borgestrand/sdr-widget/d4cc8700429bc1acef826f46d8e40df04e1f6e1c/etc/sdr-widget.rules > /etc/udev/rules.d/sdr-widget.rules # exit
Nyní je potřeba odpojit a znovu připojit USB zařízení. Pak je možné používat libusb i ze standardního uživatelského účtu.
radio-observer
$ cd ~/repos $ git clone https://github.com/MLAB-project/radio-observer.git $ cd radio-observer/ $ git submodule init $ git submodule update $ cd cppapp $ make $ cd .. $ make
data-uploader
Program zajišťující odesílání zaznamenaných dat nainstalujeme podle návodu na stránce Systém pro upload měřených dat ze stanic.
Nastavení staničního času
Změníme systémové časové pásmo na UT.
sudo dpkg-reconfigure tzdata
Někdy je také potřeba vygenerovat místní nastavení např:
sudo locale-gen cs_CZ.UTF-8
Časová synchronizace NTPd
Pro časovou synchronizaci je potřeba daemonu, který se stará o GPS povolit socket pro NTP.
To se udělá v souboru /etc/ntp.conf
server 127.127.28.0 minpoll 4 prefer fudge 127.127.28.0 time1 0.0 refid GPS
GPSd musí být zároveň nastaven tak, aby dával data i bez připojených klientů. Toho se dosáhne nastavením pří instalaci.
sudo dpkg-reconfigure gpsd Start gpsd automatically on boot? Yes Device the GPS receiver is attached to: /dev/ttyACM0 Should gpsd handle attached USB GPS receivers automatically? Yes Options to gpsd: -b -n
Otestování synchronizace lze provést podle návodu.
Příprava SDkarty
Novou SDkartu naformátujeme na souborový systém F2FS. K tomu potřebujeme do systému nainstalovat podporu souborového systému F2FS.
sudo apt install f2fs-tools gparted
Pak můžeme programem Gparted naformátovat SDkartu na souborový systém F2FS, který je optimalizovaný pro paměťová media s omezeným počtem zápisů. Lze to ale udělat i přes příkazový řádek následujícím postupem:
sudo mkfs.f2fs /dev/mmcblk1p1
Naformátovanou SDkartu pak připojíme do adresáře ~/bolidozor
a nastavíme souborová práva pro přístup i jinými uživateli než root.
sudo mount -t f2fs /dev/mmcblk1p1 ~/bolidozor/ sudo chgrp -R odroid bolidozor sudo chown -R odroid bolidozor
Adresáře pro ukládání záznamů a konfigurace stanice
Záznamy a konfigurace stanice se ukládají do ~/bolidozor
.
mkdir -p ~/bolidozor/station/snapshots mkdir -p ~/bolidozor/station/meteors mkdir -p ~/bolidozor/station/data cp ~/repos/radio-observer/Bolidozor.json ~/bolidozor/station/Bolidozor.json
Poslední příkaz nakopíruje výchozí konfiguraci radio-observer
u do ~/bolidozor/station/Bolidozor.json
, kde jí očekává startovací skript. Po nakopírování je třeba na tomto řádku změnit název stanice. (V odkazu je název stanice debug
.)
Spuštění po startu
Protože se většina stanic instaluje na počítač zvaný Odroid, jehož výchozí uživatel se jmenuje odroid
, předpokládá následující, že se tak jmenuje i uživatel, pod kterým bude běžet staniční software. Dosaďte za odroid
správné jméno, pokud to tak není.
Do /etc/rc.local
je třeba zapsat, co se má spustit po startu. Na všech stanicích by se mělo spustit /home/odroid/repos/station-supervisor/start.sh
, což nastartuje všechen staniční software. Protože má staniční software běžet pod uživatelem odroid
, bude celý příkaz ke zkopírování vypadat takto:
su odroid /home/odroid/repos/station-supervisor/start.sh
Pokud se mají na Odroidu zapisovat záznamy na SD kartu, mělo by se ještě před start.sh
spustit také /home/odroid/repos/station-supervisor/mount-sd-card.sh
, což kartu připojí přes /home/odroid/bolidozor
.
Příkazy by se do rc.local
měly přidat před exit 0
, které tak zůstane na konci. Příklad /etc/rc.local
po úpravě:
#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. /home/odroid/repos/station-supervisor/mount-sd-card.sh su odroid /home/odroid/repos/station-supervisor/start.sh & exit 0
Automatické aktualizace
Z bezpečnostních důvodů je vhodné nechat aktivovanou automatickou aktualizaci balíků. Ta je nastavena v souboru /etc/apt/apt.conf.d/10periodic. Do něj stačí zapsat následující konfiguraci:
APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Download-Upgradeable-Packages "1"; APT::Periodic::AutocleanInterval "7"; APT::Periodic::Unattended-Upgrade "1";
Pak ještě aktivujeme nastavení odkomentováním potřebných řádků v souboru /etc/apt/apt.conf.d/50unattended-upgrades
// Automatically upgrade packages from these (origin:archive) pairs Unattended-Upgrade::Allowed-Origins { "${distro_id}:${distro_codename}"; "${distro_id}:${distro_codename}-security"; "${distro_id}:${distro_codename}-updates"; // "${distro_id}:${distro_codename}-proposed"; // "${distro_id}:${distro_codename}-backports"; };