What does `modprobe option` do?

Solution 1:

You are absolutely right, modprobe option does attempt to load the module option, controlled by the kernel config parameter USB_SERIAL_OPTION.

Some more informations are found in the kernel sources (drivers/usb/serial/Kconfig)

config USB_SERIAL_OPTION
        tristate "USB driver for GSM and CDMA modems"
        (...)
          This driver also supports several PCMCIA cards which have a
        built-in OHCI-USB adapter and an internally-connected GSM modem.
        The USB bus on these cards is not accessible externally.
          Supported devices include (some of?) those made by:
        Option, Huawei, Audiovox, Novatel Wireless, or Anydata.
        (...)
          If this driver doesn't recognize your device,
        it might be accessible via the FTDI_SIO driver.

How to track this down:

  1. Check, if you have such a kernel module (this is only working, if it's enabled in your kernel config)

    $ find /lib/modules -name option.ko
    /lib/modules/kernel/drivers/usb/serial/option.ko
    
  2. Alternatively, you can try if the module loads

    # modprobe option
    # lsmod | grep option
    option                 33128  0 
    usb_wwan               13044  1 option
    usbserial              23912  2 option,usb_wwan
    
  3. Now, you can try to find the source files (this only works if the module is included in your current kernel sources)

    $ find /usr/src/linux -name option.c
    /usr/src/linux/drivers/gpu/drm/nouveau/core/core/option.c
    /usr/src/linux/drivers/usb/serial/option.c
    

    You mentioned, the module has something todo with a USB modem, so the second match sounds promising.

  4. You can also find the kernel config parameter

    $ find /usr/src/linux -name Makefile -exec grep -H option\.o '{}' \;
    /usr/src/linux/drivers/gpu/drm/nouveau/Makefile:nouveau-y += core/core/option.o
    /usr/src/linux/drivers/usb/serial/Makefile:obj-$(CONFIG_USB_SERIAL_OPTION)                   += option.o
    

    Now, you can have a look at /usr/src/linux/drivers/usb/serial/Kconfig and find the description I quoted at the beginning.

  5. Finally, have a look at the source itself (.../drivers/usb/serial/option.c), and voilà you find among other things the author's explanation of the name

    This driver exists because the "normal" serial driver doesn't work too well with GSM modems. Issues:

    • data loss -- one single Receive URB is not nearly enough
    • nonstandard flow (Option devices) control
    • controlling the baud rate doesn't make sense

      This driver is named "option" because the most common device it's
      used for is a PC-Card (with an internal OHCI-USB interface, behind
      which the GSM interface sits), made by Option Inc.

      Some of the "one port" devices actually exhibit multiple USB instances on the USB bus. This is not a bug, these ports are used for different device features.