2011. február 21., hétfő

Spórolás az energiával - Ubuntu laptopon


Már régóta van a laptopomon Ubuntu, sajnos azonban nem bírja túl sokáig akkumulátorról. Ezért már a kezdeti idők óta használok bizonyos módosításokat, melyekkel le lehet csökkenteni egy linuxos gép fogyasztását. Ezeket a módosításokat hosszú idő alatt vadásztam össze több helyről (mint például: Bagoj úr blogja, lesswatts.org, és egy Patrick Voegeli nevű úr szkriptkezdeménye, amit továbbfejlesztettem - ezek voltak a fő források), ezeket egyesítettem, és kiegészítettem új dolgokkal, mely így most egy komplett "rendszert" alkot. :)
Az első és legfontosabb elem egy powersave nevű fájl [ITT letölthető], ez egy bash szkript, amely mindig le fog futni, ha a laptop energiaellátási módja megváltozik. Például, ha kihúzzuk a konnektorból a laptoptöltőt, magától át fog állni a gép energiatakarékos üzemmódba.
A fájl tartalma:
#!/bin/sh

# Acer 1810tz specific brightness key fix
#echo N > /sys/module/video/parameters/brightness_switch_enabled
# Disable wake on lan
ethtool -s eth0 wol d
# Turn screen off after 60 sec
xset dpms 0 0 60
# DPMS on
xset +dpms

# Go fast on AC power. Similar to default Ubuntu settings
if on_ac_power; then

# Remount ext3 filesystems so the journal commit only happens every 60
# seconds. By default this is 5 but, I prefer to reduce the disk
# activity a bit.
mount -o remount,commit=30,atime,diratime /
mount -o remount,commit=30,atime,diratime /home

# Disable SATA power saving
for foo in /sys/class/scsi_host/host*/link_power_management_policy;
do echo max_performance > $foo;
done

# Set the Intel wifi to no power savings.
iwconfig wlan0 power off

# Set kernel dirty page value back to default
echo 10 > /proc/sys/vm/dirty_ratio
echo 5 > /proc/sys/vm/dirty_background_ratio
echo 600 > /proc/sys/vm/dirty_writeback_centisecs

# Disable powersaving on disk
hdparm -B 255 /dev/sda

# Disable powersaving on soundcard (AC97)
#echo 0 > /sys/module/snd_ac97_codec/parameters/power_save
# Disable powersaving on soundcard (HDA)
echo 0 > /sys/module/snd_hda_intel/parameters/power_save
echo N > /sys/module/snd_hda_intel/parameters/power_save_controller

# Change cpu mode to ondemand
echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

# Disable CD polling
hal-disable-polling --device /dev/scd0 --enable-polling

# Turn bluetooth on
modprobe hci_usb
hciconfig hci0 up

else # Save power

# Change the ext3 commit times to 10 minutes. This reduces disk
# activity
mount -o remount,commit=600,noatime,nodiratime /
mount -o remount,commit=600,noatime,nodiratime /home

# Enable SATA power saving
for foo in /sys/class/scsi_host/host*/link_power_management_policy;
do echo min_power > $foo;
done

# Set the intel wlan to save power
iwconfig wlan0 power on

# Reduce disk activity by waiting up to 10 minutes before doing writes
echo 90 > /proc/sys/vm/dirty_ratio
echo 1 > /proc/sys/vm/dirty_background_ratio
echo 60000 > /proc/sys/vm/dirty_writeback_centisecs

# Put down the controller when not in use
echo 10 > /sys/module/snd_hda_intel/parameters/power_save
echo Y > /sys/module/snd_hda_intel/parameters/power_save_controller

# Enable powersaving on disk after 20 min
hdparm -B 1 -S 240 /dev/sda

# Turn soundcard off when not in use (AC97)
#echo 1 > /sys/module/snd_ac97_codec/parameters/power_save
#echo 1 > /dev/dsp
# Turn soundcard off when not in use (HDA)
echo 10 > /sys/module/snd_hda_intel/parameters/power_save

# Change cpu mode to powersave
echo powersave > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

# Disable CD polling
hal-disable-polling --device /dev/scd0

# Turn bluetooth off
hciconfig hci0 down
rmmod hci_usb
fi
A második elem, egy lekérdező szkript, amivel lekérdezhetjük, hogy az energiaspóroló beállítások érvénybe léptek-e. Futtatása manuális tehát, ezt a parancsot kell kiadni majd:
powersave\?
[ITT letölthető a lekérdező szkript]
A beállító szkript és a lekérdező szkript természetesen ízlés szerint módosítható, vannak opciók, melyek nem minden gépen szükségesek, amikre nem volt szükségem azokat kicommenteltem, ha vki ezeket is végre akarja hajtani, a # jeleket kell kiszedni az adott sorok elől.
Az utolsó elem pedig egy telepítő szkript, amivel a fentebb leírt műveleteket automatikusan végrehajthatjuk. Terminálban futtathatóvá kell tenni a telepítő szkriptet, majd futtatni kell:
sudo chmod +x install.sh && ./install.sh
[ITT letölthető a telepítő szkript]

A fájl tartalma:
#!/bin/bash
# Fájlok futtathatóvá tétele, és bemásolás:
sudo chmod -v +x powersave powersave\?
sudo cp -v powersave\? /usr/bin/
sudo cp -v powersave /etc/pm/
# Függőségek telepítése:
sudo apt-get install acpi ethtool
# Módosított power.sh készítése:
cd /etc/acpi/
sudo mv -v power.sh ideiglenes_power.sh
echo '#!/bin/sh' | sudo tee power.sh
echo '/etc/pm/powersave' | sudo tee -a power.sh
sudo tail -n +2 ideiglenes_power.sh | sudo tee -a power.sh
sudo rm -v ideiglenes_power.sh
sudo chmod +x power.sh
Nos ezzel cikkem végére értem; a helyzet az, hogy a fent leírtak nem egy átlagfelhasználónak lettek megírva, de remélem a leírás segíthet kevésbé hozzáértő Linux használóknak is végrehajtani a műveleteket. Bármilyen kérdést örömmel várok! :)

2011. február 3., csütörtök

Firefox Ubuntu laptopon - optimalizálás kisképernyőre


Ha az embernek laptopja van és sokat netezik egy idő után feltűnik neki, hogy a képernyőn kevesebb dolog fér el, mintha egy asztali gép monitora előtt ülne. Persze lehet ezen segíteni egyes Firefox kiegészítőkkel:


Amint a fenti képen is látszik, a megjelenítendő terület magasságban több, mint egy centiméterrel megnőtt. Ezt a Böngésző eszköztár és az Állapotsor eltüntetésével értük el. Elsőre nem tűnhet olyan nagy dolognak ez az 1 cm, de egy kis kijelzős laptopnál ez mégis soknak számít.
Böngésző eszköztár eltüntetése
Ehhez rakjuk fel a Tiny Menu-t, mely a felső menüsort rakja át egy gombba. A Tiny Menu beállításaiban állítsuk át a megjelenítést szövegről képre. Ezután a Tiny Menu gomb mellé rakjuk át a Böngésző eszköztárból a dolgokat, majd tüntessük azt el.
Állapotsor eltüntetése
Ehhez rakjuk fel az autoHide Statusbar kiegészítőt, beállításaiban állítsuk be, hogy only if hovered for more than 300 milliseconds, és a page is loading-nál szedjük ki a pipát
Az állapotsorban található betöltődés jelző nem túl hasznos kis mérete miatt, ráadásul sokkal látványosabb az Apple Safari böngészőjéből lenyúlt megoldás. Ha feltesszük a Fission kiegészítőt a címsorban láthatjuk az oldalak betöltődését, hogy ez illeszkedjen az Ubuntu témájához, készítettem egy képet, amit a Fission beállításainál lehet betallózni. Itt letölthető.
A címsor mellett jobbra található searchbarnak alapból fix mérete van, azonban ez teljesen fölösleges a címsor sokkal fontosabb, szerencsére ez is orvosolható a Searchbar Autosizer kiegészítővel.
Ezekután már csak egy Ubuntu Ambiance-hez illő téma kell, mert az eredeti eléggé elüt az Ubuntu megjelenésétől. Ehhez én a Dustfox témát használom.

Kiegészítés:
Ezek a kiegészítők Winen is működnek, ott is nyerhetünk vele területet, itt telepíthető pedig egy jó aeros Firefox téma Win7hez.