A következő címkéjű bejegyzések mutatása: hp4530s. Összes bejegyzés megjelenítése
A következő címkéjű bejegyzések mutatása: hp4530s. Összes bejegyzés megjelenítése

2012. szeptember 3., hétfő

HP4530s Linux - További fogyasztás csökkentés


Ahogy egy korábbi cikkemben már írtam, a Linux rendszer néhány hardverközeli finomhangolásával további fogyasztást csökkentést érhetünk el. Így ezzel a laptopunk töltőmentes üzemidejének hosszát is meghosszabbíthatjuk.
Az írásomban leírtakat egy HP 4530S notebookon végeztem el Crunchbang Linux operációs rendszeren. Egyes paramétereket más gép és rendszer esetében meg kell változtatunk, máshol újabb energiaspórolási lehetőségek is léteznek, de alapvetően más környezetben is használható a szkript, melyet főként még az Ubuntu-s időmből mentettem át. Azóta sokat fejlődött a szkript, méréseim szerint körülbelül további 2W-ot lehet megspórolni vele, amely önmagában nem sok, de a korábbi cikkemmel együtt alkalmazva már nem is olyan elhanyagolható fogyasztás csökkentés.

Először is telepítsük fel a pm-utils csomagot:
sudo apt-get install pm-utils
majd hozzuk létre és tegyük futtathatóvá a szkriptünket, amely automatikus hálózati töltő csatlakozásakor, vagy kihúzásakor fog lefutni:
sudo touch /etc/pm/power.d/99-savings
sudo chmod +x /etc/pm/power.d/99-savings
sudo gedit /etc/pm/power.d/99-savings
 A megnyíló Gedit-be illesszük be a következő power.d szkriptet:
ac_power()
{
# Enable wake on lan
ethtool -s eth0 wol g

# Remount filesystems so the journal commit only happens every 30
# 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

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

# Turn Bluetooth on
modprobe bluetooth
hciconfig hci0 up

# 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 -S 244 /dev/sda
 
# Turn swap on
swapon -a
 
# Turn laptop mode off
echo 0 > /proc/sys/vm/laptop_mode
 
# Turn nmi watchdog on
#echo 1 > /proc/sys/kernel/nmi_watchdog
 
# 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

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

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

# Change cpu mode to ondemand
for i in /sys/devices/system/cpu/*/cpufreq/scaling_governor; do echo ondemand > $i; done

# Disable PCI power saving
for i in /sys/bus/pci/devices/*/power/control; do echo on > $i; done
}

battery_power()
{
# Disable wake on lan
ethtool -s eth0 wol d

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

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

# Turn Bluetooth off
hciconfig hci0 down
rmmod bluetooth

# 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 60 second
hdparm -B 1 -S 12 /dev/sda
 
# Turn swap off
swapoff -a
 
# Turn laptop mode on
echo 5 > /proc/sys/vm/laptop_mode
 
# Turn nmi watchdog off
#echo 0 > /proc/sys/kernel/nmi_watchdog
 
# 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
 
# Disable CD polling
hal-disable-polling --device /dev/scd0

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

# Change CPU frequency governor to powersave
for i in /sys/devices/system/cpu/*/cpufreq/scaling_governor; do echo powersave > $i; done

# Enable PCI power saving
for i in /sys/bus/pci/devices/*/power/control; do echo auto > $i; done

# Enable USB power saving
for i in /sys/bus/usb/devices/*/power/autosuspend; do echo 2 > $i; done
for i in /sys/bus/usb/devices/*/power/level; do echo auto > $i; done
}

case "$1" in
    false) ac_power ;;
    true) battery_power ;;
esac
 Mentsük el a változásokat, lépjünk ki a Gedit-ből és ezzel már csökkentettük is laptunk fogyasztását! További fogyasztás csökkentő lehetőségekről is írok majd még a jövőben; legközelebb egy SSD meghajtó vásárlását tűztem ki célul az eredményekről szintén beszámolok majd. :)

LessWatts.org

2012. augusztus 17., péntek

HP4530s Bluetooth csatlakozás Crunchbangen

