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. |