22 votos

El problema de la conexión entre el iPhone-Mac y el proceso de usbd, ¿qué es lo que hace?

Sé que hay 2-3 preguntas en esta comunidad relacionadas con problemas de conexión entre iPhones y Macs a través de una conexión USB, y sé una solución temporal para solucionarlo. Pero me gustaría saber qué hace exactamente el usbd y por qué está causando problemas de conexión entre algunos iPhones y algunos Macs?

La cuestión

El problema es que algunos Macs e iPhones no tienen una conexión estable cuando se conectan a través del cable de iluminación USB de Apple. El iPhone a menudo intenta reconectarse muy rápidamente, a veces reconectándose 2-3 veces por segundo y continúa haciendo esto en un bucle sin fin. A veces se detendrá si meneas el cable de la Iluminación USB, lo insertas en otro puerto USB o pones en pausa el proceso particular de la Mac usbd en la Terminal.

Para mí, el problema parece ser más frecuente con el puerto USB izquierdo de mi MacBook Pro (pero ocurre con el puerto USB derecho ocasionalmente). Además, es mucho más probable que ocurra cuando el iPhone está en una carga baja (es decir, 0-30%), pero se sabe que ocurre en cargas más altas ocasionalmente como 70-80%.

Extrañamente, esto no afecta a todos los iPhone que se conectan con mi cable de iluminación USB de Apple o con mi iPhone que se conecta a otros Mac (en diferentes versiones de SO) usando el mismo cable. Así que estoy bastante desconcertado por qué está pasando esto.

Solución temporal

Una solución temporal a la que se ha respondido en las preguntas anteriores es ejecutar un comando sudo en la Terminal para detener el usbd proceso de correr en tu Mac. El comando es sudo killall -STOP -c usbd que pausa el proceso hasta que reinicie su Mac o introduzca el comando sudo killall -CONT -c usbd para reiniciar el proceso. Basándose en los comentarios sobre esta solución temporal, parece que se ha solucionado el problema de la conexión para la mayoría de la gente.

Pasos para la solución de problemas hasta ahora