Most a Bluetooth életrekeltését fogom bemutatni HP 4530s laptopon, Crunchbang rendszeren.
Először arra lettem figyelmes, hogy a hciconfig parancs semmilyen kimenetet nem ad, ezért először a gépemben található Bluetooth chipset típusát akartam kideríteni, valamint hibaüzeneteket kerestem:
grep -i bluetooth /var/log/syslog
Ezt találtam, többek között:
Bluetooth: Atheros AR30xx firmware driver ver 1.0
Bluetooth: Error loading firmware
Tehát Atheros chipset-em van! Rövid keresgélés után megtaláltam, hogy Debianra milyen csomagokat kell feltenni a működéshez:
sudo apt-get install bluez bluetooth gnome-bluetooth bluez-firmware firmware-atheros
Ezenkívül, hogy biztosan legyen jogosultságunk használni a userünkkel a Bluetooth-t, állítsuk be jogosultságot rá magunknak:
sudo gedit /etc/dbus-1/system.d/bluetooth.conf
A busconfig tagen belül adjuk hozzá a következő sorokat, és mentsük el a változásokat. Természetesen a felhasználónév helyére írjuk be a saját felhasználónevünket.
<policy user="FELHASZNÁLÓNÉV">
   <allow own="org.bluez"/>
   <allow send_destination="org.bluez"/>
   <allow send_interface="org.bluez.Agent"/>
</policy>
Nézzük meg ezután, hogy a Bluetooth modul be van-e töltve:
lsmod | grep bluetooth
Ha egy hasonló kimenet kapunk, akkor már be van töltve a modul:
bluetooth             137855  24 bnep,rfcomm,ath3k,btusb
Ha nincs töltsük be, most:
sudo modprobe bluetooth
Indítsuk el a servicet:
sudo service bluetooth start
Majd az Openbox-os applet-et is indítsuk el:
bluetooth-applet &
Ekkor már meg tudjuk keresni Bluetooth eszközeinket a számítógéppel az előbb elindított applet segítségével, és párosítani is tudjuk, azonban Android esetében nekem soha nem akart csatlakozni, és a telefon a következőt írta ki:
Párosítva, de nincs csatlakoztatva
Rákeresve a problémára az internet tele van a megoldást kereső emberekkel. Grafikus felületen sehogy nem sikerült csatlakozásra bírni a telefont és a gépet, mindig "ismeretlen hiba történt", ha valamilyen fájlt szerettem volna küldeni a telefonomra. Természetesen az interneten rengeteg érdekes "megoldás" található a problémára pl.: vegyük ki és rakjuk vissza az akkumulátort, váltsuk angolra a telefon nyelvét... természetesen ezek nem működnek. :D

Viszont egy idő után konzolos felületen is kipróbáltam a csatlakozást, és valamiért az egyből működött:
Nézzük meg, hogy a Bluetooth  eszközünk jól van-e beállítva, ha kapunk valamilyen kimenetet valószínűleg rendben lesz:
hciconfig
Keressük meg a csatlakoztatni kívánt eszközt (természetesen a mobilon engedélyezni kell, hogy megtalálható legyen). Ez a program kiírja az elérhető eszközök MAC-címeit:
hcitool scan
Csatlakoztassuk az áldozatot:
sudo rfcomm connect 0 MAC-CÍM 1
A MAC-cím helyére írjuk be a telefon MAC-címét. Ha a parancs lefut akkor máris csatlakoztatva van a Bluetooth eszközünk, és küldhetünk rá fájlokat, tallózhatjuk a tartalmát, stb.

2012. április 17., kedd

Crunchbang finomhangolás

