uqmi: fix raw-ip mode for newer lte modems
Some newer LTE modems, like the MC7455 or EC25-E do not support "802.3" mode, and will stay in "raw-ip" regardless of the mode being set. In this case, the driver must be informed that it should handle all packets in raw mode. [1] This commit fixes connectivity issues for these devices. Before: [ Node 5 ] udhcpc -i wwan0 udhcpc: started, v1.27.2 udhcpc: sending discover udhcpc: sending discover udhcpc: sending discover After: [ Node 5 ] udhcpc -i wwan0 udhcpc: started, v1.27.2 udhcpc: sending discover udhcpc: sending select for 100.66.245.226 udhcpc: lease of 100.66.245.226 obtained, lease time 7200 udhcpc: ifconfig wwan0 100.66.245.226 netmask 255.255.255.252 broadcast + udhcpc: setting default routers: 100.66.245.225 [1] https://lists.freedesktop.org/archives/libqmi- devel/2017-January/002064.html Tested on cns3xxx using a Sierra Wireless MC7455 LTE-A Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com> [bumped PKG_RELEASE] Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This commit is contained in:
parent
030176e0e7
commit
7488be7010
2 changed files with 15 additions and 2 deletions
|
@ -1,7 +1,7 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=uqmi
|
PKG_NAME:=uqmi
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=2
|
||||||
|
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/uqmi.git
|
PKG_SOURCE_URL=$(PROJECT_GIT)/project/uqmi.git
|
||||||
|
|
|
@ -27,7 +27,7 @@ proto_qmi_init_config() {
|
||||||
|
|
||||||
proto_qmi_setup() {
|
proto_qmi_setup() {
|
||||||
local interface="$1"
|
local interface="$1"
|
||||||
|
local dataformat
|
||||||
local device apn auth username password pincode delay modes pdptype profile dhcpv6 autoconnect plmn $PROTO_DEFAULT_OPTIONS
|
local device apn auth username password pincode delay modes pdptype profile dhcpv6 autoconnect plmn $PROTO_DEFAULT_OPTIONS
|
||||||
local cid_4 pdh_4 cid_6 pdh_6
|
local cid_4 pdh_4 cid_6 pdh_6
|
||||||
local ip_6 ip_prefix_length gateway_6 dns1_6 dns2_6
|
local ip_6 ip_prefix_length gateway_6 dns1_6 dns2_6
|
||||||
|
@ -99,6 +99,19 @@ proto_qmi_setup() {
|
||||||
|
|
||||||
uqmi -s -d "$device" --set-data-format 802.3
|
uqmi -s -d "$device" --set-data-format 802.3
|
||||||
uqmi -s -d "$device" --wda-set-data-format 802.3
|
uqmi -s -d "$device" --wda-set-data-format 802.3
|
||||||
|
dataformat="$(uqmi -s -d "$device" --wda-get-data-format)"
|
||||||
|
|
||||||
|
if [ "$dataformat" = '"raw-ip"' ]; then
|
||||||
|
|
||||||
|
[ -f /sys/class/net/$ifname/qmi/raw_ip ] || {
|
||||||
|
echo "Device only supports raw-ip mode but is missing this required driver attribute: /sys/class/net/$ifname/qmi/raw_ip"
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "Device does not support 802.3 mode. Informing driver of raw-ip only for $ifname .."
|
||||||
|
echo "Y" > /sys/class/net/$ifname/qmi/raw_ip
|
||||||
|
fi
|
||||||
|
|
||||||
uqmi -s -d "$device" --sync
|
uqmi -s -d "$device" --sync
|
||||||
|
|
||||||
echo "Waiting for network registration"
|
echo "Waiting for network registration"
|
||||||
|
|
Loading…
Reference in a new issue