Portál AbcLinuxu, 30. dubna 2025 11:40

TP R400, part 2

12.5.2009 18:30 | Přečteno: 1783× | ThinkPad | Výběrový blog | poslední úprava: 15.5.2009 23:55

Tak jsem to přinutil ještě víc, aby to bylo všechno jak chci zrovinka já :).

Po přechodu na jádro 2.6.29 a aktualizaci BIOSu na verzi 3.00-1.03 se pískání procesoru, na které jsem si stěžoval v minulém zápisku, snížilo na takřka neslyšnou úroveň, tedy aspoň to tak teď večer vypadá. Zároveň se mi podařilo snížit nastavením laptop-mode (skoro všechno v /etc/laptop-mode/conf.d/* nastaveno na šetření) stáhnout odběr energie při chodu na baterii na úžasných 9 W, tedy výdrž na plně nabitou baterii o kapacitě 56 W je někam k 6-ti hodinám :P. Těch 9 W je při minimálním jasu, vypnutém disku (což se třeba při čtení ebooku celkem poštěstí), odpojené DVD vypalovačky a vypnuté WiFi. Se zapnutou WiFi, která má povolený powermanagement, je spotřeba vyšší, 10 W ale také celkem ujde.

Tlačítko pro ztlumení lze jednoduše přinutit k posílání eventu, přidáním parametru jádru, onen kouzelná parametr je acpi_osi="Linux". Také mi nějak přestalo fungovat ovládání jasu na textové konzoli, tam pomohlo přidat modulu thinkpad_acpi parametr brightness_enable=1 a drobně upravit skript na zachytávání acpi událostí (viz níže).

Notně jsem vylepšil způsob odpojení zařízení v ultrabay, také viz níže. No asi jako poslední věc je HDAPS :). Kupodivu už funguje, stačí mít tp_smapi-0.40 (obsahuje mimo jiné modul hdaps). Pomocí smapi lze také libovolně nastavit limity pro čip ovládající nabíjení baterie, ohleduplnějšími limity pro začátek a konec nabíjení lze prodloužit životnost baterie, vizte thinkwiki.org. Modul není potřeba zavádět s parametry, modul hdaps vyžaduje parametr invert=1, jinak jsou otočené osy.

No a tedy na závěr skrit handler.sh

$ cat /etc/acpi/handler.sh 
#!/bin/sh                                           
USER='vogo'                                         
export XAUTHORITY='/home/vogo/.Xauthority'          
export DISPLAY=':0'                                 

RF_SWITCH='/sys/devices/platform/thinkpad_acpi/hotkey_radio_sw'
WLAN_MODULE='iwlagn'                                           
WLAN_IFACE='wlan0'                                             
BLUETOOTH='/sys/devices/platform/thinkpad_acpi/bluetooth_enable'

INTERNAL='LVDS'
EXTERNAL='VGA' 
STATE_FILE='/tmp/xdisplay.state'

DOCK_STATION='/sys/devices/platform/dock.0'
BATTERY_BAY='/sys/devices/platform/dock.1' 
ATA_BAY='/sys/devices/platform/dock.2'     
ULTRABAY='/sys/class/scsi_device/1:0:0:0/device'

lock()
{     
    su $USER -c "qdbus org.kde.screensaver /ScreenSaver Lock"
}                                                            

case "$1" in
    "ac_adapter")
        case "$4" in
            00000000)
                #logger "unplug AC adapter"
            ;;                             
            00000001)                      
                #logger "plug AC adapter"  
            ;;                             
        esac                               
        ;;                                 
    "video")                               
        case "$3" in                       
            "00000086")                    
                #logger "KEY Brightness Up"
                echo up > /proc/acpi/ibm/brightness
            ;;                                     
            "00000087")                            
                #logger "KEY Brightness Down"      
                echo down > /proc/acpi/ibm/brightness
            ;;                                       
        esac                                         
    ;;                                               
    "button/power")                                  
        #logger "PWRF"                               
    ;;                                               
    "button/lid")                                    
        #logger "LID"                                
        #lock                                        
        #pm-suspend                                  
    ;;                                               
    "ibm/hotkey")                                    
        case "$4" in                                 
            "00007000")                              
                #logger "RF Kill switch"             
                if [ $(cat $RF_SWITCH) -eq 0 ]; then 
                    modprobe -r $WLAN_MODULE         
                    echo 0 > $BLUETOOTH              
                fi                                   
            ;;                                       
            "00001001")                              
                #logger "KEY Fn+F1"                  
                echo "off" > /proc/acpi/ibm/light    
                xset dpms force off                  
            ;;                                       
            "00001002")                              
                #logger "KEY Lock"                   
                lock                                 
            ;;                                       
            "00001003")                              
                #logger "KEY Battery"                
            ;;                                       
            "00001004")                              
                #logger "KEY Suspend"                
                lock                                 
                pm-suspend                           
            ;;                                       
            "00001005")                              
                #logger "KEY Connect"                
                if [ $(cat $RF_SWITCH) -eq 0 -o -d /sys/module/$WLAN_MODULE ]; then                                                                             
                    modprobe -r $WLAN_MODULE                                    
                elif modprobe $WLAN_MODULE; then                                
                    iwconfig $WLAN_IFACE power on                               
                    ifconfig $WLAN_IFACE up                                     
                fi                                                              
            ;;                                                                  
            "00001006")                                                         
                #logger "KEY Fn+F6"                                             
                if [ $(cat $RF_SWITCH) -eq 0 -o $(cat $BLUETOOTH) -ne 0 ]; then 
                    echo 0 > $BLUETOOTH                                         
                else                                                            
                    echo 1 > $BLUETOOTH                                         
                fi                                                              
            ;;                                                                  
            "00001007")                                                         
                #logger "KEY Display"                                           
                [ -f $STATE_FILE ] || touch $STATE_FILE                         
                [ $(xrandr | grep $EXTERNAL | awk {'print $2'}) = "connected" ]  || echo 1 > $STATE_FILE                                                        
                case $(cat $STATE_FILE) in                                      
                    1)                                                          
                        xrandr --output $INTERNAL --auto                        
                        xrandr --output $EXTERNAL --off                         
                        echo 2 > $STATE_FILE                                    
                    ;;                                                          
                    2)                                                          
                        xrandr --output $EXTERNAL --auto                        
                        xrandr --output $INTERNAL --off                         
                        echo 3 > $STATE_FILE                                    
                    ;;                                                          
                    3)                                                          
                        xrandr --output $INTERNAL --auto                        
                        xrandr --output $EXTERNAL --auto                        
                        xrandr --output $INTERNAL --left-of $EXTERNAL           
                        echo 1 > $STATE_FILE                                    
                    ;;                                                          
                    *)                                                          
                        echo 1 > $STATE_FILE                                    
                    ;;                                                          
                esac                                                            
            ;;                                                                  
            "00001008")                                                         
                #logger "KEY Input"                                             
                if [ $(synclient -l | grep TouchpadOff | awk {'print $3'}) -eq 0 ]; then                                                                        
                    synclient TouchpadOff=1                                     
                else                                                            
                    synclient TouchpadOff=0                                     
                fi                                                              
            ;;                                                                  
            "00001009")                                                         
                #logger "KEY Dock"                                              
                if [ -d $ULTRABAY ]; then                                       
                    FAILED=0                                                    
                    sync                                                        
                    for BLOCK in $(cat $ULTRABAY/block/*/*/dev $ULTRABAY/block/*/dev); do                                                                       
                        DEVICE=$(readlink -e /dev/block/$BLOCK)                 
                        if mount | grep -e "^${DEVICE}\b" > /dev/null; then     
                            umount $DEVICE || FAILED=1                          
                        fi                                                      
                    done                                                        
                    if [ $FAILED -eq 0 ]; then                                  
                        sync                                                    
                        BLOCK=$(cat $ULTRABAY/block/*/dev) &&                   
                        DEVICE=$(readlink -e /dev/block/$BLOCK) &&              
                        hdparm -Y $DEVICE                                       
                        sleep 1                                                 
                        sync                                                    
                        echo 1 > $ULTRABAY/delete                               
                        sleep 5                                                 
                    fi                                                          
                fi                                                              
                if [ ! -d $ULTRABAY -a $(cat $ATA_BAY/docked) -ne 0 ]; then     
                    echo 1 > $ATA_BAY/undock                                    
                fi                                                              
                if [ $(cat $BATTERY_BAY/docked) -ne 0 ]; then
                    echo 1 > $BATTERY_BAY/undock
                fi
            ;;
            "0000100b")
                #logger "KEY Fn+F11"
            ;;
            "0000100c")
                #logger "KEY Hibernate"
                lock
                pm-hibernate
            ;;
            "00001014")
                #logger "KEY Zoom"
                acpi_fakekey 156 #XF86MyComputer
            ;;
            "00001018")
                #logger "KEY ThinkVantage"
                acpi_fakekey 157 #XF86Favorites
            ;;
        esac
    ;;