Az előző részben telepített Crunchbang rendszer néhány finomhangolását mutatom be most:
  1. A fent említett cikkben található Liquorix kernel telepítésével sajnos, ha telepítettünk laptop-mode-tools csomagot, akkor az nem fog működni, és bootolásnál a következő hibát írja ki: Unhandled kernel version: 3.1
    Ennek megoldására nyissuk meg a laptop-mode leíró fájlt és adjuk hozzá a 3.1-es kernel verziót a kompatibilitási listához:
    sudo gedit /usr/sbin/laptop_mode
    Keressük meg a következő részt:
    case "$KLEVEL" in
            "2.4" ) ;;
            "2.6" ) ;;
    és írjuk be a 2.6-os verzió után a 3.1-et:
    case "$KLEVEL" in
            "2.4" ) ;;
            "2.6" ) ;;
            "3.1" ) ;;
    Mentsük el a változtatásokat és már kész is.

  2. Az én HP 4530s laptopom, de valószínű sok másik gép is bejelentkezéskor, mindenféle hibaüzeneteknél, túl sok backspace leütésnél idegesítő csipogó hangot ad ki figyelmeztetésül.
    Ezek letiltása sorban, GTK programok csipogásának letiltása:
    echo "gtk-error-bell = 0 " >> ~/.gtkrc-2.0.mine
    Bash csipogás megszüntetése:
    echo "set bell-style none" >> ~/.inputrc
    Minden csipogás megszüntetése X-en belül:
    echo "xset b off" >> ~/.config/openbox/autostart.sh
    Konzol muteing:
    echo "setterm -blength 0" >> ~/.profile
    echo "setterm -bfreq 0" >> ~/.profile
    végül GDM-en belül így tilthatjuk a csipogást:
    sudo gedit /etc/gdm/gdm.conf
    Keressük ki a [greeter] részt, és írjuk be alá a következőt, majd mentsük el a változtatást:
    SoundOnLogin=false
    Ha gépünkben található speaker, akkor még:
    echo 'blacklist pcspkr' | sudo tee -a /etc/modprobe.d/pcspkr.conf sudo rmmod pcspkr
    Ezzel megszüntettünk mindenféle csipogó hangot.

  3.  Végül pedig egy apró kis észrevétel: nálam valamiért nem menti el a Network Manager a hozzáadott hálózatokat alapból. Ha szeretnénk alapértelmezett kapcsolatokat hozzáadni, hogy azok el is mentődjenek akkor azt megtehetjük, ha root módban indítjuk el a Network Manager-t és így adjuk hozzá a kapcsolatot:
    sudo nm-network-connection 

     Egyelőre ennyi, most készülök még pár cikkel, remélem minél hamarabb ki tudnak kerülni ezek.

    Források:

    Csipogás kikapcsolása

    Laptop-mode hiba

2012. március 22., csütörtök

HP4530s Linux - 20 Watt megtakarítás


Nem rég vettem egy új laptopot: a címben is szereplő HP4530s-t, nagyon jó áron sikerült hozzájutnom, és rendkívül elégedett vagyok vele; a várakozásokkal ellentétben nagyon rövid idő alatt sikerült minden hardvert életre kelteni. Természetesen nem véletlenszerűen választottam ki ezt a gépet, SUSE Linux Enterprise 11 rendszerrel is árulják, és a neten egy kis utánaolvasgatás után úgy láttam, hogy elég szépeket írtak a gépről és meglepően kevés hibáról olvashattam.
A legújabb Backports verzióját tettem fel a Crunchbang-nek, a telepítés után minden hardver tökéletesen működött, azonban rövid idő után észleltem, hogy rendkívűl forró a gép és már nagyon hangosak a ventillátorok. Egy rövid pillantással a Conky-ra láttam, hogy majdnem 70 fokos a gép: úgy döntöttem, hogy a rendszer finomhangolásába kezdek. Ekkor a rendszer 28 W-ot fogyasztott, ami miatt körülbelül 40 perc alatt le is merült.

Egy hőmérséklet teszt után láttam, hogy a gép legforróbb része a dedikált AMD Radeon HD 6470M videókártya. Első lépésként tehát ezt kell kikapcsolni:

1. lépés: Radeon HD 6470 videókártya kikapcsolása

