¿Cómo dejar un puerto USB alimentado durante el apagado para cargar el móvil?

15

Mi computadora portátil Sony VAIO tiene una función que me permitirá mantener un puerto USB con alimentación incluso cuando mi computadora portátil está apagada. Se da en el manual aquí . Se puede activar o desactivar desde el software Vaio que viene con Windows preinstalado.

En el pasado, cuando tenía un arranque dual con Windows, podía habilitarlo iniciando en Windows, y permanecería encendido, incluso después de usar Ubuntu varias veces. Por alguna razón, dejó de funcionar recientemente. Pero ya no tengo Windows, y me gustaría volver a habilitarlo desde Ubuntu. Sería divertido si pudiera encenderlo manualmente desde Linux. Excavaba mucho en google, especialmente para obtener información sobre mi placa base (HannStar J MV-6 94V-0), y se me ocurrió su esquema en un sitio vietnamita . Menciono específicamente la carga USB. Pero no tengo idea de cómo usar la información.

Mucha gente sugiere que se puede habilitar desde el BIOS , pero lo he comprobado nuevamente y no veo nada en el BIOS. Pero también observé que el BIOS tiene muy pocos campos, lo que me hace sospechar que las características del BIOS podrían estar ocultas. Intentaré desbloquearlos. Mientras tanto, la salida de dmidecodese agrega hacia el final de la pregunta.

No sé si esta función requiere soporte de hardware especial, pero de todos modos es posible en mi máquina. Los teléfonos inteligentes tienden a quedarse sin batería rápidamente, y siempre puede conectarlo a la computadora portátil en su bolso y cargarlo mientras viaja cuando está en la universidad o de viaje. Eso no solo sería genial y práctico, sino que también ahorraría dinero porque no tendré que comprar un banco de energía.

Aquí están los datos recopilados:

Arranqué manualmente en el kernel 3.18, pero el problema sigue ahí. Siguiendo la guía de Sneetsher, he presentado un informe de error aquí .

daltonfury42
fuente
2
La mayoría de las computadoras portátiles cargarán un dispositivo conectado previamente cuando esté en modo de suspensión, pero la carga de apagado es una característica de hardware. Puede intentar ejecutar el software de control con Wine.
TheWanderer
Nunca pensé en eso, usaré vino, pero solo como último recurso. ¿No hay forma de que pueda lograr esto manualmente?
daltonfury42
Tal vez en la configuración de su BIOS.
TheWanderer
Entonces, su única opción es un programa Linux o la posibilidad de que la versión de Windows funcione.
TheWanderer
3
Estoy bastante seguro de que tiene que haber una configuración de BIOS para esto en alguna parte (¿verificó la sección avanzada)? Esto se llama un puerto usb "dormir y cargar". Creo que el "Centro de control VAIO" simplemente alterna la configuración del BIOS de alguna manera. Puede haber una forma de hacerlo desde Linux, pero no sé lo suficiente sobre eso. ¿Mirar hacia adentro dmidecodey smbioscomo tal vez eso puede apuntarlo en la dirección correcta? Tenga en cuenta que otras marcas de computadoras portátiles tienen este tipo de puertos USB y funcionan con Ubuntu (siempre que estén habilitados a través del BIOS).
mason81

Respuestas:

7

Es mejor comenzar donde otros se detuvieron con el sony-laptopmódulo del kernel de Linux.

  1. Comprueba si está cargado

    lsmod | grep sony
    
  2. Si no, cárgalo

    sudo modprobe sony-laptop
    
  3. Compruebe si hay alguna entrada / función correspondiente para la carga USB ( usb_chargeatributo obtenido de la fuente):

    tree /sys/devices/platform/sony-laptop/
    

    Cuando reviso la fuente del controlador, aquí están las funciones correspondientes (puede que no sea para todos los modelos):

    ...
    static int sony_nc_usb_charge_setup(struct platform_device *pd);
    static void sony_nc_usb_charge_cleanup(struct platform_device *pd);
    ...
    

    Definición de funciones completas aquí (parte de sony-laptop.c)

    0x0155parece detectarse en su computadora portátil a partir de los mensajes del kernel . El módulo creado touchpad, battery_care_limitery de sólo lectura handles, de sólo lectura battery_care_healthSYSFS atributos, pero nada más (incluido usb_charge).

    Revisé la fuente del kernel de Ubuntu buscando la función de carga USB:

    • Ubuntu 14.04 Trusty (aún no agregado), kernel versión 3.13

      Si está utilizando esta versión, la forma más fácil es instalar el núcleo Utopic:

      sudo apt-get install linux-generic-lts-utopic
      
    • Ubuntu 14.10 Utopic (está ahí), kernel versión 3.16

    Si no está allí, es difícil / arriesgado solo si está preparado para:

    Development:
    ------------
    
    If you want to help with the development of this driver (and
    you are not afraid of any side effects doing strange things with
    your ACPI BIOS could have on your laptop), load the driver and
    pass the option 'debug=1'.
    
    REPEAT: DON'T DO THIS IF YOU DON'T LIKE RISKY BUSINESS.
    
    In your kernel logs you will find the list of all ACPI methods
    the SNC device has on your laptop.
    

    Ver archivo Léame .

  4. Como el kernel actualizado por OP a 3.16.0-38-generic, usb_chargese crea con algunos otros atributos SYSFS.

    Lectura de documentos de kernel de controladores similares, sysfs-driver-samsung-laptop :

    What:     /sys/devices/platform/samsung/usb_charge
    Date:     December 1, 2011
    KernelVersion:    3.3
    Contact:  Corentin Chary <[email protected]>
    Description:  Use your USB ports to charge devices, even
          when your laptop is powered off.
          1 means enabled, 0 means disabled.
    

    Para verificar el estado actual:

    cat /sys/devices/platform/sony-laptop/usb_charge
    

    Para deshabilitarlo:

    echo 0 | sudo tee -a /sys/devices/platform/sony-laptop/usb_charge
    

    Para habilitarlo:

    echo 1 | sudo tee -a /sys/devices/platform/sony-laptop/usb_charge
    

Referencias

user.dz
fuente
Por extraño que parezca, después de actualizar a 3.18.3-031803-generic, veo usb_charge, ¡pero con valor 1!
daltonfury42
He actualizado la pregunta hasta el final con lo que pediste y un poco más de información, hasta el final, y noto que cambié el valor echo 0 | sudo tee -a /sys/devices/platform/sony-laptop/usb_charge.
daltonfury42
@ user3073656, Ok, puedes unirte a mí aquí chat.stackexchange.com/rooms/24450/…
user.dz
Te he otorgado la recompensa completa, porque aunque no resolvió el problema por completo, me señaló en la dirección correcta.
daltonfury42