Você pode usar as regras udev
, como disse @Henning.
Primeiro, encontre algumas informações exclusivas para as impressoras, executando
$ sudo udevadm info -a /dev/usb/lp0
calling: info
.
.
SUBSYSTEMS=="usb"
.
.
ATTRS{idProduct}=="1763"
ATTRS{idVendor}=="04a9"
ATTRS{serial}=="8025E2"
(e equivalente para lp1
)
Este é apenas um exemplo, mas geralmente Vendor
, Product
e serial
são suficientes. Agora você pode criar um udev-rule
simples para permitir que o udev crie um nome exclusivo (link) para essa impressora quando ela for adicionada. Crie um arquivo em /etc/udev/rules.d
, por exemplo com sudo nano /etc/udev/rules.d/99-myprinters.rules
para manter duas linhas como:
ACTION=="add", SUBSYSTEMS=="usb", KERNEL=="lp[0-9]*", ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="1763", ATTRS{serial}=="8025E2", SYMLINK+="printer1"
Claro que você tem que substituir os ids e serial pelo que udevadm
reportou. Isso significa:
Quando um dispositivo é adicionado ( ACTION=ADD
) que é uma impressora USB ( SUBSYSTEMS=="usb", KERNEL=="lp[0-9]*"
) que corresponde ao fornecedor, produto e número de série, adicione um link simbólico em /dev
com o nome printer1
(bem, você pode nomear a impressora como quiser, talvez algo mais intuitivo).
Importante: O nome do arquivo de regras deve terminar em .rules
, caso contrário, ele será ignorado. E você deve respeitar as convenções de nomenclatura das regras do udev.
Às vezes, a instalação de drivers de impressora cria suas próprias regras do udev em /etc/udev/rules.d
; basta olhar para eles para exemplos.
Você pode testar isso com sudo udevadm test <devicepath>
, em que <devicepath>
tem que ser o caminho completo informado por udevadm info
, por exemplo, /devices/pci0000:00/0000:00:13.2/usb2/2-3/2-3.2/2-3.2:1.1/usbmisc/lp0
.