Project

General

Profile

Debug Utilities » History » Version 1

laforge, 12/25/2016 11:23 PM

1 1 laforge
h1. Debug Utilities
2
3
We are developing some debug utilities to help us understand the software stack better.
4
5
All related programs can be found in source code in the quectel-experiments.git repository at http://git.osmocom.org/quectel-experiments 
6
7
h2. qmuxd_wrapper
8
9
This isa LD_PRELOAD wrapper that helps you to trace communications between any QMI client program and qmuxd.
10
11
You can use it as follows:
12
<pre>
13
/ # LD_PRELOAD=/home/root/qmuxd_wrapper.so atfwd_daemon
14
I:ATFWD --> QMI Port : rmnet0
15
Found socketfd to qmuxd: 4
16
4 => COMPL(CLI=0x95, MSGT=0x04, TXN=0x1, sERR=0, qERR=0, qConn=0, qServ=0x00, qmiCLI=0x0, flags=0x0): 95 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 00 00 00 48 25 09 40 03 00 00 00 b8 83 f4 be 60 8a f4 be 00 00 00 00 3a 00 00 00 40 89 f4 be 1c 25 08 40 3a 00 00 00 74 00 b4 47 00 e0 bf 47 3a 00 00 00 5c 8a f4 be 40 89 f4 be 00 00 00 00 14 50 b1 47 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f0 0b 40 14 8a f4 be 0c 00 00 00 b0 22 09 40 04 00 00 00 38 84 f4 be f8 52 0a 40 e8 52 0a 40 18 d0 ab 47 cc 89 f4 be e4 89 f4 be 48 25 09 40 68 55 ad 47 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 98 f0 0b 40 00 00 00 00 05 00 00 00 f0 85 f4 be 08 5a 0b 40 00 f0 0b 40 14 8a f4 be 00 00 00 00 e8 e9 ab 47 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 56 25 08 40 5c 8a f4 be 00 00 00 00 00 20 09 40 0d 00 00 00 40 85 f4 be b4 52 0a 40 80 52 0a 40 18 d0 ab 47 cc 89 f4 be 08 ea ab 47 01 00 00 00 00 50 0a 40 70 7f f4 be 80 cf ab 47 cc 89 f4 be 6c cd ab 47 01 00 00 00 90 db 09 40 c8 84 f4 be 80 cf ab 47 cc 89 f4 be c8 70 08 40 01 00 00 00 d8 d8 09 40 e0 84 f4 be 80 cf ab 47 cc 89 f4 be 14 8a f4 be 01 00 00 00 30 d6 09 40 f8 84 f4 be 80 cf ab 47 cc 89 f4 be 00 00 00 00 01 00 00 00 80 d3 09 40 10 85 f4 be 80 cf ab 47 cc 89 f4 be 00 00 00 00 80 d3 09 40 30 d6 09 40 d8 d8 09 40 90 db 09 40 18 38 09 40 00 50 0a 40 c0 3a 09 40 b0 22 09 40 78 3d 09 40 30 d0 09 40 48 25 09 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1c 00 00 00 c0 eb 03 40 08 00 00 00 f0 85 f4 be 40 d3 09 40 20 d3 09 40 18 d0 ab 47 
17
4 <= COMPL(CLI=0x95, MSGT=0x04, TXN=0x1, sERR=0, qERR=0, qConn=0, qServ=0x00, qmiCLI=0x0, flags=0x0): 0c 42 01 00 0b 00 00 00 c8 fa 13 40 00 00 00 00 00 00 00 00 00 00 00 00 a3 02 e4 a6 0f 01 00 00 54 fa 13 40 10 d0 bf be 98 00 02 00 8c 28 14 40 3c 2d 14 40 cb 01 02 00 f1 00 02 00 98 00 02 00 64 6c c1 47 03 00 00 00 98 00 02 00 98 00 02 00 00 00 00 00 cb 01 02 00 e8 00 02 00 83 fc 00 00 17 00 00 00 03 00 00 00 d8 00 02 00 c8 d9 bf 47 1a 00 00 00 e8 d5 bf be 80 fc 00 00 1a 00 00 00 74 00 b4 47 f6 0b 14 40 1a 00 00 00 f6 0b 14 40 e8 d5 bf be 00 00 00 00 40 71 b1 47 72 fc 00 00 27 00 00 00 72 fc 00 00 00 d6 bf be e4 87 b1 47 e4 87 b1 47 a4 35 be 47 1a 00 00 00 30 d6 bf be b0 f3 00 00 e4 87 b1 47 e4 87 b1 47 a4 35 be 47 26 00 00 00 d7 f3 00 00 30 d6 bf be 01 00 00 00 40 71 b1 47 e4 87 b1 47 e4 87 b1 47 a4 35 be 47 84 d5 bf be 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 d7 bf be 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff 00 00 00 00 ff ff ff ff 00 00 00 00 73 00 00 00 f5 0b 14 40 ff ff ff ff 00 00 00 00 ff ff ff ff 68 00 00 00 f4 0b 14 40 00 00 00 00 00 00 00 00 00 00 00 00 54 d7 bf be 68 00 00 00 70 fc 00 00 00 00 00 00 00 00 00 00 01 00 00 00 ff ff ff ff 00 00 00 00 64 00 00 00 d5 f3 00 00 70 fc 00 00 00 00 00 00 00 00 00 00 68 00 00 00 ca f3 00 00 00 00 00 00 00 00 00 00 bd f1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 68 00 00 00 a8 f1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
18
I:QMI connection init done
19
4 => COMPL(CLI=0x95, MSGT=0x01, TXN=0x2, sERR=0, qERR=0, qConn=0, qServ=0x00, qmiCLI=0x0, flags=0x0): 08 00 00 00 64 6c c1 47 03 00 00 00 a8 18 08 00 a8 18 08 00 00 00 00 00 db 19 08 00 38 10 13 40 8c a8 35 40 57 00 00 00 a8 18 08 00 03 00 00 00 0f 00 00 00 94 63 35 40 00 00 00 00 98 6a 08 40 0c 86 f4 be ff ff ff ff 00 00 00 00 00 00 00 00 0c 1c 09 40 6c 71 08 40 ac 1b 09 40 18 95 08 40 7c d3 08 40 e0 3d 00 00 5c 11 09 40 54 04 08 40 94 88 08 40 18 86 f4 be f4 82 00 00 47 86 f4 be 71 6d 69 5f 63 61 74 5f 73 72 76 63 5f 69 6e 69 74 3a 20 43 41 54 20 73 75 63 63 65 73 73 66 75 6c 6c 79 20 69 6e 69 74 69 61 6c 69 7a 65 64 00 7a 65 64 00 50 88 f4 be 00 00 00 00 38 26 13 40 14 8a f4 be ac cd ab 47 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 18 e9 03 40 0e 00 00 00 00 00 00 00 e8 d2 09 40 b0 d2 09 40 18 d0 ab 47 18 01 00 00 0b 00 00 00 a4 59 0a 40 6f b0 61 1f 18 00 00 00 9c 9b ab 47 a4 59 0a 40 b3 47 6f 5a 34 01 00 00 0b 00 00 00 a4 59 0a 40 bc 44 3b 21 18 00 00 00 9c 9b ab 47 c8 4d ad 47 08 30 09 40 05 00 00 00 25 da 09 01 c8 4d ad 47 f8 55 34 40 08 aa ac 47 28 51 34 40 a4 59 0a 40 18 e9 03 40 00 00 00 00 00 00 00 00 05 00 00 00 4d 00 00 00 00 00 00 00 08 30 09 40 09 f5 05 40 38 56 34 40 18 e3 05 40 01 00 00 00 cc 87 f4 be bc 44 3b 21 d0 ea 03 40 00 00 00 00 a8 87 f4 be 09 f5 05 40 00 00 00 00 04 88 f4 be ec 87 f4 be ec 9d ab 47 a8 87 f4 be bc 5a ad 47 00 00 00 00 00 00 00 00 05 00 00 00 00 00 00 00 01 00 00 00 18 e9 03 40 00 00 00 00 34 88 f4 be 1c 88 f4 be ec 9d ab 47 d8 87 f4 be bc 5a ad 47 00 00 00 00 00 00 00 00 d0 ea 03 40 00 00 00 00 18 e9 03 40 18 e9 03 40 88 55 34 40 08 30 09 40 b0 22 09 40 48 25 09 40 c8 54 34 40 08 30 09 40 ff ff ff ff 00 00 00 00 f8 55 34 40 08 30 09 40 18 e9 03 40 00 00 00 00 ac 1b 09 40 1c 84 00 00 ff ff ff ff e0 3d 00 00 5c 11 09 40 00 e0 05 40 c0 94 56 40 00 00 00 00 a0 2a 09 40 fc a9 02 00 74 07 08 00 00 50 ad 47 84 07 08 00 84 df ab 47 00 00 00 00 01 00 00 00 05 00 00 00 00 00 00 00 c0 94 56 40 f8 55 34 40 08 00 00 00 00 00 00 00 6c a5 00 00 a0 2a 09 40 00 00 00 00 24 43 ac 47 38 bd 08 00 00 00 00 00 08 00 00 00 47 8a f4 be 
20
4 <= COMPL(CLI=0x95, MSGT=0x01, TXN=0x2, sERR=0, qERR=0, qConn=0, qServ=0x00, qmiCLI=0x0, flags=0x0): 35 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
21
I:Registered with QMI with client id 3475456
22
I:Trying to register 65 commands:
23
I:cmd 0: +CFUN
24
4 => COMPL(CLI=0x95, MSGT=0x00, TXN=0x0, sERR=0, qERR=0, qConn=0, qServ=0x08, qmiCLI=0x35, flags=0x0): 00 01 00 20 00 0d 00 01 0a 00 01 07 00 00 05 2b 43 46 55 4e 
25
4 <= COMPL(CLI=0x95, MSGT=0x00, TXN=0x0, sERR=0, qERR=0, qConn=0, qServ=0x08, qmiCLI=0x35, flags=0x80): 02 01 00 20 00 07 00 02 04 00 01 00 30 00 
26
I:Could not register AT command : +CFUN with the QMI Interface - Err code:48
27
</pre>
28
29
h2. atcop_test
30
31
This is simple test program that attempts to use the QMI library header files found in the jsr-d10 project to compile programs that can link + run with the QMI library versions present on the [[EC20]] and similar modems.
32
33
The example works.
34
35
h2. qmi_test
36
37
This is another example to simply read the IMEI of the modem using the DMS QMI service via the proprietary qualcomm QMI libraries.  It als works.
38
39
h2. libqm-glib support for qmuxd
40
41
This is ongoing work to integrate a qmuxd back-end into libqmi-glib.  This way, one could run entirely open source prorgrams without any proprietary libraries that can talk QMI via the existing qmuxd infrastructure on the device.
42
43
This would also mean that you can use tools like qmicli inside the modem itself.
Add picture from clipboard (Maximum size: 48.8 MB)