<
From version < 84.2 >
edited by Xiaoling
on 2022/11/21 15:10
To version < 70.2 >
edited by Xiaoling
on 2022/08/24 10:05
>
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -15,95 +15,115 @@
15 15  * LPS8v2
16 16  * MS20
17 17  
18 -
19 -
20 20  = 2.  Development Guide =
21 21  
22 22  
23 -For advanced users to develop Driver/ Linux etc.
21 +For advanced users to develop Driver/ Linux etc
24 24  
25 25  
24 +
26 26  == 2.1  How to recompile LoRaWAN Concentrator Driver ( dragino-fwd package). ==
27 27  
28 28  
28 +
29 29  === (% style="color:blue" %)**Step 1. Clone dragino-fwd package**(%%) ===
30 30  
31 31  
32 -**Requirements:**
32 +(% style="color:red" %)**Requirements:**
33 33  
34 -**~ (% style="background-color:yellow; color:green" %)sudo apt install -y libsqlite3-dev(%%)**
34 +(% class="box infomessage" %)
35 +(((
36 +sudo apt install -y libsqlite3-dev
37 +sudo apt install -y libftdi1-dev
38 +)))
35 35  
36 -**~ (% style="background-color:yellow; color:green" %)sudo apt install -y libftdi1-dev(%%)**
37 37  
41 +(% style="color:red" %)**Run command clone dragino-fwd package:**
38 38  
39 -**Run command clone dragino-fwd package: (% style="background-color:yellow; color:green" %)git clone https:~/~/github.com/dragino/dragino_fwd_src.git(%%)**
43 +(% class="box infomessage" %)
44 +(((
45 +git clone https:~/~/github.com/dragino/dragino_fwd_src.git
46 +)))
40 40  
41 -
42 42  [[image:image-20220527151010-1.png]]
43 43  
44 44  
51 +
45 45  === (% style="color:blue" %)**Step 2. Compile dragino_fwd**(%%) ===
46 46  
47 47  
48 -**After cloning is complete, Run the command starts compiling:**
55 +(% style="color:red" %)**After cloning is complete, Run the command starts compiling:**
49 49  
50 -(% style="background-color:yellow; color:green" %)**Compile HP0C/HP0A fwd:  ./hp0z-make-deb.sh c**
57 +(% class="box infomessage" %)
58 +(((
59 +Compile HP0C/HP0A fwd:  ./hp0z-make-deb.sh c
60 +)))
51 51  
52 -
53 53  The following example compilers HP0C fwd.
54 54  
55 55  [[image:image-20220527153913-3.png]]
56 56  
57 57  
67 +**When the compilation is complete a draginofwd-*.deb package is generated.**
58 58  
59 -When the compilation is complete a** (% style="color:blue" %)draginofwd-*.deb(%%) **package is generated.
60 -
61 61  [[image:image-20220527154311-4.png||height="385" width="773"]]
62 62  
63 63  
72 +
64 64  === (% style="color:blue" %)**Step 3. Install the dragino_fwd**(%%) ===
65 65  
66 66  
67 -**Run command:**
76 +(% style="color:red" %)**Run command:**
68 68  
69 -(% style="background-color:yellow; color:green" %)**dpkg -i draginofwd-*.deb **
78 +(% class="box infomessage" %)
79 +(((
80 +dpkg -i draginofwd-*.deb
81 +)))
70 70  
71 -
72 72  [[image:image-20220527154811-5.png]]
73 73  
74 74  
86 +
75 75  === (% style="color:blue" %)**Step 4. Test**(%%) ===
76 76  
77 77  
78 -**Check the dragino_fwd log:**
90 +Check the dragino_fwd log:
79 79  
80 -(% style="background-color:yellow; color:green" %)**journalctl -u draginofwd -f**
92 +(% class="box infomessage" %)
93 +(((
94 +journalctl -u draginofwd -f
95 +)))
81 81  
82 -
83 83  [[image:image-20220527165221-7.png||height="182" width="931"]]
84 84  
85 85  
86 -**Start/stop dragino_fwd via systemctl:**
100 +Start/stop dragino_fwd via systemctl:
87 87  
88 -(% style="background-color:yellow; color:green" %)**systemctl start draginofwd**
102 +(% class="box infomessage" %)
103 +(((
104 +systemctl start draginofwd
105 +systemctl stop draginofwd
106 +)))
89 89  
90 -(% style="background-color:yellow; color:green" %)**systemctl stop draginofwd**
91 91  
92 92  
93 93  == 2.2  How to clone Complete OS on the EMMC to SD card ==
94 94  
112 +
113 +
95 95  == 2.3  How to flash SD card to (eMMC) device's built-in Memory ==
96 96  
116 +
97 97  === 2.3.1 Prepare an SD card with OS ===
98 98  
99 99  
100 - (% style="background-color:yellow" %)//**Preparations:**//
120 + //**Preparations:**//
101 101  
102 102  ~1. Prepare an SD card and a// card reader device//
103 103  
104 104  2. Formatting the SD card (//Make sure the SD card is empty//)
105 105  
106 -3. //Download the OS image from the **[[release.image>>url:http://repo.dragino.com/release/hp0c-image/]]**: ( File format **dragino-lps8v2-1.7.img** )//
126 +3. //Download the OS image from **[[release.image>>url:http://repo.dragino.com/release/hp0c-image/]]**: ( File format **dragino-lps8v2-1.7.img** )//
107 107  
108 108  4. //A Flash software tool ( Such as v1.7.9 from **[[balenaEtcher>>url:https://www.balena.io/etcher/]]** )//
109 109  
... ... @@ -119,38 +119,34 @@
119 119  //3. Login and run the below command to flash.//
120 120  
121 121  
122 -**Run command:**
142 +(% style="color:red" %)**Run command:**
123 123  
124 -(% style="background-color:yellow; color:green" %)**nand-sata-install**
144 +(% class="box infomessage" %)
145 +(((
146 +nand-sata-install
147 +)))
125 125  
126 -
127 127  [[image:image-20220602112051-1.png]]
128 128  
129 129  
152 +Select the "Boot from eMMC - system on eMMC"
130 130  
131 -Select the (% style="color:red" %)**"Boot from eMMC - system on eMMC".**
132 -
133 133  [[image:image-20220602112058-2.png||height="292" width="646"]]
134 134  
135 -
136 136  [[image:image-20220602112106-3.png||height="301" width="643"]]
137 137  
138 138  
159 +Select the "1  ext4"
139 139  
140 -Select the (% style="color:red" %)**"1  ext4"**
141 -
142 142  [[image:image-20220602112113-4.png||height="271" width="642"]]
143 143  
144 144  
145 -
146 146  It takes 4-5 minutes to burn from SD card to eMMC
147 147  
148 148  [[image:image-20220602112119-5.png||height="309" width="641"]]
149 149  
150 -
151 151  [[image:image-20220602112125-6.png||height="281" width="640"]]
152 152  
153 -
154 154  [[image:image-20220602112131-7.png||height="241" width="638"]]
155 155  
156 156  
... ... @@ -157,133 +157,13 @@
157 157  (% style="color:red" %)**Note: After the flash is complete, power off the device and then remove the SD card.**
158 158  
159 159  
160 -== 2.4 Default Built Version ==
161 161  
162 -
163 -[[image:image-20220902155621-1.png]]
164 -
165 -
166 -== 2.5 How to upgrade the nodejs version to the latest. ==
167 -
168 -
169 -By default, the nodejs uses the pre-install version v12 which is due to Debian the ultra-stable via ultra-old.
170 -
171 -[[image:image-20221112145029-2.png]]
172 -
173 -**If you want to upgrade the nodejs to the latest, please follow to use these commands on the gateway CIL.**
174 -
175 -
176 -#install n, which is an Interactively Manage Your Node.js Versions
177 -
178 -[[image:image-20221112154230-3.png||height="89" width="689"]]
179 -
180 -(% class="box infomessage" %)
181 -(((
182 -**npm install -g n**
183 -)))
184 -
185 -
186 -#Install the latest LTS Node.js release (downloading if necessary)
187 -
188 -[[image:image-20221112154418-4.png||height="184" width="893"]]
189 -
190 -(% class="box infomessage" %)
191 -(((
192 -**n lts**
193 -)))
194 -
195 -
196 -#Remove all downloaded versions except the installed version
197 -
198 -[[image:image-20221112154456-5.png||height="139" width="899"]]
199 -
200 -(% class="box infomessage" %)
201 -(((
202 -**n prune**
203 -)))
204 -
205 -
206 -(% class="box infomessage" %)
207 -(((
208 -**apt remove nodejs -y && apt autoremove -y && reboot**
209 -)))
210 -
211 -
212 -Check the current version
213 -
214 -[[image:image-20221112154724-6.png]]
215 -
216 -(% class="box infomessage" %)
217 -(((
218 -**node -v**
219 -)))
220 -
221 -
222 -== 2.6 How to install Grafana and influxdb ==
223 -
224 -
225 -=== **Grafana:** ===
226 -
227 -
228 -(% class="box infomessage" %)
229 -(((
230 -curl https:~/~/packages.grafana.com/gpg.key | gpg ~-~-dearmor | sudo tee /usr/share/keyrings/grafana-archive-keyrings.gpg >/dev/null
231 -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
232 -apt update && apt install grafana
233 -)))
234 -
235 -
236 -Check the running status:
237 -
238 -
239 -(% class="box infomessage" %)
240 -(((
241 -systemctl status grafana-server
242 -)))
243 -
244 -
245 -configuration path:
246 -
247 -
248 -(% class="box infomessage" %)
249 -(((
250 -/etc/grafana/grafana.ini
251 -)))
252 -
253 -
254 -=== **Influxdb:** ===
255 -
256 -
257 -(% class="box infomessage" %)
258 -(((
259 -curl https:~/~/repos.influxdata.com/influxdb.key | gpg ~-~-dearmor | sudo tee /usr/share/keyrings/influxdb-archive-keyring.gpg >/dev/null
260 -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
261 -apt update && apt install influxdb
262 -)))
263 -
264 -
265 -Check the running status:
266 -
267 -
268 -(% class="box infomessage" %)
269 -(((
270 -systemctl status influxdb
271 -)))
272 -
273 -
274 -configuration path:
275 -
276 -
277 -(% class="box infomessage" %)
278 -(((
279 -/etc/influxdb/influxdb.conf
280 -)))
281 -
282 -
283 283  = 3. Package Maintain Note =
284 284  
179 +
285 285  == 3.1 Default Package Maintain System ==
286 286  
182 +
287 287  === 3.1.1 How Package-Auto-Update works? ===
288 288  
289 289  
... ... @@ -308,7 +308,6 @@
308 308  draginoups   ~-~- Miscellaneous between different versions
309 309  
310 310  
311 -
312 312  (% style="color:blue" %)**Location and changelog for packages**:
313 313  
314 314  * Location: http:~/~/repo.dragino.com/release/tool/
... ... @@ -322,10 +322,9 @@
322 322  [[image:1661305025451-220.png]]
323 323  
324 324  
325 -
326 326  (% style="color:blue" %)**Can I disable package-auto-update?**
327 327  
328 -You can check the checkbox and click the(% style="color:red" %)** ‘SAVE’ **(%%)button to enable or disable the auto-update.
222 +You can check the checkbox and click the(% style="color:#037691" %)** ‘SAVE’ **(%%)button to enable or disable the auto-update.
329 329  
330 330  
331 331  [[image:1661305258501-636.png]]
... ... @@ -335,7 +335,7 @@
335 335  === 3.1.2 How to manually update core packages? ===
336 336  
337 337  
338 -You can click the (% style="color:red" %)**‘Manual Update’**(%%) to update the dragino's packages.
232 +You can click the (% style="color:#037691" %)**‘Manual Update’**(%%) to update the dragino's packages.
339 339  
340 340  
341 341  [[image:1661305328295-218.png]]
... ... @@ -351,6 +351,7 @@
351 351  
352 352  == 3.2 Set up a 3^^rd^^ party package maintain server ==
353 353  
248 +
354 354  === 3.2.1 Overview ===
355 355  
356 356  
... ... @@ -357,20 +357,22 @@
357 357  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.
358 358  
359 359  
255 +
360 360  === 3.2.2 Install Apache2 HTTP server ===
361 361  
362 362  
363 -(% style="background-color:yellow; color:green" %)**apt install apache2**
259 +(% style="background-color:yellow" %)**apt install apache2**
364 364  
365 365  
262 +
366 366  === 3.2.3 Creating Package Directories ===
367 367  
368 368  
369 -**~ (% style="background-color:yellow; color:green" %)cd /var/www/html/(%%)**
266 +**~ (% style="background-color:yellow" %)cd /var/www/html/(%%)**
370 370  
371 -**~ (% style="background-color:yellow; color:green" %)mkdir debian/release/dists/stable/main/binary-armhf/ -p(%%)**
268 +**~ (% style="background-color:yellow" %)mkdir debian/release/dists/stable/main/binary-armhf/ -p(%%)**
372 372  
373 -**~ (% style="background-color:yellow; color:green" %)mkdir debian/release/pool/main/d/dragino/ -p(%%)**
270 +**~ (% style="background-color:yellow" %)mkdir debian/release/pool/main/d/dragino/ -p(%%)**
374 374  
375 375  
376 376  **Tree Structure:**
... ... @@ -396,9 +396,10 @@
396 396  
397 397   └── d
398 398  
399 - └── dragino   ~-~-> (% style="background-color:yellow; color:green" %)**This is the directory to store the packages. User can change it to other name.**
296 + └── dragino   ~-~-> (% style="background-color:yellow" %)**This is the directory to store the packages. User can change it to other name.**
400 400  
401 401  
299 +
402 402  === 3.2.4 Get deb packages ===
403 403  
404 404  
... ... @@ -407,85 +407,89 @@
407 407  Below is an example package(testing-0808.deb) for test purpose:
408 408  
409 409  
410 -**~ (% style="background-color:yellow; color:green" %)wget http:~/~/repo.dragino.com/release/tool/unimportant/testing-0808.deb(%%)**
308 +**~ (% style="background-color:yellow" %)wget http:~/~/repo.dragino.com/release/tool/unimportant/testing-0808.deb(%%)**
411 411  
412 -**~ (% style="background-color:yellow; color:green" %)cp ./testing-0808.deb /var/www/html/debian/release/pool/main/d/dragino/(%%)**
310 +**~ (% style="background-color:yellow" %)cp ./testing-0808.deb /var/www/html/debian/release/pool/main/d/dragino/(%%)**
413 413  
414 414  
313 +
415 415  === 3.2.5 Generate Package Index file ===
416 416  
417 417  
418 -(% style="background-color:yellow; color:green" %)**cd /var/www/html/debian/release/**
317 +(% style="background-color:yellow" %)**cd /var/www/html/debian/release/**
419 419  
420 -(% style="background-color:yellow; color:green" %)**dpkg-scanpackages pool/ > dists/stable/main/binary-armhf/Packages**
319 +(% style="background-color:yellow" %)**dpkg-scanpackages pool/ > dists/stable/main/binary-armhf/Packages**
421 421  
422 -(% style="background-color:yellow; color:green" %)**cat dists/stable/main/binary-armhf/Packages | gzip -9 > dists/stable/main/binary-armhf/Packages.gz**
321 +(% style="background-color:yellow" %)**cat dists/stable/main/binary-armhf/Packages | gzip -9 > dists/stable/main/binary-armhf/Packages.gz**
423 423  
424 424  
425 425  (% 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.**
426 426  
427 427  
327 +
428 428  === 3.2.6 Generate Release file ===
429 429  
430 430  
431 -==== (% style="color:blue" %)**Create the generated script:**(%%) ====
331 +==== (% style="color:blue" %)Create the generated script:(%%) ====
432 432  
433 433  
434 -(% style="background-color:yellow; color:green" %)**cd /var/www/html/debian/release/dists/stable**
334 +(% style="background-color:yellow" %)**cd /var/www/html/debian/release/dists/stable**
435 435  
436 436  
437 -(% 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]]**
337 +(% style="background-color:yellow" %)**wget [[http:~~/~~/repo.dragino.com/release/tool/unimportant/generate-release.sh>>url:http://repo.dragino.com/release/tool/unimportant/generate-release.sh]]**
438 438  
439 -(% style="background-color:yellow; color:green" %)**chmod + x ./generate-release.sh**
339 +(% style="background-color:yellow" %)**chmod + x ./generate-release.sh**
440 440  
441 -(% style="background-color:yellow; color:green" %)**./generate-release.sh > Release**
341 +(% style="background-color:yellow" %)**./generate-release.sh > Release**
442 442  
443 443  
344 +
444 444  === 3.2.7 Sign the Release file with gpg and generating Inrelease file ===
445 445  
446 446  
447 -==== (% style="color:blue" %)**Make sure auto-update server has gnupg**(%%) ====
448 448  
349 +==== (% style="color:blue" %)Make sure auto-update server has gnupg(%%) ====
449 449  
450 -(% style="background-color:yellow; color:green" %)**apt install gnupg**
451 451  
352 +(% style="background-color:yellow" %)**apt install gnupg**
452 452  
453 453  
454 -==== (% style="color:blue" %)**generate gpg key**(%%) ====
455 455  
356 +==== (% style="color:blue" %)generate gpg key(%%) ====
456 456  
457 -(% style="background-color:yellow; color:green" %)**gpg -gen-key**
458 458  
359 +(% style="background-color:yellow" %)**gpg -gen-key**
459 459  
460 -(% style="color:red" %)**Note: Fill in the content as required and remember the name and email address.**
461 461  
362 +**((% style="color:red" %)Note: Fill in the content as required and remember the name and email address)(%%)**
462 462  
463 463  
464 -==== (% style="color:blue" %)**Check the gen-key**(%%) ====
465 465  
366 +==== (% style="color:blue" %)Check the gen-key(%%) ====
466 466  
467 -(% style="background-color:yellow; color:green" %)**gen -list-key**
468 468  
369 +(% style="background-color:yellow" %)**gen -list-key**
469 469  
470 470  
471 -==== (% style="color:blue" %)**Generate the release.gpg**(%%) ====
472 472  
373 +==== (% style="color:blue" %)Generate the release.gpg(%%) ====
473 473  
474 -(% style="background-color:yellow; color:green" %)**cd /var/www/html/debian/release/dists/stable**
475 475  
476 -(% style="background-color:yellow; color:green" %)**gpg ~-~-armor ~-~-detach-sign -o Release.gpg Release**
376 +(% style="background-color:yellow" %)**cd /var/www/html/debian/release/dists/stable**
477 477  
378 +(% style="background-color:yellow" %)**gpg ~-~-armor ~-~-detach-sign -o Release.gpg Release**
478 478  
479 -(% style="background-color:yellow; color:green" %)**gpg ~-~-clearsign -o InRelease Release**
480 480  
381 +(% style="background-color:yellow" %)**gpg ~-~-clearsign -o InRelease Release**
481 481  
482 482  
483 -==== (% style="color:blue" %)**Generate the public key**(%%) ====
484 484  
385 +==== (% style="color:blue" %)Generate the public key(%%) ====
485 485  
486 -(% style="background-color:yellow; color:green" %)**gpg ~-~-armor ~-~-output <name>.asc ~-~-export <email address>**
487 487  
388 +(% style="background-color:yellow" %)**gpg ~-~-armor ~-~-output <name>.asc ~-~-export <email address>**
488 488  
390 +
489 489  **example: gpg ~-~-armor ~-~-output xiao.asc ~-~-export **[[xiaoye@dragino.cc>>mailto:xiaoye@dragino.cc]]
490 490  
491 491  
... ... @@ -494,31 +494,30 @@
494 494  
495 495  
496 496  
497 -==== (% style="color:blue" %)**Add the public key**(%%) ====
399 +==== (% style="color:blue" %)Add the public key(%%) ====
498 498  
499 499  
500 -(% style="background-color:yellow; color:green" %)**cp xiao.asc /etc/apt/trusted.gpg.d/**
402 +(% style="background-color:yellow" %)**cp xiao.asc /etc/apt/trusted.gpg.d/**
501 501  
502 -
503 503  (% style="color:red" %)**Note: First need to transfer the public key from auto-update server to device.**
504 504  
505 505  
506 506  
507 -==== (% style="color:blue" %)**Add the apt source list**(%%) ====
408 +==== (% style="color:blue" %)Add the apt source list(%%) ====
508 508  
509 509  
510 510  Add the apt source list url and name this as test_server.list
511 511  
512 -(% 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**
413 +(% style="background-color:yellow" %)**echo "deb http:~/~/<IP_address or hostname>/debian/release stable main" | tee /etc/apt/sources.list.d/test_server.list**
513 513  
514 514  
515 515  
516 -==== (% style="color:blue" %)**Validate the apt repository**(%%) ====
417 +==== (% style="color:blue" %)Validate the apt repository(%%) ====
517 517  
518 518  
519 519  Get and install the testing package (download testing-0808.deb and test)
520 520  
521 -(% style="background-color:yellow; color:green" %)**apt update && apt install testing**
422 +(% style="background-color:yellow" %)**apt update && apt install testing**
522 522  
523 523  
524 524  Example output:
... ... @@ -526,23 +526,25 @@
526 526  [[image:1661306420449-569.png]]
527 527  
528 528  
430 +
529 529  === 3.2.9 Configure the gateway's auto-upgrade rules ===
530 530  
531 531  
532 -==== (% style="color:blue" %)**Remove dragino apt source**(%%) ====
533 533  
435 +==== (% style="color:blue" %)Remove dragino apt source(%%) ====
534 534  
535 -(% style="background-color:yellow; color:green" %)**/etc/apt/sources.list**
536 536  
438 +(% style="background-color:yellow" %)**/etc/apt/sources.list**
537 537  
440 +
538 538  [[image:1661306460134-112.png]]
539 539  
540 540  
541 541  
542 -==== (% style="color:blue" %)**Set up automatic updates**(%%) ====
445 +==== (% style="color:blue" %)Set up automatic updates(%%) ====
543 543  
544 544  
545 -(% style="background-color:yellow; color:green" %)**Path : /usr/lib/dragino/dragino-apt-updates**
448 +**(% style="background-color:yellow" %)Path : /usr/lib/dragino/dragino-apt-updates**
546 546  
547 547  
548 548  The device performs automatic updates from this script,
... ... @@ -551,3 +551,5 @@
551 551  
552 552  
553 553  [[image:1661306487761-768.png]]
457 +
458 +
image-20220902155621-1.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Edwin
Size
... ... @@ -1,1 +1,0 @@
1 -27.7 KB
Content
image-20221112145017-1.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoye
Size
... ... @@ -1,1 +1,0 @@
1 -1.9 KB
Content
image-20221112145029-2.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoye
Size
... ... @@ -1,1 +1,0 @@
1 -3.3 KB
Content
image-20221112154230-3.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoye
Size
... ... @@ -1,1 +1,0 @@
1 -5.2 KB
Content
image-20221112154418-4.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoye
Size
... ... @@ -1,1 +1,0 @@
1 -18.2 KB
Content
image-20221112154456-5.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoye
Size
... ... @@ -1,1 +1,0 @@
1 -14.6 KB
Content
image-20221112154724-6.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoye
Size
... ... @@ -1,1 +1,0 @@
1 -3.2 KB
Content
Copyright ©2010-2022 Dragino Technology Co., LTD. All rights reserved
Dragino Wiki v2.0