esac
#logger "KEY $*"
       

Hodnocení: 100 %

        špatnédobré        

Anketa

Jako notebook nejvhodnější pro Linux mi připadá...
(prosím žádný flame, nikdo není zvědavý na pubertální výlevy)
 (88 %)
 (0 %)
 (3 %)
 (4 %)
 (1 %)
 (3 %)
Celkem 68 hlasů

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

=^..^= AmigaPower® avatar 12.5.2009 18:41 =^..^= AmigaPower® | skóre: 30 | blog: BLB | Praha
Rozbalit Rozbalit vše Re: TP R400, part 2
Odpovědět | Sbalit | Link | Blokovat | Admin
...pánové já vás obdivuju! Já když přijdu domu a zapnu počítač, tak se mi elektoměr začne celej klepat od těch otáček... :-D
I♥DRX * www.KERNELULTRAS.org
Jan Drábek avatar 12.5.2009 18:57 Jan Drábek | skóre: 41 | blog: Tartar | Brno
Rozbalit Rozbalit vše Re: TP R400, part 2

Pořiďte si sušičku prádla a bude se klepat i jistič :-D

01010010 01000101 01010000 01101100 01001001 00110010 01000100 01100101 01010110
12.5.2009 19:32 Jan Včelák | skóre: 28 | blog: Fcelda
Rozbalit Rozbalit vše Re: TP R400, part 2
Odpovědět | Sbalit | Link | Blokovat | Admin
Já mám Dell (který není v nabídce) a jsem více než spokojen. A Dell se k Linuxu staví celkem pozitivně. Viz linux.dell.com. Jsou tam nástroje na automatickou aktualizaci BIOSu, nebo třeba DKMS - který se dostal i do výchozí instalace *ubuntu (je to celkem dobrá věcička).
12.5.2009 19:33 Jan Včelák | skóre: 28 | blog: Fcelda
Rozbalit Rozbalit vše Re: TP R400, part 2
Ještě funkční odkaz: http://linux.dell.com/
12.5.2009 19:39 neaktivni | skóre: 24 | blog: neaktivni
Rozbalit Rozbalit vše Re: TP R400, part 2
+1
12.5.2009 20:28 kralyk z abclinuxu | skóre: 29 | blog:
Rozbalit Rozbalit vše Re: TP R400, part 2
Michal Fecko avatar 12.5.2009 21:14 Michal Fecko | skóre: 31 | blog: Poznámkový blog
Rozbalit Rozbalit vše Re: TP R400, part 2
+1
Fluttershy, yay! avatar 12.5.2009 23:07 Fluttershy, yay! | skóre: 93 | blog:
Rozbalit Rozbalit vše Re: TP R400, part 2
+1
🇵🇸Touch grass🇺🇦 ✊ ani boha, ani pána
hikikomori82 avatar 12.5.2009 20:08 hikikomori82 | skóre: 18 | blog: foobar | Košice
Rozbalit Rozbalit vše Re: TP R400, part 2
Odpovědět | Sbalit | Link | Blokovat | Admin
HP uz notebooky nevyraba?
Slobodný font na technické kreslenie
vogo avatar 12.5.2009 20:24 vogo | skóre: 34 | blog: "Skládat papír"
Rozbalit Rozbalit vše Re: TP R400, part 2
dá se nějak editovat anketa? Je pravda, že DELL a HP jsem opomenul
Nejsem paranoidní, ale to ještě neznamená, že po mě nejdou.
=^..^= AmigaPower® avatar 12.5.2009 20:45 =^..^= AmigaPower® | skóre: 30 | blog: BLB | Praha
Rozbalit Rozbalit vše Re: TP R400, part 2
Zkus jí smazat a udělat znova (nezkoušeno).
13.5.2009 07:21 RapMan | skóre: 14 | blog: RapMan
Rozbalit Rozbalit vše Re: TP R400, part 2
Ja jsem pro HP. Po instalaci ubuntu vse funkcni na nekolika ruznych strojich.
12.5.2009 21:52 Honza | skóre: 7 | Brno
Rozbalit Rozbalit vše Re: TP R400, part 2
Odpovědět | Sbalit | Link | Blokovat | Admin

