Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Hardware => Téma založeno: honza95454 01 Října 2012, 19:23:42
-
Zdravím, používám chladící podložku, tu zapojuji do usb a jelikož pc často uspávám, napadlo mě, že to šlo třeba udělat tak, že po uspání se napájení v usb vypne a chladící podložka nepojede. Něco jako při vypnutí. Nějaké tipy?
Díky, Honza
-
zrovna nejsem na ubuntu, takže to neotestuji, ale do etc/pm/sleep.d bych vložil script s názvem třeba 00_vyp_usb.sh Musíš mu nastavit spustitelný příznak. Do něj bych dal něco jako
#!/bin/sh
# tento script vypíná napájení USB
case "$1" in
hibernate|suspend)
echo suspend > /sys/bus/usb/devices/1-8/power/level &
;;
resume|thaw)
;;
*)
exit 0
;;
esacotestuj a uvidíš, já bohužel nemám jak :(
edit: malá úprava :)
-
zrovna nejsem na ubuntu, takže to neotestuji, ale do etc/pm/sleep.d bych vložil script s názvem třeba 00_vyp_usb.sh Musíš mu nastavit spustitelný příznak. Do něj bych dal něco jako #!/bin/sh
# tento script vypíná napájení USB
case "$1" in
hibernate|suspend)
echo suspend > /sys/bus/usb/devices/1-8/power/level &
;;
resume|thaw)
;;
*)
exit 0
;;
esacotestuj a uvidíš, já bohužel nemám jak :(
edit: malá úprava :)
Já bohužel momentálně také ne.
Tudiž, do souboru sleep.d mám vytvořit nový "texťák", zkopčit do něj to, cos psals a pojmenovat ho s koncovkou .sh ....
Chápu dobře?
-
ano chápeš dobře, pojmenuj si ho jak chceš jen musíš mít na začátku číslo, podle kterého se tvůj script spustí buď 00 (při uspání se provede jako první a při probuzení jako poslední) až myslím 99.
-
ano chápeš dobře, pojmenuj si ho jak chceš jen musíš mít na začátku číslo, podle kterého se tvůj script spustí buď 00 (při uspání se provede jako první a při probuzení jako poslední) až myslím 99.
Tohle je pro mě asi zbytečný, prostě se to zapne a vypne.? :-D
-
Škoda, nejde :-(
-
nejde? to se nějak rozchodí, nehaž flintu do žita :) zitra možná budu na ubuntu, tak bych to otestoval. Když zadáš do terminálu
echo suspend > /sys/bus/usb/devices/1-8/power/level tak se ti USB vypne?
update: ještě by si mohl dát do scriptu na začátek set -x;
exec 2>/var/tmp/`basename $0`.log;takže by měl vypadat asi takhle:
#!/bin/sh
set -x;
exec 2>/var/tmp/`basename $0`.log;
# tento script vypíná napájení USB
case "$1" in
hibernate|suspend)
echo suspend > /sys/bus/usb/devices/1-8/power/level &
;;
resume|thaw)
;;
*)
exit 0
;;
esacpak to uspi a po probuzení se mrkni do /var/tmp budeš tam mít log s tvým názvem souboru, ten otevři a výpis hoď sem díky
-
nejde? to se nějak rozchodí, nehaž flintu do žita :) zitra možná budu na ubuntu, tak bych to otestoval. Když zadáš do terminálu echo suspend > /sys/bus/usb/devices/1-8/power/level tak se ti USB vypne?
update: ještě by si mohl dát do scriptu na začátek set -x;
exec 2>/var/tmp/`basename $0`.log;takže by měl vypadat asi takhle:
#!/bin/sh
set -x;
exec 2>/var/tmp/`basename $0`.log;
# tento script vypíná napájení USB
case "$1" in
hibernate|suspend)
echo suspend > /sys/bus/usb/devices/1-8/power/level &
;;
resume|thaw)
;;
*)
exit 0
;;
esacpak to uspi a po probuzení se mrkni do /var/tmp budeš tam mít log s tvým názvem souboru, ten otevři a výpis hoď sem díky
po echo suspend to napíše honza@honza-HP-Mini-100e:~$ echo suspend > /sys/bus/usb/devices/1-8/power/level
bash: /sys/bus/usb/devices/1-8/power/level: Adresář nebo soubor neexistuje
A v /var/tmp/ není také nic.
-
no pokud ve /var/tmp/ nic neni tzn. že se script vůbec nespustil... a ten druhý přikaz vypisuje neexistující cestu ??? zítra na to snad mrknu a otestuji... Pokud nikdo znalejší nenapíše prosím o strpení, Mám toho poslední dobou trochu nad hlavu :-X
-
no pokud ve /var/tmp/ nic neni tzn. že se script vůbec nespustil... a ten druhý přikaz vypisuje neexistující cestu ??? zítra na to snad mrknu a otestuji... Pokud nikdo znalejší nenapíše prosím o strpení, Mám toho poslední dobou trochu nad hlavu :-X
Zatím moc dík :-)
-
Dnes jsem měl trochu času na testování, tak ti popíši postup a ty si to budeš muset přizpůsobit podle svého počítače. Pokud by si to nezvládl, přikročilo by se ke zdlouhavějšímu řešení, že by si sem dával výpisy a já bych ti ten script přímo přizpůsobil. Dobrá takže jako první věc si dej výpis připojených USB zařízení
lsusb já ti dám na ukázku moje dva. První je bez zařízení, které se bude vypínat a ten druhý s ním.
1: Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 002: ID 04a9:220d Canon, Inc. CanoScan N670U/N676U/LiDE 20
Bus 002 Device 003: ID 03f0:1604 Hewlett-Packard DeskJet 940c
Bus 002 Device 004: ID 0db0:6970 Micro Star International MS-6970 BToes Bluetooth adapter
Bus 002 Device 005: ID 09da:000a A4 Tech Co., Ltd Optical Mouse Opto 510D
Bus 002 Device 006: ID 04d9:1503 Holtek Semiconductor, Inc. Shortboard Lefty2: Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 002: ID 04a9:220d Canon, Inc. CanoScan N670U/N676U/LiDE 20
Bus 002 Device 003: ID 03f0:1604 Hewlett-Packard DeskJet 940c
Bus 002 Device 004: ID 0db0:6970 Micro Star International MS-6970 BToes Bluetooth adapter
Bus 002 Device 005: ID 09da:000a A4 Tech Co., Ltd Optical Mouse Opto 510D
Bus 002 Device 006: ID 04d9:1503 Holtek Semiconductor, Inc. Shortboard Lefty
Bus 001 Device 010: ID 13fe:1e00 Kingston Technology Company Inc. Flash Drive 2 GB [ICIDU 2 GB]Jak můžeš vidět, přibylo nové zařízení Bus 001 Device 010: ID 13fe:1e00 Kingston Technology Company Inc. Flash Drive 2 GB [ICIDU 2 GB]Ty si takto identifikuj tu tvoji chladící podložku. Pak si musíš identifikovat adresář tvého zařízení v /sys/bus/usb/devices/ zaměř se na dvojčísla oddělené pomlčkou. Takže cd /sys/bus/usb/devices a pak si vypiš obsah složky ls pokud by tě zajímaly podrobnosti tak ls -all usb1 1-9 2-1 2-2:1.0 2-4:1.1 2-7:1.0 2-8:1.1
usb2 1-9:1.0 2-1:1.0 2-4 2-4:1.2 2-8
1-0:1.0 2-0:1.0 2-2 2-4:1.0 2-7 2-8:1.0
O mém zařízení vím, že je Bus 001 Device 010: ID 13fe:1e00 Kingston Technology Company Inc. Flash Drive 2 GB [ICIDU 2 GB] tudíž se zaměřím na složky, začínající číslem 1. A mám podle výpisu Bus 001 pouze dvě zařízení, takže v úvahu připadají složky 1-9 a 1-0
protože ty jsou obsazené nějakým zařízením. Poznáš to tak, že máš za číslem složky :1.0
Nyní si ověřím, v jaké složce je můj flashdisk. Na to použij cat musíš být pořád ve složce devices cuore@quadrofoglio:/sys/bus/usb/devices$ cat 1-9/busnum
1 tím mám potvrzeno, že je ve složce zařízení s Bus číslem 1 protože mi cat poslal na druhý řádek výstup s číslem 1
dále si zjistím device číslo cuore@quadrofoglio:/sys/bus/usb/devices$ cat 1-9/devnum
10
Cat mi vrátil hodnotu 10
a tím mám potvrzeno jeho umístnění. Vypínání si otestuju echo 2 > /sys/bus/usb/devices/1-9/power/autosuspend kde si USB uspím na 2s
V mém případě bude script vypadat takhle #!/bin/sh
set -x;
exec 2>/var/tmp/`basename $0`.log;
# tento script vypíná napájení USB
case "$1" in
hibernate|suspend)
echo suspend > /sys/bus/usb/devices/1-9/power/level &
;;
resume|thaw)
;;
*)
exit 0
;;
esacJe to bohužel závislé na tom, že budeš muset mít podložku vždy ve stejném USB portu, pokud by sis ho měnil, tak by si musel napsat script na vypnutí všech USB portů. Řešilo se to třeba tady http://ubuntuforums.org/archive/index.php/t-1463175.html (http://ubuntuforums.org/archive/index.php/t-1463175.html) Ničeho se nelekej jsou tam vypsámy jednoduše všechny složky z /sys/bus/usb/devices
Hodně zdaru
-
Bohužel jsem narazil na problém hned u prvního - výpis
lsusb je pokaždé stejný, s přípojenou podložkou i bez. >:(
-
no to zas takový problém nebude, buď můžeš vypnout všechny USB takže zakážeš obsah celé složky
/sys/bus/usb/devices tím se vyhneš identifikaci USB konektoru. Nebo do toho USB místo podložky použij, něco co systém rozpozná. Pravděpodobně ta podložka využívá jen napájecí část a nemá nic navíc (např. jsou i s USB hubem). Takže použij jako já třeba flashdisk ;)
-
honza@honza-HP-Mini-100e:/sys/bus/usb/devices$ cat 1-9/busnumcat: 1-9/busnum: Adresář nebo soubor neexistuje achjo...
-
opravdu máš adresář
cat 1-9/busnumcat: 1-9/busnum neni to jen cat 1-9/busnum? hoď sem výpis obsahu složky /sys/bus/usb/devices
-
opravdu máš adresář cat 1-9/busnumcat: 1-9/busnum neni to jen cat 1-9/busnum? hoď sem výpis obsahu složky /sys/bus/usb/devices
honza@honza-HP-Mini-100e:/sys/bus/usb/devices$ ls -all
celkem 0
drwxr-xr-x 2 root root 0 říj 5 16:47 .
drwxr-xr-x 4 root root 0 říj 5 16:47 ..
lrwxrwxrwx 1 root root 0 říj 5 16:47 usb1 -> ../../../devices/pci0000:00/0000:00:1d.7/usb1
lrwxrwxrwx 1 root root 0 říj 5 16:47 usb2 -> ../../../devices/pci0000:00/0000:00:1d.0/usb2
lrwxrwxrwx 1 root root 0 říj 5 16:47 usb3 -> ../../../devices/pci0000:00/0000:00:1d.1/usb3
lrwxrwxrwx 1 root root 0 říj 5 16:47 usb4 -> ../../../devices/pci0000:00/0000:00:1d.2/usb4
lrwxrwxrwx 1 root root 0 říj 5 16:47 usb5 -> ../../../devices/pci0000:00/0000:00:1d.3/usb5
lrwxrwxrwx 1 root root 0 říj 5 16:47 1-0:1.0 -> ../../../devices/pci0000:00/0000:00:1d.7/usb1/1-0:1.0
lrwxrwxrwx 1 root root 0 říj 5 14:47 1-4 -> ../../../devices/pci0000:00/0000:00:1d.7/usb1/1-4
lrwxrwxrwx 1 root root 0 říj 5 14:47 1-4:1.0 -> ../../../devices/pci0000:00/0000:00:1d.7/usb1/1-4/1-4:1.0
lrwxrwxrwx 1 root root 0 říj 5 14:47 1-4:1.1 -> ../../../devices/pci0000:00/0000:00:1d.7/usb1/1-4/1-4:1.1
lrwxrwxrwx 1 root root 0 říj 5 16:47 2-0:1.0 -> ../../../devices/pci0000:00/0000:00:1d.0/usb2/2-0:1.0
lrwxrwxrwx 1 root root 0 říj 5 16:47 3-0:1.0 -> ../../../devices/pci0000:00/0000:00:1d.1/usb3/3-0:1.0
lrwxrwxrwx 1 root root 0 říj 5 16:47 4-0:1.0 -> ../../../devices/pci0000:00/0000:00:1d.2/usb4/4-0:1.0
lrwxrwxrwx 1 root root 0 říj 5 16:47 5-0:1.0 -> ../../../devices/pci0000:00/0000:00:1d.3/usb5/5-0:1.0
-
Chlape, vždyť ty tam žádný adresář 1-9 nemáš (1-9 byl můj pod kterým se připojovola flashka)!!! tak je logické, že ti systém napíše, že neexistuje ;D Ty musíš dát číslo adresáře pod kterým se ti hlásí připojená podložka (alternativně např. flashdisk) Postup máš vypsaný výš. Tvé obsazené adresáře jsou
1-0, 1-4, 2-0 ,3-0, 4-0, 5-0
pokud je ten výpis celý. Příště dávej výpisy do "vložit kód" na né do "citace" Takže sem dej prosím výpisy lsusb bez připojeného zařízení a s připojeným zařízením, do USB portu, v kterém bude zapojena pak ta chladící podložka. Pak jak budeš mít to zařízení připojeno dej cd /sys/bus/usb/devices a pak ls a výpis sem....
-
Chlape, vždyť ty tam žádný adresář 1-9 nemáš (1-9 byl můj pod kterým se připojovola flashka)!!! tak je logické, že ti systém napíše, že neexistuje ;D Ty musíš dát číslo adresáře pod kterým se ti hlásí připojená podložka (alternativně např. flashdisk) Postup máš vypsaný výš. Tvé obsazené adresáře jsou 1-0, 1-4, 2-0 ,3-0, 4-0, 5-0
pokud je ten výpis celý. Příště dávej výpisy do "vložit kód" na né do "citace" Takže sem dej prosím výpisy lsusb bez připojeného zařízení a s připojeným zařízením, do USB portu, v kterém bude zapojena pak ta chladící podložka. Pak jak budeš mít to zařízení připojeno dej cd /sys/bus/usb/devices a pak ls a výpis sem....
honza@honza-HP-Mini-100e:~$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 18e3:9508 Fitipower Integrated Technology Inc
a s flashkou
honza@honza-HP-Mini-100e:~$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 18e3:9508 Fitipower Integrated Technology Inc
Bus 001 Device 003: ID 125f:c08a A-DATA Technology Co., Ltd.
honza@honza-HP-Mini-100e:~$ cd /sys/bus/usb/devices
honza@honza-HP-Mini-100e:/sys/bus/usb/devices$ ls
usb1 usb3 usb5 1-1 1-4 1-4:1.1 3-0:1.0 5-0:1.0
usb2 usb4 1-0:1.0 1-1:1.0 1-4:1.0 2-0:1.0 4-0:1.0
Prosím o trpělivost, zatím moc díky :-D
-
Předpokládám že tvoje USB je
Bus 001 Device 003: ID 125f:c08a A-DATA Technology Co., Ltd.
tzn. hledáme adresář obsahující busmum 1 devicenum 3. Dej sem výstupy z cat 1-1/busnum pak cat 1-4/busnum a cat 1-1/devnum
cat 1-4/devnum
-
Předpokládám že tvoje USB je Bus 001 Device 003: ID 125f:c08a A-DATA Technology Co., Ltd.
tzn. hledáme adresář obsahující busmum 1 devicenum 3. Dej sem výstupy z cat 1-1/busnum pak cat 1-4/busnum a cat 1-1/devnum
cat 1-4/devnum
honza@honza-HP-Mini-100e:~$ cd /sys/bus/usb/devices
honza@honza-HP-Mini-100e:/sys/bus/usb/devices$ cat 1-4/busnum
1
honza@honza-HP-Mini-100e:/sys/bus/usb/devices$ cat 1-1/busnum
1
honza@honza-HP-Mini-100e:/sys/bus/usb/devices$ cat 1-1/devnum
5
honza@honza-HP-Mini-100e:/sys/bus/usb/devices$ cat 1-4/devnum
2
-
Pod 1-4 máš
Bus 001 Device 002: ID 18e3:9508 Fitipower Integrated Technology Inc takže tvé usb by mělo být v adresáři 1-1. Sice devmun cat vypisuje 5 a ne 3, ale to se prostě po každém novém připojení mění. Aby se tento adresář ověřil na 100% tak si všechny tyto kroky, co se dělali po částech, udělej najednou a čísla by se měly shodovat. Takže obsaď si usbčko nějakým zařízením, pak dej lsusb tam si ho v seznamu najdi a mrkni na jeho busnum (bude asi 1) a devnum (?). Pak přejdi do adresáře /sys/bus/usb/devices a dej si cat 1-1/busnum cat 1-1/devnum pokud jsou mé předpoklady správné mělo by ti to vyhodit shodné čísla jaké má zařízení v lsusb. Pak by mělo stačit adresář 1-1 přidat do scriptu a otestovat uspání.
-
Ok, máám to, moc díky :-)