我有一台通过通用 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 转串行适配器、“输入 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
。