Problem with AirCard 340U on embedded Linux
aleksander at aleksander.es
Tue Aug 16 14:55:12 UTC 2016
On Tue, Aug 16, 2016 at 4:45 PM, Evade Flow <evadeflow at gmail.com> wrote:
>> What about this just after plugging the device, without having run
>> $ qmicli -d /dev/cdc-wdm0 --wda-get-data-format
>> If it says "raw-ip"; then it may make sense what happened to you.
> Thanks, Aleksander. It does, indeed, show 'raw-ip':
> root at mel-automotive-gr-mrb $ qmicli -d /dev/cdc-wdm0 --wda-get-data-format
> [/dev/cdc-wdm0] Successfully got data format
> QoS flow header: no
> Link layer protocol: 'raw-ip'
> Uplink data aggregation protocol: 'disabled'
> Downlink data aggregation protocol: 'disabled'
> NDP signature: '0'
> Uplink data aggregation max size: '0'
> Downlink data aggregation max size: '0'
> For my own education, can you elaborate as to how it makes sense?
So. qmi-network now checks 2 things:
* The kernel expected data format (by default 802-3)
* The device expected data format (by default raw-ip in your case).
If the kernel allows updating the data format, as it is the case in
your setup, qmi-network will run --set-expected-data-format=raw-ip so
that both device and kernel match the data format; raw-ip in this
case. Given that not all devices support all data formats (newer
devices only do raw-ip) we always prefer the DEVICE data format.
The problem is that dhclient doesn't work with an interface in raw-ip
format; so you need to configure the interface "manually" with e.g.
iproute2 commands. This is what we do in ModemManager nowadays; if the
device is by default in raw-ip, we just request static ip addressing
instead of DHCP.
You were able to make the setup work with dhclient because you changed
the expected data format of the device to 802-3 before qmi-network did
its own check.
More information about the libqmi-devel