¿Cómo me despierto del sueño usando un teclado bluetooth?

8

Tengo un Mac book pro y un muelle Henge. El acoplamiento no es más que un soporte que le permite conectar fácilmente algunos dispositivos para que pueda "acoplar" su MBP. También tengo un teclado inalámbrico Apple. El teclado es bluetooth.

El teclado funciona bien "normalmente", pero el problema es que cuando cierro la tapa de mi MBP, la computadora portátil se duerme (esto no se puede evitar) Coloco la computadora portátil en la base (con la tapa cerrada) y no puedo despertar de dormir (supongo que no hay bluetooth). Si uso mi gamepad para despertar el dispositivo del modo inactivo, aparece el mensaje de contraseña de bloqueo de pantalla, sin embargo, no puedo ingresar nada porque el teclado bluetooth no está conectado.

Entonces, ¿cómo puedo reactivar el Mac Book Pro con un teclado bluetooth (el teclado inalámbrico de Apple), o si no lo hago, obligarlo a volver a conectarse cuando la máquina se reanude para poder escribir mi contraseña?

Aquí están mis detalles de hardware.

Mac Book Pro 6.2 (Sé que normalmente no funciona pero es una plataforma de hardware cerrada)

Bus 001 Dispositivo 008: ID 050d: 0017 Componentes Belkin B8T017 Bluetooth + EDR 2.1
Bus 001 Dispositivo 007: ID 05ac: 8218 Apple, Inc. Controlador de host Bluetooth

Versión de Linux

Linux macbook 3.5.0-22-generic #34-Ubuntu SMP

Ubuntu 12.10

Que he hecho:

Emparejé mi teclado inalámbrico Apple con Ubuntu.

Lo que espero

Cuando aprieto una tecla en mi teclado inalámbrico Apple, el sistema se despierta.

Lo que pasa:

Cuando aplasto una tecla en mi teclado inalámbrico de Apple; Nada.....

Lo que espero de una respuesta aceptable:

Una manera de hacerlo así cuando aprieto una tecla de mi teclado inalámbrico de Apple, mi computadora se despierta y puedo continuar con mi día de computación.

De nota:

Usualmente odio ver esto y decirlo, pero ... Funciona en Mac OS X y en Windows, así que sé que el hardware es capaz de hacerlo.

coteyr
fuente

Respuestas:

7

Lo que encontré

Me tomaré el tiempo para explicar algunas cosas que descubrí. Esto debería ayudar a las personas a entender por qué este es un proceso tan complicado y qué pueden hacer para ayudarlo a mejorar, al menos para ellos.

Primero, la radio Bluetooth en el MBP es un dispositivo "USB". Esto es bastante común en las computadoras portátiles e incluso en algunas computadoras de escritorio. Debido a eso, Linux lo trata como un dispositivo USB y puede configurarlo en consecuencia.

En segundo lugar, la radio Bluetooth tiene dos modos, el modo HID con un "perfil" muy básico para teclados y ratones solamente. Este modo es lo que le permite usar el teclado antes de que haya una aplicación que administre el dispositivo Bluetooth. Por ejemplo, cuando usa su teclado Bluetooth en el menú GRUB, ese es el modo HID. Su computadora portátil y su teclado aún deben estar vinculados, pero pueden operar a este nivel muy bajo sin problemas ni intervención (nuevamente una vez emparejados). Sin embargo, el modo HID es muy limitado y ciertas cosas no funcionarán. Por ejemplo, el nivel de batería del teclado no funcionará. También en el modo HID tuve dificultades con las teclas de función y las teclas multimedia (en este teclado son la misma tecla y se puede activar por software).

A continuación, debe obtener el teclado para enviar "algo" a la computadora portátil. También necesita la computadora portátil para recibir "algo". Luego tienes que unirlo todo para que la computadora portátil se active realmente.

Finalmente, Linux, Ubuntu, Bluez o alguien parece pensar que todos los controladores Bluetooth deberían actuar en modo HCI. Este es probablemente un valor predeterminado muy sensato dado que incluso este teclado es muy limitado en modo HID, y que cualquier cosa más allá de un simple mouse y teclado (por ejemplo, un teléfono celular o un auricular) requeriría el modo HCI. Sin embargo, el modo HCI requiere una pila completa de software para ejecutarse y no se ejecutará mientras la computadora portátil esté suspendida / suspendida / apagada. Entonces, de manera predeterminada, cuando su computadora portátil duerme, desconecta su teclado y deja de escuchar.

Pasos reales para que funcione

Paso 0: una solución alternativa

Cuando estaba haciendo esto, me sentí muy frustrado por el hecho de que no podía hacer nada para solucionar el problema. No puedes hacer nada cuando la computadora portátil está dormida, y al menos con los Mac Book Pros no puedes cerrar la tapa sin que se vayan a dormir. Entonces, queda una situación en la que Video no funcionará (porque va a su monitor externo que no está enchufado cuando está desacoplado) o puede ver todo pero no tiene teclado (porque no funciona / emparejado / lo que sea, y el interno no es accesible). Para evitar esto deberías toparte con él. Use el teclado visual en la pantalla de inicio de sesión de LDM. Si se despierta con una solicitud de contraseña, debería poder hacer clic en cambiar de usuario y luego usar el teclado visual para iniciar sesión. Mientras inicie sesión como el mismo usuario, su sesión no debe perderse. Dicho eso, no lo haría

