EM9191 PCIe source code

Hello,

is there a link for the R23 source for the PCIe (not only USB) version of EM9191 drivers? I am currently using a R20 build (found on another forum topic), but it seems to be having stability issues - sometimes the driver do not load, sometimes the module disconnects mid-connection.

The pre-built .ko files do not work for my system (Ubuntu 18, kernel 5.4.0-67 generic).

Thank you in advance.

The modules all claim to have a GPL v2 license, so you shouldn’t have to ask that question:

3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:

a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)

I don’t see either of those conditions fulfilled on source.sierrawireless.com, so I believe the distribution of those binaries is a license viloation.

The fact that Sierra Wirless enforce that stupid proprietary download license “agreement” before allowing download of GPLv2 binaries demonstrates that they have the technical ability to present you with any information they want to publish.

IMHO, Sierra Wireles should pay a bit more attention to this part of the GPL v2:

4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License.

So their futile and stupid attempt to apply a stricter download license actually terminates any rights given them under the GPLv2. I do hope they have had their lawyers considering the consequences of that… Distributing copyrighted software without a license is considered criminal in a number of jurisdictions.

bjorn@miraculix:/tmp$ modinfo bin/Ubuntu_x64/5.3.0-55-generic/*.ko
filename:       /tmp/bin/Ubuntu_x64/5.3.0-55-generic/mhictrl.ko
version:        1.14.2109.2
description:    MHI Host Driver
alias:          MHI_CORE
license:        GPL v2
srcversion:     208112DCB8F6CE2E723B64C
alias:          pci:v000018D7d00000200sv*sd*bc*sc*i*
alias:          pci:v000017CBd0000FFFFsv*sd*bc*sc*i*
alias:          pci:v000017CBd00000306sv*sd*bc*sc*i*
alias:          pci:v000017CBd00000305sv*sd*bc*sc*i*
alias:          pci:v000017CBd00000304sv*sd*bc*sc*i*
alias:          pci:v000017CBd00000303sv*sd*bc*sc*i*
alias:          pci:v000017CBd00000302sv*sd*bc*sc*i*
alias:          pci:v000017CBd00000301sv*sd*bc*sc*i*
alias:          pci:v000017CBd00000300sv*sd*bc*sc*i*
depends:        
retpoline:      Y
name:           mhictrl
vermagic:       5.3.0-55-generic SMP mod_unload 
parm:           debug:enable/disable driver logging (bool)
parm:           debug_level:driver logging level (int)
filename:       /tmp/bin/Ubuntu_x64/5.3.0-55-generic/mhinet.ko
version:        1.12.2109.1
license:        GPL v2
description:    MHI NETDEV Network Interface
srcversion:     131E7ABF7A09093FCC168B6
depends:        mhictrl
retpoline:      Y
name:           mhinet
vermagic:       5.3.0-55-generic SMP mod_unload 
parm:           debug:enable/disable driver logging (bool)
parm:           debug_level:driver logging level (int)
filename:       /tmp/bin/Ubuntu_x64/5.3.0-55-generic/mhitty.ko
version:        1.10.2109.1
description:    MHI TTY Driver
alias:          MHI_TTY
license:        GPL v2
srcversion:     755D2F2EB0918A9BE2C81E7
depends:        mhictrl
retpoline:      Y
name:           mhitty
vermagic:       5.3.0-55-generic SMP mod_unload 
parm:           debug:enable/disable driver logging (bool)
parm:           debug_level:driver logging level (int)
filename:       /tmp/bin/Ubuntu_x64/5.3.0-55-generic/mhiuci.ko
version:        1.10.2105.1
description:    MHI UCI Driver
alias:          MHI_UCI
license:        GPL v2
srcversion:     0671A66ABE12E947CBB6297
depends:        mhictrl
retpoline:      Y
name:           mhiuci
vermagic:       5.3.0-55-generic SMP mod_unload 
parm:           debug:enable/disable driver logging (bool)
parm:           debug_level:driver logging level (int)
1 Like

What do you expect?

When you connect to the serial console of the module (have a look a the development kit to find where the uart rx/tx pins are located), you are greeted with a Linux login prompt. When you login as root, you can also find a lot of (L)GPLed userland components.

Download links for the sources? :wink:

Your sarcasm detector is broken :wink:

1 Like

Did someone ever received the PCIe driver source code?

It’s supported in mainline Linux: pci_generic.c « host « mhi « bus « drivers - kernel/git/torvalds/linux.git - Linux kernel source tree

Use that. Most vendor code is broken anyway. And most vendors know this. Which is why they like to keep the source code secret. They believe they can hide the brokenness that way.

Or so I assume. I’ve never seen anyone actually explain the reasoning.

Same goes for the Qualcomm documentation, I guess. Normally you would expect a company to encourage the use of their products by publishing all the usage instructions they have. But Qualcomm is apparently afraid someone will detect some flawed logic in their protocols or other design, so they keep it all secret. This way no one will detect any flaws. Or something like that.

And that’s more than enough ranting for today :slight_smile: