Show last authors
1 **Table of Contents:**
2
3 {{toc/}}
4
5
6
7
8 = 1.  Overview =
9
10
11 This is a general instruction for the use of Armbian base OS of Dragino devices. Current models include:
12
13 * HP0A
14 * HP0C
15 * LPS8v2
16 * MS20
17
18 (% style="display:none" %)
19
20
21 = 2.  Development Guide =
22
23
24 For advanced users to develop Driver/ Linux etc.
25
26
27 == 2.1  How to recompile LoRaWAN Concentrator Driver ( dragino-fwd package). ==
28
29
30 === (% style="color:blue" %)**Step 1. Clone dragino-fwd package**(%%) ===
31
32
33 **Requirements:**
34
35 **~ (% style="background-color:yellow; color:green" %)sudo apt install -y libsqlite3-dev(%%)**
36
37 **~ (% style="background-color:yellow; color:green" %)sudo apt install -y libftdi1-dev(%%)**
38
39
40 **Run command clone dragino-fwd package: (% style="background-color:yellow; color:green" %)git clone https:~/~/github.com/dragino/dragino_fwd_src.git(%%)**
41
42
43 [[image:image-20220527151010-1.png]]
44
45
46 === (% style="color:blue" %)**Step 2. Compile dragino_fwd**(%%) ===
47
48
49 **After cloning is complete, Run the command starts compiling:**
50
51 (% style="background-color:yellow; color:green" %)**Compile HP0C/HP0A fwd:  ./hp0z-make-deb.sh c**
52
53
54 The following example compilers HP0C fwd.
55
56 [[image:image-20220527153913-3.png]]
57
58
59
60 When the compilation is complete a** (% style="color:blue" %)draginofwd-*.deb(%%) **package is generated.
61
62 [[image:image-20220527154311-4.png||height="385" width="773"]]
63
64
65 === (% style="color:blue" %)**Step 3. Install the dragino_fwd**(%%) ===
66
67
68 **Run command:**
69
70 (% style="background-color:yellow; color:green" %)**dpkg -i draginofwd-*.deb **
71
72
73 [[image:image-20220527154811-5.png]]
74
75
76 === (% style="color:blue" %)**Step 4. Test**(%%) ===
77
78
79 **Check the dragino_fwd log:**
80
81 (% style="background-color:yellow; color:green" %)**journalctl -u draginofwd -f**
82
83
84 [[image:image-20220527165221-7.png||height="182" width="931"]]
85
86
87 **Start/stop dragino_fwd via systemctl:**
88
89 (% style="background-color:yellow; color:green" %)**systemctl start draginofwd**
90
91 (% style="background-color:yellow; color:green" %)**systemctl stop draginofwd**
92
93
94 == 2.2  How to clone Complete OS on the EMMC to SD card ==
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111 == 2.3  How to flash SD card to (eMMC) device's built-in Memory ==
112
113 === 2.3.1 Prepare an SD card with OS ===
114
115
116 ==== (% style="background-color:yellow" %)**//Preparations~://**(%%) ====
117
118 1. Prepare an SD card and a card reader device
119 1. Formatting the SD card (Make sure the SD card is empty)
120 1. Download the OS image from the [[release.image>>url:http://repo.dragino.com/release/hp0c-image/]]: ( File format dragino-lps8v2-1.7.img )
121 1. A Flash software tool ( Such as v1.7.9 from [[balenaEtcher>>url:https://www.balena.io/etcher/]] )
122 1. SD Card [[formatter>>url:http://repo.dragino.com/release/tool/PanasonicSDFormatter.zip]]
123
124
125 ==== Step 1.  Formatting the SD Card ====
126
127 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20All%20Gateway%20models/HP0D/WebHome/image-20220609111027-9.png?rev=1.1||alt="image-20220609111027-9.png" height="318" width="292"]]
128
129
130 ==== Step 2. Select the OS image ====
131
132 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20All%20Gateway%20models/HP0D/WebHome/image-20220609104907-8.png?rev=1.1||alt="image-20220609104907-8.png" height="435" width="689"]]
133
134
135 ==== Step 3. Select the target ====
136
137 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20All%20Gateway%20models/HP0D/WebHome/image-20220609104637-2.png?rev=1.1||alt="image-20220609104637-2.png" height="436" width="690"]]
138
139 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20All%20Gateway%20models/HP0D/WebHome/image-20220609104701-3.png?rev=1.1||alt="image-20220609104701-3.png" height="436" width="690"]]
140
141
142 ==== Step 4. Flash start ====
143
144 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20All%20Gateway%20models/HP0D/WebHome/image-20220609104727-4.png?rev=1.1||alt="image-20220609104727-4.png" height="435" width="689"]]
145
146 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20All%20Gateway%20models/HP0D/WebHome/image-20220609104741-5.png?rev=1.1||alt="image-20220609104741-5.png" height="434" width="687"]]
147
148
149
150 === 2.3.2 Flash SD card to device's eMMC ===
151
152
153 1. Open the device's enclosure, and put the SD card into the SD card slot
154 1. After the device is powered on, use the serial port or gateway ip address to access the CLI of the gateway.
155 1. Login and run the below command to flash.
156
157
158 //The following are two methods for accessing the gateway CLI~://
159
160
161 * **Method1. Use the serial port USB to access the gateway CLI**
162
163 For more information about how to access gateway using  serial USB, see this link:
164
165 [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/User%20Manual%20for%20All%20Gateway%20models/HP0C/#H6.HowuserscanaccessLPS8-V2usingserialUSB>>http://wiki.dragino.com/xwiki/bin/view/Main/User%20Manual%20for%20All%20Gateway%20models/HP0C/#H6.HowuserscanaccessLPS8-V2usingserialUSB]]
166
167
168 * **Method2. Use the IP address to access the gateway CLI**
169
170 Users can access the gateway CLI via the SSH protocol. Make sure your PC and the gateway are connected to the same network, then use a SSH tool (such as [[putty>>url:http://www.chiark.greenend.org.uk/~~sgtatham/putty/download.html]] in Windows) to access it.
171
172
173 IP address:  IP address of gateway or **Fallback IP**(172.31.255.254)
174
175 Port:  22
176
177 User Name:      (% style="color:blue" %)**root**
178
179 Password:         (% style="color:blue" %)**dragino**(%%) (default)
180
181 //After logging in, you will be in the gateway CLI and can enter commands as shown below.//
182
183
184 [[image:image-20230508155357-1.png||height="225" width="634"]]
185
186
187 **Run command:**
188
189 (% style="background-color:yellow; color:green" %)**nand-sata-install**
190
191
192 [[image:image-20220602112051-1.png]]
193
194
195
196 Select the (% style="color:red" %)**"Boot from eMMC - system on eMMC".**
197
198 [[image:image-20220602112058-2.png||height="292" width="646"]]
199
200
201 [[image:image-20220602112106-3.png||height="301" width="643"]]
202
203
204
205 Select the (% style="color:red" %)**"1  ext4"**
206
207 [[image:image-20220602112113-4.png||height="271" width="642"]]
208
209
210
211 It takes 4-5 minutes to burn from SD card to eMMC
212
213 [[image:image-20220602112119-5.png||height="309" width="641"]]
214
215
216 [[image:image-20220602112125-6.png||height="281" width="640"]]
217
218
219 [[image:image-20220602112131-7.png||height="241" width="638"]]
220
221
222 (% style="color:red" %)**Note: After the flash is complete, power off the device and then remove the SD card.**
223
224
225 == 2.4 Default Built Version ==
226
227
228 [[image:image-20220902155621-1.png]]
229
230
231 == 2.5 How to upgrade the nodejs version to the latest. ==
232
233
234 By default, the nodejs uses the pre-install version v12 which is due to Debian the ultra-stable via ultra-old.
235
236 [[image:image-20221112145029-2.png]]
237
238 **If you want to upgrade the nodejs to the latest, please follow to use these commands on the gateway CIL.**
239
240
241 #install n, which is an Interactively Manage Your Node.js Versions
242
243 [[image:image-20221112154230-3.png||height="89" width="689"]]
244
245 (% class="box infomessage" %)
246 (((
247 **npm install -g n**
248 )))
249
250
251 #Install the latest LTS Node.js release (downloading if necessary)
252
253 [[image:image-20221112154418-4.png||height="184" width="893"]]
254
255 (% class="box infomessage" %)
256 (((
257 **n lts**
258 )))
259
260
261 #Remove all downloaded versions except the installed version
262
263 [[image:image-20221112154456-5.png||height="139" width="899"]]
264
265 (% class="box infomessage" %)
266 (((
267 **n prune**
268 )))
269
270
271 (% class="box infomessage" %)
272 (((
273 **apt remove nodejs -y && apt autoremove -y && reboot**
274 )))
275
276
277 Check the current version
278
279 [[image:image-20221112154724-6.png]]
280
281 (% class="box infomessage" %)
282 (((
283 **node -v**
284 )))
285
286
287 == 2.6 How to install Grafana and influxdb ==
288
289
290 === **Grafana:** ===
291
292
293 (% class="box infomessage" %)
294 (((
295 curl https:~/~/packages.grafana.com/gpg.key | gpg ~-~-dearmor | sudo tee /usr/share/keyrings/grafana-archive-keyrings.gpg >/dev/null
296 echo "deb [signed-by=/usr/share/keyrings/grafana-archive-keyrings.gpg] https:~/~/packages.grafana.com/oss/deb stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
297 apt update && apt install grafana
298 )))
299
300
301 Check the running status:
302
303
304 (% class="box infomessage" %)
305 (((
306 systemctl status grafana-server
307 )))
308
309
310 configuration path:
311
312
313 (% class="box infomessage" %)
314 (((
315 /etc/grafana/grafana.ini
316 )))
317
318
319 === **Influxdb:** ===
320
321
322 (% class="box infomessage" %)
323 (((
324 curl https:~/~/repos.influxdata.com/influxdb.key | gpg ~-~-dearmor | sudo tee /usr/share/keyrings/influxdb-archive-keyring.gpg >/dev/null
325 echo "deb [signed-by=/usr/share/keyrings/influxdb-archive-keyring.gpg] https:~/~/repos.influxdata.com/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
326 apt update && apt install influxdb
327 )))
328
329
330 Check the running status:
331
332
333 (% class="box infomessage" %)
334 (((
335 systemctl status influxdb
336 )))
337
338
339 configuration path:
340
341
342 (% class="box infomessage" %)
343 (((
344 /etc/influxdb/influxdb.conf
345 )))
346
347
348 = 3.  Package Management =
349
350 == 3.1 Default Package Maintain System ==
351
352 === 3.1.1  How Package-Auto-Update works? ===
353
354
355 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. 
356
357
358 (% style="color:blue" %)**When devices will check for updates**?
359
360 * Devices will check for updates for every boot.
361 * Devices will check for updates on every day midnight.
362
363 (% style="color:blue" %)**What packages will be checked for updates**?
364
365 dragino-httpd ~-~- Main Web UI http configuration
366
367 dragino-sid  ~-~- SN write and read tool
368
369 dragino-ui  ~-~- Gateway Web UI package
370
371 draginofwd   ~-~- UDP packet forwarder, LoRa Base Station
372
373 draginoups   ~-~- Miscellaneous between different versions
374
375
376
377 (% style="color:blue" %)**Location and changelog for packages**:
378
379 * Location: http:~/~/repo.dragino.com/release/tool/
380 * Changelog: [[http:~~/~~/repo.dragino.com/release/tool/Readme_HP0.txt>>http://repo.dragino.com/release/tool/Readme_HP0.txt]]
381
382 (% style="color:blue" %)**How to view auto-updated log**
383
384 You can view the log on the page of (% style="color:#037691" %)**System ~-~-> Package Management.**
385
386
387 [[image:1661305025451-220.png]]
388
389
390
391 (% style="color:blue" %)**Can I disable package-auto-update?**
392
393 You can check the checkbox and click the(% style="color:red" %)** ‘SAVE’ **(%%)button to enable or disable the auto-update.
394
395
396 [[image:1661305258501-636.png]]
397
398
399 === 3.1.2 How to manually update core packages? ===
400
401
402 You can click the (% style="color:red" %)**‘Manual Update’**(%%) to update the dragino's packages.
403
404
405 [[image:1661305328295-218.png]]
406
407
408 === 3.1.3 How to manually update other packages? ===
409
410
411 For the other packages, you have to access the device's CLI to do it via the apt command.
412
413
414 == 3.2 Set up a 3^^rd^^ party package maintain server ==
415
416 === 3.2.1 Overview ===
417
418
419 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.
420
421
422 === 3.2.2 Install Apache2 HTTP server ===
423
424
425 (% style="background-color:yellow; color:green" %)**apt install apache2**
426
427
428 === 3.2.3 Creating Package Directories ===
429
430
431 **~ (% style="background-color:yellow; color:green" %)cd /var/www/html/(%%)**
432
433 **~ (% style="background-color:yellow; color:green" %)mkdir debian/release/dists/stable/main/binary-armhf/ -p(%%)**
434
435 **~ (% style="background-color:yellow; color:green" %)mkdir debian/release/pool/main/d/dragino/ -p(%%)**
436
437
438 **Tree Structure:**
439
440 (% style="color:red" %)**Note: If you are not familiar with updating servers, most directory names are not recommended to be changed.**
441
442
443 └── debian
444
445 └── release
446
447 ├── dists
448
449 │   └── stable
450
451 │       └── main
452
453 │           └── binary-armhf
454
455 └── pool
456
457 └── main
458
459 └── d
460
461 └── dragino   ~-~-> (% style="background-color:yellow; color:green" %)**This is the directory to store the packages. User can change it to other name.**
462
463
464 === 3.2.4 Get deb packages ===
465
466
467 The deb packages for auto-update can be placed in** (% style="color:blue" %)/var/www/html/debian/release/pool/main/d/dragino/(%%)**
468
469 Below is an example package(testing-0808.deb) for test purpose:
470
471
472 **~ (% style="background-color:yellow; color:green" %)wget http:~/~/repo.dragino.com/release/tool/unimportant/testing-0808.deb(%%)**
473
474 **~ (% style="background-color:yellow; color:green" %)cp ./testing-0808.deb /var/www/html/debian/release/pool/main/d/dragino/(%%)**
475
476
477 === 3.2.5 Generate Package Index file ===
478
479
480 (% style="background-color:yellow; color:green" %)**cd /var/www/html/debian/release/**
481
482 (% style="background-color:yellow; color:green" %)**dpkg-scanpackages pool/ > dists/stable/main/binary-armhf/Packages**
483
484 (% style="background-color:yellow; color:green" %)**cat dists/stable/main/binary-armhf/Packages | gzip -9 > dists/stable/main/binary-armhf/Packages.gz**
485
486
487 (% style="color:red" %)**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.**
488
489
490 === 3.2.6 Generate Release file ===
491
492
493 ==== (% style="color:blue" %)**Create the generated script:**(%%) ====
494
495
496 (% style="background-color:yellow; color:green" %)**cd /var/www/html/debian/release/dists/stable**
497
498
499 (% style="background-color:yellow; color:green" %)**wget [[http:~~/~~/repo.dragino.com/release/tool/unimportant/generate-release.sh>>url:http://repo.dragino.com/release/tool/unimportant/generate-release.sh]]**
500
501 (% style="background-color:yellow; color:green" %)**chmod + x ./generate-release.sh**
502
503 (% style="background-color:yellow; color:green" %)**./generate-release.sh > Release**
504
505
506 === 3.2.7 Sign the Release file with gpg and generating Inrelease file ===
507
508
509 ==== (% style="color:blue" %)**Make sure auto-update server has gnupg**(%%) ====
510
511
512 (% style="background-color:yellow; color:green" %)**apt install gnupg**
513
514
515
516 ==== (% style="color:blue" %)**generate gpg key**(%%) ====
517
518
519 (% style="background-color:yellow; color:green" %)**gpg -gen-key**
520
521
522 (% style="color:red" %)**Note: Fill in the content as required and remember the name and email address.**
523
524
525
526 ==== (% style="color:blue" %)**Check the gen-key**(%%) ====
527
528
529 (% style="background-color:yellow; color:green" %)**gen -list-key**
530
531
532
533 ==== (% style="color:blue" %)**Generate the release.gpg**(%%) ====
534
535
536 (% style="background-color:yellow; color:green" %)**cd /var/www/html/debian/release/dists/stable**
537
538 (% style="background-color:yellow; color:green" %)**gpg ~-~-armor ~-~-detach-sign -o Release.gpg Release**
539
540
541 (% style="background-color:yellow; color:green" %)**gpg ~-~-clearsign -o InRelease Release**
542
543
544
545 ==== (% style="color:blue" %)**Generate the public key**(%%) ====
546
547
548 (% style="background-color:yellow; color:green" %)**gpg ~-~-armor ~-~-output <name>.asc ~-~-export <email address>**
549
550
551 **example: gpg ~-~-armor ~-~-output xiao.asc ~-~-export **[[xiaoye@dragino.cc>>mailto:xiaoye@dragino.cc]]
552
553
554
555 === 3.2.8 Add url as apt source in LPS8v2 / MS20 ===
556
557
558
559 ==== (% style="color:blue" %)**Add the public key**(%%) ====
560
561
562 (% style="background-color:yellow; color:green" %)**cp xiao.asc /etc/apt/trusted.gpg.d/**
563
564
565 (% style="color:red" %)**Note: First need to transfer the public key from auto-update server to device.**
566
567
568
569 ==== (% style="color:blue" %)**Add the apt source list**(%%) ====
570
571
572 Add the apt source list url and name this as test_server.list
573
574 (% style="background-color:yellow; color:green" %)**echo "deb http:~/~/<IP_address or hostname>/debian/release stable main" | tee /etc/apt/sources.list.d/test_server.list**
575
576
577
578 ==== (% style="color:blue" %)**Validate the apt repository**(%%) ====
579
580
581 Get and install the testing package (download testing-0808.deb and test)
582
583 (% style="background-color:yellow; color:green" %)**apt update && apt install testing**
584
585
586 Example output:
587
588 [[image:1661306420449-569.png]]
589
590
591 === 3.2.9 Configure the gateway's auto-upgrade rules ===
592
593
594 ==== (% style="color:blue" %)**Remove dragino apt source**(%%) ====
595
596
597 (% style="background-color:yellow; color:green" %)**/etc/apt/sources.list**
598
599
600 [[image:1661306460134-112.png]]
601
602
603
604 ==== (% style="color:blue" %)**Set up automatic updates**(%%) ====
605
606
607 (% style="background-color:yellow; color:green" %)**Path : /usr/lib/dragino/dragino-apt-updates**
608
609
610 The device performs automatic updates from this script,
611
612 But it will now only look for dragino as a keyword, so you need to replace the keyword dragino with your own keyword.
613
614
615 [[image:1661306487761-768.png]]
616
617
618
Copyright ©2010-2022 Dragino Technology Co., LTD. All rights reserved
Dragino Wiki v2.0