Ta spotřeba 9W zní opravdu skvěle. Byly by nějaké podrobnější informace o tom, jak toho dosáhnout? Docela jsem to u sebe na T61 ladil, ale pod 14W se nedostanu.

vogo avatar 12.5.2009 22:07 vogo | skóre: 34 | blog: "Skládat papír"
Rozbalit Rozbalit vše Re: TP R400, part 2
Jak jsem psal, používám laptop-mode, který se stará o šetření šťávy :), stačí všechno co vypadá rozumě, síťová karta, WiFi karta, suspend USB, vypínání textových konzolí, powermanagement zvukovky, noatime pro disky, plánovač procesů, powermanagement sata řadiče a pak ještě v BIOSu vypnutý sériový, paralelní port, dokovačka, modem. No a pak to tak nějak vyšlo :).
Nejsem paranoidní, ale to ještě neznamená, že po mě nejdou.
13.5.2009 06:29 Honza | skóre: 7 | Brno
Rozbalit Rozbalit vše Re: TP R400, part 2

Aha, laptop-mode jsem neznal a vypadá to zajímavě. Vyzkouším to a uvidíme. Díky.

13.5.2009 12:01 Jan Grmela | skóre: 45 | blog: Kilo šťávy z lachtana | Brno
Rozbalit Rozbalit vše Re: TP R400, part 2
Poprosím dopsat do FAQ Jak na Linuxu šetřit energii.
Jan Drábek avatar 12.5.2009 22:18 Jan Drábek | skóre: 41 | blog: Tartar | Brno
Rozbalit Rozbalit vše Re: TP R400, part 2

