Vypnutie USB pri hibernácii v Thinkpade T420

Sekcia: Hardware a Drivery 09.02.2016 | 22:07
Avatar Miroslav Bendík Gentoo  Administrátor

Ahojte,
snažím sa svoj thinkpad donútiť pri hibernácii vypnúť napájanie USB. V BIOSe mám vypnuté USB v low power stavoch (standby). Napriek tomu blbé zariadenia (také ktoré nemajú USB kontroler, len využívajú napájanie z USB) zostávajú stále aktívne.

Čítal som, že USB zostáva aj tak aktívne kvôli možnosti prebudenia (teda stačí pohnúť myšou a prebudí sa, neznášam to ale ok) takže som vypol prebudenie cez /proc/acpi/wakeup

Device	S-state	  Status   Sysfs node
LID	  S3	*enabled   platform:PNP0C0D:00
SLPB	  S3	*enabled   platform:PNP0C0E:00
IGBE	  S4	*disabled  pci:0000:00:19.0
EXP4	  S4	*disabled
EHC1	  S3	*disabled  pci:0000:00:1d.0
EHC2	  S3	*disabled  pci:0000:00:1a.0
HDEF	  S4	*disabled  pci:0000:00:1b.0

Priamo pre jednotlivé USB zariadenia mám zrejme wakeup zakázaný:

# cat /sys/bus/usb/devices/*/power/wakeup
disabled
disabled
disabled
disabled
disabled
disabled

