Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FS#527 - QMI modem Olivetti Techcenter (0b3c:c00a) freezes on uqmi --sync call (never connects) #8012

Closed
openwrt-bot opened this issue Feb 17, 2017 · 2 comments
Labels

Comments

@openwrt-bot
Copy link

luizluca:

Hello,

I used to use modem Olivetti Techcenter (0b3c:c00a) on OpenWRT CC.1 without problems.
However, testing on LEDE 17.01.0-rc2, I'm unable to connect.

I traced the problem to 'uqmi -s -d "$device" --sync' at [[https://github.com/lede-project/source/blob/master/package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh#L101]].

My config is simple as:

config interface 'wwan' option ifname 'wwan0' option proto 'qmi' option device '/dev/cdc-wdm0' option apn 'gprs.oi.com.br' option auth 'none'

Using strace, it always stops at this point:

... open("/dev/cdc-wdm0", O_RDWR|O_EXCL|O_NOCTTY|O_NONBLOCK|O_LARGEFILE) = 6 fcntl64(6, F_GETFL) = 0x2082 (flags O_RDWR|O_NONBLOCK|O_LARGEFILE) fcntl64(6, F_SETFL, O_RDWR|O_NONBLOCK|O_LARGEFILE) = 0 epoll_ctl(3, EPOLL_CTL_ADD, 6, {EPOLLIN|EPOLLRDHUP|EPOLLET, {u32=4305304, u64=18491139879337984}}) = 0 write(6, "\1\v\0\0\0\0\0\1'\0\0\0", 12) = 12 rt_sigaction(SIGINT, NULL, {sa_handler=0x401071, sa_mask=[RT_66 RT_67 RT_68 RT_69 RT_70 RT_71], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0}, 16) = 0 rt_sigaction(SIGTERM, NULL, {sa_handler=0x401071, sa_mask=[RT_66 RT_67 RT_68 RT_69 RT_70 RT_71], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0}, 16) = 0 rt_sigaction(SIGCHLD, NULL, {sa_handler=SIG_DFL, sa_mask=[RT_66 RT_67 RT_68 RT_69 RT_70 RT_71], sa_flags=0}, 16) = 0 rt_sigaction(SIGCHLD, {sa_handler=0x77d85541, sa_mask=[RT_68 RT_69 RT_73 RT_74 RT_75 RT_76 RT_78 RT_80 RT_82 RT_84 RT_85 RT_87 RT_88 RT_89 RT_90 RT_91 RT_93 RT_94 RT_95], sa_flags=SA_RESTORER, sa_restorer=0}, NULL, 16) = 0 rt_sigaction(SIGPIPE, NULL, {sa_handler=SIG_DFL, sa_mask=[RT_65 RT_68 RT_70], sa_flags=0}, 16) = 0 rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[RT_68 RT_69 RT_73 RT_74 RT_75 RT_76 RT_78 RT_80 RT_82 RT_84 RT_85 RT_87 RT_88 RT_89 RT_90 RT_91 RT_93 RT_94 RT_95], sa_flags=SA_RESTORER, sa_restorer=0}, NULL, 16) = 0 clock_gettime(CLOCK_MONOTONIC, {tv_sec=7909, tv_nsec=543507701}) = 0 clock_gettime(CLOCK_MONOTONIC, {tv_sec=7909, tv_nsec=544052152}) = 0 epoll_pwait(3,

If I comment the "uqmi --sync" call, it simply works. "--sync" is a new action for uqmi since OpenWRT CC.1

My System is:

LEDE 17.01.0-rc2, r3131-42f3c1f
uqmi 2016-12-19-8ceeab69-1
machine: TP-LINK TL-WDR3600/4300/4310 (ar71xx) with QMI modem Olivetti Techcenter (0b3c:c00a)

@openwrt-bot
Copy link
Author

xavifr:

Lede: 17.01 @ 47bf110
Device: MVEBU - Linksys WRT1200AC

I have the same problem with QMI Device ZTE MF110 (19d2/0124)

Commenting out "--sync" line works only for the first connect.
If you execute 'ifdown wwan' and then 'ifup wwan' it will fail.

To workaround it, I've reverted this feature to CC's variant.

--- /rom/lib/netifd/proto/qmi.sh +++ /lib/netifd/proto/qmi.sh @@ -25,6 +25,14 @@ proto_config_add_defaults }

+qmi_disconnect() {

  •    # disable previous autoconnect state using the global handle
    
  •    # do not reuse previous wds client id to prevent hangs caused by stale data
    
  •    uqmi -s -d "$device" \
    
  •            --stop-network 0xffffffff \
    
  •            --autoconnect > /dev/null
    

+}
+
proto_qmi_setup() {
local interface="$1"

@@ -96,9 +104,10 @@
}
}

  • qmi_disconnect
  • uqmi -s -d "$device" --set-data-format 802.3
    uqmi -s -d "$device" --wda-set-data-format 802.3
  • uqmi -s -d "$device" --sync

    echo "Waiting for network registration"
    while uqmi -s -d "$device" --get-serving-system | grep '"searching"' > /dev/null; do

Edit:

I have also tested with QMI Device HUAWEI E392u-12 (12d1/151b) and it works, so it is not a general problem.

@openwrt-bot
Copy link
Author

br1:

I confirm this is a problem with TP-Link MA260 as well. uqmi --sync never returns. Uncommenting the sync call or adding the above mentioned workaround both work in this case.

Lede: 17.01.2 @ 97ebdf9
Device: ar71xx Carambola2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant