11.10 にアップグレードした後、USB パラレル ポートに生データを送信する

11.10 にアップグレードした後、USB パラレル ポートに生データを送信する

私は汎用 USB からパラレル アダプターを介してレーザー カッターを接続しています。レーザー カッターは HPGL に対応していますが、これはレーザー カッターであってプロッターではないため、カットの順序、速度、方向などを気にして、通常は自分で HPGL を生成したいと考えます。

Ubuntu の以前のバージョンでは、HPGL ファイルを対応する USB "lp" デバイスに直接コピーすることで、カッターに印刷できました。例:

cp foo.plt /dev/usblp1

さて、Ubuntu 11.10 oneiric にアップグレードしたところ、/dev に「lp」デバイスが見つかりません。ああ!

Ubuntuで生データをパラレルポートに送信するには、どのような方法が好ましいでしょうか? システム設定 > 印刷 > + 追加を試してみました。デバイスを何らかの「生のプリンター」ドライバーに関連付けて、次のようなコマンドで印刷できるのではないかと期待しています。

lp -d LaserCutter foo.plt

しかし、USB からパラレルへのアダプタはリストに表示されないようです。表示されるのは、HP Color LaserJet、USB からシリアルへのアダプタ 2 つ、「URI の入力」、および「ネットワーク プリンタ」です。

一方、/dev では、2 つの USB-シリアル アダプタ用の /dev/ttyUSB0 および /dev/ttyUSB1 デバイスが見つかります。一般的な USB のものを除いて、HP プリンタ (アップグレード前は /dev/usblp0) に対応する明らかなものは見つかりません。たとえば、sudo find /dev | grep lp出力は生成されません。ただし、HP プリンタに問題なく印刷できるようです。プリンタ設定 GUI は、パラレル アダプタにはあまり役に立たない "hp:" で始まるデバイス URI を提供します。

CUPS 管理者ガイドによると、 という形式のデバイス URI を入力する必要があるようですparallel:/dev/SOMETHINGが、もちろん があれば、/dev/SOMETHING直接書き込むことになるでしょう。

dmesgデバイスを 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

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)

答え1

/dev/usb/lpX探しているデバイス ファイルはドライバーによって提供されます。usblpただし、Ubuntu 11.10 ではこのドライバーがブラックリストに登録されているようです。/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

それでもデバイスに直接データを送信したい場合は、 を使用してドライバーを一時的にロードできますmodprobe usblp(ブラックリストはドライバーが自動的にロードされるのを防ぐだけです)。完了したら、 を使用してアンロードできますmodprobe -r usblp

関連情報