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

2012. március 2., péntek

Transmission magnet link


A piratebay-en már egy ideje magnet linkekkel működik alapértelmezetten a torrent letöltés, bár még a régi hagyományos .torrent fájl letöltő mechanizmus is működik. Elvileg egy idő után, csak a magnet linkek lesznek már használhatóak, ezt a váltást többféleképpen magyarázzák: a hivatalos indoklás, hogy így csökken az oldal terhelése, mert nem kell fájlokat az oldalról letölteni. Azonban a valós magyarázat az lehet, hogy a magnet linkeket nem lehet még jogilag behatárolni, így ellenük tenni se nagyon, valamint a magnet linkek a szerver működése nélkül is funkcionálnak.
Ennyi bemelegítés után keltsük életre a magnet linkeket Firefox-ban, a következő parancsokat kell kiadni terminálban:

gconftool-2 -t string -s /desktop/gnome/url-handlers/magnet/command "/usr/bin/transmission '%s'"
gconftool-2 -t bool -s /desktop/gnome/url-handlers/magnet/needs_terminal false
gconftool-2 -t bool -s /desktop/gnome/url-handlers/magnet/enabled true
A Transmission oldalán egy bővebb leírás is található.
Több infó a magnet linkekről: Wikipedia

2011. szeptember 16., péntek

Raspberry Pi, extraolcsó HTPC


Most kívételesen nem szoftverekről fogok írni, hanem egy nagyon jó ötletről, amit pár napja találtam: a Raspberry Pi. Egy ARM architektúrás miniszámítógépről van szó, 35$ csak (létezik egy 25$-os változat is kicsit szerényebb teljesítménnyel), és akkora körülbelül mint egy névjegykártya. Fogyasztása 1W, és gyakorlatilag mindenféle porttal rendelkezik, amivel egy hagyományos PC is.
A gép alapvetően háttértárként egy SD kártyát használ, így egy jobb SD kártyával rendkívűl gyors rendszert kaphatunk. Operációs rendszerként mindent futtat, ami támogatja az ARM architektúrát: ez gyakorlatilag a különböző Linux változatokat jelenti, Windows-t nem fog tudni futtatni a gép.
Néhány extra még ami miatt különösen érdekes a gép: egy 700Mhz-es processzor van a gépben 256MB memóriával, minden integrált, található rajta 1 db HDMI port, 1 db Ethernet port, 2 db USB, 3.5mm Jack csatlakozó.
Alapvetően az oktatásba szánták ezt az eszközt, azonban rendkívűl sok egyéb felhasználása is lehetséges, elég szép teljesítményének köszönhetően. Többek közt szinte bármilyen szerverré alakítható az eszköz - persze inkább csak otthoni használatra -, és természetesen a HDMI kimenet miatt elég szép HTPC is kialakítható belőle.
Sajnos az eszköz még nem kapható, azonban november végére ígérik a megjelenést, érdemes követni a pályafutását!

Raspberry Pi hivatalos honlapja
Raspberry Pi saját Wiki-je

2011. július 31., vasárnap

Samsung Galaxy 3 ROM: InDroid

Most egy nagyon jó ROM-ot fogok ajánlani Samsung Galaxy 3-hoz (i5800) a neve InDroid. Elég sokféle ROM-ot kipróbáltam és végül ezt találtam a leggyorsabbnak, nagyon stabil, megbízható, igényes ROM. A fejlesztők rengeteg változást hajtottak végre egy alap XXJPQ ROM-ból kiindulva. A legfontosabb számomra a gyorsaságon kívül az volt, hogy így képes lett a telefon CWM Recovery-t használni, így sokkal könnyebb továbbiakban a ROM frissítése, valamint eleve rootolták a ROM-ot, és rengeteg téma található hozzá, és nagyon látványossá varázsolható vele a telefon. Mindenkinek csak ajánlani tudom!
Telepítésről és magáról a ROM-ról további információk a hivatalos oldalon találhatóak, valamint a Facebook-on válaszolgatnak a fejlesztők/segítőkész InDroid felhasználók a feltett kérdésekre:
Az InDroid hivatalos oldala
Az InDroid Facebook oldala

2011. július 13., szerda

USB pendrive csatolása/leválasztása Linuxon


Mostanában a Crunchbangem nem akarja nagyon kezelni a külső USB tárolókat (pl.: pendriveok), csatolni (mount) általában még sikerül, de leválasztani nem mindig, és néha adatok is sérülnek a külső tárolókon. Kipróbáltam többféle megoldást, de egyik se működött rendesen, most leírom, Terminálból hogyan kezelhetjük rendesen ezeket az eszközöket.
Csatolás
Írjuk be konzolba a következőt:

