Virtual COM port (VCP) drivers cause the USB device to appear as an additional COM port available to the PC. Application software can access the USB device in the same way as it would access a standard COM port. This software is provided by Future Technology Devices International Limited “as is” and any express or implied warranties, including, but not limited to, the implied warranties of.

  • Printer drivers allow for clear and concise data to be transmitted between devices and machinery in a way that makes sense to both. A fully updated and functioning Brother printer driver ensures smooth and streamlined communication between your printer and your laptop or mobile device, so there are no unexpected surprises or issues with the printing process.
  • Update Printer Device Driver. Printer Problems can also be caused due to the Printer device driver software being incompatible with the version of Windows OS running on your computer. Right-click on Start button and click on Device Manager. Expand Printers Entry Right-click on the Printer Nam e and select Update Driver option.

This article provides a solution to an issue where printers installed using the same driver and port on Windows are grouped as one when viewed within Devices and Printers.

Original product version: Windows 7 Service Pack 1
Original KB number: 2015694


Consider this scenario:

  • A computer running a version of Windows listed in the Applies To section.
  • Install two or more printers using the same printer driver and installed with the same printer port (that is, LPT1).
  • View the installed printers within Devices and Printers.

In this scenario, when viewing the installed printers within Devices and Printers, you may notice that some of the printers are grouped together and are associated with the same printer icon.


It's an expected behavior.


To work around this issue, you can use the following steps to create a Printers desktop icon that will list the installed printers separately:

  1. Open the Registry Editor (Select the Start button > type REGEDIT.EXE without the quotes and press the enter key) When prompted with User Account Control select Yes.

  2. Expand to and selected the following registry key:HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerDesktopNameSpace

  3. Right-click on the NameSpace registry key and choose New Key, enter the following GUID for the new registry key name (be sure to include the brackets)

  4. In the right pane, right-click the registry value (Default) and choose Modify, for the Value data enter Printers without the quotes

  5. Close Registry Editor

  6. Right-click on the Desktop and select Refresh


    After selecting refresh of the desktop, a new desktop icon called Printers will appear. Double-clicking on the new Printers icon you will be able to see the installed printers separately. You can also Add, Remove, View, or Manage the print queues, change printer settings, and choose printer preferences from within this new Printers Desktop icon.

Drivers Gprinter Port Devices

More information

There are several factors that contribute to the printer grouping, and the type of device as with the more common Multi-Function Printers. The way that printers are grouped or not depends on the following factors:

  1. Same driver.
  2. Same Port.
  3. Same HardwareID.

Typically it's identified that if the devices use the same HardwareID means same hardware printers, drivers may be different, PS, PCL, and so on. The determining factor is the port and the HardwareID.

For more information on Windows 7 Device Experience, see Windows 7 device experience.

There are two completely different device drivers for the parallelport; which one you are using depends on your kernel version (whichyou can find out with the command uname -a). The driver changed in Linux 2.1.33; essentially allcurrent systems will be running kernel 2.2 or later, so you'llprobably want to skip ahead to the parport driver section.

A few details are the same for both styles of driver. Mostnotably, many people have found that Linux will not detect theirparallel port unless they disable 'Plug and Play' in their PC BIOS. (This is no surprise; the track record for PnP of non-PCI deviceswith Windows and elsewhere has been something of a disaster).

4.1. The lp device (kernels <=2.1.32)

The Linux kernel (<=2.1.32), assuming you have compiled in orloaded the lp device (the output of cat /proc/devices should include the device lp if it isloaded), provides one or more of /dev/lp0,/dev/lp1, and /dev/lp2.These are NOT assigned dynamically, rather, each corresponds to aspecific hardware I/O address. This means that your first printermay be lp0 or lp1depending on your hardware. Just try both.

A few users have reported that their bidirectional lp ports aren'tdetected if they use an older unidirectional printer cable. Checkthat you've got a decent cable.

One cannot run the plip and lp drivers at the same time on anygiven port (under 2.0, anyway). You can, however, have one or theother driver loaded at any given time either manually, or bykerneld with version 2.x (and later 1.3.x) kernels. By carefullysetting the interrupts and such, you can supposedly run plip onone port and lp on the other. One person did so by editing thedrivers; I eagerly await a success report of someone doing so withonly a clever command line.

There is a little utility called tunelp floating about with which you, as root, can tune theLinux 2.0 lp device's interrupt usage, polling rate, and otheroptions.

When the lp driver is built into the kernel, the kernel willaccept an lp= option to setinterrupts and io addresses:

When loaded as a module, it is possible to specify io addressesand interrupt lines on the insmod command line (or in/etc/conf.modules so as to affect kerneld)using the usual module argument syntax. The parameters areio=port0,port1,port2 and irq=irq0,irq1,irq2. Read the man page forinsmod for more information on this.

**For those of you who can never find the standard portnumbers when you need them, they are as in the second exampleabove. The other port (lp0) is at 0x3bc.I've no idea what interrupt it usually uses.