S R61 dosáhnu při delším klidném využití (žádné zběsilé přepínání oken, žádný flash...) tak 12 W, ale jak je baterka pod 30% tak to samo klesne pod 11 W.

01010010 01000101 01010000 01101100 01001001 00110010 01000100 01100101 01010110
vogo avatar 12.5.2009 22:34 vogo | skóre: 34 | blog: "Skládat papír"
Rozbalit Rozbalit vše Re: TP R400, part 2
ten další pokles má na svědomí BIOS… mě pod 60% baterky, klesne odběr na 8.5W, jinak pro baterii není dobré vybíjet pod 30%
Nejsem paranoidní, ale to ještě neznamená, že po mě nejdou.
Dragon Jake avatar 14.5.2009 13:58 Dragon Jake | blog: Drakův zápisník | Praha
Rozbalit Rozbalit vše Re: TP R400, part 2

Já na T61 vytáhl nejmíň 13.0 W... mám ho hodně vyladěný na spotřebu (laptop-mode, vlastní skripty atd). Je ale pravda, že jsem měl zapnutý jen powertop a nic nedělal :)

Btw. zajímavé zjištění, bez Xek ve fb mi notebook žere 18.0 W, s Xkama právě těch 13.0 W - asi to má co dočinění s nvidia driverem.

