Date: Sat, 4 Jun 2011 16:19:00 -0600 (MDT) From: Warren Block <wblock@wonkity.com> To: Scott Gasch <scott.gasch@gmail.com> Cc: questions@freebsd.org Subject: Re: Usb printers take the same port deterministically? Message-ID: <alpine.BSF.2.00.1106041610280.34154@wonkity.com> In-Reply-To: <BANLkTinNzPUtfMa5xbxn-z=sjm6QRBvWNw@mail.gmail.com> References: <BANLkTinNzPUtfMa5xbxn-z=sjm6QRBvWNw@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
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";
};
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.BSF.2.00.1106041610280.34154>
