Jak pozostawić port USB zasilany podczas zamykania w celu ładowania telefonu komórkowego?

15

Mój laptop Sony VAIO ma funkcję, która pozwala mi zasilać jeden port USB, nawet gdy mój laptop jest wyłączony. Jest podany w instrukcji tutaj . Można go włączać i wyłączać za pomocą oprogramowania Vaio dostarczonego ze wstępnie zainstalowanym systemem Windows.

W przeszłości, kiedy korzystałem z podwójnego rozruchu w systemie Windows, mogłem włączyć go, uruchamiając się w systemie Windows i pozostawał włączony, nawet po kilkukrotnym użyciu Ubuntu. Z jakiegoś powodu ostatnio przestał działać. Ale nie mam już systemu Windows i chciałbym go ponownie włączyć w Ubuntu. Byłoby fajnie, gdybym mógł włączyć go ręcznie z Linuksa. Dużo przekopałem się w google, szczególnie w celu uzyskania informacji na mojej płycie głównej (HannStar J MV-6 94V-0) i wymyśliłem jej schematy na wietnamskiej stronie . Mówię konkretnie o ładowaniu USB. Ale nie mam pojęcia, jak korzystać z tych informacji.

Wiele osób sugeruje, że można to włączyć w systemie BIOS , ale sprawdziłem ponownie i nic nie widzę w systemie BIOS. Ale zauważyłem również, że BIOS ma bardzo niewiele pól, co powoduje, że podejrzewam, że funkcje BIOS-u mogą być ukryte. Spróbuję je odblokować. W międzyczasie dane wyjściowe dmidecodesą dołączane na końcu pytania.

Nie wiem, czy ta funkcja wymaga specjalnego wsparcia sprzętowego, ale w każdym razie jest to możliwe na moim komputerze. Smartfony szybko rozładowują się i zawsze możesz podłączyć je do laptopa w torbie i ładować w drodze, gdy jesteś na studiach lub w podróży. To byłoby nie tylko fajne i przydatne, ale także zaoszczędzić pieniądze, ponieważ nie będę musiał kupować power banku.

Oto zebrane dane:

Ręcznie uruchomiłem jądro 3.18, ale problem nadal występuje. Pod kierownictwem Sneetshera opublikowałem tutaj raport o błędzie .

daltonfury42
źródło
2
Większość laptopów ładuje wcześniej podłączone urządzenie w trybie uśpienia, ale ładowanie wyłączające jest funkcją sprzętową. Możesz spróbować uruchomić oprogramowanie sterujące za pomocą Wine.
Wędrowiec
Nigdy o tym nie myślałem, użyje wina, ale tylko w ostateczności. Czy nie ma sposobu, aby to zrobić ręcznie?
daltonfury42
Może w ustawieniach BIOS.
Wędrowiec
Zatem jedyną opcją jest albo program dla systemu Linux, albo możliwość działania wersji dla systemu Windows.
Wędrowiec
3
Jestem prawie pewien, że musi to być gdzieś ustawienie BIOS (czy sprawdziłeś sekcję zaawansowaną)? Nazywa się to portem USB „uśpienie i ładowanie”. Myślę, że „VAIO Control Center” po prostu przełącza ustawienie BIOS. Może istnieć sposób na poradzenie sobie z Linuksem, ale nie wiem o tym wystarczająco dużo. Spójrz dmidecodei smbiosmoże to wskaże ci właściwy kierunek? Pamiętaj, że laptopy innych marek mają tego typu porty USB i współpracują z Ubuntu (o ile są one włączone przez BIOS).
mason81

Odpowiedzi:

7

Lepiej zacząć od tego, gdzie inni zatrzymali się z sony-laptopmodułem jądra Linux.

  1. Sprawdź, czy jest załadowany

    lsmod | grep sony
    
  2. Jeśli nie, załaduj go

    sudo modprobe sony-laptop
    
  3. Sprawdź, czy istnieje odpowiedni wpis / funkcja ładowania USB ( usb_chargeatrybut pobrany ze źródła):

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

    Gdy sprawdzam źródło sterownika, oto odpowiednie funkcje (mogą nie być dostępne we wszystkich modelach):

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

    Pełna definicja funkcji tutaj (część z sony-laptop.c)

    0x0155wydaje się być wykryty na twoim laptopie z wiadomości jądra . Moduł stworzony touchpad, battery_care_limitertylko do odczytu handles, tylko do odczytu battery_care_healthSysFS atrybuty ale nic więcej (włącznie usb_charge).

    Sprawdziłem źródło jądra Ubuntu w poszukiwaniu funkcji ładowania USB:

    • Ubuntu 14.04 Trusty (jeszcze nie dodany), wersja jądra 3.13

      Jeśli używasz tego wydania, najprostszym sposobem jest instalacja jądra Utopic:

      sudo apt-get install linux-generic-lts-utopic
      
    • Ubuntu 14.10 Utopic (jest tam), wersja jądra 3.16

    Jeśli go nie ma, jest to trudne / ryzykowne tylko, jeśli masz do:

    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.
    

    Zobacz plik Readme .

  4. Ponieważ jądro zaktualizowane przez OP do wersji 3.16.0-38-generic usb_chargejest tworzone z innymi atrybutami SYSFS.

    Czytanie podobnych dokumentów jądra sterowników, 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.
    

    Aby sprawdzić bieżący stan:

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

    Aby to wyłączyć:

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

    Aby to włączyć:

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

Bibliografia:

user.dz
źródło
Dziwne, po aktualizacji do 3.18.3-031803-generic, widzę usb_arge, ale o wartości 1!
daltonfury42
Zaktualizowałem pytanie do końca o to, o co prosiłeś i trochę więcej informacji, do końca, i zauważ, że zmieniłem wartość o echo 0 | sudo tee -a /sys/devices/platform/sony-laptop/usb_charge.
daltonfury42
@ user3073656, Ok, możesz dołączyć do mnie tutaj chat.stackexchange.com/rooms/24450/…
user.dz
Przyznałem ci pełną nagrodę, ponieważ chociaż nie rozwiązałem problemu w pełni, skierowałem mnie w dobrym kierunku.
daltonfury42