V lenovo fóre som čítal o podobnom probléme no nemám windows, neviem vyklikať "Allow this device to wake the computer" a "USB selective suspend setting" DISABLED.

    • RE: Vypnutie USB pri hibernácii v Thinkpade T420 10.02.2016 | 09:22
      Avatar bedňa LegacyIce-antiX  Administrátor

      Podľa môjho skromného názoru, musíš vypnúť napájanie USB hubu.

      Ja som to trafil náhodou na prvý raz a ani neviem aké je na to pravidlo, ale postup je takýto: (Samo že ako root)

      ls /sys/bus/usb/drivers/usb/
      

      Mne to vyhodilo:

      1-3  2-1  bind	uevent	unbind	usb1  usb2  usb3  usb4	usb5

      Všimni si čísla 1-3 a 2-1. Ja som si hovoril väčšie bude lepšie a skúsil som:

      echo "2-1" > /sys/bus/usb/drivers/usb/unbind

      A USB to naozaj odpojilo. Na znovu nahodenie napájanie stačí:

      echo "2-1" > /sys/bus/usb/drivers/usb/bind

      Tak skús hádam to pomôže. Možno treba tie čísla cucať z lsusb, ale to by som musel kukať do dokumentácie, tak hádam som ťa aspoň nasmeroval.

      Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
      • RE: Vypnutie USB pri hibernácii v Thinkpade T420 10.02.2016 | 10:03
        Avatar Miroslav Bendík Gentoo  Administrátor

        Vypínať huby cez unbind som skúšal, ale napájanie to nevyplo.

        • RE: Vypnutie USB pri hibernácii v Thinkpade T420 10.02.2016 | 10:37
          Avatar bedňa LegacyIce-antiX  Administrátor

          Na niektorých doskách sa nedá napájanie vypnúť vôbec. Proste máš vypnutý komp, strčíš tam USBniečo a ono fachčí. Ako si postupoval pri tom unbinde?

          Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
          • RE: Vypnutie USB pri hibernácii v Thinkpade T420 10.02.2016 | 10:40
            Avatar Miroslav Bendík Gentoo  Administrátor

            Unbindoval som všetky root huby (teda rovnaký príkaz). Doska by teoreticky mala podporovať vypnutie USB pri suspende (v biose mám voľbu Always on USB na disabled).

            • RE: Vypnutie USB pri hibernácii v Thinkpade T420 10.02.2016 | 11:15
              Avatar bedňa LegacyIce-antiX  Administrátor

              Ja som vypnutie testoval cez: (v 002:004 tam pichnutý USB kľuč)

              lsusb -vvv -s 002:004 | grep -i -A1 "device status"
              Pokiaľ bolo napájanie zapnuté, príkaz mi vrátil:

              Device Status:     0x0000
                (Bus Powered)

              Keď som napájanie vypol, príkaz vrátil:

              Couldn't open device, some information will be missing
              Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
              • RE: Vypnutie USB pri hibernácii v Thinkpade T420 10.02.2016 | 11:39
                Avatar Miroslav Bendík Gentoo  Administrátor

                No to vypne zariadenie, mám odskúšané, že mi to bezdrôtovú myš hneď vypne (prestane svietiť), ale napájanie tam je stále. Keď mám notebook na chladiacej podložke s aktívnym chladením (napájaným z USB) chladenie stále beží.

                Ešte aby som doplnil svoju konfiguráciu. Mám pri každom štarte / resume zakázané wake cez USB a ethernet:

                grep EHC1 /proc/acpi/wakeup|grep enabled&&echo EHC1 > /proc/acpi/wakeup
                grep EHC2 /proc/acpi/wakeup|grep enabled&&echo EHC2 > /proc/acpi/wakeup
                grep IGBE /proc/acpi/wakeup|grep enabled&&echo IGBE > /proc/acpi/wakeup
                

                Okrem toho mám automatický unbind všetkých zariadení pri hibernácii

                #!/bin/bash
                cd /sys/bus/usb/devices/
                for file in ?-?.?; do
                    echo $file > /sys/bus/usb/drivers/usb/unbind
                done
                

                Resume skript vyzerá rovnako, akurát je tam bind. Zariadenia ako huby, myš, klávesnica sa korektne vypnú, ale USB osvetlenie, chladenie ... beží naďalej, takže v USB zostáva šťava. Musím to večer keď ukladám notebook na spánok všetko fyzicky odpojiť.

                • RE: Vypnutie USB pri hibernácii v Thinkpade T420 10.02.2016 | 11:48
                  Avatar Andrej Lacho Debian, CentOS ...  Administrátor

                  Mozno blba otazka ale predsa...

                  Preco na vecer ukladas laptop na spanok? Preco ho nevypnes a budes mat po probleme.

                  • RE: Vypnutie USB pri hibernácii v Thinkpade T420 10.02.2016 | 12:19
                    Avatar Miroslav Bendík Gentoo  Administrátor

                    Lebo je zábudlivý a niektoré veci si po odpojení napájania nepamätá. Ale vážne niektoré nastavenia SMAPI BIOS rozhrania sa resetujú do východzích hodnôt po úplnom vypnutí. Medzi tieto nastavenia patrí napríklad aj nastavenie batérie (hodnota pri ktorej sa začína nabíjať a pri ktorej skončí nabíjanie), takže keď mám nastavené nabíjanie až keď je na 40% kapacity a dobitie len do 80% tak pri každom zapnutí začne nabíjať (lebo default hodnota je 95%) a po pár sekundách keď nabootuje prestane nabíjať čo vôbec nie je dobré pre baterku (ale ani tých 95% nie je dobrých pre baterku).

                    • RE: Vypnutie USB pri hibernácii v Thinkpade T420 10.02.2016 | 12:51
                      Avatar Andrej Lacho Debian, CentOS ...  Administrátor

                      Woow, tak takto som nad tym este nerozmyslal :) Ked mas dock, chova sa to rovnako?

                      • RE: Vypnutie USB pri hibernácii v Thinkpade T420 10.02.2016 | 13:16
                        Avatar Miroslav Bendík Gentoo  Administrátor

                        Zatiaľ nemám dock, takže neviem.

                • RE: Vypnutie USB pri hibernácii v Thinkpade T420 10.02.2016 | 13:26
                  Avatar bedňa LegacyIce-antiX  Administrátor

                  Tak som si pozrel Linux Power Management for USB a tam tvrdia, že každé USB zariadenie musí podporovať správu napájania.

                  The USB specification states that all USB devices must support power management

                  To tvoje Jičínske fúkadlo ho asi nemá.

                  Dokumentácia trošku zastaráva, pretože pre dynamické uspávanie má byť v configu voľba CONFIG_USB_SUSPEND a CONFIG_PM_RUNTIME, tento typ uspávania neptrebuješ, len pre zaujímavosť daj či ju tam máš, ja nie.

                  Voľby CONFIG_SUSPEND a/alebo CONFIG_HIBERNATION musia byť nastavené na y.

                  Podľa dokumentácie: Pokiaľ zariadenie nepodporuje vypnutie bude súbor:

                  cat /sys/bus/usb/devices/X-X/power/wakeup

                  prázdny, pre istotu, ja tam taký ani nemám, ale mám ho v:

                  cat /sys/bus/usb/devices/usbX/power/wakeup

                  Pre zapnutie správy napájania musí obsahovať enabled.

                  Podľa dokumentácie: Musí súbor:

                  cat /sys/bus/usb/devices/X-X/power/level

                  obsahovať auto.

                  Podľa dokumentácie: Musí súbor:

                  cat /sys/bus/usb/devices/X-X/power/autosuspend

                  obsahovať nejaké celé nezáporné číslo ideálne od 0 do 5, timeout pre vypnutie napájania.

                  Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
                  • RE: Vypnutie USB pri hibernácii v Thinkpade T420 10.02.2016 | 14:06
                    Avatar Miroslav Bendík Gentoo  Administrátor

                    No ono to nie je USB zariadenie, len sa pripája do USB portu a berie odtiaľ šťavu. Ten wakeup nemá by náhodou disabled?

                    • RE: Vypnutie USB pri hibernácii v Thinkpade T420 10.02.2016 | 21:10
                      Avatar bedňa LegacyIce-antiX  Administrátor

                      Pod tým configom som myslel config jadra.

                      CONFIG_USB_SUSPEND

                      CONFIG_PM_RUNTIME

                      CONFIG_SUSPEND

                      CONFIG_HIBERNATION

                      S tým wakeup som si nie istý :)

                      Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
    • RE: Vypnutie USB pri hibernácii v Thinkpade T420 10.02.2016 | 18:26
      Avatar WlaSaTy   Návštevník

      Neblbne to náhodou len v konektore číslo 5 na ľavej strane? Ten sa volá "Always On USB connector", a podľa popisu na tej stránke sa vypína asi len cez vendor ACPI interface programom od výrobcu. Najjednoduchšie bude nepoužívať ho ak hibernuješ. Máš ich na výber dosť. Inak, pochopil by som tvoju otázku len keby si mal chladiacu podložku ktorú neutiahne ani USB3 a potrebuje viac šťavy. Ale také sa nevyrábajú. A ak to chceš aj napriek elegantnému workaroundu v Linuxe riešiť alej, tak sa pozri na podporu daného nastavenia v module thinkpad-acpi naprieč jadrami (nastavenia sú podľa dokumentácie v hlbinách /proc/acpi/ibm) alebo si skontroluj dump acpi. Holt, ACPI je peklo ak si jeho implementáciu pozmení hocikto podľa seba.

      • RE: Vypnutie USB pri hibernácii v Thinkpade T420 10.02.2016 | 18:47
        Avatar Miroslav Bendík Gentoo  Administrátor

        U mňa je always on USB vzadu a je žltý a skúšal som všetky konektory, všetky sú zapnuté.

        V thinkpad-acpi (/proc/acpi/ibm) to nie je. Windows nemám a kvôli takejto veci sa mi nechce inštalovať.

        • RE: Vypnutie USB pri hibernácii v Thinkpade T420 10.02.2016 | 19:46
          Avatar WlaSaTy   Návštevník

          Tak acpi dump, len bacha aby si to neprestavil do vyhorenia. Alebo tú srandičku bez elektriky vyťahuj po skončení práce s notebookom. Žiaľ, limitácia implementácie. Vendor lock in.

        • RE: Vypnutie USB pri hibernácii v Thinkpade T420 11.02.2016 | 09:43
          Avatar bedňa LegacyIce-antiX  Administrátor

          Inak ľudia si kutia USB auto vypínače aj na kolene. Nestačilo by medzi NTB a ventilátor dať USBhub?

          Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
          • RE: Vypnutie USB pri hibernácii v Thinkpade T420 11.02.2016 | 12:10
            Avatar Miroslav Bendík Gentoo  Administrátor

            Ale stále ma serie tá zbytočná spotreba USB. Momentálne mám starú rozbitú baterku s ani nie 30% pôvodnej kapacity (tú štandardnú nízkokapacitnú), pri bežnom používaní to vydrží len okolo 2h. Pri standby zožerie za hodinu 3%.