Re: Comments about the proposed new MM D-Bus API



On Fri, 2011-05-27 at 11:24 -0400, Jason Glasgow wrote:
> Yes, by "module" I mean PCI-E minicard, though really the DBUS-API
> should work for both PCI-E minicards and USB dongles.  Perhaps a
> different name is more appropriate.
> 
> 
> GOBI3K modems allow a certain number of firmware versions to be loaded
> on to the module, and then the user can select which one is used when
> the modem is turned on (or reset).  There might be more firmware
> versions available than can actually fit on the modem, so it is
> sometimes necessary to juggle which firmware is on the modem.   Remove
> and Install are the functions that will manipulate the firmware that
> resides on the module -- without actually determining which firmware
> will be used.

Oh wow, didn't know that.  They must have stuck a cr*pload of flash on
those things since the firmware images are megabytes each.  That makes
the situation clearer.  More comments later; I have no particular
objection to the general proposal, though perhaps you want to use the
same mechanism for Gobi2K and earlier but instead of talking to the
module, muck around with the filesystem?  Ie on those parts the "Select"
call could change a symlink to point to the right carrier firmware file.

Dan

> 
> -Jason
> 
> 
> On Fri, May 27, 2011 at 11:10 AM, Dan Williams <dcbw redhat com>
> wrote:
>         On Thu, 2011-05-26 at 17:39 -0400, Jason Glasgow wrote:
>         >
>         >
>         > I took a quick look at the new modem manager API and I'd
>         like to add
>         > something that would allow us to manipulate firmware
>         images.  This is
>         > not fully fleshed out yet.  Thoughts?
>         
>         
>         What exactly does "module" mean in this context?  My first
>         impression
>         was that we were talking about a PCI-E minicard, but I don't
>         think
>         that's the case.  What would install/remove actually do?
>         
>         Dan
>         
>         
>         > -Jason
>         >
>         >
>         >
>         >
>         > <?xml version="1.0" encoding="UTF-8" ?>
>         >
>         >
>         > <node name="/"
>         >
>         xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0";>
>         >   <interface
>         name="org.freedesktop.ModemManager1.Modem.Firmware">
>         >
>         >
>         >     <!-- METHODS -->
>         >     <method name="Select">
>         >       <tp:docstring>
>         > Select which firmware image to use. This call will reset the
>         modem.
>         >       </tp:docstring>
>         >       <annotation name="org.freedesktop.DBus.GLib.Async"
>         value=""/>
>         >       <annotation name="org.freedesktop.DBus.GLib.CSymbol"
>         > value="impl_modem_firmware_select"/>
>         >       <arg name="identifier" type="s" direction="in">
>         > <tp:docstring>
>         >  Identifier of the firmware to use.
>         >       </arg>
>         >     </method>
>         >
>         >
>         >     <method name="ListInstalled">
>         >       <tp:docstring>
>         > List firmware installed on the module. (Make this a
>         property???).
>         >       </tp:docstring>
>         >       <annotation name="org.freedesktop.DBus.GLib.CSymbol"
>         > value="impl_modem_firmware_list_installed_firmware"/>
>         >       <arg name="firmware" type="a{sa{sv}}" direction="out">
>         > <tp:docstring>
>         >  Dictionary of dictionary of properties. The outer
>         dictionary
>         >           contains keys that are firmware identifiers.  The
>         inner
>         >           diction contains properties of that firmware. The
>         predefined
>         >           common properties are:
>         >
>         >
>         >  Identifier: {key: value}
>         >  'carrier'            : (string, always) prefer carrier for
>         this
>         > firmware
>         >  'technology'         : (?, always) technologies for this
>         firmware
>         > (TBD)?
>         > </tp:docstring>
>         >       </arg>
>         >     </method>
>         >
>         >
>         >     <method name="ListAvailable">
>         >       <tp:docstring>
>         > Get the modem status. (Make this a property???).
>         >       </tp:docstring>
>         >       <annotation name="org.freedesktop.DBus.GLib.CSymbol"
>         > value="impl_modem_simple_get_status"/>
>         >       <arg name="firmware" type="a{sa{sv}}" direction="out">
>         >         <tp:docstring>
>         >  Dictionary of dictionary of properties. The outer
>         dictionary
>         >           contains keys that are firmware identifiers.  The
>         inner
>         >           diction contains properties of that firmware. The
>         predefined
>         >           common properties are:
>         >
>         >
>         >  Identifier: {key: value}
>         >  'carrier'            : (string, always) prefer carrier for
>         this
>         > firmware
>         >  'technology'         : (?, always) technologies for this
>         firmware
>         > (TBD)?
>         >         </tp:docstring>
>         >       </arg>
>         >     </method>
>         >
>         >
>         >     <method name="Remove">
>         >       <tp:docstring>
>         > Remove firmware installed on the module. This is only
>         > implemented for modules that can hold multiple versions of
>         > firmware on the module.
>         >       </tp:docstring>
>         >       <annotation name="org.freedesktop.DBus.GLib.CSymbol"
>         > value="impl_modem_firmware_list_installed_firmware"/>
>         >       <arg name="identifier" type="s" direction="in">
>         > <tp:docstring>
>         >  identifier of the firmware to remove from the module.
>         > </tp:docstring>
>         >       </arg>
>         >     </method>
>         >
>         >
>         >     <method name="Intall">
>         >       <tp:docstring>
>         > Install new firmware on the modem.
>         >       </tp:docstring>
>         >       <annotation name="org.freedesktop.DBus.GLib.CSymbol"
>         > value="impl_modem_firmware_install"/>
>         >       <arg name="identifier" type="s" direction="out">
>         >         <tp:docstring>
>         >  Identifier of the firmware to install on the modem.  For
>         >           modems that can install multiple versions of
>         firmware this
>         >           is the identifier returned by ListAvailable.  For
>         other
>         >           modems this maybe the filename of a file that
>         contains the
>         >           firmware, or the name of a directory that contains
>         multiple
>         >           files that need to be installed.
>         >         </tp:docstring>
>         >       </arg>
>         >     </method>
>         >   </interface>
>         > </node>
>         >
>         >
>         >
>         >
>         >
>         
>         
>         > _______________________________________________
>         > networkmanager-list mailing list
>         > networkmanager-list gnome org
>         > http://mail.gnome.org/mailman/listinfo/networkmanager-list
>         
>         
>         
> 
> 




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]