Install Microsoft Enhanced Point And Print Compatibility Driver Windows 414: Tips and Tricks
- lucilla-thurgood26
- Aug 20, 2023
- 10 min read
2020.01.23 11:28:16.9844893 5388 9740 Driver Skipping printer driver 12 due to incomplete info or mismatched environment - HWID[microsoftmicrosoft_musd] Provider[Microsoft] MfgName[Microsoft] Name[Microsoft enhanced Point and Print compatibility driver] pEnvironment[Windows NT x86] LocalPrintServerEnv[Windows x64]
Several cellular modules based on Qualcomm chipsets implements the Qualcomm MSM QMI RMNET Interface.There is a open source Linux in-kernel driver supporting this interface called qmi_wwan. The helper library libqmi can be used to communicate with the cellular devices over the interface and do cellular module configurations to control and trigger the data connection over the cellular network.Install the libqmi Linux library using e.g. your OS package manager like apt etc. (Check out the official libqmi page here: )Please be aware that libqmi is a 3rd party software not distributed by the chipset or module vendors. So full compatibility on all available commands should not be expected. There are Qualcomm chipset standard QMI commands and in addition vendors specific custom QMI commands not supported by all manufacturers, but still available in libqmi. There are also new QMI commands not supported in older chipsets and vice versa, old QMI commands no longer supported in new chipset series.Verify that you have the Linux in-kernel qmi_wwan driver installed and loaded for the cellular modules QMI interface endpoint over USB:lsusb -tCan look like this:... __ Port 1: Dev 3, If 2, Class=Vendor Specific Class, Driver=qmi_wwan, 480M...If the driver is not loaded correctly, please verify that the cellular module is set to expose QMI RMNET network interface endpoint in its configuration. How to do so can often be found in AT commands guides, Linux implementation guides and similar from the cellular module vendors. Libqmi library include a command line tool qmicli that can be used in a more convenient way communicate directly with the module over QMI interface for testing, scripting and troubleshooting.The qmicli help will output information about all commands available:qmicli --help-allThe qmi_wwan network control interfaces for modules are usually named like cdc-wdm# under /dev/ path. Use the attribute --device or -d to specify it for qmicli in your command execution:qmicli --device=/dev/cdc-wdm0qmicli -d /dev/cdc-wdm0In order to ease usage of the QMI interface and handle parallell command requests, libqmi include a proxy function to handle it correctly on the QMI interface, To use it, make sure to have the the attribute present in the qmicli command:-p--device-open-proxyExample commands on how to communicate Request module manufacturer:qmicli -p -d /dev/cdc-wdm0 --dms-get-manufacturer Get module model:qmicli -p -d /dev/cdc-wdm0 --dms-get-model Get firmware version:qmicli -p -d /dev/cdc-wdm0 --dms-get-revision Get module IDs (IMEI etc.):qmicli -p -d /dev/cdc-wdm0 --dms-get-idsGet SIM card status:qmicli -p -d /dev/cdc-wdm0 --uim-get-card-statusThe script qmi-network can be used to establish a simple data connection, it will automatically try to verify the IP framing type match them correctly between qmi_wwan driver and module (Raw-IP vs. 802.3 IP framing).Create a config file containing your network operator APN details and if needed, the username and password. Save it e.g. in the default location /etc/qmi-network.conf The parameter --profile=[PATH] can be used to define the path to config when executing qmi-network.Example config file content: APN details and enabling of proxy usage. Add the username and password lines if it is needed for your APN: APN=my-network-operators-apnAPN_USER=my-apn-username APN_PASS=my-apn-passwordPROXY=yesOnce the APN information is saved, you can start the network connection with the command:qmi-network /dev/cdc-wdm0 startThe name of the related network interface in the Linux system can be acquired with the command: qmicli -p -d /dev/cdc-wdm0 --get-wwan-iface Once you see "Network started successfully" message, you can send a DHCP request on the network interface.Please note that not all DHCP clients in Linux can handle Raw-IP format but udhcpc support it.udhcpc -q -f -i wwan0The IP information from the cellular network can also be acquired and set manually to the network interface by the user or scripting, the correct address details can be acquired from the cellular module over QMI with command:qmicli -p -d /dev/cdc-wdm0 --wds-get-current-settings If the connection was successfully set up and established, you now have a data connection. Ping request to a remote server using the cellular network interface can prove this: ping -I wwan0 8.8.8.8The ifconfig Linux tool can show the current details for the network interface:ifconfig wwan0To bring down and stop the cellular network connection, please use the stop command bellow:qmi-network /dev/cdc-wdm0 stopThe ModemManager tool for Linux is based on libqmi. NetworkManager and ModemManager . Please note however that these two tools expect the cellular module interfaces to only be used by them so if you manually want to use the libqmi library or AT commands interfaces, please turn off/disable ModemManager and NetworkManager first.The libqmi is a generic open source library for Linux systems and QMI protocol from Qualcomm, therefor there are several commands only working on selected devices and not necessarily on supported in the specific device you use, resulting in an error message.
Install Microsoft Enhanced Point And Print Compatibility Driver Windows 414
ModemManager is a open source tool for Linux that can be used to communicate with cellular devices for configuration, status check, connection triggering etc. It is capable of communicate over several types of device control channels such as QMI/RMNET, MBIM, MODEM / AT command etc. It is hosted by the Freedesktop.org community and driven by Aleksander Morgado and other contributors, please visit for latest information, source code, API reference manuals, debugging tips, contribution, mailing list etc. Keep in mind that ModemManager is not directly developed or driven by cellular device vendors and the compatibility cannot be guaranteed for the specific device you aim to use. Some vendors contribute with code to make their devices fully compatible, while others don't. However many cellular devices can be set to expose standardized types of USB network interface and control channel such as MBIM interface by USB-IF or the Qualcomm proprietary interface QMI that ModemManager will try to identify, and often manage to work successfully with.Before continuing with ModemManager, a good thing to ensure is that you have common Linux driver modules available in your kernel build. You can compare your own systems kernel config with the ones listed in the following FAQ:Common Linux kernel modules and configs necessary for communicating with cellular modules over USB interfaceSelections of these are commonly used by cellular devices and need to be available in order to have device drivers correctly loaded when devices are detected. Start by installing ModemManager and its dependencies to your Linux system. You can build it from source code release tarball found at freedesktop.org (install instructions included in the archive)If you have a package manager in your Linux distribution, it can usually be installed through them also.E.g. on Ubuntu using apt to install it and related dependencies:apt install modemmanager libmbim-utils libqmi-utilsKeep in mind that Linux distributions sometimes rely on fairly old releases in their repositories and the development of ModemManager, libqmi and libmbim are on-going continuously. So is also the development of the cellular devices when the cellular technologies evolve. It is therefore recommended that you have a fairly recent version of ModemManager, libqmi and libmbim running in your system as well as when it comes to kernel version since the driver modules sometimes acquire patch fixes to be compatible with new chipset features etc. Check Freedesktop.org pages for details on the latest ModemManager, NetworkManager, Libqmi and Libmbim releases.Once you've installed ModemManager and rebooted your system, the service daemon should be running already in background. Mmcli is the related command line interface tool which can be used to interact with ModemManager daemon through command line commands.Check the version by command:mmcli -V
Using NetworkManager and ModemManager in Linux to automatically establish a connection and configure IP detailsIn this FAQ we will show how to set up NetworkManager to automatically configure, establish the cellular data connection in your system. NetworkManager and ModemManager are open source tool for Linux to manage several types of networks and interfaces such as ethernet, wifi, etc. It can also manage cellular WWAN interfaces through the ModemManager tool.It is hosted by the Freedesktop.org community and driven by Aleksander Morgado and other contributors. please visit and for latest information, source code, API reference manuals, debugging tips, contribution, mailing list etc.ModemManager is capable of communicating over several types of device control channels such as QMI/RMNET, MBIM, MODEM / AT command etc. But support for vendor proprietary or out-of-kernel drivers are none or very limited. Such drivers are gobinet, simcom_wwan and other drivers provided by the vendors directly.Many Linux distributions have NetworkManager and ModemManager pre-installed or they can typically easily be installed through the systems package manager. In Ubuntu for example apt can install it for you by command if not already installed: apt install network-managerCheck with commands below that you have both tools installed in system and their versions.NetworkManager -VModemManager -VModemManager (and NetworkManager) are continuously developed for better compatibility with the cellular devices, therefore it is recommend to use a recent version of the tools and in case of problem situations, evaluate the latest versions from source and check the mailing list archives for possible discussions on the problem experienced. Keep in mind that NetworkManager and ModemManager projects are not directly developed or driven by the cellular device vendors and the compatibility with the device you aim to use can be limited. Some vendors contribute with code to make their devices fully compatible, while others don't. Many cellular devices can be set to expose standardized types of USB network interface and control channel such as MBIM interface by USB-IF or the Qualcomm proprietary interface QMI that ModemManager will try to identify, and often manage to work successfully with but there are exceptions also.Both NetworkManager and ModemManager have command line interfaces (nmcli and mmcli respectively) where you can interact with the management tools. Relate to the following FAQ if you want more details for using ModemManager only to configure and control the cellular device but manually establish, maintain the connection and network interface IP address details. How-to guide: control and set up a data connection in Linux using ModemManager as connection manager?Have ModemManager list all the cellular device it has detected. Here we use the Alcatel IK41 series with MBIM interface in this example:mmcli --list-modems/org/freedesktop/ModemManager1/Modem/0 [Alcatel] MobilebroadbandGeneral details and status of them modem can be listed with "--modem" option. mmcli --modem=0-----------------------------General dbus path: /org/freedesktop/ModemManager1/Modem/0 device id: 998e478c5b14c75e16bffe6abaacabef22fb2f5b-----------------------------Hardware manufacturer: Alcatel model: Mobilebroadband firmware revision: MPSS.JO.2.0.2.c1.7-00004-9607_ carrier config: default h/w revision: 0 supported: gsm-umts, lte current: gsm-umts, lte equipment id: -----------------------------System device: /sys/devices/pci0000:00/0000:00:14.0/usb3/3-1 drivers: option1, cdc_mbim plugin: Generic primary port: cdc-wdm0 ports: cdc-wdm0 (mbim), ttyUSB0 (at), ttyUSB2 (at), wwan0 (net), ttyUSB1 (qcdm)-----------------------------Status lock: sim-pin unlock retries: sim-pin (3) state: locked power state: on signal quality: 0% (cached)-----------------------------Modes supported: allowed: 2g; preferred: none allowed: 3g; preferred: none allowed: 4g; preferred: none allowed: 2g, 3g; preferred: 3g allowed: 2g, 3g; preferred: 2g allowed: 2g, 4g; preferred: 4g allowed: 2g, 4g; preferred: 2g allowed: 3g, 4g; preferred: 3g allowed: 3g, 4g; preferred: 4g allowed: 2g, 3g, 4g; preferred: 4g allowed: 2g, 3g, 4g; preferred: 3g allowed: 2g, 3g, 4g; preferred: 2g current: allowed: 2g, 3g, 4g; preferred: 2g-----------------------------Bands supported: egsm, dcs, pcs, g850, utran-1, utran-8, eutran-1, eutran-3, eutran-7, eutran-8, eutran-20, eutran-28 current: egsm, dcs, pcs, g850, utran-1, utran-8, eutran-1, eutran-3, eutran-7, eutran-8, eutran-20, eutran-28-----------------------------IP supported: ipv4, ipv6, ipv4v6-----------------------------SIM dbus path: /org/freedesktop/ModemManager1/SIM/0Check that the cellular device is managed by NetworkManager by not having state "unmanaged" listed for it.nmcli device statusDEVICE TYPE STATE CONNECTIONcdc-wdm0 gsm disconnected --enp3s0 ethernet unmanaged --lo loopback unmanaged --Now you should create a connection profile in NetworkManager for your specific network carrier and SIM card with the "nmcli connection add" command:For example:nmcli connection add type gsm ifname '*' con-name '3-sweden' apn 'data.tre.se' connection.autoconnect yes gsm.pin 0000- type is gsm for all typical cellular connections unless it is of cdma type.- ifname is the control interface name, in this case cdc-wdm0, wildcard can be used also to have it autoselect.- con-name is the profile name you want to give it. - apn is provided by your network carrier and tells the modem what attach point it should use for the data connection. - connection.autoconnect set to yes will make NetworkManager always try to auto connect and maintain this profile connection.- gsm.pin lets you provide a pin code for the SIM card, that NetworkManager will try to use if PIN check is enabled for SIM card.There are several additional commands and attributes available such as username and password settings for the APNs etc. Refer to the NetworkManager help and manual pages for full details on the commands.If successful you should receive a reply similar to this one: Connection '3-sweden' (cad6fcbf-2cb1-4796-b7e6-67b9f9635aef) successfully added.You can check the status now by command: nmcli device statusDEVICE TYPE STATE CONNECTIONcdc-wdm0 gsm connected 3-swedenenp3s0 ethernet unmanaged --lo loopback unmanaged --Where connected should be listed as state if the connection establishment was successful. If the connection is not successful or you want more details about the device and connection you can check commands: You can list the current status with command:nmcli radioWIFI-HW WIFI WWAN-HW WWANenabled enabled enabled enablednmcli device show cdc-wdmGENERAL.DEVICE: cdc-wdm0GENERAL.TYPE: gsmGENERAL.HWADDR: (unknown)GENERAL.MTU: 1500GENERAL.STATE: 100 (connected)GENERAL.CONNECTION: 3-swedenGENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/18IP4.ADDRESS[1]: 2.68.73.130/30IP4.GATEWAY: 2.68.73.129IP4.ROUTE[1]: dst = 2.68.73.128/30, nh = 0.0.0.0, mt = 700IP4.ROUTE[2]: dst = 0.0.0.0/0, nh = 2.68.73.129, mt = 700IP4.DNS[1]: 80.251.201.177IP4.DNS[2]: 80.251.201.178IP6.ADDRESS[1]: 2a02:aa1:1017:6d11:1060:3dff:feac:e92f/64IP6.ADDRESS[2]: 2a02:aa1:1017:6d11:6474:7254:7b72:eb09/64IP6.GATEWAY: 2a02:aa1:1017:6d11:21e6:9049:6cfb:8ac3IP6.ROUTE[1]: dst = ff00::/8, nh = ::, mt = 256, table=255IP6.ROUTE[2]: dst = 2a02:aa1:1017:6d11::/64, nh = ::, mt = 700IP6.ROUTE[3]: dst = ::/0, nh = fe80::21e6:9049:6cfb:8ac3, mt = 1024IP6.ROUTE[4]: dst = 2a02:aa1:1017:6d11::/64, nh = ::, mt = 256IP6.ROUTE[5]: dst = ::/0, nh = 2a02:aa1:1017:6d11:21e6:9049:6cfb:8ac3, mt = 700IP6.DNS[1]: 2a02:aa0::55IP6.DNS[2]: 2a02:aa0::56nmcli connection showNAME UUID TYPE DEVICE3-sweden e946017f-2e9c-477b-89ad-4c31e7331d65 gsm cdc-wdm0Ifconfig should now show the related IP address details already set to the network interface by NetworkManager:ifconfigwwan0: flags=4291 mtu 1500inet 2.68.73.130 netmask 255.255.255.252 broadcast 2.68.73.131inet6 2a02:aa1:1017:6d11:6474:7254:7b72:eb09 prefixlen 64 scopeid 0x0inet6 2a02:aa1:1017:6d11:1060:3dff:feac:e92f prefixlen 64 scopeid 0x0ether 12:60:3d:ac:e9:2f txqueuelen 1000 (Ethernet)RX packets 186 bytes 10886 (10.8 KB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 5 bytes 480 (480.0 B)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0You can now for example test the connection over the network interface by sending ping requests.Testing IPV4 connection:ping -4 -I wwan0 8.8.8.8PING 8.8.8.8 (8.8.8.8) from 2.68.73.130 wwan0: 56(84) bytes of data.64 bytes from 8.8.8.8: icmp_seq=1 ttl=118 time=55.8 ms64 bytes from 8.8.8.8: icmp_seq=2 ttl=118 time=45.4 ms64 bytes from 8.8.8.8: icmp_seq=3 ttl=118 time=42.9 ms--- 8.8.8.8 ping statistics ---3 packets transmitted, 3 received, 0% packet loss, time 2003msrtt min/avg/max/mdev = 42.918/48.053/55.845/5.601 msTesting IPV6 connection: (if your cellular device, network subscription and APN supports it)ping -6 -I wwan0 2600::PING 2600::(2600::) from 2a02:aa1:1017:6d11:1060:3dff:feac:e92f wwan0: 56 data bytes64 bytes from 2600::: icmp_seq=1 ttl=46 time=172 ms64 bytes from 2600::: icmp_seq=2 ttl=46 time=171 ms64 bytes from 2600::: icmp_seq=3 ttl=46 time=169 ms64 bytes from 2600::: icmp_seq=4 ttl=46 time=168 ms--- 2600:: ping statistics ---4 packets transmitted, 4 received, 0% packet loss, time 3004msrtt min/avg/max/mdev = 167.921/170.037/172.272/1.651 msThe connection is successful and automatic reconnect is working when testing to unplug and plug in the device again. For additional configurations, commands and available attributes, please relate to the manual pages for NetworkManager and ModemManager.Troubleshooting logs:NetworkManager and ModemManager write log messages to the Linux syslog file /var/log/syslog.In case of problems with establishing a cellular data connection, please copy the logfile after the problem have appeared and include it in a Techship technical support ticket.In some situations more detailed debug logs are needed, these can be acquired by changing the log levels for NetworkManager and ModemManager and run them manually.To capture debug logs, please first disable and stop the normal services:systemctl stop NetworkManager ModemManagersystemctl disable NetworkManager ModemManagerRun them manually in background with debug level set:/usr/sbin/ModemManager --log-level=DEBUG &> /dev/null & /usr/sbin/NetworkManager --log-level=DEBUG &Reproduce the cellular data connection problem.Once completed, kill the processes:killall -TERM NetworkManager ModemManagerCopy the relate messages in syslog to a mm-nm-sys-debug.log logfile:grep -E 'ModemManagerNetworkManagersystemddbus-daemondhclient' /var/log/syslog > mm-nm-sys-debug.logActivate and start the services again:systemctl enable NetworkManager ModemManagersystemctl start NetworkManager ModemManagerInclude the mm-nm-sys-debug.log in a technical support ticket at Techship.com where you describe the issue in details and include other relevant information also such as kernel version, ModemManager and NetworkManager versions, dmesg log etc. 2ff7e9595c
Comments