14.5.2009 15:54 Honza | skóre: 7 | Brno
Rozbalit Rozbalit vše Re: TP R400, part 2

Já si ještě všiml, že je rozdíl i v různých okenních manažerech. Při použití KDE mi to žere o cca 1W méně než v GNOME.

Dragon Jake avatar 14.5.2009 16:00 Dragon Jake | blog: Drakův zápisník | Praha
Rozbalit Rozbalit vše Re: TP R400, part 2

Tak to jsem rád, že používám KDE ;)

A ještě jeden zajímavý poznatek, Firefox + JavaScript = watt killer

15.5.2009 15:45 Honza | skóre: 7 | Brno
Rozbalit Rozbalit vše Re: TP R400, part 2

Tak jsem si s tím trošku hrál a dopadl jsem podobně. Na mé T61 dosáhnu 13W, když nic nedělám a je puštěný jen powertop. Když normálně browsuju a pracuju, tak je to kolem 14 až 15W. Myslím, že svoje udělá NVidia. Taky obvykle mám zaplou wifi a jas taky není úplně na minimu. No, míň z toho asi nedostanu.

Dent avatar 13.5.2009 00:21 Dent | skóre: 21 | blog: Standovo
Rozbalit Rozbalit vše Re: TP R400, part 2
Odpovědět | Sbalit | Link | Blokovat | Admin
To pískání je vůbec nějak rozšířený Lenovo neduh. Mám R61 - minulý týden kvůli tomu byla měněna základní deska, pískání neustalo. Takže ještě tenhle týden mě čeká výměna procesoru a pokud to nepřestane, budu se snažit u Lenova ukecat výměnu za jiný kus.

Spolužák má R500 a překvapivě... ano, píská. Taky.

A nejhorší je, že ani v autorizovaném servisu neví, čím to je.
13.5.2009 00:49 Martin Šebek | skóre: 18 | blog: Tady je Indiánovo | Mladá Boleslav
Rozbalit Rozbalit vše Re: TP R400, part 2
Thinkpad T41 i T60 mi vždycky pískal pouze v případě, že běžel na baterii. U těch mých notebooků se to vždy dalo vyřešit odebráním modulu uhci_hcd, což vzhledem k tomu, že jsem nepotřeboval USB, bylo řešení vyhovující.
Dent avatar 13.5.2009 12:31 Dent | skóre: 21 | blog: Standovo
Rozbalit Rozbalit vše Re: TP R400, part 2
Příloha:
uhci_hcd není nahraný(Ubuntu 9.04), ale zkusil jsem odebrat modul usbhid, nepomohlo to. Do přílohy přidávám výpis lsmod, kdyby tam někdo našel něco podezřelého.

Ale i kdyby to vyřešilo odstranění modulu, stále je to pouze poloviční vítězství - Vista mi nic takového nedovolí a ve škole Windows zatím potřebuju.
Jan Drábek avatar 13.5.2009 08:02 Jan Drábek | skóre: 41 | blog: Tartar | Brno
Rozbalit Rozbalit vše Re: TP R400, part 2

U mě to taky pískalo... A potom to přestalo

01010010 01000101 01010000 01101100 01001001 00110010 01000100 01100101 01010110
13.5.2009 07:48 bigfish | blog: zblepty
Rozbalit Rozbalit vše Re: TP R400, part 2
Odpovědět | Sbalit | Link | Blokovat | Admin

Kurnik o pískání Levnoa čtu v poslední době pořád? To je nějaká sériová vada nebo šlo Lenovo pomalu do hajzlu?

Případně se jedná o Linuxový problém s Lenovem?

