Table of Contents:
- 1. Overview
- 2. Development Guide
- 2.1 How to recompile LoRaWAN Concentrator Driver ( dragino-fwd package).
- 2.2 How to clone Complete OS on the EMMC to SD card
- 2.3 How to flash SD card to (eMMC) device's built-in Memory
- 2.4 Default Built Version
- 2.5 How to upgrade the nodejs version to the latest.
- 2.6 How to install Grafana and influxdb
- 2.7 How to install BACnet
- Armbian OS instruction
- 3.1 Default Package Maintain System
- 3.2 Set up a 3rd party package maintain server
- 3.2.1 Overview
- 3.2.2 Install Apache2 HTTP server
- 3.2.3 Creating Package Directories
- 3.2.4 Get deb packages
- 3.2.5 Generate Package Index file
- 3.2.6 Generate Release file
- 3.2.7 Sign the Release file with gpg and generating Inrelease file
- 3.2.8 Add url as apt source in LPS8v2 / MS20
- 3.2.9 Configure the gateway's auto-upgrade rules
1. Overview
This is a general instruction for the use of Armbian base OS of Dragino devices. Current models include:
- HP0A
- HP0C
- LPS8v2
- MS20
2. Development Guide
For advanced users to develop Driver/ Linux etc.
2.1 How to recompile LoRaWAN Concentrator Driver ( dragino-fwd package).
Step 1. Clone dragino-fwd package
Requirements:
sudo apt install -y libsqlite3-dev
sudo apt install -y libftdi1-dev
Run command clone dragino-fwd package: git clone https://github.com/dragino/dragino_fwd_src.git
Step 2. Compile dragino_fwd
After cloning is complete, Run the command starts compiling:
Compile HP0C/HP0A fwd: ./hp0z-make-deb.sh c
The following example compilers HP0C fwd.
When the compilation is complete a draginofwd-*.deb package is generated.
Step 3. Install the dragino_fwd
Run command:
dpkg -i draginofwd-*.deb
Step 4. Test
Check the dragino_fwd log:
journalctl -u draginofwd -f
Start/stop dragino_fwd via systemctl:
systemctl start draginofwd
systemctl stop draginofwd
2.2 How to clone Complete OS on the EMMC to SD card
2.3 How to flash SD card to (eMMC) device's built-in Memory
2.3.1 Prepare an SD card with OS
Preparations:
1. Prepare an SD card and a card reader device
2. Formatting the SD card (Make sure the SD card is empty)
3. Download the OS image from the release.image: ( File format dragino-lps8v2-1.7.img )
4. A Flash software tool ( Such as v1.7.9 from balenaEtcher )
2.3.2 Flash SD card to device's eMMC
1. Open the device's enclosure, and put the SD card into the SD card slot
2. Power on the device and access the gateway's CLI via the serial port.
3. Login and run the below command to flash.
Run command:
nand-sata-install
Select the "Boot from eMMC - system on eMMC".
Select the "1 ext4"
It takes 4-5 minutes to burn from SD card to eMMC
Note: After the flash is complete, power off the device and then remove the SD card.
2.4 Default Built Version
2.5 How to upgrade the nodejs version to the latest.
By default, the nodejs uses the pre-install version v12 which is due to Debian the ultra-stable via ultra-old.
If you want to upgrade the nodejs to the latest, please follow to use these commands on the gateway CIL.
#install n, which is an Interactively Manage Your Node.js Versions
#Install the latest LTS Node.js release (downloading if necessary)
#Remove all downloaded versions except the installed version
Check the current version
2.6 How to install Grafana and influxdb
Grafana:
Check the running status:
configuration path:
Influxdb:
Check the running status:
configuration path:
2.7 How to install BACnet
2.7.1 Configure BACnet
After BACnet is installed, run commands to modify BACnet configurations
Note: device_port and bacnet_ip_port are not set to the same
Examples:
2.7.2 Run BACnet
After the configuration is complete, run the following command to start BACnet, The following are two ways to run BACnet:
(1) With /etc/config/bacnet configuration, and to run the registration server on the current machine, start it with the following command (configure the /etc/config/bacnet file correctly):
(2) Without /etc/config/bacnet, and to run the registration server on the current machine, start it with the following command:
This command simulates two devices, with device IDs 47910 and 47911
Enter bacserver -h to output help
2.7.3 Read devices and modify devices
Enter baccli -h to output help
Examples:
(1)List the current Bacnet devices:
(2)List device information based on device ID:
(3)List the device details by device ID:
(4) Modify the specified attribute value based on the device ID:
The user can check the data of the device by using the yabe BACnet tool
3.1 Default Package Maintain System
3.1.1 How Package-Auto-Update works?
By default, LPS8v2 / MS20 series products have an auto-update feature for main packages. The device will connect to Dragino's auto-update server and check for updates.
When devices will check for updates?
- Devices will check for updates for every boot.
- Devices will check for updates on every day midnight.
What packages will be checked for updates?
dragino-httpd -- Main Web UI http configuration
dragino-sid -- SN write and read tool
dragino-ui -- Gateway Web UI package
draginofwd -- UDP packet forwarder, LoRa Base Station
draginoups -- Miscellaneous between different versions
Location and changelog for packages:
- Location: http://repo.dragino.com/release/tool/
- Changelog: http://repo.dragino.com/release/tool/Readme_HP0.txt
How to view auto-updated log
You can view the log on the page of System --> Package Management.
Can I disable package-auto-update?
You can check the checkbox and click the ‘SAVE’ button to enable or disable the auto-update.
3.1.2 How to manually update core packages?
You can click the ‘Manual Update’ to update the dragino's packages.
3.1.3 How to manually update other packages?
For the other packages, you have to access the device's CLI to do it via the apt command.
3.2 Set up a 3rd party package maintain server
3.2.1 Overview
Customers can use their own package maintenance system instead of using the default one from Dragino. They need to set up a package maintenance system for Debian. Lots of instructions are available in Internet, below is a reference instruction.
3.2.2 Install Apache2 HTTP server
apt install apache2
3.2.3 Creating Package Directories
cd /var/www/html/
mkdir debian/release/dists/stable/main/binary-armhf/ -p
mkdir debian/release/pool/main/d/dragino/ -p
Tree Structure:
Note: If you are not familiar with updating servers, most directory names are not recommended to be changed.
└── debian
└── release
├── dists
│ └── stable
│ └── main
│ └── binary-armhf
└── pool
└── main
└── d
└── dragino --> This is the directory to store the packages. User can change it to other name.
3.2.4 Get deb packages
The deb packages for auto-update can be placed in /var/www/html/debian/release/pool/main/d/dragino/
Below is an example package(testing-0808.deb) for test purpose:
wget http://repo.dragino.com/release/tool/unimportant/testing-0808.deb
cp ./testing-0808.deb /var/www/html/debian/release/pool/main/d/dragino/
3.2.5 Generate Package Index file
cd /var/www/html/debian/release/
dpkg-scanpackages pool/ > dists/stable/main/binary-armhf/Packages
cat dists/stable/main/binary-armhf/Packages | gzip -9 > dists/stable/main/binary-armhf/Packages.gz
Note: Every time a package has been update, above comments need to be executed in the server to get the up-to-date package list.
3.2.6 Generate Release file
Create the generated script:
cd /var/www/html/debian/release/dists/stable
wget http://repo.dragino.com/release/tool/unimportant/generate-release.sh
chmod + x ./generate-release.sh
./generate-release.sh > Release
3.2.7 Sign the Release file with gpg and generating Inrelease file
Make sure auto-update server has gnupg
apt install gnupg
generate gpg key
gpg -gen-key
Note: Fill in the content as required and remember the name and email address.
Check the gen-key
gen -list-key
Generate the release.gpg
cd /var/www/html/debian/release/dists/stable
gpg --armor --detach-sign -o Release.gpg Release
gpg --clearsign -o InRelease Release
Generate the public key
gpg --armor --output <name>.asc --export <email address>
example: gpg --armor --output xiao.asc --export xiaoye@dragino.cc
3.2.8 Add url as apt source in LPS8v2 / MS20
Add the public key
cp xiao.asc /etc/apt/trusted.gpg.d/
Note: First need to transfer the public key from auto-update server to device.
Add the apt source list
Add the apt source list url and name this as test_server.list
echo "deb http://<IP_address or hostname>/debian/release stable main" | tee /etc/apt/sources.list.d/test_server.list
Validate the apt repository
Get and install the testing package (download testing-0808.deb and test)
apt update && apt install testing
Example output:
3.2.9 Configure the gateway's auto-upgrade rules
Remove dragino apt source
/etc/apt/sources.list
Set up automatic updates
Path : /usr/lib/dragino/dragino-apt-updates
The device performs automatic updates from this script,
But it will now only look for dragino as a keyword, so you need to replace the keyword dragino with your own keyword.