mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-02-15 03:51:51 +00:00
commit
8fcd12584b
5 changed files with 68 additions and 9 deletions
|
@ -8,12 +8,12 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=modemmanager
|
PKG_NAME:=modemmanager
|
||||||
PKG_VERSION:=1.16.6
|
PKG_VERSION:=1.18.2
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_SOURCE:=ModemManager-$(PKG_VERSION).tar.xz
|
PKG_SOURCE:=ModemManager-$(PKG_VERSION).tar.xz
|
||||||
PKG_SOURCE_URL:=https://www.freedesktop.org/software/ModemManager
|
PKG_SOURCE_URL:=https://www.freedesktop.org/software/ModemManager
|
||||||
PKG_HASH:=2a90b6260f66d3135609d62667ada73416694d717e7fd9b73223e3703a499617
|
PKG_HASH:=374be158ae1c1fb38a29eef1cc3cdf89ff3536b48ff1320d208ab204ea6c5f8a
|
||||||
PKG_BUILD_DIR:=$(BUILD_DIR)/ModemManager-$(PKG_VERSION)
|
PKG_BUILD_DIR:=$(BUILD_DIR)/ModemManager-$(PKG_VERSION)
|
||||||
|
|
||||||
PKG_MAINTAINER:=Nicholas Smith <nicholas.smith@telcoantennas.com.au>
|
PKG_MAINTAINER:=Nicholas Smith <nicholas.smith@telcoantennas.com.au>
|
||||||
|
@ -98,6 +98,7 @@ define Package/modemmanager/install
|
||||||
|
|
||||||
$(INSTALL_DIR) $(1)/usr/sbin
|
$(INSTALL_DIR) $(1)/usr/sbin
|
||||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/ModemManager $(1)/usr/sbin
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/ModemManager $(1)/usr/sbin
|
||||||
|
$(INSTALL_BIN) ./files/usr/sbin/ModemManager-wrapper $(1)/usr/sbin
|
||||||
|
|
||||||
$(INSTALL_DIR) $(1)/usr/bin
|
$(INSTALL_DIR) $(1)/usr/bin
|
||||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/mmcli $(1)/usr/bin
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/mmcli $(1)/usr/bin
|
||||||
|
@ -131,6 +132,9 @@ define Package/modemmanager/install
|
||||||
$(INSTALL_DIR) $(1)/etc/hotplug.d/tty
|
$(INSTALL_DIR) $(1)/etc/hotplug.d/tty
|
||||||
$(INSTALL_DATA) ./files/25-modemmanager-tty $(1)/etc/hotplug.d/tty
|
$(INSTALL_DATA) ./files/25-modemmanager-tty $(1)/etc/hotplug.d/tty
|
||||||
|
|
||||||
|
$(INSTALL_DIR) $(1)/etc/hotplug.d/wwan
|
||||||
|
$(INSTALL_DATA) ./files/25-modemmanager-wwan $(1)/etc/hotplug.d/wwan
|
||||||
|
|
||||||
$(INSTALL_DIR) $(1)/lib/netifd/proto
|
$(INSTALL_DIR) $(1)/lib/netifd/proto
|
||||||
$(INSTALL_BIN) ./files/modemmanager.proto $(1)/lib/netifd/proto/modemmanager.sh
|
$(INSTALL_BIN) ./files/modemmanager.proto $(1)/lib/netifd/proto/modemmanager.sh
|
||||||
endef
|
endef
|
||||||
|
|
15
modemmanager/files/25-modemmanager-wwan
Normal file
15
modemmanager/files/25-modemmanager-wwan
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# Copyright (C) 2021 Aleksander Morgado <aleksander@aleksander.es>
|
||||||
|
|
||||||
|
# Load hotplug common utilities
|
||||||
|
. /usr/share/ModemManager/modemmanager.common
|
||||||
|
|
||||||
|
# We require a device name
|
||||||
|
[ -n "$DEVNAME" ] || exit
|
||||||
|
|
||||||
|
# Always make sure the rundir exists
|
||||||
|
mkdir -m 0755 -p "${MODEMMANAGER_RUNDIR}"
|
||||||
|
|
||||||
|
# Report wwan
|
||||||
|
mm_log "${ACTION} wwan control port ${DEVNAME}: event processed"
|
||||||
|
mm_report_event "${ACTION}" "${DEVNAME}" "wwan" "/sys${DEVPATH}"
|
|
@ -39,12 +39,21 @@ mm_find_physdev_sysfs_path() {
|
||||||
# avoid infinite loops iterating
|
# avoid infinite loops iterating
|
||||||
[ -z "${tmp_path}" ] || [ "${tmp_path}" = "/" ] && return
|
[ -z "${tmp_path}" ] || [ "${tmp_path}" = "/" ] && return
|
||||||
|
|
||||||
# the physical device will be that with a idVendor and idProduct pair of files
|
# for USB devices, the physical device will be that with a idVendor
|
||||||
|
# and idProduct pair of files
|
||||||
[ -f "${tmp_path}"/idVendor ] && [ -f "${tmp_path}"/idProduct ] && {
|
[ -f "${tmp_path}"/idVendor ] && [ -f "${tmp_path}"/idProduct ] && {
|
||||||
tmp_path=$(readlink -f "$tmp_path")
|
tmp_path=$(readlink -f "$tmp_path")
|
||||||
echo "${tmp_path}"
|
echo "${tmp_path}"
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# For PCI devices, the physical device will be that with a vendor
|
||||||
|
# and device pair of files
|
||||||
|
[ -f "${tmp_path}"/vendor ] && [ -f "${tmp_path}"/device ] && {
|
||||||
|
tmp_path=$(readlink -f "$tmp_path")
|
||||||
|
echo "${tmp_path}"
|
||||||
|
return
|
||||||
|
}
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
10
modemmanager/files/modemmanager.init
Executable file → Normal file
10
modemmanager/files/modemmanager.init
Executable file → Normal file
|
@ -22,14 +22,12 @@ start_service() {
|
||||||
# it starts.
|
# it starts.
|
||||||
#
|
#
|
||||||
# All these commands need to be executed on every MM start, even after
|
# All these commands need to be executed on every MM start, even after
|
||||||
# procd-triggered respawns, which is why they're all included as instance command
|
# procd-triggered respawns, which is why this is wrapped in a startup
|
||||||
|
# wrapper script called '/usr/sbin/ModemManager-wrapper'.
|
||||||
#
|
#
|
||||||
|
. /usr/share/ModemManager/modemmanager.common
|
||||||
procd_open_instance
|
procd_open_instance
|
||||||
procd_set_param command sh -c ". /usr/share/ModemManager/modemmanager.common; \
|
procd_set_param command /usr/sbin/ModemManager-wrapper
|
||||||
mkdir -m 0755 -p ${MODEMMANAGER_RUNDIR}; \
|
|
||||||
mm_cleanup_interfaces; \
|
|
||||||
( mm_report_events_from_cache ) >/dev/null 2>&1 & \
|
|
||||||
/usr/sbin/ModemManager"
|
|
||||||
procd_set_param respawn "${respawn_threshold:-3600}" "${respawn_timeout:-5}" "${respawn_retry:-5}"
|
procd_set_param respawn "${respawn_threshold:-3600}" "${respawn_timeout:-5}" "${respawn_retry:-5}"
|
||||||
procd_set_param pidfile "${MODEMMANAGER_PID_FILE}"
|
procd_set_param pidfile "${MODEMMANAGER_PID_FILE}"
|
||||||
procd_close_instance
|
procd_close_instance
|
||||||
|
|
33
modemmanager/files/usr/bin/ModemManager-wrapper
Executable file
33
modemmanager/files/usr/bin/ModemManager-wrapper
Executable file
|
@ -0,0 +1,33 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
trap_with_arg() {
|
||||||
|
func="$1" ; shift
|
||||||
|
for sig ; do
|
||||||
|
# shellcheck disable=SC2064
|
||||||
|
trap "$func $sig" "$sig"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
func_trap() {
|
||||||
|
logger "ModemManager-wrapper[$$]" "Sending signal ${1}..."
|
||||||
|
kill "-${1}" "$CHILD" 2>/dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
main() {
|
||||||
|
. /usr/share/ModemManager/modemmanager.common
|
||||||
|
|
||||||
|
trap_with_arg func_trap INT TERM KILL
|
||||||
|
|
||||||
|
mkdir -p "${MODEMMANAGER_RUNDIR}"
|
||||||
|
chmod 0755 "${MODEMMANAGER_RUNDIR}"
|
||||||
|
mm_cleanup_interfaces
|
||||||
|
|
||||||
|
/usr/sbin/ModemManager "$@" 1>/dev/null 2>/dev/null &
|
||||||
|
CHILD="$!"
|
||||||
|
|
||||||
|
mm_report_events_from_cache
|
||||||
|
|
||||||
|
wait "$CHILD"
|
||||||
|
}
|
||||||
|
|
||||||
|
main "$@"
|
Loading…
Reference in a new issue