ITCooky Recetas

Vamos a cocinar it cositas

Conectamos una impresora-escáner USB a red con USBIP para una PC en Ubuntu!

дата julio 28, 2020

Tengo una impresora Kyocera FS-1125MFP, no se puede decir que no es una impresora de red, se debe decir que es una impresora de red malisima y no es para nada escáner de red (¡siempre compre HP!). Bueno, eso es lo que es, ¡no voy a comprar un nuevo modelo de impresora cada año! Hay una vieja computadora portátil al lado de el solo para escanear, de la cual me deshaceré tars ejecutar el puerto USB desde el Kyocera FS-1125MFP a través de la red a una PC con Ubuntu. Podrías hacerlo en Windows 10, lo mismo que en Ubuntu, pero Windows es tan inadecuado para esa tarea que ni siquiera lo intenté.


Voy a segui esa instrucciónhabr.com/ru/post/308860/ magnífico – claramente escrito, pensé que esto era todo lo que se necesitaba y no había necesidad de agregar algo, ¡pero como siempre surgen los matices!

Voy al servidor Linux de mi casa, Orange PI PC PLUS todavía esta de sertvicio y lo estara hasta que Raspberry comience a poner eMMC en sí.

La OS es Armbian

  ___  ____  _   ____   ____         
 / _ \|  _ \(_) |  _ \ / ___|    _   
| | | | |_) | | | |_) | |      _| |_ 
| |_| |  __/| | |  __/| |___  |_   _|
 \___/|_|   |_| |_|    \____|   |_|  
                                     
Welcome to Debian Stretch with Armbian Linux 4.19.62-sunxi
System load:   0.54 0.23 0.20  	Up time:       1:00 hour		
Memory usage:  24 % of 999MB  	IP:            192.168.1.209
CPU temp:      49°C           	
Usage of /:    43% of 7.1G 

Hago
sudo apt-get update
sudo apt-get upgrade

Y instalo
sudo apt-get install usbip

Run
sudo modprobe usbip-core
sudo modprobe usbip-host
sudo usbipd -D

Chequeamos lo que está en USB, antes de eso conecté la impresora a la naranja a través de USB
sudo usbip list -l

- busid 4-1 (0482:0498)
   Kyocera Corp. : unknown product (0482:0498)

¡Ahi esta! Ahora compartámoslo
sudo usbip bind --busid=4-1

usbip: info: bind device on busid 4-1: complete

Veamos qué hemos colgado en USBIP
usbip list -r localhost

Exportable USB devices
======================
 - localhost
        4-1: Kyocera Corp. : unknown product (0482:0498)
           : /sys/devices/platform/soc/1c1c000.usb/usb4/4-1
           : Miscellaneous Device / ? / Interface Association (ef/02/01)

Lo que se necesitaba!

Para cargar los módulos necesarios en el boot, agregue a
vi /etc/modules
eso

usbip-core
usbip-host

Y agregue el comando a cron
sudo crontab -e
ese

@reboot  /usr/sbin/usbipd -D&&/usr/sbin/usbip bind --busid=4-1

Ahora el servidor se puede reiniciar sin problemas, a pesar del cliente …

Configurar USBIP en Ubuntu
Vaya al cliente Ubuntu e instále
sudo apt install linux-tools-common
Esta colección contiene USBIP, sin embargo, no se instala directamente, como en Arambian

Activamos, aquí necesitamos un módulo mas vhci-hcd
sudo modprobe usbip-core
sudo modprobe usbip-host
sudo modprobe vhci-hcd
sudo usbipd -D

Conectamos
sudo usbip attach --remote=192.168.1.209 --busid=4-1
Nos fijamos en lo que ha aparecido
sudo usbip port

usbip: error: failed to open /usr/share/hwdata//usb.ids
Imported USB devices
====================
Port 00: <Port in Use> at High Speed(480Mbps)
       unknown vendor : unknown product (0482:0498)
       5-1 -> usbip://192.168.1.209:3240/4-1
           -> remote bus/dev 004/003

¡Eso! ¡Y aquí se ve como un nativo usb device!
lsusb

Bus 005 Device 003: ID 0482:0498 Kyocera Corp.

Impresora por cierto después attach apareció inmediatamente en Ubuntu, solo el driver está equivocado, ¡tendrá que descargarlo!

Aquí descargo los drivers de Linux para FS-1125
http://www.kyoceradocumentsolutions.ae/index/contact_support/dlc.false.driver.FS1125MFP._.EN.html#

La impresora comienza a imprimir después de darle el archivo PPD correcto. Conste mensinar que, si antes era imposible imprimir archivos con el nombre en ruso a través de la red desde Ubuntu, ¡ahora comenzaron a imprimirse!

Instale los drivers para el escáner haciendo clic en kyocera-sane_1.1.0228_amd64.deb
Después de eso, el escáner comienza a ser detectado.
sudo scanimage -L

device `kyocera:libusb:005:003' is a Kyocera FS-1125 multi-functional device

Simple Scan todavía no lo ve, hago reboot

Y luego se reveló el matiz! Después de reiniciar el cliente de Ubuntu, no puedo conectarme a la impresora a través de USBIP, el puerto en el servidor parece estar ocupado, parece estar congelado, para liberarlo en el servidor, ¡necesita reconectarlo!
sudo usbip unbind --busid=4-1
sudo usbip bind --busid=4-1

En el cliente Ubuntu, repita todos los pasos anteriores para conectar el USBIP.

Y después de eso Simple Scan comienza a escanear

Hacer que USBIP funcione automáticamente en Ubuntu
¡Esperamos que la IP del servidor USBIP no cambie y que nadie distorsione el USB allí! Por lo tanto, debemos resolver un problema, para que el cliente Ubuntu se desconecte del servidor USBIP y se conecte después del arranque antes de apagar o reiniciar.

crontab no ayudará, lo haremos a través de systemd

Vete a tu carpeta, yo tenga esa/home/alexandr

Hagamos scripts
vi .usbip_script_start
con el texto

#!/bin/sh
sudo modprobe usbip-core
sudo modprobe usbip-host
sudo modprobe vhci-hcd
sudo usbipd -D
sudo usbip attach --remote=192.168.1.209 --busid=4-1

Haciéndolo ejecutable
sudo chmod +x .usbip_script_start

otro script
vi .usbip_script_stop
con el texto

#!/bin/sh
port=`sudo usbip port | grep "Port in Use" | awk -F '[ ]|:' '{print $2}'`
sudo usbip detach --port=$port

Aquí definimos el puerto un poco interactivamente, pero esperamos que solo tengamos una conexión USBIP
Haciéndolo ejecutable
sudo chmod +x .usbip_script_stop

Ahora lo hacemos aqui
sudo vi /etc/systemd/system/usbip_start_and_stop.service
Un scriptcon este texto con texto

[Unit]
Description=Run Scripts at Start and Stop
Wants=network-online.target 
After=network-online.target 

[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/home/alexandr/.usbip_script_start
ExecStop=/home/alexandr/.usbip_script_stop

[Install]
WantedBy=multi-user.target

Escriba su carpeta aquí, y hay instrucciones para que red esté activa cuando se ejecuta el script

Lo lanzamos
sudo systemctl start usbip_start_and_stop.service
y poner en ejecución automática
sudo systemctl enable usbip_start_and_stop.service

¡Ahora puede apagar y reiniciar de forma segura, el puerto del servidor USBIP no se bloqueará!


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *