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.
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.
- 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.
- Set aside about 20-30 minutes at home to complete the setup.
- Plug in USB → Quectel Modem, no SIM card into router.
- Boot up Beryl
- Do initial setup.
- Goto modem → manual setup.
- Modem Device: /dev/cdc-wdm0
- APN: VZWINTERNET —This must be in caps!!
- Proto: Auto
- TTL: 65
- Leave the remaining items blank
- At commands, run these:
- AT+QPRTPARA=3 --factory reset modem
- 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 +.
- Unplug the router and make sure the modem powers off too.
- Insert activated SIM card.
- Power up the router
- 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.
- Might have to do a manual setup of the modem again, using settings from step #6.
- If have internet data, continue to step 14. Otherwise, reboot the router one more time.
- 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
- Install Luci admin tool
- Go into Luci admin tool
- 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.
- 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) ---
- Reboot router one last time by unplugging it for 5 seconds.
- 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 kern.info 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.
I’m waiting for Flint to be delivered. I’ll test with the v4 beta firmware for that and see how that goes.