Beryl + Quectel EM160R-GL in USB enclosure + Version post-paid unlimited

Whew. It’s been a trialing few days and very much a test of patience. It took nearly 20 hours to get this to work using Berly software version 3.211.

I was getting kernel panics anywhere from 20-45 minutes with LTE on. I’m still tweaking the TTL values, but so far this is what I have that seems to be working. I’m documenting this here for others and for myself in case I loose my Evernote note. :slight_smile:

Unfortunately, tech support brushed me off saying the Quectel EM160R-GL hasn’t been validated with Verizon so they can’t help me. As a software engineer, I didn’t accept this answer.

After flashing the Beryl router several times using uboot network to fully clear everything, here are the steps that work for me.

  1. I went to a verizon store with Ipad in hand. Get the sim card activated. They will manually enter your IMEI number into their system while in-store and activating your SIM. If you don’t go to a company store, expect to pay an extra fee on top of the activation fee.
  2. Set aside about 20-30 minutes at home to complete the setup.
  3. Plug in USB → Quectel Modem, no SIM card into router.
  4. Boot up Beryl
  5. Do initial setup.
  6. Goto modem → manual setup.
  7. Modem Device: /dev/cdc-wdm0
  8. APN: VZWINTERNET —This must be in caps!!
  9. Proto: Auto
  10. TTL: 65
  11. Leave the remaining items blank
  12. At commands, run these:
  13. AT+QPRTPARA=3 --factory reset modem
  14. AT +EGMR=1,7,“XXXXX” --Mimic your tablet IMEI number on the quectel. Don’t use your tablet with 4g/5g/LTE while the SIM is in the Quectel. Not sure why, but I needed the space before the +.
  15. Unplug the router and make sure the modem powers off too.
  16. Insert activated SIM card.
  17. Power up the router
  18. Wait 5 minutes for the router to fully boot up. Fold your laundry! Seriously, don’t even go into the router for at least 5 minutes. I don’t know why, but it seems to need time to settle and find its inner peace.
  19. Might have to do a manual setup of the modem again, using settings from step #6.
  20. If have internet data, continue to step 14. Otherwise, reboot the router one more time.
  21. Send the following modem AT commands - This is very much needed for Verizon otherwise you’ll get kernel panics:
    a. at+qmbncfg=“autosel”,0 --stop autoselect config on sim detection
    b. at+qmbncfg=“deactivate” --disable mbn config
    c. at+cfun=1,1 --power cycle modem
  22. Install Luci admin tool
  23. Go into Luci admin tool
  24. Network → Firewall. Click on ‘Custom Rules’ tab.
    a. I don’t know why, but I had to set TTL in the modem settings and the firewall to get it working for me.
  25. At the bottom, add this text:
