J'ai un découpeur laser connecté via un adaptateur générique USB vers parallèle. La découpeuse laser parle HPGL, comme cela se produit, mais comme il s'agit d'une découpeuse laser et non d'un traceur, je souhaite généralement générer le HPGL moi-même, car je me soucie de l'ordre, de la vitesse et de la direction des découpes, etc.
Dans les versions précédentes d'Ubuntu, je pouvais imprimer sur le cutter en copiant un fichier HPGL directement sur le périphérique USB "lp" correspondant. Par exemple:
cp foo.plt /dev/usblp1
Eh bien, je viens de passer à Ubuntu 11.10 oneiric, et je ne trouve plus aucun périphérique "lp" dans/dev. D'oh!
Quelle est la méthode préférée pour envoyer des données brutes à un port parallèle dans Ubuntu? J'ai essayé Paramètres système> Impression> + Ajouter, en espérant pouvoir associer mon périphérique à une sorte de pilote "d'imprimante brute" et y imprimer une commande comme
lp -d LaserCutter foo.plt
Mais mon adaptateur USB vers parallèle ne semble pas apparaître dans la liste. Ce que je vois, ce sont mes imprimantes HP Color LaserJet, deux adaptateurs USB/série, "Enter URI" et "Imprimante réseau".
Pendant ce temps, dans/dev, je vois des périphériques/dev/ttyUSB0 et/dev/ttyUSB1 pour les deux adaptateurs USB/série. Je ne vois rien d’évident correspondant à l’imprimante HP (qui était/dev/usblp0 avant la mise à niveau), à l’exception du matériel USB générique. Par exemple, Sudo find /dev | grep lp
ne produit aucune sortie. Il semble cependant que je sois capable d'imprimer sur l'imprimante HP. L’interface graphique de configuration de l’imprimante lui donne un URI de périphérique commençant par "hp:", ce qui n’aide pas beaucoup pour l’adaptateur parallèle.
Le guide de l'administrateur de CUPS donne l'impression que je pourrais avoir besoin de lui donner un URI de périphérique de la forme parallel:/dev/SOMETHING
, mais bien sûr, si j'avais un /dev/SOMETHING
, j'écrirais probablement directement dessus.
Voici ce que dmesg
dit après avoir déconnecté et reconnecté le périphérique du port USB:
[ 924.722906] usb 1-1.1.4: USB disconnect, device number 7
[ 959.993002] usb 1-1.1.4: new full speed USB device number 8 using ehci_hcd
Et voici comment cela se voit dans lsusb -v:
Bus 001 Device 008: ID 1a86:7584 QinHeng Electronics CH340S
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x1a86 QinHeng Electronics
idProduct 0x7584 CH340S
bcdDevice 2.52
iManufacturer 0
iProduct 2 USB2.0-Print
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 32
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 96mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 7 Printer
bInterfaceSubClass 1 Printer
bInterfaceProtocol 2 Bidirectional
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0020 1x 32 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0020 1x 32 bytes
bInterval 0
Device Status: 0x0000
(Bus Powered)
Les fichiers de périphérique /dev/usb/lpX
que vous recherchez sont fournis par le pilote usblp
. Il semble cependant que dans Ubuntu 11.10, ce pilote ait été placé sur une liste noire. Voir le fichier /etc/modprobe.d/blacklist-cups-usblp.conf
:
# cups talks to the raw USB devices, so we need to blacklist usblp to avoid
# grabbing them
blacklist usblp
Si vous souhaitez toujours envoyer des données directement sur le périphérique, vous pouvez charger temporairement le pilote avec modprobe usblp
(la liste noire empêche uniquement le chargement automatique du pilote). Une fois que vous avez terminé, vous pouvez le décharger avec modprobe -r usblp
.