Como deixar uma porta USB ligada durante o desligamento para carregar dispositivos móveis?

15

Meu laptop Sony VAIO possui um recurso que permite manter uma porta USB ativada mesmo quando meu laptop é desligado. É dado no manual aqui . Pode ser ligado ou desligado a partir do software Vaio que acompanha o Windows pré-instalado.

No passado, quando eu inicializava duas vezes com o Windows, era possível ativá-lo no Windows, e ele continuava ligado, mesmo depois de usar o Ubuntu várias vezes. Por alguma razão, parou de funcionar recentemente. Mas não tenho mais o Windows e gostaria de reativá-lo no Ubuntu. Seria divertido se eu pudesse ativá-lo manualmente no Linux. Eu pesquisei muito no google, especialmente para obter informações na minha placa-mãe (HannStar J MV-6 94V-0), e criei seus esquemas em um site vietnamita . Menciono especificamente o carregamento por USB. Mas não tenho idéia de como usar as informações.

Muitas pessoas estão sugerindo que o BIOS pode ser ativado , mas verifiquei novamente e não vejo nada no BIOS. Mas também observei que o BIOS possui muito poucos campos, o que me faz suspeitar que os recursos do BIOS possam estar ocultos. Vou tentar desbloqueá-los. Nesse meio tempo, a saída de dmidecodeé anexada no final da pergunta.

Não sei se esse recurso requer suporte especial de hardware, mas de qualquer maneira é possível na minha máquina. Os telefones inteligentes tendem a ficar com pouca bateria rapidamente e você sempre pode conectá-lo ao laptop na sua bolsa e carregá-lo em movimento quando estiver na faculdade ou viajando. Isso não seria apenas legal e prático, mas também economizaria dinheiro, porque não precisaria comprar um banco de potência.

Aqui estão os dados coletados:

Inicializei manualmente no kernel 3.18, mas o problema ainda está lá. Sob a orientação de Sneetsher, arquivei um relatório de bug aqui .

daltonfury42
fonte
2
A maioria dos laptops carrega um dispositivo conectado anteriormente no modo de suspensão, mas a carga de desligamento é um recurso de hardware. Você pode tentar executar o software de controle usando o Wine.
TheWanderer 26/05
Nunca pensei nisso, vai usar vinho, mas apenas como último recurso. Não há como eu fazer isso manualmente?
daltonfury42
Talvez nas configurações do BIOS.
TheWanderer
Portanto, sua única opção é um programa Linux ou a possibilidade de que a versão do Windows funcione.
TheWanderer
3
Tenho certeza de que deve haver uma configuração de BIOS para isso em algum lugar (você checou a seção avançada)? Isso é chamado de porta usb "sleep and charge". Acho que o "VAIO Control Center" apenas alterna a configuração do BIOS de alguma forma. Pode haver uma maneira de lidar com o Linux, mas eu não sei o suficiente sobre isso. Olhe para dentro dmidecodee smbioscomo talvez isso possa levá-lo na direção certa? Observe que outras marcas de laptops têm esses tipos de portas USB e funcionam com o Ubuntu (desde que estejam ativadas via BIOS).
Mason81 29/05

Respostas:

7

É melhor começar onde outros pararam com sony-laptopo módulo do kernel do Linux.

  1. Verifique se está carregado

    lsmod | grep sony
    
  2. Caso contrário, carregue-o

    sudo modprobe sony-laptop
    
  3. Verifique se existe alguma entrada / função correspondente para carregamento por USB ( usb_chargeatributo obtido da fonte):

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

    Como verifico a fonte do driver, aqui estão as funções correspondentes (podem não ser para todos os modelos):

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

    Definição de funções completa aqui (parte de sony-laptop.c)

    0x0155parece ser detectado no seu laptop a partir das mensagens do kernel . O módulo criado touchpad, battery_care_limiter, read-only handles, somente leitura battery_care_healthSysFS atributos mas nada mais (incluindo usb_charge).

    Eu verifiquei a fonte do kernel do Ubuntu procurando pela função de carga USB:

    • Ubuntu 14.04 Trusty (ainda não adicionado), versão do kernel 3.13

      Se você estiver usando esta versão, a maneira mais fácil é instalar o kernel do Utopic:

      sudo apt-get install linux-generic-lts-utopic
      
    • Ubuntu 14.10 Utopic (está lá), versão 3.16 do kernel

    Se não estiver lá, será difícil / arriscado apenas se você estiver disposto a:

    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.
    

    Consulte o arquivo Leiame .

  4. Como o kernel atualizado pelo OP para 3.16.0-38-generic, usb_chargeé criado com alguns outros atributos SYSFS.

    Lendo documentos semelhantes do kernel do driver, 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 o estado atual:

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

    Para desativá-lo:

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

    Para habilitá-lo:

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

Referências:

user.dz
fonte
Estranho o suficiente, depois de atualizar para 3.18.3-031803-generic, vejo usb_charge, mas com o valor 1!
precisa saber é o seguinte
Atualizei a pergunta até o final com o que você solicitou e um pouco mais de informações até o final e observe que alterei o valor echo 0 | sudo tee -a /sys/devices/platform/sony-laptop/usb_charge.
precisa saber é o seguinte
@ user3073656, Ok, você pode se juntar a mim aqui chat.stackexchange.com/rooms/24450/…
user.dz 4/15/15
Eu concedi a você a recompensa total, porque, embora não tenha resolvido o problema completamente, me apontou na direção certa.
precisa saber é o seguinte