Aparte de poner en pausa la usbd proceso, he estado trabajando con AppleCare y sus ingenieros durante varios meses para averiguar si se trata de un problema de software y por qué sucede con mi iPhone XS y mi MacBook Pro (modelo: 11,3, finales de 2013 Retina 15" con MacOS Mojave 10.14.6) utilizando el cable oficial USB a la iluminación de Apple.

Hemos realizado tantos pasos de solución de problemas y la mayoría de estos pasos no parecen arreglarlo, excepto la pausa de la usbd proceso. Sin embargo, los ingenieros de Apple se niegan a creer que el usbd proceso está causando el problema. Los pasos de solución de problemas que hemos tomado hasta ahora:

  • Reiniciar la NVRAM y el controlador SMC
  • Arrancó en modo seguro
  • Creé un nuevo usuario en mi MacBook Pro
  • Instaló una nueva partición e instalación de MacOS Catalina 10.15
  • Paquete de firmware de dispositivo móvil reinstalado en mi MacBook
  • Restablecer todos los ajustes del iPhone (pero sin borrarlo y restablecer los ajustes de fábrica)
  • Demonios de lanzamiento no-Apple borrados en mi Mac
  • Desactivó el software antivirus (Intego's VirusBarrier) y las VPNs en mi Mac
  • He borrado el plist de la Mac en la carpeta de bloqueo asociada a mi iPhone. Esta lista se utiliza para comprobar que el Mac y mi iPhone han confiado el uno en el otro anteriormente.
  • Restablecer la configuración de privacidad de mi iPhone. Al restablecer los ajustes de privacidad, también se elimina el archivo de confianza del iPhone que se utiliza para comprobar que has confiado en el Mac, de forma similar a la lista de bloqueo del Mac.
  • Triaje e inicio de mi MacBook Pro en MacOS High Sierra 10.13 en el Apple Genius Bar
  • Reemplazó la placa lógica y la placa de E/S de la MacBook Pro
  • Probé varios iPhone XS en el Apple Genius Bar, y todos exhibiendo el mismo tema con su propio USB de Apple a los cables de iluminación

Después de que la Barra de Genio de Apple reemplazara la (perfectamente bien) placa lógica y la placa de E/S, seguían exhibiendo el mismo problema de conexión con múltiples iPhones en su tienda usando sus propios Cables de Iluminación USB de Apple. No estoy seguro de qué modelos de iPhone probaron, pero lo probaron con el iPhone XS y XS Max como mínimo.

Curiosamente, la única vez que el número no se produjo fue cuando sacaron un cable de iluminación completamente nuevo de la tienda. En consecuencia, sugirieron que podría ser un problema con el cable de iluminación, pero no explica por qué esto sólo ocurre con algunos iPhones y algunos modelos de Mac, pero no afecta a otros dispositivos que utilizan el mismo cable (potencialmente defectuoso)?

Además, a pesar de no tener nunca un cable deshilachado y almacenar mis cables apropiadamente, los nuevos cables exhiben el problema al mes de usarlos, pero de nuevo no con todos los Macs o con todos los iPhones?

Mis propias investigaciones

Aunque no tengo un 100% de fluidez en el funcionamiento del software, he jugado en la terminal con algunos comandos, he borrado el archivo plist de bloqueo a través de rootless, he leído los mensajes de eventos de registro de la consola relacionados con mi conexión del iPhone; y he intentado buscar en línea posibles soluciones que expliquen lo que el usbd El proceso lo hace. Pero ninguna solución hasta ahora arregla el problema.

Leyendo la descripción de la página del hombre para el usbd proceso, he encontrado el usbd se utiliza para configurar específicamente los dispositivos iOS conectados al Mac. No creo que se utilice para ninguna otra conexión USB, ya que funciona bien con mis discos duros externos/flash drives.

La página del hombre describe el usbd proceso de la siguiente manera:

usbd permite al sistema configurar los dispositivos USB iOS para cargar y presentan notificaciones relacionadas con los dispositivos USB.

Este comando no está destinado a ser invocado directamente

La única otra cosa que sé sobre el usbd es que permite a los Macs proveer 1600mA adicionales de energía a los dispositivos iOS, cuando la especificación máxima de USB permite sólo 500mA de energía. Poner en pausa el usbd reduce la salida de energía del puerto USB al estándar de 500mA, por lo que hace que el iPhone se cargue considerablemente más lento, pero le da una conexión estable. Puedes observar la diferencia en la salida de energía al ejecutar el comando system_profiler SPUSBDataType en la terminal.

Cuando el usbd proceso está en marcha, obtengo la siguiente salida de energía:

Current Available (mA): 500
Current Required (mA): 500
Extra Operating Current (mA): 1600
Sleep current (mA): 2100

Desactivando usbd y al introducir el comando anterior se obtiene la siguiente salida de energía:

Current Available (mA): 500
Current Required (mA): 500
Extra Operating Current (mA): 0

Además, aparte de hacer una pausa en la usbd la única otra vez que la conexión funciona es si mi Mac está corriendo Linux o Windows en una partición, pero no creo que estos proporcionen la misma potencia de salida como si estuviera corriendo en MacOS.

Conclusión y pregunta

Después de realizar tantos pasos de solución de problemas con Apple, sugieren que se trata de un problema con el cable de iluminación USB, pero esto no explica por qué el mismo cable funciona con otras Mac u otros dispositivos.

La única solución real (pero temporal) es detener la usbd pero como he establecido que reduce la salida de energía de la conexión USB del iPhone, lo que significa que la carga tardará más tiempo, aunque con una conexión estable y continua.


Así que a mi pregunta, ¿alguien podría proporcionar información adicional sobre qué hace exactamente el usbd y ¿alguien comentaría si se trata de un error de software o de un problema físico del cable de iluminación?

Apreciaría si alguien tiene alguna idea de cuál es la causa root del problema, y espero que podamos encontrar una solución para los muchos otros afectados por el mismo problema. Muchas gracias por su tiempo.


Por favor, tened en cuenta que es mi primera pregunta en este intercambio de apuestas, así que disculpadme si hay algún problema con mi puesto.

2 votos

Definitivamente diría que se trata de un problema de software, viendo la cantidad de intentos que hiciste con otro hardware...

0 votos

Gracias @X_841 por tu comentario. Yo también lo pensé, pero es extraño que Apple se niegue a reconocer que es un error

0 votos

Bueno, Apple es Apple a veces... ¿Tienes una tienda de reparación local? Llámalos, explícales tu problema y lo que has hecho, seguro que te confirmarán que has superado un fallo de hardware

2voto

Daniela Teodori Puntos 11

Yo tenía el mismo problema y pensaba que mi Mac tenía algún problema de corriente en los conectores usb. Resolví el problema usando cables usb a lightning de otra marca, certificados para dispositivos Apple. Parece que son un poco más gruesos que los originales. He visto ese problema en varios iMac antiguos (2012-2014) y cada vez lo he solucionado usando un cable de otra fábrica.

0 votos

Me he dado cuenta de que los cables de carga de Apple no tienen un alivio de tensión muy robusto y a veces se estropean en un año. Una forma de mejorarlos antes de fallan es poner una envoltura retráctil sobre ellos, con unos tres milímetros de la misma sobre el plástico duro y lo suficiente sobre el cable para pasar un poco de la vaina extra incorporada.

1voto

gio91ber Puntos 71

Muchas gracias por el detallado informe. Tengo el mismo problema en MacOS 10.15.4, nunca tuve ningún problema con el mismo cable y el mismo iPhone en MacOS 10.13.

El podría haber añadido algunas comprobaciones de cables para usbd para detener el uso no oficial del cable.

Sin embargo, hay una cosa curiosa. Aquí en Catalina incluso cuando usbd ha sido eliminado esta es la salida de system_profiler SPUSBDataType :

 iPhone:

      Product ID: 0x12a8
      Vendor ID: 0x05ac (Apple Inc.)
      Version: 8.01
      Serial Number: [REDACTED]
      Speed: Up to 480 Mb/s
      Manufacturer: Apple Inc.
      Location ID: 0x14200000 / 18
      Current Available (mA): 500
      Current Required (mA): 500
      Extra Operating Current (mA): 1600
      Sleep current (mA): 2100

y realmente carga el iPhone bastante rápido.

¿Hay alguna manera de desactivar permanentemente usbd ?

También dirijo locate usbd Aquí está /usr/share/sandbox/com.apple.usbd.sb :

;; Copyright (c) 2012 Apple Inc.  All Rights reserved.
;;
;; WARNING: The sandbox rules in this file currently constitute 
;; Apple System Private Interface and are subject to change at any time and
;; without notice. The contents of this file are also auto-generated and not
;; user editable; it may be overwritten at any time.
;;

(version 1)

(deny default)
(import "system.sb")

(allow distributed-notification-post)

(allow mach-per-user-lookup)

(allow file*
       (literal "/private/var/root/Library/Preferences/com.apple.usbd.plist")
)

(allow file-read*
       (literal "/AppleInternal")
       (literal "/usr/libexec")
       (literal "/usr/libexec/usbd")
       (literal "/private/var/root")
       (literal "/dev/console")
       (literal "/private/var/root/Library/Preferences/.GlobalPreferences.plist")
       (literal "/Library/Preferences/.GlobalPreferences.plist")
       (literal "/Library/Application Support/CrashReporter/SubmitDiagInfo.domains")
       (regex   "^/private/var/root/Library/Preferences/ByHost/\.GlobalPreferences\..*\.plist$")
)

(allow file-read-metadata
    (literal "/")
    (literal "/Library")
    (literal "/Library/Application Support/CrashReporter/SubmitDiagInfo.domains")
    (literal "/private")
    (literal "/private/var")
    (literal "/private/var/root")
)

;;crashtracer support

(allow system-socket)
(allow file-read-metadata
    (subpath "/Library/Application Support/CrashReporter/SubmitDiagInfo.domains")
    (literal "/Library/Caches/com.apple.DiagnosticReporting.HasBeenAppleInternal"))

(allow mach-lookup
    (global-name "com.apple.USBAgent")
    (global-name "com.apple.PowerManagement.control")
    (global-name "com.apple.SystemConfiguration.configd")
    (global-name-regex #"^com.apple.distributed_notifications")
)

(allow ipc-posix-shm
       (ipc-posix-name "apple.shm.notification_center")
)

(allow iokit-open
       (iokit-user-client-class "IOUSBDeviceUserClientV2")
)

¿Significa esto algo para alguien? Me gustaría comprobar las diferencias entre usbd de 10.13 a 10.15.

0 votos

Bienvenido a Ask Different. Si nadie puede responder a esto, lo ideal es hacer una pregunta de seguimiento y enlazarla aquí. Grandes detalles que ayudarán a otros, sólo que la gente podría no ver su pregunta lateral y ver esto como una respuesta

1 votos

@bmike gracias, y perdón por meter la pata

1 votos

No te preocupes. Bienvenido al sitio. Estás poniendo un gran contenido.

1voto

cmdr_keen Puntos 31

Muchas gracias por hacer el trabajo de investigación de este asunto. Mi suegra tiene este problema cada vez que conecta su iPhone para descargar fotos, así que necesitaba encontrar una solución sencilla para que la abuela pudiera pasar las fotos de sus nietos a su ordenador a pesar de la desconexión constante. Usando la información que @AVelj proporcionó para la solución temporal, creé un LaunchDaemon para hacerlo permanente. Esto es lo que hice.

He creado un shell script llamado connect-iPhone.sh que contenía el siguiente texto:

#!/bin/bash
killall -STOP -c usbd

Lo almacené en /Usuarios/<nombre de usuario>/Documentos/conectar-iPhone.sh

Luego creé otro archivo llamado pauseusbd.plist con el siguiente texto:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Label</key>
        <string>com.pauseusbd.app</string>

        <key>Program</key>
        <string>/Users/<username>/Documents/connect-iPhone.sh</string>

        <key>RunAtLoad</key>
        <true/>
    </dict>
</plist>

Lo guardé para /Librería/LaunchDaemons . Entonces utilicé lo siguiente para que Root fuera el propietario:

sudo chown root:wheel /Library/LaunchDaemons/pauseusbd.plist

Luego ejecuté lo siguiente para cargar el plist y que se ejecute en cada reinicio:

sudo launchctl load /Library/LaunchDaemons/pauseusbd.plist

Por supuesto, esto evitará que los dispositivos de Apple se carguen más rápido de lo permitido por la especificación USB, pero también lo mantendrá conectado. Y eso es lo único que le importa a mi suegra, amante de los nietos. Ella tiene un cargador de pared para cargar.

Sé que esto no responde directamente al por qué de la pregunta del OP, pero quería proporcionar una solución más permanente para cualquier otra persona que se vea afectada por este problema. Y gracias de nuevo a @AVelj por la exhaustiva documentación.

Referencias:

¡Este puesto!

Plist en /System/Library/LaunchAgents no se carga al reiniciar

¿Cuáles son las diferencias entre LaunchAgents y LaunchDaemons?

0 votos

Oye, ¡muchas gracias por tu contribución! Supongo que esto también funcionará con otros shells como Fish y Zsh.

0 votos

Esto es exactamente lo que quiero conseguir. Sin embargo, creo que he seguido todos tus pasos correctamente pero sigo teniendo el mismo problema. Si a ti te ha funcionado, no sé qué puede estar fallando aquí.

-1voto

Naveed Abbas Puntos 126

usbd se supone que está haciendo lo que ya has mencionado y menos sospecho que sea un problema.

Me parece que esto es un asunto del cable:

  1. Cada vez que usabas un nuevo cable el problema estaba resuelto.
  2. los cables después de algún tiempo pierden su calidad por varias razones.
  3. Los nuevos iPhones requieren una corriente más estable. (¡Necesita una cita!)

2 votos

¿Cómo se explica el problema del cable cuando funciona en el mismo ¿MacBook con un sistema operativo diferente instalado/ejecutado?

1 votos

Además, los cables no pierden su calidad (con un uso normal) en un mes.

0 votos

Su tercer punto no tiene sentido para mí tbh. Yo diría (si acaso) que es lo contrario, ya que su batería se degrada con el tiempo...

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X