Wiki source code of Armbian OS instruction

Version 112.1 by Kilight Cao on 2024/10/08 09:35

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 a new image(OS) to the gateway(LPS8V2) ==
112
113
114 Since the gateway has a large system, you need to use the sd card to reflash the system for the gateway
115
116
117 //2.3.1: Making an SD card with the new image//
118
119 //2.3.2: Instal the SD card to the gateway//
120
121 //2.3.3: Flash the image to the gateway's built memory from the SD card//
122
123 //2.3.4: Finished the process of flash and power cycle the gateway//
124
125
126 ==== (% style="background-color:yellow" %)**//Preparations~://**(%%) ====
127
128 1. Prepare an SD card
129 1. Prepare a card reader device
130 1. Download the OS image from the release.image~: **[[draginolps8v2-release-v1.7>>http://repo.dragino.com/release/hp0c-image/]]**
131 1. A Flash software tool ( Such as v1.7.9 from [[balenaEtcher>>url:https://www.balena.io/etcher/]] )
132 1. SD Card [[format>>url:http://repo.dragino.com/release/tool/PanasonicSDFormatter.zip]] tool
133
134 === **2.3.1 Making an SD Card with the new image** ===
135
136
137 ==== Step 1.  Formatting the SD Card ====
138
139 [[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"]]
140
141
142 ==== Step 2. Select the OS image ====
143
144 [[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"]]
145
146
147 ==== Step 3. Select the target ====
148
149 [[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"]]
150
151 [[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"]]
152
153
154 ==== Step 4. Flash start ====
155
156 [[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"]]
157
158 [[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"]]
159
160
161
162 === **2.3.2 Instal the SD card to the gateway** ===
163
164 1. Open the device's enclosure, and put the SD card into the SD card slot
165
166 [[image:image-20230712201032-1.png]]
167
168
169 2. Power the gateway with 5V2A, and access the gateway's Ethernet port to your PC
170
171 [[image:image-20230712201458-3.png||height="649" width="832"]]
172
173
174 Note: The PWR LED on red
175
176 The  LAN LED blink
177
178 The SYS LED on red
179
180
181
182 === **3.2.3 Flash the image to the gateway's built memory from the SD card** ===
183
184
185 Access the gateway Linux CLI to flash the image to the gateway's built memory
186
187
188 * **Use the IP address to access the gateway CLI**
189
190 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.
191
192
193 IP address:  IP address of gateway or **Fallback IP**(172.31.255.254)
194
195 Port:  22
196
197 User Name:      (% style="color:blue" %)**root**
198
199 Password:         (% style="color:blue" %)**dragino**(%%) (default)
200
201 //After logging in, you will be in the gateway CLI and can enter commands as shown below.//
202
203
204 [[image:image-20230508155357-1.png||height="225" width="634"]]
205
206
207 **Run command:**
208
209 draginolps8v2-release-chirpsrtack-v1.7-240725 image :
210
211 (% style="background-color:#ffff00; color:#008000" %)** flash_emmc /usr/local/image/dragino-LPS8V2-ChirpStack-240725-1.img **
212
213 draginolps8v2-release-ttnstack-v1.7-240712 image :
214
215 (% style="background-color:#ffff00; color:#008000" %)** flash_emmc /usr/local/image/dragino-LPS8V2-TTN-231124.img**
216
217 [[image:image-20241008091850-2.png]]
218
219 (% style="color:red" %)**Note: Note: After the flash is completed, please power off the device (run the command halt) and disconnect the power supply, and then unplug the SD card.**
220
221
222 == 2.4 How to extend the gateway size of memory with SD card ==
223
224
225 Users can use the SD card slot to expand the gateway memory size by following the steps below
226
227
228 === 2.4.1 View SD card information ===
229
230 (% class="box infomessage" %)
231 (((
232 fdisk -l
233 )))
234
235 [[image:image-20230831150518-3.png]]
236
237
238 === 2.4.2 Displays the current file system disk usage statistics on Linux systems ===
239
240
241 (% class="box infomessage" %)
242 (((
243 df -h
244 )))
245
246 [[image:image-20230831150341-2.png]]
247
248
249 === 2.4.3 Mount SD card ===
250
251
252 (% class="box infomessage" %)
253 (((
254 mkdir /mnt/sd
255
256 mount /dev/mmcblk0p1 /mnt/sd
257 )))
258
259 After the mount is successful to check the file system disk usage on the Linux system again:
260
261 [[image:image-20230831151432-4.png]]
262
263
264 If the mount fails, you can format the file system and try the mount again
265
266 (% class="box infomessage" %)
267 (((
268 mkfs.ext4 /dev/mmcblk0p1
269 )))
270
271 == 2.5 Default Built Version ==
272
273
274 [[image:image-20220902155621-1.png]]
275
276
277 == 2.6 How to upgrade the nodejs version to the latest. ==
278
279
280 By default, the nodejs uses the pre-install version v12 which is due to Debian the ultra-stable via ultra-old.
281
282 [[image:image-20221112145029-2.png]]
283
284 **If you want to upgrade the nodejs to the latest, please follow to use these commands on the gateway CIL.**
285
286
287 #install n, which is an Interactively Manage Your Node.js Versions
288
289 [[image:image-20221112154230-3.png||height="89" width="689"]]
290
291 (% class="box infomessage" %)
292 (((
293 **npm install -g n**
294 )))
295
296
297 #Install the latest LTS Node.js release (downloading if necessary)
298
299 [[image:image-20221112154418-4.png||height="184" width="893"]]
300
301 (% class="box infomessage" %)
302 (((
303 **n lts**
304 )))
305
306
307 #Remove all downloaded versions except the installed version
308
309 [[image:image-20221112154456-5.png||height="139" width="899"]]
310
311 (% class="box infomessage" %)
312 (((
313 **n prune**
314 )))
315
316
317 (% class="box infomessage" %)
318 (((
319 **apt remove nodejs -y && apt autoremove -y && reboot**
320 )))
321
322
323 Check the current version
324
325 [[image:image-20221112154724-6.png]]
326
327 (% class="box infomessage" %)
328 (((
329 **node -v**
330 )))
331
332
333 == 2.7 How to install Grafana and influxdb ==
334
335
336 === **Grafana:** ===
337
338
339 (% class="box infomessage" %)
340 (((
341 curl https:~/~/packages.grafana.com/gpg.key | gpg ~-~-dearmor | sudo tee /usr/share/keyrings/grafana-archive-keyrings.gpg >/dev/null
342 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
343 apt update && apt install grafana
344 )))
345
346
347 Check the running status:
348
349
350 (% class="box infomessage" %)
351 (((
352 systemctl status grafana-server
353 )))
354
355
356 configuration path:
357
358
359 (% class="box infomessage" %)
360 (((
361 /etc/grafana/grafana.ini
362 )))
363
364
365 === **Influxdb:** ===
366
367
368 (% class="box infomessage" %)
369 (((
370 curl https:~/~/repos.influxdata.com/influxdata-archive_compat.key | gpg ~-~-dearmor | sudo tee /usr/share/keyrings/influxdb-archive-keyring.gpg >/dev/null
371 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
372 apt update && apt install influxdb
373 )))
374
375
376 Check the running status:
377
378
379 (% class="box infomessage" %)
380 (((
381 systemctl status influxdb
382 )))
383
384
385 configuration path:
386
387
388 (% class="box infomessage" %)
389 (((
390 /etc/influxdb/influxdb.conf
391 )))
392
393
394 = 3.  Package Management =
395
396 == 3.1 Default Package Maintain System ==
397
398 === 3.1.1  How Package-Auto-Update works? ===
399
400
401 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. 
402
403
404 (% style="color:blue" %)**When devices will check for updates**?
405
406 * Devices will check for updates for every boot.
407 * Devices will check for updates on every day midnight.
408
409 (% style="color:blue" %)**What packages will be checked for updates**?
410
411 dragino-httpd ~-~- Main Web UI http configuration
412
413 dragino-sid  ~-~- SN write and read tool
414
415 dragino-ui  ~-~- Gateway Web UI package
416
417 draginofwd   ~-~- UDP packet forwarder, LoRa Base Station
418
419 draginoups   ~-~- Miscellaneous between different versions
420
421
422
423 (% style="color:blue" %)**Location and changelog for packages**:
424
425 * Location: http:~/~/repo.dragino.com/release/tool/
426 * Changelog: [[http:~~/~~/repo.dragino.com/release/tool/Readme_HP0.txt>>http://repo.dragino.com/release/tool/Readme_HP0.txt]]
427
428 (% style="color:blue" %)**How to view auto-updated log**
429
430 You can view the log on the page of (% style="color:#037691" %)**System ~-~-> Package Management.**
431
432
433 [[image:1661305025451-220.png]]
434
435
436
437 (% style="color:blue" %)**Can I disable package-auto-update?**
438
439 You can check the checkbox and click the(% style="color:red" %)** ‘SAVE’ **(%%)button to enable or disable the auto-update.
440
441
442 [[image:1661305258501-636.png]]
443
444
445 === 3.1.2 How to manually update core packages? ===
446
447
448 You can click the (% style="color:red" %)**‘Manual Update’**(%%) to update the dragino's packages.
449
450
451 [[image:1661305328295-218.png]]
452
453
454 === 3.1.3 How to manually update other packages? ===
455
456
457 For the other packages, you have to access the device's CLI to do it via the apt command.
458
459
460 == 3.2 Set up a 3^^rd^^ party package maintain server ==
461
462 === 3.2.1 Overview ===
463
464
465 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.
466
467
468 === 3.2.2 Install Apache2 HTTP server ===
469
470
471 (% style="background-color:yellow; color:green" %)**apt install apache2**
472
473
474 === 3.2.3 Creating Package Directories ===
475
476
477 **~ (% style="background-color:yellow; color:green" %)cd /var/www/html/(%%)**
478
479 **~ (% style="background-color:yellow; color:green" %)mkdir debian/release/dists/stable/main/binary-armhf/ -p(%%)**
480
481 **~ (% style="background-color:yellow; color:green" %)mkdir debian/release/pool/main/d/dragino/ -p(%%)**
482
483
484 **Tree Structure:**
485
486 (% style="color:red" %)**Note: If you are not familiar with updating servers, most directory names are not recommended to be changed.**
487
488
489 └── debian
490
491 └── release
492
493 ├── dists
494
495 │   └── stable
496
497 │       └── main
498
499 │           └── binary-armhf
500
501 └── pool
502
503 └── main
504
505 └── d
506
507 └── dragino   ~-~-> (% style="background-color:yellow; color:green" %)**This is the directory to store the packages. User can change it to other name.**
508
509
510 === 3.2.4 Get deb packages ===
511
512
513 The deb packages for auto-update can be placed in** (% style="color:blue" %)/var/www/html/debian/release/pool/main/d/dragino/(%%)**
514
515 Below is an example package(testing-0808.deb) for test purpose:
516
517
518 **~ (% style="background-color:yellow; color:green" %)wget http:~/~/repo.dragino.com/release/tool/unimportant/testing-0808.deb(%%)**
519
520 **~ (% style="background-color:yellow; color:green" %)cp ./testing-0808.deb /var/www/html/debian/release/pool/main/d/dragino/(%%)**
521
522
523 === 3.2.5 Generate Package Index file ===
524
525
526 (% style="background-color:yellow; color:green" %)**cd /var/www/html/debian/release/**
527
528 (% style="background-color:yellow; color:green" %)**dpkg-scanpackages pool/ > dists/stable/main/binary-armhf/Packages**
529
530 (% style="background-color:yellow; color:green" %)**cat dists/stable/main/binary-armhf/Packages | gzip -9 > dists/stable/main/binary-armhf/Packages.gz**
531
532
533 (% 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.**
534
535
536 === 3.2.6 Generate Release file ===
537
538
539 ==== (% style="color:blue" %)**Create the generated script:**(%%) ====
540
541
542 (% style="background-color:yellow; color:green" %)**cd /var/www/html/debian/release/dists/stable**
543
544
545 (% 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]]**
546
547 (% style="background-color:yellow; color:green" %)**chmod + x ./generate-release.sh**
548
549 (% style="background-color:yellow; color:green" %)**./generate-release.sh > Release**
550
551
552 === 3.2.7 Sign the Release file with gpg and generating Inrelease file ===
553
554
555 ==== (% style="color:blue" %)**Make sure auto-update server has gnupg**(%%) ====
556
557
558 (% style="background-color:yellow; color:green" %)**apt install gnupg**
559
560
561
562 ==== (% style="color:blue" %)**generate gpg key**(%%) ====
563
564
565 (% style="background-color:yellow; color:green" %)**gpg -gen-key**
566
567
568 (% style="color:red" %)**Note: Fill in the content as required and remember the name and email address.**
569
570
571
572 ==== (% style="color:blue" %)**Check the gen-key**(%%) ====
573
574
575 (% style="background-color:yellow; color:green" %)**gen -list-key**
576
577
578
579 ==== (% style="color:blue" %)**Generate the release.gpg**(%%) ====
580
581
582 (% style="background-color:yellow; color:green" %)**cd /var/www/html/debian/release/dists/stable**
583
584 (% style="background-color:yellow; color:green" %)**gpg ~-~-armor ~-~-detach-sign -o Release.gpg Release**
585
586
587 (% style="background-color:yellow; color:green" %)**gpg ~-~-clearsign -o InRelease Release**
588
589
590
591 ==== (% style="color:blue" %)**Generate the public key**(%%) ====
592
593
594 (% style="background-color:yellow; color:green" %)**gpg ~-~-armor ~-~-output <name>.asc ~-~-export <email address>**
595
596
597 **example: gpg ~-~-armor ~-~-output xiao.asc ~-~-export **[[xiaoye@dragino.cc>>mailto:xiaoye@dragino.cc]]
598
599
600
601 === 3.2.8 Add url as apt source in LPS8v2 / MS20 ===
602
603
604
605 ==== (% style="color:blue" %)**Add the public key**(%%) ====
606
607
608 (% style="background-color:yellow; color:green" %)**cp xiao.asc /etc/apt/trusted.gpg.d/**
609
610
611 (% style="color:red" %)**Note: First need to transfer the public key from auto-update server to device.**
612
613
614
615 ==== (% style="color:blue" %)**Add the apt source list**(%%) ====
616
617
618 Add the apt source list url and name this as test_server.list
619
620 (% 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**
621
622
623
624 ==== (% style="color:blue" %)**Validate the apt repository**(%%) ====
625
626
627 Get and install the testing package (download testing-0808.deb and test)
628
629 (% style="background-color:yellow; color:green" %)**apt update && apt install testing**
630
631
632 Example output:
633
634 [[image:1661306420449-569.png]]
635
636
637 === 3.2.9 Configure the gateway's auto-upgrade rules ===
638
639
640 ==== (% style="color:blue" %)**Remove dragino apt source**(%%) ====
641
642
643 (% style="background-color:yellow; color:green" %)**/etc/apt/sources.list**
644
645
646 [[image:1661306460134-112.png]]
647
648
649
650 ==== (% style="color:blue" %)**Set up automatic updates**(%%) ====
651
652
653 (% style="background-color:yellow; color:green" %)**Path : /usr/lib/dragino/dragino-apt-updates**
654
655
656 The device performs automatic updates from this script,
657
658 But it will now only look for dragino as a keyword, so you need to replace the keyword dragino with your own keyword.
659
660
661 [[image:1661306487761-768.png]]
662
663
664
Copyright ©2010-2024 Dragino Technology Co., LTD. All rights reserved
Dragino Wiki v2.0