Paso 1: pre-empareje su teclado.

Cuando estaba probando, noté que este paso era obligatorio. Sin embargo, no entiendo completamente por qué. Apple hace cosas extrañas, así que voy a dejarlo ir.

  1. Restablece tu PRAM / NVRAM / Lo que sea. Esto borrará la configuración actual de OS X, y puede que no sea necesario, pero es mejor comenzar a limpiar. El sitio web de soporte de Apple tiene instrucciones . No es necesario restablecer la PMU.
  2. Inicie o reinicie en OS X y empareje su teclado normalmente. Recomiendo dejar todos sus otros dispositivos bluetooth apagados y enfocarse en su teclado. Por lo que puedo decir, esto almacenará cierta información en NVRAM y todo el teclado para comunicarse con la computadora portátil apagada.
  3. Haga clic en Avanzado (en OS X, una vez emparejado) y marque "Permitir que los dispositivos Bluetooth activen la computadora". Una vez más, el sitio web de soporte de Apple tiene instrucciones
  4. Reinicie la computadora en Linux. En ReFIT / GRUB / durante el arranque, el teclado debería funcionar bien.

Paso 2: hacer que Linux funcione con el teclado

Por alguna razón, el teclado perderá su emparejamiento al iniciar sesión. Probablemente porque el controlador Bluetooth está en modo HCI. Para corregir esto, debe emparejarse en Linux. Esto interrumpirá el emparejamiento que hizo en el paso 1, pero no interrumpirá el modo HID cuando la computadora portátil se apaga o se inicia. Dicho esto, cuando reinicies, tu teclado no funcionará hasta que tu pila de bluetooth vuelva a funcionar completamente en modo HCI. Esto se debe a que el teclado está tratando de hablar en modo HCI pero nadie está escuchando. Si apaga y espera a que se agote el tiempo de conexión, el teclado volverá a funcionar en modo HID.

  1. Instale bluez-compat ejecutando sudo apt-get install bluez-compatEsto le permitirá emparejarse con facilidad. Sin el administrador de Bluetooth, simplemente se me cayó.
  2. Empareje su teclado normalmente con Linux. Ejecute Bluetoothdesde Unity Dash y haga clic en el signo más. Ponga su teclado en modo de emparejamiento (mantenga presionado el botón de encendido en el teclado inalámbrico de Apple) y siga las instrucciones. Debe emparejarse sin problemas. En este punto, su teclado debería funcionar bien en Linux e incluso envía señales a un controlador HID cuando la computadora portátil está dormida.

Paso 3: decirle a Linux que necesita despertarse

Ahora necesitamos decirle a Linux que se despierte si el dispositivo bluetooth recibe "algo". Hacer esto es bastante fácil gracias a los scripts en este sitio . Las instrucciones básicas están a continuación, pero debe leer el sitio si algo no está claro. Casi todo esto proviene del sitio vinculado.

  1. Instalar algunas dependencias sudo apt-get install notify-send zenity
  2. Descargue el script de reanudación de udev y cópielo en / usr / local / sbin / enable-wakeup.
  3. Descargue el script de selección de dispositivo y cópielo en / usr / local / sbin / select-resume-devices
  4. Hacer que los scripts sean ejecutables: chmod a+x /usr/local/sbin/select-resume-devicesy chmod a+x /usr/local/sbin/enable-wakeup.
  5. Ejecute con permisos de root el script de selección de dispositivo. sudo /usr/local/sbin/select-resume-devices
  6. Seleccione, como mínimo, "Apple, Inc. Bluetooth Host Controller", "Belkin Components B8T017 Bluetooth + EDR 2.1", "Apple Inc. Teclado interno / Trackpad (ANSI)" y cualquier otro dispositivo que desee usar para reanudar su computadora .
  7. Haga clic en Aceptar.
  8. Revise el archivo /etc/udev/rules.d/90-hid-wakeup-enable.rules y asegúrese de que tenga sentido.
  9. Reinicia la computadora.

Paso 4: pruebas y capturas

Todo debería funcionar bien ahora que reinició su computadora. Una vez que haya vuelto a iniciar sesión, coloque su computadora en modo de suspensión de alguna manera. Golpee una tecla en su teclado y el portátil debería reanudarse. Sin embargo, hay un par de capturas.

  1. Cuando la computadora está en modo de suspensión, está buscando dispositivos HID. Entonces el teclado comienza en modo HID. Cuando termine de reanudar desde el modo de suspensión, Linux está buscando un dispositivo HCI. El teclado (no la computadora portátil) necesita restablecer la conexión. Esto sucede naturalmente después de unos 45 segundos. Puede forzarlo quitando las baterías, pero eso puede estropear el emparejamiento. Si no usa el teclado para reanudar el sueño, esto no es un problema.
  2. Al reiniciar, el teclado seguirá intentando comunicarse en modo HCI, pero la computadora portátil solo buscará dispositivos HID. Nuevamente después del tiempo de espera, el teclado lo obtendrá y funcionará correctamente nuevamente.
coteyr
fuente