Mengatasi HP LT4220 Stuck Setmode 0

Radenku.com – Modem HP lt4220 merupakan wwan card lte dari laptop HP elitebook. Modem ini mendukung Carrier Aggregation hingga 3CA sehingga banyak di cari dan digunakan sebagai modem router.

Karena awalnya modem lt4220 didesain untuk jalan di windows maka agar bisa dipakai di router, terutama openwrt yang berbasis linux maka membutuhkan setting terlebih dahulu.

Karena untuk jalan di windows maka defaultnya modem ini berjalan di protokol MBIM tanpa ada serial port. Untuk berjalan di router perlu dibuka serial portnya agar modem HP Lt4220 bisa dikontrol menggunakan AT Comand selain itu bisa diubah ke QMI.

Tetapi terkadang jika di hubungkan di ke laptop lagi, windows driver menjadi error dan tidak terbaca. Terutama pada di setmode 0 maka port AT tidak ada, dengan adanya post ini semoga membantu kalian agar modem HP lt4220 bisa keluar dari setmode 0 dan bisa akses port AT Command.

hp lt4220 ln940 windows driver error 2 at command setmode 0

HP lt4220 Customer & Setmode

Module Hp lt4220 ini merupakan rebrand dari merek Foxconn T77w676. Selain brand HP, Foxconn T77w676 ini juga di rebrand dengan merek Telit Ln940. Karena itu di modem ini bisa juga berganti vendor id dari HP Lt4220 menjadi Telit Ln940 dan sebaliknya.

Untuk mengubahnya menggunakan AT Command, cek command AT^CUSTOMER? untuk mengecek ada di vendor apa saat ini.

Selain mengganti vendor, modem ini juga bisa diganti protokolnya MBIM, QMI. Untuk mengecek modenya dengan command AT^SETMODE? , untuk lebih jelasnya seperti di tabel di bawah ini

CUSTOMERSETMODEvid:pidInterface
AT^CUSTOMER=1AT^SETMODE=003f0:0857MBIM
(HP Lt4220)AT^SETMODE=103f0:0a57MBIM + Serial port
AT^SETMODE=203f0:0857QMI + Serial port
AT^CUSTOMER=2AT^SETMODE=01bc7:1900MBIM
(Telit Ln940)AT^SETMODE=11bc7:1901MBIM + Serial port
AT^SETMODE=21bc7:1900QMI + Serial port

Mungkin dari tabel itu kelihatan tidak ada masalah, karena tinggal ganti mode antara Telit atau HP, protokol MBIM atau QMI. Jika modem ketika ada di setmode 0 interface hanya MBIM tanpa serial port.

Untuk mengakses AT Command hanya bisa di Windows AT over MBIM, tidak bisa melalui putty dan sebagainya. Yang menjadi masalah itu ketika driver windows tidak terinstall dengan benar, menjadikan modem tidak terdetek dan tidak bisa digunakan.

Dan ketika dipasang di openwrt pun hanya terdetek cdc_ether bukan cdc_mbim maupun qmi_wwan tanpa serial port option, sehingga tidak bisa masuk ke AT Command dan tidak bisa dikoneksikan.

Sering banget aku lihat di grup mengalami kasus ini, seperti mengubah customer atau setmode. Terutama ketika mengubah customer otomatis modem akan masuk ke setmode 0, misalnya sekarang ada di vendor HP (customer 1) setmode 2 ketika kita ubah ke telit customer 2 akan masuk ke telit setmode 0 (tidak langsung setmode 2).

Jika di windows sudah stuck, driver tidak bisa juga ke install maka kita bisa mengakses port serialnya dengan mengubah komposisi USB modemnya. Untungnya di Setmode 0 mempunyai 3 configuration

  1. QMI + Port
  2. CDC Ether
  3. MBIM

Bisa di cek di linux/openwrt menggunakan command

