Huawei E3372 บน Linux Raspberry Pi 3

เนื่องจากพวก 3G 4G USB ของ Huawei จะมีการทำงานอยู่ 2 โหมด คือ mass storage และ modem หากเราต้องการใช้โมเดมจะต้องใช้คำสั่ง usb_modeswitch ซึ้งต้องสร้าง config file ใน /etc/usb_modemswitch.conf ดังนี้

DefaultVendor=0x12d1
DefaultProduct=0x14fe

TargetVendor=  0x12d1
TargetProduct= 0x1506

MessageContent="55534243123456780000000000000011062000000100000000000000000000"

เมื่อต้องการสลับโหมดการทำงานเป็น modem

usb_modeswitch -s 15 -I -H -c /etc/usb_modeswitch.conf

สำหรับการทำ auto startup

MODEM_STORAGE="12d1:14fe"
MODEM_MODEM="12d1:1506"

# 0 = storage, 1= modem
MODEM_MODE=0

check_modem_mode () {
 echo -n "Checking modem presence... "

 lsusb | grep --quiet "$MODEM_STORAGE"

 if [ $? -eq 0 ]; then
  MODEM_MODE=0
  echo "OK: modem in mass storage mode"
 else
  lsusb | grep --quiet "$MODEM_MODEM"
  if [ $? -eq 0 ]; then
   MODEM_MODE=1
   echo "OK: modem in modem mode"
  else
   echo "ERROR: modem not found"
   exit 1
  fi
 fi
}

set_modem_mode () {
 while [ $MODEM_MODE -eq 0 ]
 do
  echo -n "Setting modem mode... "
  usb_modeswitch -s 15 -I -H -c /etc/usb_modeswitch.conf >/dev/null 2>&1
  lsusb | grep --quiet "$MODEM_MODEM"
  if [ $? -eq 0 ]; then
   MODEM_MODE=1
   echo "OK"
  else
   echo "FAILED"
  fi
 done
}

ตรวจสอบการทำงานว่าใช้งานได้หรือเปล่าโดยใช้คำสั่ง lsusb ควรจะได้ผลลัพธ์ประมาณนี้

Bus 001 Device 015: ID 12d1:1506 Huawei Technologies Co., Ltd. E398 LTE/UMTS/GSM Modem/Networkcard

แล้วใช้คำสั่ง ifconfig

# ifconfig
wwan0     Link encap:Ethernet  HWaddr 58:2c:80:13:93:13
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

ถ้าได้ทุกอย่างประมาณนี้แล้ว สามารถทำการเชื่อมต่อ 3G 4G ได้โดยการการ config file ใน /etc/wvdial.conf ดังต่อไปนี้

[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0
Init3 = AT+CGDCONT=1,"IP","internet.t-mobile.cz"
Stupid Mode = 1
ISDN = 0
Modem Type = Analog Modem
New PPPD = yes
Phone = *99***#
Modem = /dev/gsmmodem
Username = { }
Password = { }
Baud = 9600

คำสั่งในการเชื่อมต่อ

wvdial >/dev/null 2>&1 &

ลองใช้คำสั่ง ifconfig อีกที

# ifconfig
ppp0      Link encap:Point-to-Point Protocol
          inet addr:10.83.249.176  P-t-P:10.64.64.64  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:4265 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6699 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:506706 (494.8 KiB)  TX bytes:600991 (586.9 KiB)

การ add route ในไฟล์ /etc/ppp/peers/wvdial

route add -net 192.0.2.0/24 dev ppp0

เท่านี้ก็สามารถใช้งานได้แล้วครับ

แสดงความคิดเห็น