M9615AAAARNLZA1611161.xml
but during compilation I faced some libs that are missing such as libQMI and acdb-loader..
Our requirements for a good modem
gpltool.git
has unyaffs
to unpack yaffs
strings
, etc. clearly reveal Linux, glibc, busybox
AT+QLINUXCMD=?
show up
oelinux123
M9615AAAARNLZA1611161.xml
but during compilation I faced some libs that are missing such as libQMI and acdb-loader..
Asking for the complete and corresponding source
Asking again for the complete and corresponding source
Asking for the complete and corresponding source
Asking for the complete and corresponding source
Asking for the complete and corresponding source
Asking for the complete and corresponding source
Your tarball is missing some files
adbd
present on the modem but not exposed via USB
AT+QLINUXCMD="/usr/bin/usb_uartdiag"
quectel-experiments.git
, documented in wiki
The software stack seems to be called Qualcomm LE
git diff -w | wc -l
v3.0.21
in EC20: 1.5 million lines
v3.18.20
in EC25: 1.9 million lines
Some of the Qualcomm-specific kernel sub-systems
SMD |
Shared Memory Device |
IPC |
Inter Processor Communications |
RMNET |
Remote Network |
BAM |
Bus Access Manager |
IPA |
Internet Packet Accelerator |
DIAGFWD |
DIAG Forwarding |
AF_MSM_IPC |
Socket family for Qualcomm IPC |
/dev/diagchar
libdiag.so
every rmnet
data device has associated QMI control
qmi_wwan
and /dev/cdc-wdm
/dev/smdcntlN
, multiplexed by qmuxd
We created some tools to help our analysis
opkg
and OE packages for socat
, lsof
, strace
libqmi-framework.so
qmi_test
: Simple program to read IMEI via QMI
atcop_test
: Test program to implement AT commands in Linux userspace
qmuxd_wrapper
: LD_PRELOAD wrapper for tracing between qmuxd
and QMI clients
libqmi-glib
transport support for qmuxd
(work in progress)
osmo-qcdiag
: Host tool for obtaining DIAG based logs from Linux programs + QMI traces, decoded via libmi-glib
We found a bunch of proprietary Linux userspace programs
|
Implements Android Debug Bridge |
|
Implement Quectel-Specific AT Commands |
|
?; various ASoC related bits |
|
? |
|
Mobile Broadband IF Model (translates MBIM to QMI) |
|
runs linux-base WiFi AP/router with LTE backhaul |
|
reads GPS NMEA from |
AT+QLINUXCMD
, e.g. switch usb config to get adb
AT+QFASTBOOT
, switch to the bootloader
AT+QPRINT
, print dmesg
system("echo mem > /sys/power/state")
rebootdiagapp
registers DIAG command (cmd code 0x29)
system("qmi_simple_ril_test input=/tmp/reset")
system("echo 'modem reset' > /tmp/reset")
qmi_simple_ril_test
send a QMI message to modem
system("rm /tmp/reset")
/dev/rebooterdev
this time using fwrite()
!
reboot_daemon
reads /dev/rebooterdev
read_count = read(pipe_fd,buf,MAX_BUF-1);
/* if read REBOOT_STR, then call reboot */
if(strncmp(buf,REBOOT_STR,strlen(REBOOT_STR)) == 0) {
debug_printf("going for reboot\n");
printf("reboot-daemon: initiating reboot\n");
system("reboot");
}
echo "nau8814-aif1" > /sys/devices/platform/soc-audio.0/tx_dai_name
cp -f /cache/usb/qcfg_usbcfg /etc/; cp -f /cache/usb/usb /etc/init.d/
echo 90 >/sys/kernel/debug/pm8xxx-pwm-dbg/0/duty-cycle
pkill -f "/bin/sh /usr/bin/nmea_demon.sh"
ps ef | grep "quec_bridge /dev/nmea /dev/ttyGS0" | grep -v grep
cd /cache/ufs;ls
// Look for an RSA signature embedded in the .ZIP file comment given
// the path to the zip. Verify it matches one of the given public
// keys.
$ strings atfwd_daemon | egrep "wget|QCMAP|fota|update.z"
... QCMAP_ConnectionManager /etc/mobileap_cfg.xml n n fotanet
/usr/bin/wget -T 20 -t 3 %s -O %s
mv %s %s && mkdir -p /cache/fota && echo %s > %s
/cache/fota/ipth_config_dfs.txt
rm -rf /cache/fota /cache/recovery /cache/update.zip
Start download fota for update.zip
osmo-qcdiag
, LD_PRELOAD wrapper, qmi_test
, etc.) released
libqmi-glib
integration WIP