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직접 작성을 계속할 것입니다.

dmesgUSB 포트에서 장치를 분리했다가 다시 연결하면 다음과 같은 내용이 표시됩니다.

[  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.

관련 정보