Add 'modem set-logging' command.
The 'modem set-logging' command replaces 'mm_debug' for setting logging
level in modem managers.
BUG=chromium-os:34360
TEST=Tested 'modem set-logging' with cromo and ModemManager.
Change-Id: I11c68eb36d602f5ff1fd5e06418e824b56d33fb7
Reviewed-on: https://gerrit.chromium.org/gerrit/33114
Commit-Ready: Ben Chan <[email protected]>
Tested-by: Ben Chan <[email protected]>
Reviewed-by: Thieu Le <[email protected]>
diff --git a/modem-common.sh b/modem-common.sh
index 1e153b9..c852205 100644
--- a/modem-common.sh
+++ b/modem-common.sh
@@ -191,3 +191,32 @@
[ -z "${modem}" ] && modem=$(mm1_modems | head -1)
echo "${modem}"
}
+
+# Returns all modem managers that are currently running.
+modem_managers() {
+ dbus_call org.freedesktop.DBus /org/freedesktop/DBus \
+ org.freedesktop.DBus.ListNames | awk '/ModemManager/ { print $2 }'
+}
+
+# Sets the log level of the specified modem manager.
+set_modem_manager_logging() {
+ local manager="$1"
+ local level="$2"
+
+ case "$manager" in
+ org.chromium.ModemManager)
+ dbus_call "${manager}" "${MM_OBJECT}" "${MM_IMANAGER}.SetLogging" \
+ "string:${level}"
+ ;;
+ org.freedesktop.ModemManager1)
+ if [ "${level}" = "error" ]; then
+ level=err
+ fi
+ dbus_call "${manager}" "${MM1_OBJECT}" "${MM1_IMANAGER}.SetLogging" \
+ "string:${level}"
+ ;;
+ *)
+ return 1
+ ;;
+ esac
+}