web-dev-qa-db-fra.com

Envoi de données brutes au port parallèle USB après la mise à niveau vers 11.10

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)
5
zaphod

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.

3
James Henstridge