Usb printers take the same port deterministically?
Warren Block
wblock at wonkity.com
Sat Jun 4 22:19:01 UTC 2011
On Sat, 4 Jun 2011, Scott Gasch wrote:
> Hi,
>
> I have two usb printers on my freebsd machine and I'm using cups. One of
> the things I've done is publish a raw (no driver) printer for each of them
> and use that to share them with other machines in the house that have
> drivers.
>
> My problem is that every once in a while, when I boot up, the order of the
> printers on the usb ports seems to change. For example, right now I've got:
>
> Jun 4 11:24:34 foo kernel: ulpt0: <Brother HL-2140 series, class 0/0, rev
> 2.00/1.00, addr 2> on uhub1
> Jun 4 11:24:34 foo kernel: ulpt0: using bi-directional mode
> Jun 4 11:28:13 foo kernel: ulpt1: <EPSON USB2.0 Printer (Hi-speed), class
> 0/0, rev 2.00/1.00, addr 2> on uhub7
>
>
> But when I lost power the other night the machine came up with them reversed
> -- the brother on ulpt1 and the epson on ulpt0.
>
> As far as I can tell, cups printers.conf ties to a particular port. So, you
> can probably see where this is going... when they bind in the wrong order
> and someone prints I get a ton of crap printed out and waste a ton of paper.
> How can I make it so that a particular printer binds to a particular usb
> port deterministically?
devd.conf. But I don't think there's any control over ulpt. Instead,
maybe create links so /dev/ulpt-hl2140 and /dev/ulpt-epson12 are linked
to the right devices, and use those where static devices are needed.
Untested...
attach 20 {
device-name "ulpt[0-9]";
match "vendor" "0x1234"; # Brother
match "product" "0x4321"; # HL-2140
action "ln -s /dev/$device-name /dev/ulpt-hl2140";
};
detach 20 {
device-name "ulpt[0-9]";
match "vendor" "0x1234"; # Brother
match "product" "0x4321"; # HL-2140
action "rm /dev/ulpt-hl2140";
};
More information about the freebsd-questions
mailing list