Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

455
Vistas
Desconecte y vuelva a conectar ttyUSB0 mediante programación en Linux

Tratando de resolver este problema (ttyUSB0 que funciona correctamente que deja de funcionar después de aproximadamente 1 hora) Estoy pensando si desconectar y volver a conectar el dispositivo USB podría ser una buena solución.

Entonces, ¿es posible cortar la alimentación del dispositivo USB y volver a encenderlo mediante programación (bash)?

 # lsusb -t 1-1:1.0: No such file or directory /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=musb-hdrc/1p, 480M |__ Port 1: Dev 2, If 0, Class=vend., Driver=, 12M |__ Port 1: Dev 2, If 1, Class=vend., Driver=cp210x, 12M

En am335x, kernel 3.2.0, ubuntu core armhf.

 [ 1.784332] usb 1-1: cp210x converter now attached to ttyUSB0

En este momento necesito un ciclo de energía completo para recuperar ttyUSB0 .

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Esta es la solución:

  • Encuentre la identidad de su dispositivo USB.

     # tree /sys/bus/usb/drivers/cp210x/ /sys/bus/usb/drivers/cp210x/ |-- 1-1:1.1 -> ../../../../devices/platform/omap/musb-ti81xx/musb-hdrc.1/usb1/1-1/1-1:1.1 |-- bind |-- module -> ../../../../module/cp210x |-- remove_id |-- uevent -- unbind

Entonces 1-1:1.1 es el identificador de mi ttyUSB0 (también se puede descubrir a través de dmesg ).

  • Luego, desconecte el dispositivo (como root):

     # echo -n "1-1:1.1" > /sys/bus/usb/drivers/cp210x/unbind
  • volver a conectarlo

     # echo -n "1-1:1.1" > /sys/bus/usb/drivers/cp210x/bind

En este punto tenía el mismo dispositivo pero con un nombre diferente, ahora era ttyUSB1 en lugar de ttyUSB0. - Para evitar esto, agregué una nueva regla en /etc/udev/rules.d/ creando un nuevo archivo llamado 99-usb-serial.rules con esta línea:

 SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea70", ATTRS{serial}=="002DCFAF", SYMLINK+="sameName", MODE:="0666"

donde idVendor , idProduct y serial deben ser los valores de su dispositivo. Esta regla creará un nuevo dispositivo llamado sameName vinculado al dispositivo ttyUSB* normalmente generado desde el sistema operativo.

over 4 years ago · Santiago Trujillo Denunciar

0

Como dijo @Robert Harvey,

Primero necesita encontrar nuestro controlador que lo ayudará a 'desenchufar y enchufar' el usb. Escriba: ls /sys/bus/usb/drivers que debería imprimir algo como esto: btusb ftdi_sio hub usb usbfs usbhid usbserial_generic uvcvideo . Estos son todos los controladores para cada dispositivo usb. Ahora, digamos que el mío es ftdi_sio , que es un dispositivo que uso para programar mi arduino (chip atmega328p). No estoy seguro de cómo se nombran sus/otros dispositivos USB allí. Como, no sé cuál de estos es mi ratón. Ahora, puede ver los comandos del controlador usando: ls /sys/bus/usb/drivers/ftdi_sio/ , que imprimirá algo como: 1-4:1.0 bind module uevent unbind , Donde 1-4:1.0 es el código característico del dispositivo , y el comando bind y unbind , que son los comandos 'plug' y 'unplug' respectivamente.

Ahora, si quiero desconectar programáticamente el puerto usb ftdi, escribiré: echo -n "1-4:1.0" > /sys/bus/usb/drivers/ftdi_sio/unbind y, para volver a conectarlo: echo -n "1-4:1.0" > /sys/bus/usb/drivers/ftdi_sio/bind

Ahora, podemos combinar todos los comandos juntos, con un ';':

echo -n "1-4:1.0" > /sys/bus/usb/drivers/ftdi_sio/unbind ; echo -n "1-4:1.0" > /sys/bus/usb/drivers/ftdi_sio/bind

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda