From 7499d3577ca9f1426d827fe7a0b087c4f741fa8a Mon Sep 17 00:00:00 2001 From: Adeeb Shihadeh Date: Wed, 6 May 2026 19:49:14 -0700 Subject: [PATCH] handle in lte.sh --- userspace/root/usr/comma/comma-init.sh | 6 ----- userspace/root/usr/comma/lte/lte.sh | 33 ++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 6 deletions(-) diff --git a/userspace/root/usr/comma/comma-init.sh b/userspace/root/usr/comma/comma-init.sh index fb87962..4376cdd 100755 --- a/userspace/root/usr/comma/comma-init.sh +++ b/userspace/root/usr/comma/comma-init.sh @@ -80,12 +80,6 @@ function init_permissions ( chmod 0660 "$path" done - # serial tty group - for path in /dev/tty[A-Z]*[0-9] /dev/ttymxc[0-9]*; do - [[ -c "$path" ]] || continue - chgrp dialout "$path" - chmod 0660 "$path" - done ) function init_video ( diff --git a/userspace/root/usr/comma/lte/lte.sh b/userspace/root/usr/comma/lte/lte.sh index 95ee3f3..febd9c5 100755 --- a/userspace/root/usr/comma/lte/lte.sh +++ b/userspace/root/usr/comma/lte/lte.sh @@ -35,6 +35,38 @@ function is_modem_sysfs { return 1 } +function setup_modem_ttys { + local path name iface found i + + for i in {0..300}; do + found=0 + for path in /sys/class/tty/ttyUSB* /sys/class/tty/ttyACM*; do + [[ -e "$path" ]] || continue + is_modem_sysfs "$path" || continue + + name="${path##*/}" + [[ -c "/dev/$name" ]] || continue + chgrp dialout "/dev/$name" + chmod 0660 "/dev/$name" + found=1 + + iface="$(realpath "$path")" + while [[ "$iface" != "/" && ! -r "$iface/bInterfaceNumber" ]]; do + iface="${iface%/*}" + done + + [[ -r "$iface/bInterfaceNumber" && "$(< "${iface%:*}/idVendor")" == "2c7c" ]] || continue + case "$(< "$iface/bInterfaceNumber")" in + 02) ln -sfn "/dev/$name" /dev/modem_at0 ;; + 03) ln -sfn "/dev/$name" /dev/modem_at1 ;; + esac + done + + ((found)) && return + sleep 0.01 + done +} + function report_modem_kernel_events { local path name subsystem @@ -108,6 +140,7 @@ case "$1" in reset power_button done + setup_modem_ttys report_modem_kernel_events ;;