Virtual CD-ROM switching utility

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

Virtual CD-ROM switching utilities are programs to disable the virtual CD-ROM drive found on many devices.[1] A virtual CD-ROM switching utility is a mode switching tool for controlling "flip flop" (multiple device) USB gear. Several new USB devices (especially high-speed wireless WAN equipment, there seems to be a chipset from Qualcomm offering that feature) have their Microsoft Windows device drivers on board; when plugged in for the first time they act like a USB flash drive and start installing the device driver from there. After that (and on every consecutive plugging) this device driver switches the mode internally, the storage device vanishes (in most cases), and a new device (like a USB modem) shows up. The Wireless WAN (WWAN) gear maker Option calls that feature "ZeroCD (TM)". With USB sniffing programs and libusb it is possible to eavesdrop the communication of the MS Windows device driver, to isolate the command or action that does the switching and to reproduce the same thing under the rule of Linux or the BSD variants.[2]

The problem with most USB 3G modems is they have two modes. In one mode they are a USB flash drive and in the other mode they are a modem. Typically they only ship with Windows device drivers, sometimes Mac device drivers as well. In any case, they seemingly seldom, if ever, ship with Linux device drivers. What normally happens with Windows is the device starts up as a USB flash drive, the hardware drivers are installed and then they are responsible for "switching" the device in to modem mode so you can use it. This "switch" is done via some codes, specific to the device, which controlling software can pass as a command to switch from disk to modem mode. The virtual CD-ROM switching utility manages the switch of mode from disk to modem, the latter disconnects any mounted disk containing software we don't care about that won't work anyway and, crucially, creates a modem port/serial device (usually /dev/ttyUSB0) for the networkmanager.[3]

The approach of adding Virtual CD-ROM with software drivers on 3G or storage devices has two problems: it presumably raises the cost of the device, and it may ship outdated software or even viruses. Most of the times, up-to-date drivers are anyway built into the operating systems (after all, on systems implementing the USB standard like GNU/Linux, any 3G device is a USB serial port, and any storage device is a ... USB storage device). Virtual CD-ROM on U3-compatible devices can be removed by the u3-tool utility. Some 3G devices such as the Huawei support complete disabling of the Virtual CD-ROM.


When a device uses the ZeroCD method means that it behaves as a USB CD-ROM when first connected, with a virtual CD-ROM inserted with the Windows device drivers and related Cosmote control program. Once the Windows device drivers are installed, a special USB command is sent to the device to “switch” it to modem mode.[4]


Ozerocdoff temporarily disables ZeroCD for USB Option WWAN modem. The new USB Option WWAN modem devices support a CD-ROM device, which holds the needed Windows device driver to use the WWAN modem. Therefore, the firmware of the WWAN modem announces during the USB enumeration process to work as a virtual CD-ROM device with its vendor name "ZOPTION". This device is now called ZERO-CD. Ozerocdoff is a solution to switch off the ZERO-CD and allow the modem to be a used as a modem.[5]


USB_ModeSwitch is a virtual CD-ROM switching utility. From version 1.0.3 upwards there is a simple framework for integrating the switching with udev (the device manager) to make it fully automatic.[2]


Switch2modem is designed[by whom?] for switching a 3G USB modem. The program works under OpenSolaris.[6]

Fetch utility[edit]

huaweiAktBbo.c is a utility that can be compiled and re-creates the USB communication which is used in Windows.[7]

External links[edit]


  1. ^ "USB_modeswitch Virtual CD-ROM switching utility". Archived from the original on 2010-02-12. Retrieved 2010-11-03.
  2. ^ a b "USB_ModeSwitch - Activating Switchable USB Devices on Linux".
  3. ^ greg.harvey (28 April 2010). "Installing 3G USB Modems On Linux". Archived from the original on 2012-04-21. Retrieved 2019-02-10.
  4. ^ "ZTE MF636 (Cosmote 3G USB Modem in Greece) & Linux". 5 November 2009. Archived from the original on 2010-01-09. Retrieved 2019-02-10.
  5. ^ Debian package ozerocdoff in sid
  6. ^ Getting the Telecom T-Stick working under OpenSolaris Archived June 2, 2010, at the Wayback Machine
  7. ^ NSLU2-Linux - HowTo / AddUsb3gModem browse