cat /sys/kernel/debug/usb/devices
T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  5 Spd=480  MxCh= 0
D:  Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs=  3
P:  Vendor=03f0 ProdID=0857 Rev= 3.10
S:  Manufacturer=Qualcomm
S:  Product=Snapdragon(TM) X12 LTE-A
S:  SerialNumber=0123456789ABCDEF
C:  #Ifs= 4 Cfg#= 1 Atr=a0 MxPwr=500mA
I:  If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=
E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:  If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=
E:  Ad=83(I) Atr=03(Int.) MxPS=   8 Ivl=32ms
E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:  If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=
E:  Ad=85(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
E:  Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:  If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=
E:  Ad=87(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
E:  Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
C:* #Ifs= 2 Cfg#= 2 Atr=a0 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=06 Prot=00 Driver=cdc_ether
E:  Ad=82(I) Atr=03(Int.) MxPS=  16 Ivl=32ms
I:* If#= 1 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_ether
I:  If#= 1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_ether
E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
C:  #Ifs= 2 Cfg#= 3 Atr=a0 MxPwr=500mA
A:  FirstIf#= 0 IfCount= 2 Cls=02(comm.) Sub=0e Prot=00
I:  If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0e Prot=00 Driver=
E:  Ad=83(I) Atr=03(Int.) MxPS=  64 Ivl=32ms
I:  If#= 1 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=02 Driver=
I:  If#= 1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=
E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms

Diatas yaitu ada 3 config, dan yang sekarang sedang aktif yaitu di cfgs# 2, yaitu yang bertanda “*”. Agar bisa mengakses port AT kita perlu mengubah ke config 1. Untuk switch ke config 1 sebenarnya mudah menggunakan usb-modeswitch di linux menggunakan perintah

sudo usb_modeswitch -v 03f0 -p 0857 -u 1

Tetapi ketika menggunakan openwrt, usb-modeswitchnya berbeda, tidak bisa menggunakan cara itu. Sudah aku coba dari mengedit file /etc/usb-mode.json tetapi masih belum berhasil juga. Untungnya ketemu cara lainnya tanpa menggunakan usb-modeswitch berikut tutorialnya.

Pertama pastikan router openwrt sudah terinstall package yang dibutuhkan, jika belum maka install package berikut terlebih dahulu

opkg update
opkg install kmod-usb-serial-option kmod-usb-net-qmi-wwan kmod-usb-net-cdc-mbim \
usbutils minicom picocom kmod-usb-net-cdc-ether

HP Lt4220 Setmode 0

Ketika HP lt4220 ada di setmode 0 vid:pid 03f0:0857 cek menggunakan usbutils, maka akan terdetek seperti ini, tidak ada interface serial option, hanya cdc_ether.

lsusb && lsusb -t
root@OpenWrt:~# lsusb && lsusb -t
Bus 001 Device 005: ID 03f0:0857 Qualcomm Snapdragon(TM) X12 LTE-A
Bus 001 Device 001: ID 1d6b:0002 Linux 5.4.154 ehci_hcd EHCI Host Controller
Bus 003 Device 001: ID 1d6b:0002 Linux 5.4.154 xhci-hcd xHCI Host Controller
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ohci-platform/1p, 12M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-platform/1p, 480M
    |__ Port 1: Dev 5, If 0, Class=, Driver=cdc_ether, 480M
    |__ Port 1: Dev 5, If 1, Class=, Driver=cdc_ether, 480M

Ini berarti kita ada di cfgs# 2, kita perlu switch ke cfgs# 1, pertama cek terlebih dahulu lokasi device HP lt4220 menggunakan Vid 03f0

grep 03f0 /sys/bus/usb/devices/*/idVendor
root@OpenWrt:~# grep 03f0 /sys/bus/usb/devices/*/idVendor
/sys/bus/usb/devices/1-1/idVendor:03f0

Dari situ kita ketahui lokasinya ada di /sys/bus/usb/devices/1-1/, nilai 1-1 bisa saja berbeda, tinggal sesuaikan saja. Nah untuk switch ke cfgs# 1 menggunakan perintah

echo 1 > /sys/bus/usb/devices/1-1/bConfigurationValue

Setelah itu cek menggunakan usbutils lagi makan HP lt4220 sudah berubah

root@OpenWrt:~# lsusb && lsusb -t
Bus 001 Device 005: ID 03f0:0857 Qualcomm Snapdragon(TM) X12 LTE-A
Bus 001 Device 001: ID 1d6b:0002 Linux 5.4.154 ehci_hcd EHCI Host Controller
Bus 003 Device 001: ID 1d6b:0002 Linux 5.4.154 xhci-hcd xHCI Host Controller
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ohci-platform/1p, 12M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-platform/1p, 480M
    |__ Port 1: Dev 5, If 0, Class=, Driver=, 480M
    |__ Port 1: Dev 5, If 1, Class=, Driver=, 480M
    |__ Port 1: Dev 5, If 2, Class=, Driver=, 480M
    |__ Port 1: Dev 5, If 3, Class=, Driver=, 480M

Akan tetapi driver yang seharusnya option masih blank, makanya kita perlu binding serial optionnya

echo "03f0 0857" > /sys/bus/usb-serial/drivers/option1/new_id

Cek lagi menggunakan usbutils, maka sudah ada driver option

root@OpenWrt:~# lsusb && lsusb -t
Bus 001 Device 005: ID 03f0:0857 Qualcomm Snapdragon(TM) X12 LTE-A
Bus 001 Device 001: ID 1d6b:0002 Linux 5.4.154 ehci_hcd EHCI Host Controller
Bus 003 Device 001: ID 1d6b:0002 Linux 5.4.154 xhci-hcd xHCI Host Controller
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ohci-platform/1p, 12M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-platform/1p, 480M
    |__ Port 1: Dev 5, If 0, Class=, Driver=option, 480M
    |__ Port 1: Dev 5, If 1, Class=, Driver=option, 480M
    |__ Port 1: Dev 5, If 2, Class=, Driver=option, 480M
    |__ Port 1: Dev 5, If 3, Class=, Driver=option, 480M

Sekarang kita sudah bisa akses port AT command HP lt4220 dan mengubah customer atau setmode menggunakan minicom atau picocom.

minicom -D /dev/ttyUSB2
hp-lt4220-setmode-0-at-command-stuck

Telit Ln940 Setmode 0

Ketika ada di telit setmode 0 vid:pid 1bc7:1900 di cek menggunakan usbutils, maka seperti ini. Terdapat driver option akan tetapi tidak terdapat interface /dev/ttyUSB*, sehingga kita perlu juga switch ke cfgs# 1

root@OpenWrt:~# lsusb && lsusb -t
Bus 001 Device 008: ID 1bc7:1900 Telit Telit LN940 Mobile Broadband
Bus 001 Device 001: ID 1d6b:0002 Linux 5.4.154 ehci_hcd EHCI Host Controller
Bus 003 Device 001: ID 1d6b:0002 Linux 5.4.154 xhci-hcd xHCI Host Controller
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ohci-platform/1p, 12M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-platform/1p, 480M
    |__ Port 1: Dev 8, If 0, Class=, Driver=option, 480M
    |__ Port 1: Dev 8, If 1, Class=, Driver=, 480M

Sama seperti sebelumnya cek terlebih dahulu lokasi device Telit ln940 menggunakan Vid 1bc7

grep 1bc7 /sys/bus/usb/devices/*/idVendor
root@OpenWrt:~# grep 1bc7 /sys/bus/usb/devices/*/idVendor
/sys/bus/usb/devices/1-1/idVendor:1bc7

Setelah didapat ada di /sys/bus/usb/devices/1-1/, nilai 1-1 bisa saja berbeda, tinggal sesuaikan saja. Nah untuk switch ke cfgs# 1 menggunakan perintah

echo 1 > /sys/bus/usb/devices/1-1/bConfigurationValue
root@OpenWrt:~# lsusb && lsusb -t
Bus 001 Device 002: ID 1bc7:1900 Telit Telit LN940 Mobile Broadband
Bus 001 Device 001: ID 1d6b:0002 Linux 5.4.154 ehci_hcd EHCI Host Controller
Bus 003 Device 001: ID 1d6b:0002 Linux 5.4.154 xhci-hcd xHCI Host Controller
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ohci-platform/1p, 12M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-platform/1p, 480M
    |__ Port 1: Dev 2, If 0, Class=, Driver=option, 480M
    |__ Port 1: Dev 2, If 1, Class=, Driver=qmi_wwan, 480M
    |__ Port 1: Dev 2, If 2, Class=, Driver=option, 480M
    |__ Port 1: Dev 2, If 3, Class=, Driver=option, 480M

Berbeda dengan HP lt4220 setmode 0 yang tidak terdetek driver qmi maupun option, di mode telit ln940 driver qmi_wwan dan option sudah terpasang dengan benar, tinggal akses port AT menggunakan minicom atau picocom.

minicom -D /dev/ttyUSB2
telit-ln940-setmode-0-at-command-stuck

Demikian cara mengakses port AT Command modem HP lt4220 di Setmode 0, semoga tulisan ini membantu kalian yang modemnya stuck di setmode 0.

2 pemikiran pada “Mengatasi HP LT4220 Stuck Setmode 0”

  1. sekedar berbagi mbah, utk commant “sudo usb_modeswitch -v 03f0 -p 0857 -u 1” tidak jalan di openwrt, tapi bisa menggunakan command “usbmode -v 03f0 -p 0857 -u 1” (tanpa tanda petik). Semoga sedikit membantu.

    Balas

Tinggalkan komentar