I recently purchased a Huawei e397u-53 4G LTE USB modem, marketed as the Cricket Boltz, for use as a modem with the Raspberry Pi 3 B+.

This product comes with a Windows drivers which I installed on a Windows PC. I confirmed that this modem works by uploading and downloading files with it.

Scouring the internet has left me without answers on how to make this product work on Linux; specifically, the Raspberry Pi running Raspbian 4.14.

lsusb reveals that the device is recognized as a modem:

pi@raspberrypi:~ $ lsusb
Bus 001 Device 010: ID 12d1:1506 Huawei Technologies Co., Ltd. 

People have recommend using wvdial to configure similar devices as a modem.

How can I configure this device to connect to the cellular network on the Raspberry Pi?

  • I have this same modem (E397u-53). I'm on Raspbian 9/Stretch with Linux kernel 4.14. When I plug it in, an interface called wwan0 shows up with ifconfig. It's not picking up an IP address, so I think I need to be able to send it some commands to change the APN or something. However, to get that far, there was nothing special I had to do. That's what happened on first plugin...
    – lilbyrdie
    Commented Aug 16, 2018 at 22:16
  • wwan0 does not pop up when I plug it in. This link may be helpful for those who wish to answer this: wiki.openwrt.org/doc/recipes/ltedongle
    – Mick K
    Commented Aug 17, 2018 at 20:51

2 Answers 2


I don't have your exact modem at hand, but have been able to get quite a few Huawei modems working. wvdial is meant for older modems using a serial interface (ppp).

Most modern usb modems include a "router" inside, and the linux drivers configure it to pop up as an interface after initialisation. The router will then simulate an ethernet port and route all internet traffic through it.

If this is the case, the interface will be named eth1 or usb0, and can be enabled in the interfaces file:

sudo vim /etc/network/interfaces

And add the following lines:

allow-hotplug usb0
auto usb0
    iface usb0 inet dhcp

allow-hotplug eth1
auto eth1
    iface eth1 inet dhcp

Essentially these lines will monitor for these interface names, and if they are there from boot, or plugged in afterwards (hotplugged) they will be initialised to run as an internet interface, using dhcp to set up the ip, gateway and other parameters.

To test: edit the lines into the interfaces file as above, and reboot the raspberry with the modem plugged in. After boot, run ifconfig. If you see a block like this:

eth1     Link encap:Ethernet  HWaddr 00:1e:10:1f:00:00    
         inet addr:  Bcast:  Mask:  
         inet6 addr: fe80::21e:10ff:fe1f:0/64 Scope:Link  
         RX packets:348 errors:0 dropped:0 overruns:0 frame:0  
         TX packets:53 errors:0 dropped:0 overruns:0 carrier:0  
         collisions:0 txqueuelen:1000   
         RX bytes:144890 (141.4 KiB)  TX bytes:5435 (5.3 KiB)  

then the modem has been configured as a fake ethernet port (eth1) and you will get internet traffic. The modem's built-in router runs a firewall that blocks internet access from the outside, but any calls from the inside will be routed correct.

I am currently using another Huawei modem:

Bus 001 Device 006: ID 12d1:1590 Huawei Technologies Co., Ltd.

and it is using my eth1 port name as shown above. final test:

ping google.com
PING google.com ( 56(84) bytes of data.
64 bytes from jnb01s08-in-f14.1e100.net ( icmp_seq=1 ttl=54 time=41.0 ms
64 bytes from jnb01s08-in-f14.1e100.net ( icmp_seq=2 ttl=54 time=29.4 ms

  • That didn't do the trick, unfortunately. ifconfig returned: lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet netmask inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 0 bytes 0 (0.0 B)... Maybe there is there another step?
    – Mick K
    Commented Aug 15, 2018 at 23:30

after plugging in the 4g dongle, run the below command and your dongle will be installed and now you must set up a new connection after the installation, sure this will help out who are all out there...

$ sudo apt update \
&& sudo apt install network-manager network-manager-gnome openvpn openvpn-systemd-resolved network-manager-openvpn network-manager-openvpn-gnome -y \
&& sudo apt purge openresolv dhcpcd5 -y \
&& sudo ln -sf /lib/systemd/resolv.conf /etc/resolv.conf \
&& reboot
  • I'm not 100% sure why openvpn would be necessary here.
    – aklingam
    Commented Feb 18, 2021 at 3:07
  • it's weird but it works, it worked for me & try yourself
    – Krishna
    Commented Mar 15, 2021 at 10:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.