如何在关机期间让 USB 端口保持供电以便为手机充电?

dal*_*y42 15 hardware usb vaio power-management drivers

我的索尼 VAIO 笔记本电脑有一项功能,即使我的笔记本电脑关机,我也可以让一个 USB 端口保持供电。它在此处的手册中给出。它可以通过预装的 Windows 附带的 Vaio 软件打开或关闭。

过去,当我使用 Windows 进行双启动时,我可以通过启动进入 Windows 来启用它,即使在多次使用 Ubuntu 之后,它仍然会一直运行。由于某种原因,它最近停止工作。但是我不再有 Windows,并且想从 Ubuntu 重新启用它。如果我可以从 Linux 手动打开它会很有趣。我在谷歌上挖掘了很多,特别是关于我的主板(HannStar J MV-6 94V-0)的信息,并在越南网站上找到了它的原理图。我特别提到了 USB 充电。但我不知道如何使用这些信息。

很多人建议可以从 BIOS 启用它,但我再次检查并在 BIOS 中没有看到任何内容。但我也观察到 BIOS 的字段很少,这让我怀疑 BIOS 功能可能被隐藏了。我会尝试解锁它们。同时,输出dmidecode附加到问题的末尾。

我不知道这个功能是否需要特殊的硬件支持,但无论如何它在我的机器上是可能的。智能手机的电池电量往往会很快耗尽,您可以随时将其连接到包中的笔记本电脑,并在上大学或旅行时在旅途中充电。这不仅很酷很方便,而且还省钱,因为我不必购买移动电源。

以下是收集到的数据:

我手动启动到内核 3.18,但问题仍然存在。在 Sneetsher 的指导下,我在这里提交了错误报告。

use*_*.dz 7

最好从其他人用sony-laptopLinux 内核模块停止的地方开始。

  1. 检查它是否已加载

    lsmod | grep sony
    
    Run Code Online (Sandbox Code Playgroud)
  2. 如果没有,加载它

    sudo modprobe sony-laptop
    
    Run Code Online (Sandbox Code Playgroud)
  3. 检查是否有相应的 USB 充电入口/函数(usb_charge属性来自源):

    tree /sys/devices/platform/sony-laptop/
    
    Run Code Online (Sandbox Code Playgroud)

    当我查看驱动程序源时,以下是相应的功能(可能不适用于所有型号):

    ...
    static int sony_nc_usb_charge_setup(struct platform_device *pd);
    static void sony_nc_usb_charge_cleanup(struct platform_device *pd);
    ...
    
    Run Code Online (Sandbox Code Playgroud)

    此处的完整功能定义(来自 的部分sony-laptop.c

    0x0155似乎在您的笔记本电脑上从内核消息中检测到。该模块创建了touchpad, battery_care_limiter, read-only handles, read-only battery_care_healthSYSFS 属性,但没有其他(包括usb_charge)。

    我查看了 Ubuntu 内核源码,寻找 USB 充电功能:

    • Ubuntu 14.04 Trusty(尚未添加),内核版本 3.13

      如果您正在使用此版本,最简单的方法是安装 Utopic 内核:

      sudo apt-get install linux-generic-lts-utopic
      
      Run Code Online (Sandbox Code Playgroud)
    • Ubuntu 14.10 Utopic(它在那里),内核版本 3.16

    如果它不存在,则只有在您达到以下条件时才很难/有风险:

    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.
    
    Run Code Online (Sandbox Code Playgroud)

    请参阅自述文件

  4. 由于 OP 将内核升级到 3.16.0-38-generic,usb_charge因此创建了一些其他 SYSFS 属性。

    阅读类似的驱动程序内核文档,sysfs-driver-samsung-laptop

    What:     /sys/devices/platform/samsung/usb_charge
    Date:     December 1, 2011
    KernelVersion:    3.3
    Contact:  Corentin Chary <corentin.chary@gmail.com>
    Description:  Use your USB ports to charge devices, even
          when your laptop is powered off.
          1 means enabled, 0 means disabled.
    
    Run Code Online (Sandbox Code Playgroud)

    要检查当前状态:

    cat /sys/devices/platform/sony-laptop/usb_charge
    
    Run Code Online (Sandbox Code Playgroud)

    要禁用它:

    echo 0 | sudo tee -a /sys/devices/platform/sony-laptop/usb_charge
    
    Run Code Online (Sandbox Code Playgroud)

    要启用它:

    echo 1 | sudo tee -a /sys/devices/platform/sony-laptop/usb_charge
    
    Run Code Online (Sandbox Code Playgroud)

参考: