LINUX.ORG.RU

Принтер через маршрутизатор с OpenWrt

 , , ,


0

2

Пытаясь подключить принтер к компьютеру через принт-сервер на базе маршрутизатора под OpenWrt, обнаружил такую весщь: в конфиге устройство прописано и в вебке оное показано; по сканированию устройств мой принтер наличиствует и видно его имя:

root@OpenWrt:~# lsusb -v

Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 001 Device 002: ID 08a6:8011 Toshiba TEC

idVendor 0x08a6 Toshiba TEC

idProduct 0x8011

iProduct 1 e-STUDIO166

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub bcdUSB 2.00

  • в папке для устройств:

root@OpenWrt:~# ls /dev/usb/*

ls: /dev/usb/*: No such file or directory

  • ничего про это нет! - как это понимать?


Последнее исправление: Levontay (всего исправлений: 2)

Он там и не должен быть. Устройства пользователя usb расположены по адресу /sys/bus/usb. А /dev/usb/lp* появляются, только когда установлены драйверы.

  1. Какие протоколы использует принтер?

  2. Драйверы открытые или проприентарные?

steemandlinux ★★★★★
()
Последнее исправление: steemandlinux (всего исправлений: 1)
Ответ на: комментарий от No
  • В этом что-то есть, спасибо.

root@OpenWrt:~# ls /dev/bus/usb/* /dev/bus/usb/001: 001 002

root@OpenWrt:~# ls /dev/bus/usb/002/* /dev/bus/usb/002/001

размером 128 байт

По содержимому там волнистые линии.

Levontay
() автор топика
Последнее исправление: Levontay (всего исправлений: 1)
Ответ на: комментарий от steemandlinux
  • Это проясняет дело.

«Протоколы»?

  • понятия не имею. Я подумаю.

«Драйверы»?

  • нет там никаких драйверов, - они используются на клиенте, - в винде.
Levontay
() автор топика
Последнее исправление: Levontay (всего исправлений: 1)
Ответ на: комментарий от Levontay

То, что вы называете принт-сервером - это аппаратная реализация usb - ethernet трансляции. А вы пытаетесь искать нативно установленный принтер.

https://openwrt.org/docs/guide-user/services/usb.iptunnel

https://github.com/vadimgrn/usbip-win2

steemandlinux ★★★★★
()
Последнее исправление: steemandlinux (всего исправлений: 1)
Ответ на: комментарий от steemandlinux

Нет, это спулер из tcp/ip в usb последовательностей байтиков. А то, что вы предлагаете - это проброс usb порта.

Shadow ★★★★★
()
Последнее исправление: Shadow (всего исправлений: 2)
Ответ на: комментарий от steemandlinux

Нет, это демон, слушающий порт и кидающий в /dev, и это одна из основных функций openwrt.

Проброс usb лочит usb девацс на подключение. Есть коммерческий аналог со сборками под openwrt, бесплатная версия даже лучше открытой. Искать, простите, по слову vhui

Shadow ★★★★★
()
Последнее исправление: Shadow (всего исправлений: 1)
Ответ на: комментарий от Shadow

и это одна из основных функций openwrt.

Что основная функция openwrt? Его спулер требует lp0, который без драйвера не появится.

Железный принт-сервер вообще по-другому работает.

steemandlinux ★★★★★
()
Последнее исправление: steemandlinux (всего исправлений: 1)

для openwrt(и аналогов) рекомендую использовать «p910nd».
Простой доступ, полный аналог обычного сетевого принтера(за исключеним отсутствия snmp). А вот если это мфу - то надо наверное городить проброс порта, или подцеплять sane.

Atlant ★★★★★
()
Ответ на: комментарий от Levontay

Есть драйвер принтерного порта (в ядре), и есть драйвер принтера (в юзерспейсе). На openwrt надо поставить драйвер порта (kmod-usb-printer) и принт-сервер (p910nd). Вот здесь всё подробно описано. В том числе, как потом подключаться к этому сетевому принтеру с винды, макоса и линукса.

iliyap ★★★★★
()
Ответ на: комментарий от steemandlinux

«…Есть драйвер принтерного …На openwrt надо поставить драйвер порта (kmod-usb-printer)…»

А с чего вы взяли - что он у меня не установлен?

«…Да откуда же вы лезете…»

  • вас выворачивает?

Короче: Топик-вопрос явился продолжением эпопеи установки принтера по оной схеме, и я всё это сделал, и имею означенную проблему - являющуюся свойством именно Линукса. Пожалуйста: если вы можете объяснить оное в свете установки переброса принтера - честь вам и хвала, но я вижу - что вы, пока, «не в теме».

Levontay
() автор топика
Ответ на: комментарий от Levontay

В инструкции написано, что делать:

  1. Поставить на роутер драйвер принтерного порта, принт-сервер, и web UI для его настройки:
opkg update
opkg install kmod-usb-printer p910nd luci-app-p910nd
  1. Подключить принтер к роутеру, проверить наличие девайс-нода:
ls -l /dev/usb/lp*
  1. Настроить принт-сервер в web UI (например: слушать на TCP 9100, посылать в /dev/usb/lp0).

  2. Настроить на ПК печать в TCP порт (например: router-ip:9100), выбрать подходящий драйвер принтера.

По вашим постам не понятно, что из этого вы делали, и что из этого у вас не работает. То ли пакеты не ставятся, то ли девайс-нод после установки драйвера и подключения принтера не появляется, то ли принт-сервер не настраивается, то ли ПК не может подключиться к router-ip:9100.

iliyap ★★★★★
()
Ответ на: комментарий от steemandlinux

Судя по виндовому драйверу (https://www.toshibatec.eu/support/drivers/SearchDriver?searchString=e-STUDIO166) USB-устройство реализует не USB Printing Device Class, а USB Communication Device Class. Под виндой используется драйвер usbser.sys, т.е. это принтер с последовательным портом. Да, нужен подробный дескриптор, чтобы понять какой драйвер его сможет подцепить, cdc_acm или usbserial.

iliyap ★★★★★
()
Ответ на: комментарий от iliyap

«это принтер с последовательным портом»

  • А! - точно" Вы - гений!

Там используется транспортировка между «железным USB» и «мнимым COM3».

У меня вечно с этим головняк: ставлю драйвер два раза, одно устройство удаляю. Или висит два устройства - и бывает путаница: посылка идёт на одно устройство (вроде рабочее) и висит в «автономе».

Спасибо.

Levontay
() автор топика
Последнее исправление: Levontay (всего исправлений: 4)
Ответ на: комментарий от steemandlinux

MSK: «Поставить usbutils и скинуть сюда вывод утилиты lsusb -v,..»

Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 9 Hub bDeviceSubClass 0 Unused bDeviceProtocol 0 Full speed (or root) hub bMaxPacketSize0 64 idVendor 0x1d6b Linux Foundation idProduct 0x0001 1.1 root hub bcdDevice 4.14 iManufacturer 3 Linux 4.14.215 ohci_hcd iProduct 2 Generic Platform OHCI controller iSerial 1 101c1000.ohci bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 25 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xe0 Self Powered Remote Wakeup MaxPower 0mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 9 Hub bInterfaceSubClass 0 Unused bInterfaceProtocol 0 Full speed (or root) hub iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0002 1x 2 bytes bInterval 255 Hub Descriptor: bLength 9 bDescriptorType 41 nNbrPorts 1 wHubCharacteristic 0x000a No power switching (usb 1.0) Per-port overcurrent protection bPwrOn2PwrGood 2 * 2 milli seconds bHubContrCurrent 0 milli Ampere DeviceRemovable 0x00 PortPwrCtrlMask 0xff Hub Port Status: Port 1: 0000.0100 power Device Status: 0x0001 Self Powered

Bus 001 Device 002: ID 08a6:8011 Toshiba TEC Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 2 Communications bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x08a6 Toshiba TEC idProduct 0x8011 bcdDevice 1.00 iManufacturer 0 iProduct 1 e-STUDIO166 iSerial 2 Default bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 67 bNumInterfaces 2 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xc0 Self Powered MaxPower 100mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 2 Communications bInterfaceSubClass 2 Abstract (modem) bInterfaceProtocol 1 AT-commands (v.25ter) iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x85 EP 5 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 16 CDC Header: bcdCDC 1.10 CDC Call Management: bmCapabilities 0x03 call management use DataInterface bDataInterface 1 CDC ACM: bmCapabilities 0x06 sends break line coding and serial state CDC Union: bMasterInterface 0 bSlaveInterface 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 10 CDC Data bInterfaceSubClass 0 Unused bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Device Qualifier (for other device speed): bLength 10 bDescriptorType 6 bcdUSB 2.00 bDeviceClass 2 Communications bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 bNumConfigurations 1 Device Status: 0x0001 Self Powered

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 9 Hub bDeviceSubClass 0 Unused bDeviceProtocol 0 Full speed (or root) hub bMaxPacketSize0 64 idVendor 0x1d6b Linux Foundation idProduct 0x0002 2.0 root hub bcdDevice 4.14 iManufacturer 3 Linux 4.14.215 ehci_hcd iProduct 2 EHCI Host Controller iSerial 1 101c0000.ehci bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 25 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xe0 Self Powered Remote Wakeup MaxPower 0mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 9 Hub bInterfaceSubClass 0 Unused bInterfaceProtocol 0 Full speed (or root) hub iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0004 1x 4 bytes bInterval 12 Hub Descriptor: bLength 9 bDescriptorType 41 nNbrPorts 1 wHubCharacteristic 0x0009 Per-port power switching Per-port overcurrent protection bPwrOn2PwrGood 10 * 2 milli seconds bHubContrCurrent 0 milli Ampere DeviceRemovable 0x00 PortPwrCtrlMask 0xff Hub Port Status: Port 1: 0000.0503 highspeed power enable connect Device Status: 0x0001 Self Powered

Levontay
() автор топика
Последнее исправление: Levontay (всего исправлений: 2)
Ответ на: комментарий от Levontay

Вернул форматирование

Bus 001 Device 002: ID 08a6:8011 Toshiba TEC
Device Descriptor:
  bLength 18
  bDescriptorType 1
  bcdUSB 2.00
  bDeviceClass 2 Communications
  bDeviceSubClass 0
  bDeviceProtocol 0
  bMaxPacketSize0 64
  idVendor 0x08a6 Toshiba TEC
  idProduct 0x8011
  bcdDevice 1.00
  iManufacturer 0
  iProduct 1 e-STUDIO166
  iSerial 2  Default
  bNumConfigurations 1
  Configuration Descriptor:
    bLength 9
    bDescriptorType 2
    wTotalLength 67
    bNumInterfaces 2
    bConfigurationValue 1
    iConfiguration 0
    bmAttributes 0xc0
      Self Powered
      MaxPower 100mA
    Interface Descriptor:
      bLength 9
      bDescriptorType 4
      bInterfaceNumber 0
      bAlternateSetting 0
      bNumEndpoints 1
      bInterfaceClass 2 Communications
      bInterfaceSubClass 2 Abstract (modem)
      bInterfaceProtocol 1 AT-commands (v.25ter)
      iInterface 0
      Endpoint Descriptor:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x85 EP 5 IN
        bmAttributes 3
          Transfer Type Interrupt
          Synch Type None
          Usage Type Data
        wMaxPacketSize 0x0008 1x 8 bytes
        bInterval 16
        CDC Header:
          bcdCDC 1.10
        CDC Call Management:
          bmCapabilities 0x03 call management use DataInterface
          bDataInterface 1
        CDC ACM:
          bmCapabilities 0x06 sends break line coding and serial state
        CDC Union:
          bMasterInterface 0
          bSlaveInterface 1
    Interface Descriptor:
      bLength 9
      bDescriptorType 4
      bInterfaceNumber 1
      bAlternateSetting 0
      bNumEndpoints 2
      bInterfaceClass 10 CDC Data
      bInterfaceSubClass 0 Unused
      bInterfaceProtocol 0
      iInterface 0
      Endpoint Descriptor:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x01 EP 1 OUT
        bmAttributes 2
          Transfer Type Bulk
          Synch Type None
          Usage Type Data
        wMaxPacketSize 0x0200 1x 512 bytes
        bInterval 0
      Endpoint Descriptor:
        bLength 7
        bDescriptorType 5
        bEndpointAddress 0x82 EP 2 IN
        bmAttributes 2
          Transfer Type Bulk
          Synch Type None
          Usage Type Data
        wMaxPacketSize 0x0200 1x 512 bytes
        bInterval 0
Device Qualifier (for other device speed):
  bLength 10
  bDescriptorType 6
  bcdUSB 2.00
  bDeviceClass 2 Communications
  bDeviceSubClass 0
  bDeviceProtocol 0
  bMaxPacketSize0 64
  bNumConfigurations 1
  Device Status: 0x0001 Self Powered

Похоже на устройтсво для драйвера cdc_acm, из пакета kmod-usb-acm. Надо поставить пакет, подключить принтер к роутеру. В dmesg должно появиться сообщение

cdc_acm 1-1: ttyACM0: USB ACM device

и должен появиться девайс нод /dev/ttyACM0. Вот его и надо указать в настройках p910nd вместо /dev/usb/lp0.

iliyap ★★★★★
()