The source code for the Linux 2.0 parallel port driver is in /usr/src/linux/drivers/char/lp.c.

4.2. The parport device (kernels >= 2.1.33)

Beginning with kernel 2.1.33 (and available as a patch for kernel2.0.30), the lp device is merely a client of the new parportdevice. The addition of the parport device corrects a number ofthe problems that plague the old lp device driver - it can sharethe port with other drivers, it dynamically assigns availableparallel ports to device numbers rather than enforcing a fixedcorrespondence between I/O addresses and port numbers, and soforth.

The advent of the parport device has enabled a whole flock of newparallel-port drivers for things like Zip drives, Backpack CD-ROMsand disks, and so forth. Some of these are also available inversions for 2.0 kernels; look around on the web.

The main difference that you will notice, so far as printing goes,is that parport-based kernels dynamically assign lp devices toparallel ports. So what was lp1 under Linux 2.0 may well be lp0under Linux 2.2. Be sure to check this if you upgrade from anlp-driver kernel to a parport-driver kernel.

The most popular problems with this device seems to stem frommisconfiguration:

The Distribution

Some GNU/Linux distributions don't ship with a properly setup /etc/modules.conf (or /etc/conf.modules), so the driver isn't loaded properly when you need it to be. With a recentmodutils, the proper magical lines from modules.conf seem to be:


Many PC BIOSes will make the parallel port into a Plug-and-Play device. This just adds needless complexity to aperfectly simple device that is nearly always present; turnoff the PnP setting for your parallel port ('LPT1' in manyBIOSes) if your parallel port isn't detected by the Linuxdriver. The correct setting is often called 'legacy', 'ISA',or '0x378', but probably not 'disabled'.

You can also read the parport documentation in your kernel sources, orlook at the parport website.

4.3. Serial devices

Serial devices are usually called something like/dev/ttyS1 under Linux. The utility stty will allow you to interactively view orset the settings for a serial port; setserial will allow you to control a fewextended attributes and configure IRQs and I/O addresses fornon-standard ports. Further discussion of serial ports underLinux may be found in the Serial-HOWTO.

When using a slow serial printer with flow control, you may findthat some of your print jobs get truncated. This may be due tothe serial port, whose default behavior is to purge anyuntransmitted characters from its buffer 30 seconds after the portdevice is closed. The buffer can hold up to 4096 characters, andif your printer uses flow control and is slow enough that it can'taccept all the data from the buffer within 30 seconds afterprinting software has closed the serial port, the tail end of thebuffer's contents will be lost. If the command cat file > /dev/ttyS2 produces completeprintouts for short files but truncated ones for longer files, youmay have this condition.

The 30 second interval can be adjusted through the 'closing_wait' command-line option of setserial (version2.12 and later). A machine's serial ports are usually initializedby a call to setserial in the rc.serial boot file. The call forthe printing serial port can be modified to set theclosing_wait at the same time as it sets that port's otherparameters.

4.4. USB Devices4.4.1. USB 1.1

Linux supports USB pretty well. USB should work with any late-model 2.2 kernel, and any 2.4 kernel or newer. Of course you need kernel support for USB, either linked in or through a module (recommended).

If you have a modular kernel, the following modules need to be loaded:

  • usb-core.o

  • usb-uhci.o or uhci.o or usb-ohci.o

  • printer.o

Which one of usb-uhci.o or uhci.o or usb-ohci.o you need depends on the kind of motherboard or adaptor you have. Intel and Via motherboards and Via based adaptors are UHCI (you can use either usb-uhci.o or uhci.o). You can find out which type of HCI (Host Controller Interface) you have with lspci -v grep HCI4.4.2. USB 2.0

Free Driver For Printer

To get high speed transfers out of a USB 2.0 capable device you must attach it to an USB 2.0 controller and use the EHCI driver (ehci-hcd.o). A recent 2.4 kernel or higher is recommended if you want to use USB 2.0.

4.4.3. HintsHow to download printer driver

One thing to remember is that USB devices are dynamically allocated. A USB printer gets assigned a device file (/dev/usb/lp*) when it is turned on or connected. This could mean that print jobs are sent to the wrong printer because you turned them on in a certain order. CUPS uses special Uri's containing manufacturer, model and printer serial number to keep sending the jobs to the correct physical printer.

Although most USB printers work fine on Linux, there are exceptions. For example the new MF devices from Epson (Stylus CX3200/CX5200) return garbage when one polls the IEEE-1284 ID string via IOCTL, for example with the code of the CUPS 'usb' backend. Whereas one can poll the ID string via an Epson-proprietary method.

Drivers Gprinter Port Devices Replicator

Till Kamppeter has written some tools to retrieve the device ID string from USB printers. getusbprinterid.pl and usb_id_test.c are the same thing but respectively in Perl and C. As mentioned above, the new MF devices from Epson are an exception, but the 'Epson proprietary method' is implemented in the ttink tool of the MTink package.

Download A Driver For My Printer

More documentation about USB is available at the Linux USB Website.

Hp Printer Drivers

PrevHomeNextHow to printSupported Printers