
私は汎用 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
。