--- Start of paste (don't include this line) ---
# Start-IP6-TTL-Fix
ip6tables -t mangle -I POSTROUTING -j HL --hl-set 65
# End-IP6-TTL-Fix

# Start-IP4-TTL-Fix - If 65 does not work, try 64.
iptables -t mangle -I POSTROUTING -j TTL --ttl-set 65
# End-IP4-TTL-Fix
--- End of paste (don't include this line) ---
  1. Reboot router one last time by unplugging it for 5 seconds.
  2. Done. Happy surfing (hopefully)
1 Like

Apparently, this still does not fix the kernel panicks. It took it a few hours instead for 20-40 minutes.

I’m waiting to get a firmware file for the Quectel EM160R-GL in hopes that this will fix the issue.

I have a second Beryl that I’ll test this on - perhaps it’s a hardware issue. Or…perhaps it’s the dated Openwrt 19.xx series still being used as the underlying system.

Sun Jun  5 23:31:26 2022 kern.warn kernel: [ 9579.726764] ------------[ cut here ]------------
Sun Jun  5 23:31:26 2022 kern.warn kernel: [ 9579.731453] WARNING: CPU: 0 PID: 7 at net/sched/sch_generic.c:320 dev_watchdog+0x1ac/0x324
Sun Jun  5 23:31:26 2022 kernel: [ 9579.739748] NETDEV WATCHDOG: wwan0 (qmi_wwan): transmit queue 0 timed out
Sun Jun  5 23:31:26 2022 kern.warn kernel: [ 9579.746507] Modules linked in: rt2800usb rt2800lib pppoe ppp_async option usb_wwan sierra_net sierra rt2x00usb rt2x00lib rndis_host qmi_wwan pppox ppp_mppe ppp_generic nf_nat_pptp nf_flow_table_ipv6 nf_flow_table_ipv4 nf_flow_table_inet nf_conntrack_pptp mac80211 iptable_nat ipt_REJECT ipt_MASQUERADE huawei_cdc_ncm ebtable_nat ebtable_filter ebtable_broute cp210x cfg80211 cdc_ncm cdc_ether xt_time xt_tcpudp xt_tcpmss xt_statistic xt_state xt_recent xt_nat xt_multiport xt_mark xt_mac xt_limit xt_length xt_hl xt_helper xt_hashlimit xt_ecn xt_dscp xt_conntrack xt_connmark xt_connlimit xt_connbytes xt_comment xt_TCPMSS xt_REDIRECT xt_LOG xt_IPMARK xt_HL xt_FLOWOFFLOAD xt_DSCP xt_CT xt_CLASSIFY wireguard usbserial usbnet ts_fsm ts_bm slhc nft_set_rbtree nft_set_hash nft_reject_ipv6 nft_reject_ipv4 nft_reject_inet
Sun Jun  5 23:31:26 2022 kern.warn kernel: [ 9579.818067]  nft_reject nft_redir_ipv4 nft_redir nft_quota nft_numgen nft_nat nft_meta nft_masq_ipv4 nft_masq nft_log nft_limit nft_flow_offload nft_exthdr nft_ct nft_counter nft_chain_route_ipv6 nft_chain_route_ipv4 nft_chain_nat_ipv4 nf_tables_ipv6 nf_tables_ipv4 nf_tables_inet nf_tables nf_reject_ipv4 nf_nat_tftp nf_nat_snmp_basic nf_nat_sip nf_nat_redirect nf_nat_proto_gre nf_nat_masquerade_ipv4 nf_nat_irc nf_conntrack_ipv4 nf_nat_ipv4 nf_nat_h323 nf_nat_ftp nf_nat_amanda nf_log_ipv4 nf_flow_table_hw nf_flow_table nf_defrag_ipv4 nf_conntrack_tftp nf_conntrack_snmp nf_conntrack_sip nf_conntrack_rtcache nf_conntrack_proto_gre nf_conntrack_netlink nf_conntrack_irc nf_conntrack_h323 nf_conntrack_ftp nf_conntrack_broadcast ts_kmp nf_conntrack_amanda mt_wifi iptable_raw iptable_mangle iptable_filter
Sun Jun  5 23:31:26 2022 kern.warn kernel: [ 9579.888695]  ipt_ECN ipheth ip_tables ebtables ebt_vlan ebt_stp ebt_redirect ebt_pkttype ebt_mark_m ebt_mark ebt_limit ebt_among ebt_802_3 crc_ccitt compat_xtables compat cdc_wdm cdc_acm xt_u32 fuse sch_teql sch_sfq sch_red sch_prio sch_pie sch_multiq sch_gred sch_fq sch_dsmark sch_codel sch_cbq em_text em_nbyte em_meta em_cmp act_simple act_police act_pedit act_ipt act_gact act_csum libcrc32c act_connmark sch_tbf sch_ingress sch_htb sch_hfsc em_u32 cls_u32 cls_tcindex cls_route cls_matchall cls_fw cls_flow cls_basic act_skbedit act_mirred i2c_gpio i2c_algo_bit i2c_dev ledtrig_usbport xt_set ip_set_list_set ip_set_hash_netportnet ip_set_hash_netport ip_set_hash_netnet ip_set_hash_netiface ip_set_hash_net ip_set_hash_mac ip_set_hash_ipportnet ip_set_hash_ipportip ip_set_hash_ipport ip_set_hash_ipmark
Sun Jun  5 23:31:26 2022 kern.warn kernel: [ 9579.959606]  ip_set_hash_ip ip_set_bitmap_port ip_set_bitmap_ipmac ip_set_bitmap_ip ip_set nfnetlink ip6table_nat nf_conntrack_ipv6 nf_defrag_ipv6 nf_nat_ipv6 ip6t_NPT ip6t_MASQUERADE nf_nat_masquerade_ipv6 nf_nat nf_conntrack nf_log_ipv6 nf_log_common ip6table_mangle ip6table_filter ip6_tables ip6t_REJECT x_tables nf_reject_ipv6 ip6_udp_tunnel udp_tunnel tun vfat fat ntfs nls_utf8 nls_iso8859_1 nls_cp437 sha1_generic ecb uas mmc_block usb_storage sdhci_pltfm sdhci mtk_sd mmc_core leds_gpio xhci_plat_hcd xhci_pci xhci_mtk xhci_hcd uhci_hcd ohci_platform ohci_hcd ahci libahci libata ehci_platform sd_mod scsi_mod ehci_hcd gpio_button_hotplug ext4 mbcache jbd2 exfat usbcore nls_base usb_common mii crc32c_generic
Sun Jun  5 23:31:26 2022 kern.warn kernel: [ 9580.022400] CPU: 0 PID: 7 Comm: ksoftirqd/0 Not tainted 4.14.241 #0
Sun Jun  5 23:31:26 2022 kern.warn kernel: [ 9580.028641] Stack : 00000000 8e0abf40 805e0000 8007351c 80610000 805a198c 00000000 00000000
Sun Jun  5 23:31:26 2022 kern.warn kernel: [ 9580.036978]         8056b22c 8fc55ccc 8fc3a9bc 805e09e7 80565fc0 00000001 8fc55c70 ac07f5e8
Sun Jun  5 23:31:26 2022 kern.warn kernel: [ 9580.045311]         00000000 00000000 80740000 0000c5b0 00000000 00000aef 00000008 00000000
Sun Jun  5 23:31:26 2022 kern.warn kernel: [ 9580.053640]         00000000 805e0000 00005780 00000000 00000000 80600000 00000000 8059b7b0
Sun Jun  5 23:31:26 2022 kern.warn kernel: [ 9580.061971]         803a4830 00000140 00000000 8e0abf40 00000002 802c48a0 00000000 80740000
Sun Jun  5 23:31:26 2022 kern.warn kernel: [ 9580.070305]         ...
Sun Jun  5 23:31:26 2022 kern.warn kernel: [ 9580.072747] Call Trace:
Sun Jun  5 23:31:26 2022 kern.warn kernel: [ 9580.075215] [<8000c7b0>] show_stack+0x58/0x100
Sun Jun  5 23:31:26 2022 kern.warn kernel: [ 9580.079664] [<8049ee14>] dump_stack+0xa4/0xe0
Sun Jun  5 23:31:26 2022 kern.warn kernel: [ 9580.084015] [<8002f8d8>] __warn+0xe0/0x138
Sun Jun  5 23:31:26 2022 kern.warn kernel: [ 9580.088095] [<8002f960>] warn_slowpath_fmt+0x30/0x3c
Sun Jun  5 23:31:26 2022 kern.warn kernel: [ 9580.093056] [<803a4830>] dev_watchdog+0x1ac/0x324
Sun Jun  5 23:31:26 2022 kern.warn kernel: [ 9580.097767] [<8008a708>] call_timer_fn.isra.25+0x24/0x84
Sun Jun  5 23:31:26 2022 kern.warn kernel: [ 9580.103054] [<8008a9c4>] run_timer_softirq+0x1bc/0x248
Sun Jun  5 23:31:26 2022 kern.warn kernel: [ 9580.108192] [<804bcf50>] __do_softirq+0x128/0x2ec
Sun Jun  5 23:31:26 2022 kern.warn kernel: [ 9580.112882] [<80034018>] run_ksoftirqd+0x38/0x6c
Sun Jun  5 23:31:26 2022 kern.warn kernel: [ 9580.117500] [<80051a10>] smpboot_thread_fn+0x1a8/0x1d8
Sun Jun  5 23:31:26 2022 kern.warn kernel: [ 9580.122636] [<8004d8a8>] kthread+0x13c/0x150
Sun Jun  5 23:31:26 2022 kern.warn kernel: [ 9580.126889] [<80007078>] ret_from_kernel_thread+0x14/0x1c
Sun Jun  5 23:31:26 2022 kern.warn kernel: [ 9580.132459] ---[ end trace 35d25c18db138871 ]---

Compabiltiy of this modem on MT1300 should be a problem.
Quectel modems always need to be fine-tunned.

The same to Verizion network. General dial program may not work correctly.

Thanks. It works, but dies after 20 minutes. :frowning:

I’m waiting for Flint to be delivered. I’ll test with the v4 beta firmware for that and see how that goes.