web-dev-qa-db-ja.com

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

レーザーカッターを汎用USB-パラレルアダプター経由で接続しています。レーザーカッターはたまたまHPGLを話しますが、これはプロッターではなくレーザーカッターであるため、カットの順序、速度、方向などが気になるので、通常は自分でHPGLを生成します。

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

cp foo.plt /dev/usblp1

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

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

lp -d LaserCutter foo.plt

しかし、USB-パラレルアダプターはリストに表示されないようです。表示されるのは、HP Color LaserJet、2つのUSBシリアルアダプター、「Enter URI」および「Network Printer」です。

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

CUPS管理者ガイドでは、parallel:/dev/SOMETHINGという形式のデバイスURIをフィードする必要があるように聞こえますが、もちろん/dev/SOMETHINGがあれば、直接書き込みを続けます。

USBポートからデバイスを取り外して再接続した後のdmesgの内容は次のとおりです。

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

/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を使用してアンロードできます。

3