FIXME **This page is not fully translated, yet. Please help completing the translation.**\\ //(remove this paragraph once the translation is finished)// ====== Preparing a station’s image with ODROID-C2 and SDR-widget ====== A prerequisite is a computer with a working operating system Ubuntu 16.04.LTS. Computer’s architecture can be either ARM or Intel. Both cases are identical to the way of connecting further hardware such as 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 In case of Odroid-C2, I²C has to be made work by a correct entry into ''/etc/modules'', as described at [[http://wiki.mlab.cz/doku.php?id=en:odroid-u3#I%C2%B2C%20na%20odroid-U3|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 ===== ==== Loading the firmware ==== To load the firmware, you need an adjusted dfu-programmer, that can be downloaded in a following way: 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 Precompiled version of Bolidozor firmware can be downloaded from: wget https://github.com/MLAB-project/sdr-widget/releases/download/bolidozor-v01/widget.elf Before running the recording script, press RESET button on AVR32TQ board and release it again. Next, press BOOT button (unlabelled button, hold it pressed until the next press and release of RESET). In this way, you activate the internal boot loader MCU. Then, the firmware loading can be run by a following command from //dfu-programmer-sdr-widget// folder. sudo ./program-widget widget.elf ==== Checking the configuration ==== After a correct loading of the firmware, the [[http://wiki.mlab.cz/doku.php?id=en:sdr-widget|sdr-widget hardware]] will become visible on USB and VID and PID will be set to ''fffe:0007''. This setting will also be visible when running the configuration tool (it cannot be changed, it is fixed for a specific Bolidozor firmware version). {{:cs:rmds:jackless_rmds_sdr-widget.png?600|Konfigurace SDR-widget hardware.}} ==== System software ==== To read data from sdr-widget hardware, use the tools from [[https://github.com/MLAB-project/signal-piping-tools|signal-piping-tools]] repository. $ cd ~/repos $ git clone https://github.com/MLAB-project/signal-piping-tools.git $ cd signal-piping-tools $ make ==== Setting the user rights ==== The default user rights setting do not enable a direct communication with USB devices via libusb. User rights can be altered by creating a proper file in // /etc/udev/rules.d/ //, as follows: $ sudo su # curl https://raw.githubusercontent.com/borgestrand/sdr-widget/d4cc8700429bc1acef826f46d8e40df04e1f6e1c/etc/sdr-widget.rules > /etc/udev/rules.d/sdr-widget.rules # exit Now it is necessary to unplug and plug the USB device again. Then you can use libusb even from a standard user account. ===== 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 ===== A programme providing a sending of recorded data can be installed following a guide at [[en:data-uploader|Upload system for measured data from stations]]. ====== Setting station’s time ====== Change the system time zone to UT. sudo dpkg-reconfigure tzdata Sometimes it is also necessary to generate a local setting, e.g.: sudo locale-gen cs_CZ.UTF-8 ===== Time synchronisation NTPd ===== Time synchronisation requires a daemon that handles the GPS socket for NTP (??který se stará o GPS povolit socket pro NTP). It can be done in /etc/ntp.conf file server 127.127.28.0 minpoll 4 prefer fudge 127.127.28.0 time1 0.0 refid GPS GPSd has to be at the sea time set to give data even without connected clients. It can be done during installation. 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 Testing the synchronisation can be done following these [[http://wiki.mlab.cz/doku.php?id=cs:time_sync|instructions]]. ===== Getting an SD card ready ===== A new SD card has to be formatted to [[https://en.wikipedia.org/wiki/F2FS|F2FS]] file system. In order to do it, you have to install a support for F2FS file system into your OS. sudo apt install f2fs-tools gparted Then you can use Gparted programme to format an SD cart to F2FS file system, which is optimised for memory media with a limited number of entries. The formatting can be done from a command line with a following command: sudo mkfs.f2fs /dev/mmcblk1p1 Connect the formatted SD card to ''~/bolidozor'' directory and set the file rights so that other users than root will also be granted an access. sudo mount -t f2fs /dev/mmcblk1p1 ~/bolidozor/ sudo chgrp -R odroid bolidozor sudo chown -R odroid bolidozor ===== Directories for saving the records and station’s configuration ===== Records and station’s settings are saved to ''~/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 The last command will copy a default configuration of ''radio-observer''u to ''~/bolidozor/station/Bolidozor.json'', where a startup script awaits it. After copying, it is necessary to change a name of the station in [[https://github.com/MLAB-project/radio-observer/blob/feat/raw/Bolidozor.json#L36|this line]]. (The link contains a station named ''debug''.) ===== Launching after startup ===== Because most stations are installed on Odroid computers, whose default user is called ''odroid'', it is assumed that the user who runs the station software is also called ''odroid''. Substitute the correct name for ''odroid'' if necessary. It is also necessary to add to ''/etc/rc.local'' what has to be launched after startup. All stations should launch ''/home/odroid/repos/station-supervisor/start.sh'' - this will run the station’s software. Because the station’s software should run under ''odroid'' user, the whole command should look like as follows: su odroid /home/odroid/repos/station-supervisor/start.sh If the records on Odroid should be written on an SD card, before the ''start.sh'' a ''/home/odroid/repos/station-supervisor/mount-sd-card.sh'' should also be run - it will connect the card via ''/home/odroid/bolidozor''. The commands should be added to ''rc.local'' before ''exit 0'', which will then remain at the end of the file. An example of ''/etc/rc.local'' after adjustments: #!/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 ===== Automatic actualisations ===== Due to safety reasons it is recommended to let the automatic package actualisations activated. The actualisations are configured via ///etc/apt/apt.conf.d/10periodic// file. The following configuration has to be added to the file: APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Download-Upgradeable-Packages "1"; APT::Periodic::AutocleanInterval "7"; APT::Periodic::Unattended-Upgrade "1"; Next, we activate the setting by un-commenting desirable lines in ///etc/apt/apt.conf.d/50unattended-upgrades// file: // 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"; }; [[https://help.ubuntu.com/lts/serverguide/automatic-updates.html|A detailed guide at Ubuntu wiki]]