@chg2000 Super, dass es soweit funktioniert… aber das ist wirklich keine elegante Lösung:
Ich würde sagen, alle Geräte sind von dieser Nummernvergabe betroffen, diese werden seit neuestem zufällig vergeben beim Booten. Zu dem Zeitpunkt, als das Tool programmiert war, wusste man davon noch nichts… in der Archwiki habe ich folgendes gefunden:
Erstelle dir eine Datei in /etc/udev/rules.d/60-persistent-printer.rules
und füge das ein:
ACTION=="remove", GOTO="persistent_printer_end"
# This should not be necessary
#KERNEL!="lp*", GOTO="persistent_printer_end"
SUBSYSTEMS=="usb", IMPORT{builtin}="usb_id"
ENV{ID_TYPE}!="printer", GOTO="persistent_printer_end"
ENV{ID_SERIAL}=="?*", SYMLINK+="lp/by-id/$env{ID_BUS}-$env{ID_SERIAL}"
IMPORT{builtin}="path_id"
ENV{ID_PATH}=="?*", SYMLINK+="lp/by-path/$env{ID_PATH}"
LABEL="persistent_printer_end"
Das erstellt symbolische Verlinkungen zu jeder Nummer und es ist egal welche Nummer am Ende da steht, da es der selber Drucker ist. Aber dann kannst du nur einen Drucker zu gleichen Zeit per usb ansteuern
https://wiki.archlinux.org/index.php/Udev#Printer
Möglich wäre auch dem Gerät eine symblischen Link zu geben.
Das sieht dann so aus:
KERNEL="lp[0-9]*" SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="2676", SYMLINK+="lpb2900"
Da ist es egal, unter welche Nummer dein Canon auftaucht. Es wird einfach auf /dev/lpb2900
verlinkt.
Also statt
sudo /usr/sbin/ccpdadmin -p LBP2900 -o /dev/usb/lp1
machst du das
sudo /usr/sbin/ccpdadmin -p LBP2900 -o /dev/lpb2900
Viel besser