mount
Ekkor kilistázódnak a csatolt lemezek (kicsit több infóval: sudo fdisk -l). Ha ezután csatlakoztatunk egy pendrive-ot és kiadjuk újra a mount parancsot láthatjuk, hova csatolódott. Ha ez nem sikerült, írjuk be a következőt:

sudo fdisk -l
Keressük ki az eszközünket (pl.: sdaX, sdbX, stb) ezután a külső eszközön található partíció típusától függően különféleképpen lehet csatolni:
NTFS-nél:

sudo mount -t ntfs /dev/sdaX /media/disk
FAT-nál:
sudo mount -t vfat /dev/sdaX /media/disk
Leválasztás
Ez a kritikus rész, nálam itt vesztek el néha adatok. Miután befejeztük a fájlműveleteket adjuk ki a következő parancsot:

sync
Ezután már nyugodt szívvel leválaszthatjuk az USB eszközt:

umount /media/disk

2011. június 12., vasárnap

Repository hozzáadása (add-apt-repository Debianban)

Találtam egy jó kis Bash scriptet, amivel hozzáadhatunk ubuntumentes környezetben is repositorykat a szoftvertárolókhoz.
Ehhez a következőket kell tennünk:

cd /usr/sbin/
sudo gedit add-apt-repository
A megnyíló geditbe illesszük be a következő scriptet:

