{"id":218,"date":"2017-12-29T12:08:57","date_gmt":"2017-12-29T12:08:57","guid":{"rendered":"http:\/\/lora.vsb.cz\/?p=218"},"modified":"2022-04-05T17:55:51","modified_gmt":"2022-04-05T17:55:51","slug":"building-rpi-gateway","status":"publish","type":"page","link":"https:\/\/lora.vsb.cz\/index.php\/building-rpi-gateway\/","title":{"rendered":"Building Lora@VSB TTN gateway with RPi &#038; iC880a in 7 steps (legacy)"},"content":{"rendered":"<p>Used HW: <strong><a href=\"https:\/\/www.raspberrypi.org\/products\/raspberry-pi-2-model-b\/\">Raspberry-Pi2B<\/a> &amp; <a href=\"https:\/\/wireless-solutions.de\/products\/radiomodules\/ic880a.html\" target=\"_blank\" rel=\"noopener\">iC880a SPI<\/a><\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-306 alignleft\" src=\"http:\/\/lora.vsb.cz\/wp-content\/uploads\/2017\/12\/Raspberry-Pi-Model-B-462x322.jpg\" alt=\"\" width=\"159\" height=\"113\" \/><a href=\"https:\/\/wireless-solutions.de\/products\/radiomodules\/ic880a.html\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-307 alignleft\" src=\"http:\/\/lora.vsb.cz\/wp-content\/uploads\/2017\/12\/ic880a-spi.jpg\" alt=\"\" width=\"165\" height=\"129\" \/><\/a><\/p>\n<h4><\/h4>\n<h4><\/h4>\n<h4><\/h4>\n<h4><\/h4>\n<h4><\/h4>\n<h4><\/h4>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h4 class=\"comments-section\"><strong>Step 1: Prepare image to SD card<br \/>\n<\/strong><\/h4>\n<h4 class=\"comments-section\"><strong><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-305 alignleft\" src=\"http:\/\/lora.vsb.cz\/wp-content\/uploads\/2017\/12\/raspbian-logo-1.png\" alt=\"\" width=\"90\" height=\"76\" \/><\/strong><\/h4>\n<p class=\"comments-section\">Download the <a href=\"https:\/\/downloads.raspberrypi.org\/raspbian_lite_latest\">latest Raspbian-lite image<\/a>, format SD card and install image to it as usual.<\/p>\n<h4 class=\"comments-section\"><\/h4>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h4><\/h4>\n<h4 class=\"comments-section\"><strong>Step 2: Customise OS<br \/>\n<\/strong><\/h4>\n<p class=\"comments-section\">Run RPI, login as default user &#8222;pi&#8220; (default passwd &#8222;raspberry&#8220;) and customise OS:<\/p>\n<h5><strong>Step 2.1:<\/strong> update OS:<\/h5>\n<pre># rpi-update\r\n# apt-get dist-upgrade\r\n# apt-get update\r\n# rpi-update<\/pre>\n<h5><strong>Step 2.2: delete default user PI:<\/strong><\/h5>\n<pre># adduser &lt;new-user&gt;\r\n# deluser pi<\/pre>\n<h5><strong>Step 2.3:<\/strong> <strong>install Persistent IPtables:<\/strong><\/h5>\n<pre># apt-get install iptables-persistent\r\n# vi \/etc\/iptables\/rules.v4\r\n<\/pre>\n<p>This is an example of file rules.v4:<\/p>\n<pre><em># Generated by iptables-save v1.4.21 on Thu Feb 16 18:14:59 2017 \r\n*filter \r\n:INPUT DROP [0:0] \r\n:FORWARD ACCEPT [0:0] \r\n:OUTPUT ACCEPT [0:0] \r\n-A INPUT -i lo -j ACCEPT \r\n-A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT \r\n-A INPUT -p udp --dport 1700 -m state --state NEW -j ACCEPT \r\n-A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED \r\nCOMMIT\r\n<\/em><\/pre>\n<h5><em><strong>Step 2.4:<\/strong>\u00a0<\/em><strong>set NTP time: <\/strong><\/h5>\n<ol>\n<li>Go to <a href=\"http:\/\/support.ntp.org\/bin\/view\/Servers\/NTPPoolServers\" target=\"_blank\" rel=\"noopener\">http:\/\/support.ntp.org\/bin\/view\/Servers\/NTPPoolServers<\/a> and click the host name corresponding to your area. Assuming the area is North America, the servers are:\n<div>\n<pre>  server 0.north-america.pool.ntp.org\r\n  server 1.north-america.pool.ntp.org\r\n  server 2.north-america.pool.ntp.org\r\n  server 3.north-america.pool.ntp.org\r\n<\/pre>\n<\/div>\n<\/li>\n<li>Open \/etc\/ntp.conf in a text editor. If you use the nano editor, run sudo nano \/etc\/ntp.conf<\/li>\n<li>You should see a list of servers similar to the one below, replace the servers with the ones from step 1::\n<div>\n<pre>server 0.cz.pool.ntp.org iburst\r\n server 1.cz.pool.ntp.org iburst\r\n server 2.cz.pool.ntp.org iburst\r\n server 3.cz.pool.ntp.org iburst\r\n<\/pre>\n<\/div>\n<\/li>\n<li>Comment out (by adding a # in front of the line) the following two lines:\n<div>\n<pre>  restrict 127.0.0.1\r\n  restrict ::1\r\n<\/pre>\n<\/div>\n<\/li>\n<li>Save the file and exit<\/li>\n<li>Set the correct time zone by running # sudo cp \/usr\/share\/zoneinfo\/US\/Pacific \/etc\/localtime. Replace US\/Pacific with your time zone. If you are not sure about the possible values, look in \/usr\/share\/zoneinfo<\/li>\n<li>Restart the ntp server: sudo \/etc\/init.d\/ntp restart<\/li>\n<li>Run <code class=\"highlighter-rouge\">date<\/code> in a terminal<\/li>\n<li>If the time is not correct, you might have to force update it. This is because, by default, <code class=\"highlighter-rouge\">ntp<\/code> will not sync if the difference between the system time and the real-time is greater that 1000 seconds. Run <code class=\"highlighter-rouge\">sudo ntpd -gq<\/code> and the restart <code class=\"highlighter-rouge\">ntp<\/code><\/li>\n<\/ol>\n<h5><strong> Step 2.5: turn off wifi (if you use RPI3 and dont need it):<\/strong><\/h5>\n<pre># iwconfig wlan0 txpower off (if needed tun on: # iwconfig wlan0 txpower auto)<\/pre>\n<p>check status:<\/p>\n<pre># rfkill list all<\/pre>\n<p>&nbsp;<\/p>\n<h4><strong>Step 3: Putting it all together <\/strong><\/h4>\n<p>Connect the jumper wires between the two boards using the following table:<\/p>\n<table style=\"border-collapse: collapse; border-spacing: 0px; border-color: #999999; width: 40%;\">\n<tbody>\n<tr>\n<th style=\"font-family: Arial, sans-serif; font-size: 14px; font-weight: bold; padding: 0px 3px; overflow: hidden; word-break: normal; color: #ffffff; background-color: #34cdf9; vertical-align: top; border: 1px solid #999999; text-align: center;\">iC880 pin<\/th>\n<th style=\"font-family: Arial, sans-serif; font-size: 14px; font-weight: bold; padding: 0px 3px; overflow: hidden; word-break: normal; color: #ffffff; background-color: #34cdf9; vertical-align: top; border: 1px solid #999999; text-align: center;\">Description<\/th>\n<th style=\"font-family: Arial, sans-serif; font-size: 14px; font-weight: bold; padding: 0px 3px; overflow: hidden; word-break: normal; color: #ffffff; background-color: #34cdf9; vertical-align: top; border: 1px solid #999999; text-align: center;\">RPi pin<\/th>\n<\/tr>\n<tr>\n<td style=\"font-family: Arial, sans-serif; font-size: 14px; padding: 0px 3px; overflow: hidden; word-break: normal; color: #444444; background-color: #efefef; vertical-align: top; border: 1px solid #999999; text-align: center;\">21<\/td>\n<td style=\"font-family: Arial, sans-serif; font-size: 14px; padding: 0px 3px; overflow: hidden; word-break: normal; color: #444444; background-color: #efefef; vertical-align: top; border: 1px solid #999999; text-align: center;\">+5V<\/td>\n<td style=\"font-family: Arial, sans-serif; font-size: 14px; padding: 0px 3px; overflow: hidden; word-break: normal; color: #444444; background-color: #efefef; vertical-align: top; border: 1px solid #999999; text-align: center;\">2<\/td>\n<\/tr>\n<tr>\n<td style=\"font-family: Arial, sans-serif; font-size: 14px; padding: 0px 3px; overflow: hidden; word-break: normal; color: #444444; background-color: #efefef; vertical-align: top; border: 1px solid #999999; text-align: center;\">22<\/td>\n<td style=\"font-family: Arial,sans-serif; font-size: 14px; padding: 0px 3px; overflow: hidden; word-break: normal; color: #444444; background-color: #efefef; text-align: center; vertical-align: top; border: 1px solid #999999;\">GND<\/td>\n<td style=\"font-family: Arial, sans-serif; font-size: 14px; padding: 0px 3px; overflow: hidden; word-break: normal; color: #444444; background-color: #efefef; vertical-align: top; border: 1px solid #999999; text-align: center;\">6 (14, 25)<\/td>\n<\/tr>\n<tr>\n<td style=\"font-family: Arial, sans-serif; font-size: 14px; padding: 0px 3px; overflow: hidden; word-break: normal; color: #444444; background-color: #efefef; vertical-align: top; border: 1px solid #999999; text-align: center;\">13<\/td>\n<td style=\"font-family: Arial,sans-serif; font-size: 14px; padding: 0px 3px; overflow: hidden; word-break: normal; color: #444444; background-color: #efefef; text-align: center; vertical-align: top; border: 1px solid #999999;\">Reset<\/td>\n<td style=\"font-family: Arial, sans-serif; font-size: 14px; padding: 0px 3px; overflow: hidden; word-break: normal; color: #444444; background-color: #efefef; vertical-align: top; border: 1px solid #999999; text-align: center;\">11<\/td>\n<\/tr>\n<tr>\n<td style=\"font-family: Arial, sans-serif; font-size: 14px; padding: 0px 3px; overflow: hidden; word-break: normal; color: #444444; background-color: #efefef; vertical-align: top; border: 1px solid #999999; text-align: center;\">14<\/td>\n<td style=\"font-family: Arial,sans-serif; font-size: 14px; padding: 0px 3px; overflow: hidden; word-break: normal; color: #444444; background-color: #efefef; text-align: center; vertical-align: top; border: 1px solid #999999;\">SPI CLK<\/td>\n<td style=\"font-family: Arial, sans-serif; font-size: 14px; padding: 0px 3px; overflow: hidden; word-break: normal; color: #444444; background-color: #efefef; vertical-align: top; border: 1px solid #999999; text-align: center;\">23<\/td>\n<\/tr>\n<tr>\n<td style=\"font-family: Arial, sans-serif; font-size: 14px; padding: 0px 3px; overflow: hidden; word-break: normal; color: #444444; background-color: #efefef; vertical-align: top; border: 1px solid #999999; text-align: center;\">15<\/td>\n<td style=\"font-family: Arial,sans-serif; font-size: 14px; padding: 0px 3px; overflow: hidden; word-break: normal; color: #444444; background-color: #efefef; text-align: center; vertical-align: top; border: 1px solid #999999;\">MISO<\/td>\n<td style=\"font-family: Arial, sans-serif; font-size: 14px; padding: 0px 3px; overflow: hidden; word-break: normal; color: #444444; background-color: #efefef; vertical-align: top; border: 1px solid #999999; text-align: center;\">21<\/td>\n<\/tr>\n<tr>\n<td style=\"font-family: Arial, sans-serif; font-size: 14px; padding: 0px 3px; overflow: hidden; word-break: normal; color: #444444; background-color: #efefef; vertical-align: top; border: 1px solid #999999; text-align: center;\">16<\/td>\n<td style=\"font-family: Arial,sans-serif; font-size: 14px; padding: 0px 3px; overflow: hidden; word-break: normal; color: #444444; background-color: #efefef; text-align: center; vertical-align: top; border: 1px solid #999999;\">MOSI<\/td>\n<td style=\"font-family: Arial, sans-serif; font-size: 14px; padding: 0px 3px; overflow: hidden; word-break: normal; color: #444444; background-color: #efefef; vertical-align: top; border: 1px solid #999999; text-align: center;\">19<\/td>\n<\/tr>\n<tr>\n<td style=\"font-family: Arial, sans-serif; font-size: 14px; padding: 0px 3px; overflow: hidden; word-break: normal; color: #444444; background-color: #efefef; vertical-align: top; border: 1px solid #999999; text-align: center;\">17<\/td>\n<td style=\"font-family: Arial, sans-serif; font-size: 14px; padding: 0px 3px; overflow: hidden; word-break: normal; color: #444444; background-color: #efefef; vertical-align: top; border: 1px solid #999999; text-align: center;\">NSS<\/td>\n<td style=\"font-family: Arial, sans-serif; font-size: 14px; padding: 0px 3px; overflow: hidden; word-break: normal; color: #444444; background-color: #efefef; vertical-align: top; border: 1px solid #999999; text-align: center;\">24<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>We&#8217;re now ready to power up and start configuring our gateway!<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-255 alignnone\" src=\"http:\/\/lora.vsb.cz\/wp-content\/uploads\/2017\/12\/web-1-300x180.jpg\" alt=\"\" width=\"425\" height=\"255\" srcset=\"https:\/\/lora.vsb.cz\/wp-content\/uploads\/2017\/12\/web-1-300x180.jpg 300w, https:\/\/lora.vsb.cz\/wp-content\/uploads\/2017\/12\/web-1-768x461.jpg 768w, https:\/\/lora.vsb.cz\/wp-content\/uploads\/2017\/12\/web-1-1024x615.jpg 1024w\" sizes=\"auto, (max-width: 425px) 100vw, 425px\" \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <img loading=\"lazy\" decoding=\"async\" class=\"wp-image-413 alignnone\" src=\"http:\/\/lora.vsb.cz\/wp-content\/uploads\/2018\/01\/gw-1-300x200.jpg\" alt=\"\" width=\"383\" height=\"255\" srcset=\"https:\/\/lora.vsb.cz\/wp-content\/uploads\/2018\/01\/gw-1-300x200.jpg 300w, https:\/\/lora.vsb.cz\/wp-content\/uploads\/2018\/01\/gw-1-768x512.jpg 768w, https:\/\/lora.vsb.cz\/wp-content\/uploads\/2018\/01\/gw-1-1024x683.jpg 1024w, https:\/\/lora.vsb.cz\/wp-content\/uploads\/2018\/01\/gw-1-272x182.jpg 272w, https:\/\/lora.vsb.cz\/wp-content\/uploads\/2018\/01\/gw-1.jpg 1300w\" sizes=\"auto, (max-width: 383px) 100vw, 383px\" \/><\/p>\n<p>If you have a 3D printer, you can use a holder to mount both boards together. <a href=\"http:\/\/lora.vsb.cz\/wp-content\/uploads\/2018\/01\/RPI-iC880-holder.zip\">Download<\/a>\u00a0 all <em>*.stl<\/em> and <em>*.gcode<\/em> files.<\/p>\n<p>&nbsp;<\/p>\n<h4><strong>Step 4: <\/strong>Setting up the software<\/h4>\n<ul>\n<li>Use <code>raspi-config<\/code> utility to <strong>enable SPI<\/strong> ([5] Interfacing options -&gt; P4 SPI) and also expand the filesystem ([7] Advanced options -&gt; A1 Expand filesystem):\n<pre>$ sudo raspi-config<\/pre>\n<\/li>\n<li>Reboot (it will ask on exit, but you can do it manually with <code>sudo reboot<\/code>)<\/li>\n<li>Configure locales and time zone:\n<pre>$ sudo dpkg-reconfigure locales\r\n$ sudo dpkg-reconfigure tzdata\r\n<\/pre>\n<\/li>\n<li>Make sure you have an updated installation and install <code>git<\/code>:\n<pre>$ sudo apt-get install git<\/pre>\n<\/li>\n<\/ul>\n<ul>\n<li>If PRI3: Configure the wifi credentials (check <a href=\"https:\/\/www.raspberrypi.org\/documentation\/configuration\/wireless\/wireless-cli.md\">here for additional details<\/a>)\n<pre># nano \/etc\/wpa_supplicant\/wpa_supplicant.conf<\/pre>\n<\/li>\n<\/ul>\n<p>And add the following block at the end of the file, replacing SSID and password to match your network:<\/p>\n<pre>\tnetwork={\r\n\t    ssid=\"The_SSID_of_your_wifi\"\r\n\t    psk=\"Your_wifi_password\"\r\n\t}\r\n<\/pre>\n<ul>\n<li>Clone <a href=\"https:\/\/github.com\/ttn-zh\/ic880a-gateway\/tree\/spi\">the installer<\/a> and start the installation\n<pre>$ git clone -b spi https:\/\/github.com\/ttn-zh\/ic880a-gateway.git ~\/ic880a-gateway\r\n$ cd ~\/ic880a-gateway\r\n$ sudo .\/install.sh spi\r\n<\/pre>\n<\/li>\n<li>If you want to use the remote configuration option, please make sure you have created a JSON file named as your gateway EUI (e.g. <code><strong>B827EB<\/strong>FFFE<strong>7B80CD<\/strong>.json<\/code>) in the <a href=\"https:\/\/github.com\/ttn-zh\/gateway-remote-config\">Gateway Remote Config repository<\/a>. EUI folows MAC addr of eth0 (or wlan0)<\/li>\n<li>By default, the installer changes the hostname of your Raspeberry Pi to <code>ttn-gateway<\/code> (to prevent collisions with other Raspberry Pis in your network). You can override this in non-remote configuration mode.<\/li>\n<\/ul>\n<p><strong>reset iC880a on boot <\/strong>(GPIO 17 = pin 11 connected to reset pin 13 on iC880a):<\/p>\n<p>put simlink to \/etc\/rc2.d to following script:<\/p>\n<pre><em>#!\/bin\/bash<\/em>\r\n<em>echo \"17\" &gt; \/sys\/class\/gpio\/export<\/em>\r\n<em>echo \"out\" &gt; \/sys\/class\/gpio\/gpio17\/direction<\/em>\r\n<em>echo \"1\" &gt; \/sys\/class\/gpio\/gpio17\/value<\/em>\r\n<em>sleep 5<\/em>\r\n<em>echo \"0\" &gt; \/sys\/class\/gpio\/gpio17\/value<\/em>\r\n<em>sleep 1<\/em>\r\n<em>echo \"0\" &gt; \/sys\/class\/gpio\/gpio17\/value<\/em>\r\n<em>iC880-SPI_reset.sh<\/em><\/pre>\n<p>&nbsp;<\/p>\n<h4><strong>Step 5: <\/strong>Checking connection to TTN<\/h4>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-323 alignleft\" src=\"http:\/\/lora.vsb.cz\/wp-content\/uploads\/2017\/12\/ttn-logo.b40301974601-300x231.png\" alt=\"\" width=\"95\" height=\"73\" srcset=\"https:\/\/lora.vsb.cz\/wp-content\/uploads\/2017\/12\/ttn-logo.b40301974601-300x231.png 300w, https:\/\/lora.vsb.cz\/wp-content\/uploads\/2017\/12\/ttn-logo.b40301974601-768x592.png 768w, https:\/\/lora.vsb.cz\/wp-content\/uploads\/2017\/12\/ttn-logo.b40301974601-1024x789.png 1024w, https:\/\/lora.vsb.cz\/wp-content\/uploads\/2017\/12\/ttn-logo.b40301974601.png 1288w\" sizes=\"auto, (max-width: 95px) 100vw, 95px\" \/><\/p>\n<p>The best way to check if the gateway is working is registering it on the TTN Console.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li>Login to thethingsnetwork.org <code>Console<\/code><\/li>\n<li>Click on <code>Gateways -&gt; register gateway<\/code><\/li>\n<li>Select the <code>packet forwarder<\/code> protocol<\/li>\n<li>Enter your Gateway EUI (if is printed on start and end of the installer)<\/li>\n<li>Enter any description<\/li>\n<li>Select <code>Europe 868Mhz<\/code> as frequency plan<\/li>\n<li>Select the correct antenna placement according to your plans<\/li>\n<li>Confirm clicking <code>Register gateway<\/code><\/li>\n<\/ul>\n<p>Now you can see the status (which at this point should be <code>connected<\/code> if we did everything right) and traffic of your gateway! You can check the traffdic on UDP port 1700:<\/p>\n<pre># tcpdump -AUq port 1700<\/pre>\n<p>&nbsp;<\/p>\n<p>And now we&#8217;re really done!<\/p>\n<p>&nbsp;<\/p>\n<h4><strong>Step 6: <\/strong><strong>RPI &#8211; save SD card<\/strong><\/h4>\n<ul>\n<li>turn off SWAP\n<pre class=\"ini\">$ sudo dphys-swapfile swapoff\r\n$ sudo dphys-swapfile uninstall\r\n$ sudo update-rc.d dphys-swapfile remove<\/pre>\n<\/li>\n<li><a href=\"http:\/\/ideaheap.com\/2013\/07\/stopping-sd-card-corruption-on-a-raspberry-pi\/\">use tmpfs<\/a> for \/var\/log<\/li>\n<li>place the script into\u00a0<em> \/etc\/init.d\/prepare-dirs <\/em>to create missing directories in \/var\/log so that all daemons start. Make sure that the script will be started first on boot before your daemons start: update-rc.d prepare-dirs defaults 01 99.<\/li>\n<\/ul>\n<pre><em>#!\/bin\/sh\r\n### BEGIN INIT INFO\r\n# Provides: prepare-dirs\r\n# Default-Start: 2 3 4 5\r\n# Default-Stop: 0 1 6\r\n# Required-Start:\r\n# Required-Stop:\r\n# Short-Description: Create needed directories on \/var\/log\/ for tmpfs at startup\r\n# Description: Create needed directories on \/var\/log\/ for tmpfs at startup\r\n### END INIT INFO\r\n# example of needed Dirs\r\nDIR[0]=\/var\/log\/lighttpd\r\nDIR[1]=\/var\/log\/cups\r\nDIR[2]=\/var\/log\/apt\r\nDIR[3]=\/var\/log\/ConsoleKit\r\nDIR[4]=\/var\/log\/fsck\r\nDIR[5]=\/var\/log\/news\r\nDIR[6]=\/var\/log\/ntpstats\r\nDIR[7]=\/var\/log\/samba\r\nDIR[8]=\/var\/log\/lastlog\r\nDIR[9]=\/var\/log\/exim\r\nDIR[10]=\/var\/log\/watchdog\r\n\r\ncase \"${1:-''}\" in\r\n start)\r\n      typeset -i i=0 max=${#DIR[*]}\r\n      while (( i &lt; max ))\r\n           do\r\n              mkdir ${DIR[$i]}\r\n              chmod 755 ${DIR[$i]}\r\n              i=i+1\r\n           done\r\n # set rights\r\n chown www-data.www-data ${DIR[0]}\r\n ;;\r\n stop)\r\n ;;\r\n restart)\r\n ;;\r\n reload|force-reload)\r\n ;;\r\n status)\r\n ;;\r\n *)\r\n echo \"Usage: $SELF start\"\r\n exit 1\r\n ;;\r\nesac\r\n\r\n# Create log files\r\ntouch \/var\/log\/proftpd\/proftpd.log\r\ntouch \/var\/log\/proftpd\/xferlog\r\ntouch \/var\/log\/proftpd\/controls.log\r\n\r\n# Set owners for the newly created log directories\r\nchown -R proftpd:root \/var\/log\/proftpd\/<\/em><\/pre>\n<h4><strong>Step 7: <\/strong><strong>RPI backup img:<\/strong><\/h4>\n<pre># dd if=\/dev\/mmcblk0 | gzip -1 - | ssh user@backup-server dd of=image.gz<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Used HW: Raspberry-Pi2B &amp; iC880a SPI &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Step 1: Prepare image to SD card Download the latest Raspbian-lite image, format SD card and install image to it as usual. &nbsp; &nbsp; Step 2: Customise OS Run RPI, login as default user &#8222;pi&#8220; (default passwd &#8222;raspberry&#8220;) and customise OS: Step 2.1: update [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-218","page","type-page","status-publish","hentry","post"],"_links":{"self":[{"href":"https:\/\/lora.vsb.cz\/index.php\/wp-json\/wp\/v2\/pages\/218","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lora.vsb.cz\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/lora.vsb.cz\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/lora.vsb.cz\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lora.vsb.cz\/index.php\/wp-json\/wp\/v2\/comments?post=218"}],"version-history":[{"count":60,"href":"https:\/\/lora.vsb.cz\/index.php\/wp-json\/wp\/v2\/pages\/218\/revisions"}],"predecessor-version":[{"id":1393,"href":"https:\/\/lora.vsb.cz\/index.php\/wp-json\/wp\/v2\/pages\/218\/revisions\/1393"}],"wp:attachment":[{"href":"https:\/\/lora.vsb.cz\/index.php\/wp-json\/wp\/v2\/media?parent=218"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}