<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2014-10-03 9:04 GMT+02:00 Aleksander Morgado <span dir="ltr"><<a href="mailto:aleksander@aleksander.es" target="_blank">aleksander@aleksander.es</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="">On Thu, Oct 2, 2014 at 11:12 PM, Oskar Enoksson <<a href="mailto:enok@lysator.liu.se">enok@lysator.liu.se</a>> wrote:<br>
> Hi. I bought a Samsung GT-B3740 LTE USB-modem on ebay (they sell them<br>
> for just ~10 Euro there now).<br>
><br>
> However, making it work under Linux turned out to be non-trivial. My<br>
> kernel 3.11 under OpenSUSE 13.1 have the necessary kalmia.ko and<br>
> option.ko drivers, but ModemManager doesn't support it (the generic<br>
> plugin doesn't work).<br>
><br>
> I found <a href="https://github.com/mkotsbak/ModemManager-Samsung-LTE" target="_blank">https://github.com/mkotsbak/ModemManager-Samsung-LTE</a> which<br>
> supposedly contains a plugin for Samsung GT B3710/<a href="tel:3730%2F3740" value="+4737303740">3730/3740</a>, but it<br>
> seems to be an old version of ModemManager - it's not obvious how to<br>
> merge this code into e.g. ModemManager 1.0.0 which is what OpenSUSE 13.1<br>
> uses.<br>
><br>
> My questions now:<br>
><br>
> Does anyone already have a ModemManager plugin for my modem GT-B3740 or<br>
> any other kalmia modem?<br>
><br>
<br>
</span>I'm not sure if Marius finished that plugin or if he stopped because<br>
he had some problems or something. I don't recall seeing that plugin<br>
in the ML, truth be told. Marius?<br></blockquote><div><br></div><div>Yeah, the firmware was so bad that I gave up. Even the simplest AT commands failed for that modem if they were not exactly like my manual script derived from analyzing the behavior of the supplied Windows connection software, and the exact order (maybe even timing). It was quite obvious that the firmware was made just to work with their own software, and even then it was unstable and sometimes required a restart (reinsert it). I think even ModemManager's probing code would cause it to fail, so getting it to work would require a lot of customization of the common modem code.<br><br></div><div>I also don't have the modem anymore, so I won't be able to test anything more on this plugin.<br></div><div> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Anyway, that code in Marius' branch is for MM 0.6.x, MM 1.x is a whole<br>
different codebase... and I'm not sure whether the Samsung plugin<br>
(icera based) is suitable for that device.<br>
<span class=""><br></span></blockquote><div><br></div><div>Given that someone got it working with the same kalmia kernel driver, I would assume not: <a href="http://armageddon421.de/?p=165">http://armageddon421.de/?p=165</a><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="">
> If not, can you give me some hints on how to write a plugin? I don't<br>
> know anything about modemmanager, but I found the documentation on<br>
> <a href="https://developer.gnome.org/ModemManager/unstable/" target="_blank">https://developer.gnome.org/ModemManager/unstable/</a> and I suppose I could<br>
> create a plugin from that information and from Marius B. Kotsbaks old<br>
> code. But should one create a new plugin from scratch? Or should it be<br>
> derived from some existing plugin? Or should I just add the kalmia-modem<br>
> functionality into the existing samsung plugin?<br>
<br>
</span>FYI, the latest docs are in:<br>
<a href="http://www.freedesktop.org/software/ModemManager/api/latest/" target="_blank">http://www.freedesktop.org/software/ModemManager/api/latest/</a><br>
Not sure how they ended up in <a href="http://gnome.org" target="_blank">gnome.org</a>, truth be told.<br>
i<br>
Writing a new plugin is not very difficult, basic steps would be:<br>
<br>
1) Create a new MMPluginSomething which creates a new<br>
MMBroadbandModemSomething for that specific modem. Initially the new<br>
modem will just be a subclass of MMBroadbandModem without any other<br>
change.<br>
2) Try with the new MMBroadbandModemSomething and see where it fails.<br>
3) When it fails, subclass the step where it failed with your fix<br>
until it works. Then, back to step 2.<br>
<br>
Ideally you shouldn't need to create new steps in the generic modem,<br>
just subclass existing ones with a new implementation, like in here:<br>
<a href="http://www.freedesktop.org/software/ModemManager/api/latest/ref-overview-plugin-specific-modems.html" target="_blank">http://www.freedesktop.org/software/ModemManager/api/latest/ref-overview-plugin-specific-modems.html</a><br>
<br>
Anyway, I'd suggest to try with latest ModemManager 1.4 or git master,<br>
and post here the debug log when that modem is used, to see what<br>
really is happening and how we can handle it.<br>
<a href="http://www.freedesktop.org/wiki/Software/ModemManager/Debugging/" target="_blank">http://www.freedesktop.org/wiki/Software/ModemManager/Debugging/</a><br>
<br>
Cheers!<br></blockquote><div><br></div><div>Yes, given that the modem is discovered by ModemManager, which I think it should, please post the debug logs so that we could see if the failures are of the same types as the other Samsung modem.<br><br>--<br></div><div>Marius<br><br></div></div></div></div>