<
From version < 90.1 >
edited by Kilight Cao
on 2023/03/27 16:59
To version < 26.1 >
edited by Kilight Cao
on 2022/06/02 11:59
>
Change comment: There is no comment for this version

Summary

Details

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