Samsung GI-B3740 support in Modem-manager?

Aleksander Morgado aleksander at aleksander.es
Fri Oct 3 00:04:47 PDT 2014


On Thu, Oct 2, 2014 at 11:12 PM, Oskar Enoksson <enok at lysator.liu.se> wrote:
> Hi. I bought a Samsung GT-B3740 LTE USB-modem on ebay (they sell them
> for just ~10 Euro there now).
>
> However, making it work under Linux turned out to be non-trivial. My
> kernel 3.11 under OpenSUSE 13.1 have the necessary kalmia.ko and
> option.ko drivers, but ModemManager doesn't support it (the generic
> plugin doesn't work).
>
> I found https://github.com/mkotsbak/ModemManager-Samsung-LTE which
> supposedly contains a plugin for Samsung GT B3710/3730/3740, but it
> seems to be an old version of ModemManager - it's not obvious how to
> merge this code into e.g. ModemManager 1.0.0 which is what OpenSUSE 13.1
> uses.
>
> My questions now:
>
> Does anyone already have a ModemManager plugin for my modem GT-B3740 or
> any other kalmia modem?
>

I'm not sure if Marius finished that plugin or if he stopped because
he had some problems or something. I don't recall seeing that plugin
in the ML, truth be told. Marius?

Anyway, that code in Marius' branch is for MM 0.6.x, MM 1.x is a whole
different codebase... and I'm not sure whether the Samsung plugin
(icera based) is suitable for that device.

> If not, can you give me some hints on how to write a plugin? I don't
> know anything about modemmanager, but I found the documentation on
> https://developer.gnome.org/ModemManager/unstable/ and I suppose I could
> create a plugin from that information and from Marius B. Kotsbaks old
> code. But should one create a new plugin from scratch? Or should it be
> derived from some existing plugin? Or should I just add the kalmia-modem
> functionality into the existing samsung plugin?

FYI, the latest docs are in:
http://www.freedesktop.org/software/ModemManager/api/latest/
Not sure how they ended up in gnome.org, truth be told.

Writing a new plugin is not very difficult, basic steps would be:

1) Create a new MMPluginSomething which creates a new
MMBroadbandModemSomething for that specific modem. Initially the new
modem will just be a subclass of MMBroadbandModem without any other
change.
2) Try with the new MMBroadbandModemSomething and see where it fails.
3) When it fails, subclass the step where it failed with your fix
until it works. Then, back to step 2.

Ideally you shouldn't need to create new steps in the generic modem,
just subclass existing ones with a new implementation, like in here:
http://www.freedesktop.org/software/ModemManager/api/latest/ref-overview-plugin-specific-modems.html

Anyway, I'd suggest to try with latest ModemManager 1.4 or git master,
and post here the debug log when that modem is used, to see what
really is happening and how we can handle it.
http://www.freedesktop.org/wiki/Software/ModemManager/Debugging/

Cheers!

-- 
Aleksander
https://aleksander.es


More information about the ModemManager-devel mailing list