Linux의 Huawei 3G 모뎀에서 무작위로 "NO CARRIER"가 표시됨

Linux의 Huawei 3G 모뎀에서 무작위로 "NO CARRIER"가 표시됨

저는 리눅스에서 화웨이 3G 모뎀을 사용하고 있습니다. NetworkManager를 한동안 사용한 후, 이제 wvdial을 사용하여 모뎀과 통신하고 pppd를 시작합니다. USB 장치가 연결되면 wvdial이 자동으로 시작되도록 udev 규칙을 추가했습니다.

  1. 좋은 경우: 모뎀을 연결했는데 모뎀이 등록되는 동안 wvdial이 몇 번 실패했다가 성공했습니다.
  2. 나쁜 경우: 동일하지만 wvdial은 "NO CARRIER"로 영원히 실패합니다.

2) 상황이 발생했을 때 해야 할 일은: 장치를 뽑았다가 다시 연결하고 이번에는 좋은 결과가 있기를 바랍니다.

gprs/umts 간 전환, 운영자를 수동으로 전환하여 강제로 다시 등록하는 등 많은 것을 시도했지만 운이 좋지 않았습니다. 일단 작동하지 않으면 그대로 유지됩니다.

며칠 전에 나는 umts가 항상 실패하는 경우를 발견했지만 gprs는 비교적 잘 성공했습니다. 이제 흥미로운 점은 Windows umts가 바로 작동한다는 것입니다. 따라서 이것은 확실히 Linux 문제입니다.

모뎀은 화웨이 E1762 입니다.
NetworkManager/modem-manager도 같은 문제를 겪고 있습니다.
우분투 명료하게 실행하기

답변1

좋아, 내 생각엔 등록이 완료되기 전에 wvdial이 통신을 시작하면 모뎀이 혼란스러워지는 것 같아요.

-> 장치를 연결한 후 2초 지연을 추가하고 wvdial을 실행하기 전에 장치가 등록될 때까지 스크립트가 기다리도록 합니다. 그러면 항상 작동합니다 !!

#!/bin/bash
while [ -e /dev/ttyUSB0 ] ; do
  # wait to be registered
  if ./operator | grep -q ','; then
    wvdial provider >> wvdial.log 2>&1
  fi
  sleep 1
done

운영자 스크립트:

#!/bin/bash
# boy, is this ugly ...
chat -t 1 -e "" '\pAT' OK AT+COPS? +COPS '\pAT' OK >> /dev/ttyUSB1 < /dev/ttyUSB1 2>/tmp/foo
grep -m 1 '^+COPS' /tmp/foo

관련 정보