Razlika između inačica stranice Dokumentacija UPS
(→Povezivanje s PowerDevilom preko D-Bus-a) |
(→Povezivanje s PowerDevilom preko D-Bus-a) |
||
Redak 58: | Redak 58: | ||
Kako bi na kraju PowerDevilu prepustili prebacivanje s jednog na drugi energetski profil, što nam u konačnici olakšava posao jer PowerDevil u tom slučaju izvrši i prebacivanje na drugu CPU shemu, obavi obavještavanje putem KDE notifikacije, te ostale radnje zadane pojedinim profilom, poslužiti ćemo se D-Bus podsustavom tako što će naša skripta slati PowerDevilu d-bus poruke o promjeni profila. | Kako bi na kraju PowerDevilu prepustili prebacivanje s jednog na drugi energetski profil, što nam u konačnici olakšava posao jer PowerDevil u tom slučaju izvrši i prebacivanje na drugu CPU shemu, obavi obavještavanje putem KDE notifikacije, te ostale radnje zadane pojedinim profilom, poslužiti ćemo se D-Bus podsustavom tako što će naša skripta slati PowerDevilu d-bus poruke o promjeni profila. | ||
Kako slanje D-bus poruka sa sistemskog na sesijski nivo nije baš jednostavan poslužiti ćemo se i nekim sitnim trikovima. | Kako slanje D-bus poruka sa sistemskog na sesijski nivo nije baš jednostavan poslužiti ćemo se i nekim sitnim trikovima. | ||
+ | |||
+ | Skripta koja šalje poruku u pravilu treba izgledati ovako: | ||
+ | #!/bin/bash | ||
+ | #Find the user of active session | ||
+ | PID=$(pidof -s knotify4) | ||
+ | QUERY_ENVIRON="$(tr '\0' '\n' < /proc/${PID}/environ | grep "USER" | cut -d "=" -f 2-)" | ||
+ | su ${QUERY_ENVIRON} -c 'qdbus org.kde.powerdevil /modules/powerdevil org.kde.PowerDevil.setProfile string:'Powersave'' | ||
==KNutClient== | ==KNutClient== |
Inačica od 15:12, 19. ožujka 2010.
UPS
UPS (Uninterruptible Power Supply) ili Neprekidni izvor napajanja jest uređaj koji osim što korigira naponske fluktuacije u mreži, posjeduje i baterije kojima nadomješta napon iz mreže prilikom nestanka struje. Na taj način omogućuje vam da spemite sve svoje dokumente na kojima ste radili i ispravno ugasite računalo. U koliko je UPS povezan s vašim računalom, moguće ga je podešavati i pratiti njegovo stanje putem računala, odnosno automatizirati procese za isključivanje računala na vrijeme. |
Sadržaj
Uvod
UPS uređaji uglavnom se koriste za zaštitu servera i radnih stanica u firmama gdje ne smije doći do gubitka podataka zbog nestanka električne energije. No, postoji i nemali broj ovih uređaja namijenjenih lokalnim stolnim računalima po domaćinstvima ili malim uredima koji su relativno jeftini,a od iznimne su koristi u slučaju nestanka el. energije.
Ovim tekstom baviti ćemo se podešavanjem jednog malog UPS uređaja lokalno spojenog na računalo putem USB sučelja.
Kako GNOME grafičko sučelje dobro prepoznaje USB UPS uređaje preko HAL-a i kontrolira njihov rad, ovaj tekst usmjeriti ćemo na KDE grafičko sučelje čiji glavni servis za upravljanje energijom (PowerDevil) u verziji KDE SC 4.4 još uvijek ne prepoznaje UPS uređaje. Ideja je da NUT servis putem skripti šalje D-Bus poruke PowerDevil-u i na taj način kontrolira rad računala u ovisnosti o režimu rada UPS-a (mreža/baterije, sleep/hibernate/shutdown), te kompenzira PowerDevil-ov nedostatak podrške.
Kao daemon (servis) odabrali smo Network UPS Tools (NUT) jer poznaje veliki broj UPS uređaja (kako profesionalnih tako i amaterskih) spojenih na računalo putem raznoraznih kablova. Ovaj servis, također omogućuje i udaljeno praćenje rada UPS uređaja preko mrežnih protokola. Za ovaj daemon napisano je i podosta klijentskih (monitor) aplikacija od kojih smo mi odabrali onaj za KDE4 sučelje: KNutClient
NUT
Instalacija
OpenSUSE
Instaliramo NUT putem YAST-a ili preko Zyppera-a
su -c 'zypper install nut'
Ubuntu
Instaliramo NUT putem Synaptic-a, KPackage manager-a ili preko apt-get-a
sudo apt-get install nut nut-usb
Podešavanje
Podešavanje NUT daemona vrši se preko konfiguracijskih skripti u direktoriju /etc/ups. Prva datoteka koju treba urediti je ups.conf. Otvaramo je editorom i na kraju uređujemo parametre za naš USB UPS ovako:
[APC_UPS] driver = usbhid-ups port = auto desc = "Local APC USB CS-650"
Za odabir driver-a i porta drugih uređaja potrebno je pogledati u ovu listu NUT podržanih uređaja.
slijedeća datoteka koju trebamo urediti jest upsd.conf. U njoj na kraju dopišemo ovo:
ACL all 0.0.0.0/0 ACL localhost 127.0.0.1/32 ACCEPT localhost REJECT all
Ovime je pristup UPS uređaju dozvoljen samo s lokalnog računala, ali ne i udaljenog. Također je potrebno urediti i datoteku upsd.users ovako:
[local_mon] password = ZAPORKA_OVDJE allowfrom = localhost upsmon master
Sada uredite datoteku upsmon.conf tako da liniju MONITOR prepravite ovako za naš slučaj:
MONITOR APC_UPS@localhost 1 local_mon ZAPORKA_OVDJE master
Opis: APC_UPS@localhost je ime UPS uređaja koje smo definirali unutar uglatih zagrada u datotecu ups.conf, local_mon je ime pristupnih parametara koje smo definirali unutar uglatih zagrada u datoteci upsd.users. ZAPORKA_OVDJE je zaporka koju ste zadali i u datoteci upsd-users.
Preostale parametre koji definiraju radnje prilikom gašenja UPS-a ili nestanka el. energije nećemo sada podešavati, već ćemo to raditi u slijedećem poglavlju jer želimo da upsmon putem D-Busa šalje poruke PowerDevil servisu za upravljanje energijom.
Na kraju je još preostalo urediti i datoteku nut.conf ovako:
MODE = standalone
Na kraju pokrećemo servis:
# service upsd start
Povezivanje s PowerDevilom preko D-Bus-a
Kako bi na kraju PowerDevilu prepustili prebacivanje s jednog na drugi energetski profil, što nam u konačnici olakšava posao jer PowerDevil u tom slučaju izvrši i prebacivanje na drugu CPU shemu, obavi obavještavanje putem KDE notifikacije, te ostale radnje zadane pojedinim profilom, poslužiti ćemo se D-Bus podsustavom tako što će naša skripta slati PowerDevilu d-bus poruke o promjeni profila. Kako slanje D-bus poruka sa sistemskog na sesijski nivo nije baš jednostavan poslužiti ćemo se i nekim sitnim trikovima.
Skripta koja šalje poruku u pravilu treba izgledati ovako:
#!/bin/bash #Find the user of active session PID=$(pidof -s knotify4) QUERY_ENVIRON="$(tr '\0' '\n' < /proc/${PID}/environ | grep "USER" | cut -d "=" -f 2-)" su ${QUERY_ENVIRON} -c 'qdbus org.kde.powerdevil /modules/powerdevil org.kde.PowerDevil.setProfile string:'Powersave