Table of Contents

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)

Konfigurace SDR-widget hardware.

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-observeru 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";
};

Podrobný návod na Ubuntu wiki