
У меня есть лазерный резак, подключенный через универсальный USB-параллельный адаптер. Лазерный резак, как ни странно, говорит на HPGL, но поскольку это лазерный резак, а не плоттер, я обычно хочу сам генерировать HPGL, так как меня волнует порядок, скорость и направление резов и т. д.
В предыдущих версиях Ubuntu я мог печатать на резаке, копируя файл HPGL напрямую на соответствующее USB-устройство "lp". Например:
cp foo.plt /dev/usblp1
Ну, я только что обновился до Ubuntu 11.10 oneiric, и больше не могу найти никаких устройств "lp" в /dev. Ого!
Какой предпочтительный способ отправки необработанных данных на параллельный порт в Ubuntu? Я пробовал Системные настройки > Печать > + Добавить, надеясь, что смогу связать свое устройство с каким-нибудь драйвером «необработанного принтера» и печатать на нем с помощью команды типа
lp -d LaserCutter foo.plt
Но мой USB-параллельный адаптер, похоже, не отображается в списке. Я вижу только свой HP Color LaserJet, два USB-последовательных адаптера, "Enter URI" и "Network Printer".
Между тем, в /dev я вижу устройства /dev/ttyUSB0 и /dev/ttyUSB1 для 2 адаптеров USB-to-serial. Я не вижу ничего очевидного, соответствующего принтеру HP (который был /dev/usblp0 до обновления), за исключением общих USB-вещей. Например, sudo find /dev | grep lp
не выводит никаких данных. Хотя, похоже, я могу нормально печатать на принтере HP. Графический интерфейс настройки принтера дает ему URI устройства, начинающийся с "hp:", что не очень помогает для параллельного адаптера.
В руководстве администратора CUPS это звучит так, будто мне, возможно, придется передать ему URI устройства в форме parallel:/dev/SOMETHING
, но, конечно, если бы у меня был URI, /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
.