#!/bin/bash
if [ $# -eq 1 ]
then
ppa_name=`echo "$1" | cut -d":" -f2 -s`
if [ -z "$ppa_name" ]
then
echo "PPA name not found"
echo "Utility to add PPA repositories in your debian machine"
echo "$0 ppa:user/ppa-name"
else
echo "$ppa_name"
echo "deb http://ppa.launchpad.net/$ppa_name/ubuntu lucid main" >> /etc/apt/sources.list
apt-get update >> /dev/null 2> /tmp/apt_add_key.txt
key=`cat /tmp/apt_add_key.txt | cut -d":" -f6 | cut -d" " -f3`
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $key
rm -rf /tmp/apt_add_key.txt
fi
else
echo "Utility to add PPA repositories in your debian machine"
echo "$0 ppa:user/ppa-name"
fi
Mentsük el a fájlt, majd tegyük futtathatóvá és állítsuk be a jogosultságokat:

sudo chmod o+x /usr/sbin/add-apt-repository
sudo chown root:root /usr/sbin/add-apt-repository

2011. június 9., csütörtök

Crunchbang szépítés

Az új Ubuntu (Natty Narwhal) megjelenésével együtt váltottam Crunchbangre. Ennek több oka is volt, nem nagyon jön be az új ubuntus irány, remélem még visszatérnek arra a vonalra, amit régen követtek. Korábban is kipróbáltam már a Crunchbang-et és akkor is tetszett már, most viszont főállású oprendszerként használom.
Ez a rendszer inkább a hozzáértőbb linuxosoknak lett kitalálva, ez már a kinézetéből is látszik. Természetesen a kinézet kis elszántsággal elég szépre varázsolható, és ehhez nem is kell engednünk a rendszer gyorsaságából annyit.
Most így néz ki az asztalom:
Először az alsó panelt tettem félig átlátszóvá, ehhez a Tint panel config fájlját (jobb klikk->Settings->tint2 Panel Config->Edit config file) kell szerkeszteni.
Az enyém most ez:
#---------------------------------------------
# TINT2 CONFIG FILE
#---------------------------------------------
# For more information about tint2, see:
# http://code.google.com/p/tint2/wiki/Welcome
#
# For more config file examples, see:
# http://crunchbanglinux.org/forums/topic/3232/my-tint2-config/

# Background definitions
# ID 1
rounded = 5
border_width = 0
background_color = #000000 50
border_color = #FFFFFF 20

# ID 2
rounded = 5
border_width = 0
background_color = #000000 100
border_color = #ffffff 20

# ID 3
rounded = 5
border_width = 0
background_color = #000000 40
border_color = #000000 1

# ID 4
rounded = 5
border_width = 1
background_color = #888888 20
border_color = #ED2323 60

# ID 5 - taskbar
rounded = 0
border_width = 0
background_color = #000000 0
border_color = #000000 0

# ID 6 - active taskbar
rounded = 0
border_width = 1
background_color = #d8d8d8 8
border_color = #d8d8d8 0

# ID 7 - tooltip
rounded = 3
border_width = 0
background_color = #222222 90
border_color = #222222 90

# ID 8
rounded = 1
border_width = 1
background_color = #888888 20
border_color = #888888 20

# Panel
panel_monitor = all
panel_position = bottom center horizontal
panel_items = TSC
panel_size = 98% 30
panel_margin = 0 0
panel_padding = 0 0
panel_dock = 0
wm_menu = 1
panel_layer = bottom
panel_background_id = 1

# Panel Autohide
autohide = 0
autohide_show_timeout = 0.3
autohide_hide_timeout = 1.5
autohide_height = 6
strut_policy = follow_size

# Taskbar
taskbar_mode = multi_desktop
taskbar_padding = 6 0 6
taskbar_background_id = 5
taskbar_active_background_id = 3
taskbar_name = 1
taskbar_name_background_id = 0
taskbar_name_active_background_id = 0
taskbar_name_font = sans 9
taskbar_name_font_color = #d8d8d8 100
taskbar_name_active_font_color = #d8d8d8 100

# Tasks
urgent_nb_of_blink = 20
task_icon = 1
task_text = 0
task_centered = 1
task_maximum_size = 40 40
task_padding = 2 2
task_background_id = 5
task_active_background_id = 2
task_urgent_background_id = 4
task_iconified_background_id = 3

# Task Icons
task_icon_asb = 50 0 0
task_active_icon_asb = 100 0 0
task_urgent_icon_asb = 100 0 0
task_iconified_icon_asb = 60 0 0

# Fonts
task_font = sans 06_55 6
task_font_color = #d8d8d8 60
task_active_font_color = #d8d8d8 100
task_urgent_font_color = #FFFFFF 100
task_iconified_font_color = #d8d8d8 60
font_shadow = 0

# Launcher
launcher_padding = 8 4 4
launcher_background_id = 0
launcher_icon_size = 24
# Specify icon theme names with launcher_icon_theme.
# if you have an XSETTINGS manager running (like xfsettingsd), tint2 will follow your current theme.
launcher_icon_theme = gnome-colors-statler
# Each launcher_item_app must be a full path to a .desktop file
launcher_item_app = /usr/share/applications/terminator.desktop
launcher_item_app = /usr/share/applications/xfce4-file-manager.desktop
launcher_item_app = /usr/share/applications/gedit.desktop
launcher_item_app = /usr/share/applications/iceweasel.desktop

# System Tray
systray = 1
systray_padding = 4 2 3
systray_sort = ascending
systray_background_id = 0
systray_icon_size = 24
systray_icon_asb = 100 0 0

# Clock
time1_format = %H:%M:%S
time1_font = sans 8
time2_format = %A %d %B
time2_font = sans 6
clock_font_color = #d8d8d8 100
clock_padding = 4 4
clock_background_id = 0
clock_lclick_command = gsimplecal
clock_rclick_command = gsimplecal

# Tooltips
tooltip = 1
tooltip_padding = 2 2
tooltip_show_timeout = 0.0
tooltip_hide_timeout = 0.0
tooltip_background_id = 7
tooltip_font_color = #d8d8d8 100
tooltip_font = sans normal 8.0

# Mouse
mouse_middle = none
mouse_right = toggle
mouse_scroll_up = toggle
mouse_scroll_down = iconify

# Battery
battery = 1
battery_low_status = 20
battery_low_cmd = notify-send "battery low"
battery_hide = 96
bat1_font = Sans 10
bat2_font = Sans 8
battery_font_color = #FFFFFF 100
battery_padding = 2 0
battery_background_id = 0

# End of config
Közben váltottam régi kedvenc zenelejátszómról az Audacious-ról is, a DeadBeef nevűre. Egyszer már írtam erről a lejátszóról is egy tesztben. Ahhoz, hogy a Conky-ban a zenék jól jelenjenek meg, a Conky config fájlját is kicsit szerkeszteni kell. Ehhez vegyük az előző cikkben megírt config fájlt, és a Music részt írjuk át erre:
MUSIC ${hr 2}
${alignc 20}${font Buttons and Switches JL:size=38}J${font}
$alignc ${exec deadbeef --nowplaying "%a - %t"} (${exec deadbeef --nowplaying "%l"})
${execbar python /home//.scripts/deadbeef.py}$endif
A hallgatott zene progressbar-jának működéséhez írtam egy kisebb python scriptet, amit a home könyvtárunkban a ".script" mappában kell elhelyezni "deadbeef.py" néven. Tartalma a következő:
#!/usr/bin/env python

import os

bashcmd=os.popen("deadbeef --nowplaying %l")
length=bashcmd.read()
bashcmd=os.popen("deadbeef --nowplaying %e")
elapsed=bashcmd.read()

sec=length[-2:]
min=length[:-3]
t1=int(min)*60+int(sec)

sec=elapsed[-2:]
min=elapsed[:-3]
t2=int(min)*60+int(sec)
print float(t2)/float(t1)*100
(Ez a szkript amúgy egy számot állít elő, ami az éppen hallgatott zeneszámban mondja meg százalékban, hogy hol tartunk a zenehallgatásban a zeneszám teljes hosszához képest.)

A hátteret pedig erről az oldalról szereztem be. Sok sikert a csinosításhoz! :)