13.5.2009 12:01 Jan Grmela | skóre: 45 | blog: Kilo šťávy z lachtana | Brno
Rozbalit Rozbalit vše Re: TP R400, part 2
Na tom možná něco bude, se stejným BIOSem mi X61 pískala jen pod Linuxem, pod Vistama bylo ticho. Je však třeba rozlišovat pískání z audio výstupu a pískání "obecné" (např. nějaký VF prvek jako je DC/DC měnič). Tohle bylo z audio výstupu.
Dent avatar 13.5.2009 12:21 Dent | skóre: 21 | blog: Standovo
Rozbalit Rozbalit vše Re: TP R400, part 2
Nevím, čím to je. Tady v Budějovickém servisu se s tím technik setkal podruhé, v pražském je to prý jako na běžícím pásu.

Pískání se většinou vyskytuje v levé horní oblasti, tedy v oblasti procesoru. A většinou pouze při běhu na baterky. Jsou toho plná fóra a i na ThinkWiki je tomu věnovaný článek. Zkuste zadat do google "thinkpad pitch noise" a uvidíte :)) (a nejedná se o problém pouze o Lenova)

Někdo to třeba neslyší (většinou starší lidé). Já to slyším přes celou místnost a na přednášce (ticho, mluví jen přednášející vepředu) mám pocit, že mi z toho bouchne hlava.
vogo avatar 13.5.2009 21:14 vogo | skóre: 34 | blog: "Skládat papír"
Rozbalit Rozbalit vše Re: TP R400, part 2
Potvrzuji, není to jen u Lenova, takhle mi pískal i Asus, taky s CPU od Intelu, pak najednou po update BIOSu přestal… Jak sem psal, i tentokrát update pomohl, sice ne úplně, ale je to o dost lepší… Jinak může za to přepínání stavu procesoru do hlubokého spánku, pokud se vypnou nejhlubší módy, např. předáním parametru jádru (idle=halt), obvykle se pískavý zvuk vytratí, ale to trochu zvyšuje spotřebu, např. s jádrem 2.6.29 je to celkem znatelné, 1~2W, u starších jsem to moc nepozoroval, nevím proč ale nějak mi to žralo víc :).
Nejsem paranoidní, ale to ještě neznamená, že po mě nejdou.
14.5.2009 09:57 Piškot | skóre: 7 | blog: Uživatel | Přerov nad labem
Rozbalit Rozbalit vše Re: TP R400, part 2
Odpovědět | Sbalit | Link | Blokovat | Admin

Jak jsi měřil spotřebu ?

vogo avatar 14.5.2009 16:37 vogo | skóre: 34 | blog: "Skládat papír"
Rozbalit Rozbalit vše Re: TP R400, part 2
acpitool -B | grep "Present rate"
Nejsem paranoidní, ale to ještě neznamená, že po mě nejdou.
Dragon Jake avatar 14.5.2009 21:42 Dragon Jake | blog: Drakův zápisník | Praha
Rozbalit Rozbalit vše Re: TP R400, part 2

Hezký nástroj je také powertop z dílny Intelu

1.6.2010 21:33 frdrx | skóre: 29 | blog: frdrx
Rozbalit Rozbalit vše Re: TP R400, part 2
Odpovědět | Sbalit | Link | Blokovat | Admin
Tato diskuze už je pasé, ale přesto si dovolím pochlubit se, že můj nový Thinkpad R400 (procesor Intel T6670, integrovaná grafika, šitózní display) žere v klidu pod 7 W se zapnutou WiFi, spuštěným Emacsem, Firefoxem s načtenými stránkami a Evolution kontrolující každých 10 minut maily (Ubuntu 10.04 s GNOME), při nenáročné práci 10 W a při náročné jde spotřeba ke 20 W a výš. Se spotřebou ve Windows 7 jsem to ještě neporovnával, ale R400 mi s GNU/Linuxem na baterku vydrží běžet o dost déle než uvádí výrobce (více než šest hodin, možná sedm, oproti max pěti). Tohle je stav po pouhých několika hodinách snahy s pomocí informací z webu.
Patička mi slouží k tomu, abych si lépe poznal svoje příspěvky.

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.