Ezt egy vgaswitcheroo nevű programmal tehetjük meg. Ahhoz, hogy ez a program elérhető legyen a gépen (/sys/kernel/debug mappában); először csatoljuk ezt a könyvtárat:
echo "none /sys/kernel/debug debugfs defaults 0 0" | sudo tee -a /etc/fstab
Adjuk hozzá kernel paraméterként Grubhoz a következőt:
modeset=1
Ehhez
sudo gedit /etc/default/grub
és a GRUB_CMDLINE_LINUX_DEFAULT részhez írjuk be az idézőjelek közé.
Ahhoz, hogy a változtatásokat érvénybe léptessük generáljunk új Grubot:
sudo update-grub2
És a biztonság kedvéért, hogy láthassuk majd a vgaswitcheroo programot:
sudo chown $USER /sys/kernel/debug/
és rakjuk be blacklistbe a videókártyát:
echo "blacklist radeon" | sudo tee -a /etc/modprobe.d/blacklist.conf
Majd végül kapcsoljuk ki a rendszer indulásakor a videókártyát:
sudo gedit /etc/rc.local
majd az "exit 0" elé írjuk be a következőt:
modprobe radeon
echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
Ezzel a lépéssel több, mint 10 W-ot nyerhetünk, nálam a fogyasztás itt 17,7 W-ra csökkent.

2. lépés: További kernel paraméterek hozzáadása

Továbbiakban néhány további kernel paramétert adunk a Grub-hoz, amik alapesetben ki vannak kapcsolva, mert néhány hardverkonfigurációnál elméletileg hibákat okozhatnak.
Ezt ugyanúgy tehetjük meg, mint az előző részben:
sudo gedit /etc/default/grub
és a GRUB_CMDLINE_LINUX_DEFAULT részhez idézőjelek közé írjuk be a következőket:
pcie_aspm=force
i915.i915_enable_rc6=1
i915.i915_enable_fbc=1
i915.lvds_downclock=1
Ezek sorban: az első a PCI Express Active-State Power Management bekapcsolása, mely egyes hardvereknél nagy energiamegtakarítást eredményezhet, a második az Intel videókártya RC6 energiatakarékos üzemmódjának engedélyezése, a harmadik a Frame-Buffer Compression engedélyezése, mellyel az Intel videókártya tömöríti a képernyő frissítéséhez használt buffert, így kevesebb memóriát használ a videókártya, az utolsó pedig downclockolja az integrált Intel videókártyát. Az ilyen sorrendben történő alkalmazással lemértem, melyikkel mennyi energiát lehet megtakarítani:
Így változott a fogyasztás: 16,8W -> 11,6W -> 10,8W -> 10,6W. Láthatjuk, hogy ezekkel összesen több, mint 7 W-ot spóroltunk meg.
A kernel paraméterek érvénybe léptetéséhez, új Grub-ot kell generálni:
sudo update-grub2
Majd indítsuk újra a gépet.

3. lépés: Liquorix kernel telepítése

Korábban is használtam ezt a kernelt, tapasztalataim szerint gyorsabb vele a rendszer (és kicsit kevesebbet is fogyaszt). A Crunchbang startup scriptjében (cb-welcome) ugyan már nincs benne, de ezt megoldhatjuk mi magunk is. Az egyszerűség kedvéért találtam egy csomagot, ami .deb csomagként tartalmazza a kernelt és függőségeit. LETÖLTÉS ITT. (32 bit)

Végeredményben 17,6 W-al csökkentettük a rendszer fogyasztását, ami szerintem bárkinek jól jöhet, konnektor szegényes időkben.
További ~2 W-ot nyertem egy korábban már itt az oldalon bemutatott scripttel, amit tovább fejlesztettem, hamarosan azt is publikálom.
Addigis itt a végereményt mutató screenshot, a fogyasztásmérő program a powertop volt:


A fogyasztást tehát 28W-ról 8,4W-ra csökkentettem, ami 19,6W nyereség. Ugyanez használati időben kifejezve: a gép 40 perc helyett 5 és fél órát bír ki. :)
Sok sikert a változtatásokhoz!

Update: [Energiaspóroló szkript]
Update2: CrunchBang 11 "Waldorf" fogyasztása kicsit megnőtt, induláskor 38W-ot fogyasztott, az oldalon leírt optimalizáció során végül 9.63W-ra sikerült lefogyasztani ezt:

Újabb Liquorix kernel telepítése itt.

Források:
Cikk a kernel paraméterekről
Rövid leírás a Vgaswitcheroo-ról (+ kisebb továbbfejlesztés, pl.: igényesebb vgaswitcheroo állító script, magyarázatok)
Liquorix kernel honlapja
A Liquorix kernel: .deb csomagok forrása + 64 bites változat is