You are not logged in.

#1 2007-07-11 00:02:37

webbrewer
Member
From: Eugene, OR USA
Registered: 2007-07-10
Posts: 25

acpi on thinkpad t20

I am enjoying my Arch experience so far, with some minor exceptions.
-I am unable to get screen blanking to work using the fn+f3 key.  Probably an easy fix, but I haven't found a solution.
-When I suspend to ram (fn+f4), and resume, the sound no longer works.  On my previous install using ubuntu, a file was available to allow specifying modules that needed to be reloaded on resume.  I simply put my sound module in this file, and sound was restored (it also forced all apps using sound to quit.)  Is there an Arch way of doing this?  Also, suspend to ram stops working randomly.  I haven't determined what causes that.
-Haven't been able to get hiberation working after installing kernel26suspend2.  Haven't spent much time beyond doing what the wiki said and browsing these forums.  This may be an issue for another topic.

Last edited by webbrewer (2007-07-11 00:11:10)

Offline

#2 2007-07-11 19:53:03

PenguinFlavored
Member
From: Chicago, IL, USA
Registered: 2006-06-06
Posts: 66
Website

Re: acpi on thinkpad t20

Hi webbrewer, welcome to Arch Linux smile

Have you looked at http://thinkwiki.org? This is a wonderful site for running linux on thinkpads, it has a lot of useful information.

Are you using hibernate-script? It's configuration has a place to list all the modules and services you need to restart.

Start here, and come back if you get stuck
Good luck!

Offline

#3 2007-07-11 22:30:00

webbrewer
Member
From: Eugene, OR USA
Registered: 2007-07-10
Posts: 25

Re: acpi on thinkpad t20

The hibernate scripts seem to be my solution. Now, how do I execute hibernate from my fn keys?

Offline

#4 2007-07-12 04:30:12

webbrewer
Member
From: Eugene, OR USA
Registered: 2007-07-10
Posts: 25

Re: acpi on thinkpad t20

The Ubuntu install on thinkwiki (http://www.thinkwiki.org/wiki/Installin … er-Suspend) details which modules need to be reloaded on suspend.  So I added these (sb uart401 sound soundcore maestro cs4281 snd-cs46xx) to the /etc/hibernate/blacklisted-modules file.  When I run hibernate, it reponds with:

Some modules failed to unload: snd_cs46xx snd_rawmidi snd_ac97_codec snd_seq_device snd_pcm snd_timer snd soundcore
hibernate: Aborting suspend due to errors in ModulesUnloadBlacklist (use --force to override).

Offline

#5 2007-07-12 04:47:52

webbrewer
Member
From: Eugene, OR USA
Registered: 2007-07-10
Posts: 25

Re: acpi on thinkpad t20

[root@stifflers-laptop hibernate]# lsmod
Module                  Size  Used by
ath_pci                88224  0 
button                  6288  0 
psmouse                35080  0 
wlan_wep                6272  1 
ipv6                  252992  8 
irtty_sir               5632  0 
sir_dev                11268  1 irtty_sir
pcmcia                 31404  0 
ppdev                   7428  0 
lp                      9220  0 
rtc_sysfs               3840  0 
rtc_proc                3844  0 
nsc_ircc               16016  0 
rtc_dev                 6792  0 
irda                  113848  2 sir_dev,nsc_ircc
crc_ccitt               2304  1 irda
parport_pc             35940  1 
parport                31176  3 ppdev,lp,parport_pc
ppp_generic            23572  0 
serio_raw               5636  0 
rtc_cmos                7188  0 
rtc_core                7684  4 rtc_sysfs,rtc_proc,rtc_dev,rtc_cmos
rtc_lib                 3456  2 rtc_sysfs,rtc_core
uhci_hcd               22032  0 
i2c_piix4               7820  0 
i2c_core               17664  1 i2c_piix4
wlan_scan_sta          12416  1 
ath_rate_sample        12160  1 
pcspkr                  2944  0 
intel_agp              21404  1 
shpchp                 29332  0 
pci_hotplug            27720  1 shpchp
yenta_socket           23308  3 
rsrc_nonstatic         11136  1 yenta_socket
pcmcia_core            32920  3 pcmcia,yenta_socket,rsrc_nonstatic
agpgart                27608  1 intel_agp
sg                     26780  0 
tsdev                   6464  0 
thermal                11656  0 
processor              24788  1 thermal
evdev                   8192  0 
fan                     3972  0 
battery                 8580  0 
ac                      4100  0 
ibm_acpi               28568  0 
snd_cs46xx             77768  1 
gameport               11784  2 snd_cs46xx
snd_rawmidi            19232  1 snd_cs46xx
snd_ac97_codec         95396  1 snd_cs46xx
snd_seq_device          6796  1 snd_rawmidi
snd_pcm                68484  2 snd_cs46xx,snd_ac97_codec
snd_timer              19076  1 snd_pcm
snd_page_alloc          7816  2 snd_cs46xx,snd_pcm
snd                    44388  8 snd_cs46xx,snd_rawmidi,snd_ac97_codec,snd_seq_device,snd_pcm,snd_timer
soundcore               6496  1 snd
ac97_bus                2432  1 snd_ac97_codec
slhc                    6272  1 ppp_generic
3c59x                  39592  0 
mii                     4992  1 3c59x
wlan                  188740  5 ath_pci,wlan_wep,wlan_scan_sta,ath_rate_sample
ath_hal               190032  3 ath_pci,ath_rate_sample
usbcore               111880  2 uhci_hcd
ext3                  118536  1 
jbd                    54952  1 ext3
mbcache                 6916  1 ext3
sr_mod                 14372  0 
cdrom                  34080  1 sr_mod
sd_mod                 16640  3 
ata_piix               11780  2 
ata_generic             5636  0 
libata                102036  2 ata_piix,ata_generic

Offline

#6 2007-07-12 17:39:57

PenguinFlavored
Member
From: Chicago, IL, USA
Registered: 2006-06-06
Posts: 66
Website

Re: acpi on thinkpad t20

There's something using those modules, most likely an application, make sure those are turned off. There's a way to kill programs in the hibernate script.

For the buttons, you'll need to configure those through acpid, see: http://thinkwiki.org/wiki/How_to_configure_acpid.

A trick I found is to automatically enable ibm hotkeys using a little hack in modprobe.conf. YMMV, I've got at T30

# Enable experimental featues, and hotkeys in ibm-acpi
# options ibm-acpi experimental=1
install ibm-acpi /sbin/modprobe --ignore-install ibm-acpi; \
        echo enable > /proc/acpi/ibm/hotkey

Offline

#7 2007-07-12 19:09:23

webbrewer
Member
From: Eugene, OR USA
Registered: 2007-07-10
Posts: 25

Re: acpi on thinkpad t20

PenguinFlavored wrote:

There's something using those modules, most likely an application, make sure those are turned off. There's a way to kill programs in the hibernate script.

I am unable to determine what is using the module.  When I exit out of xfce, it works.

Offline

#8 2007-07-12 19:18:49

PenguinFlavored
Member
From: Chicago, IL, USA
Registered: 2006-06-06
Posts: 66
Website

Re: acpi on thinkpad t20

pacman -S lsof
lsof | grep /dev/snd

Offline

#9 2007-07-12 19:31:44

webbrewer
Member
From: Eugene, OR USA
Registered: 2007-07-10
Posts: 25

Re: acpi on thinkpad t20

It seems xfce desktop is using the sound module for some reason.  Disabling it allows me to remove that module.

Last edited by webbrewer (2007-07-12 20:43:51)

Offline

#10 2007-07-16 18:46:30

webbrewer
Member
From: Eugene, OR USA
Registered: 2007-07-10
Posts: 25

Re: acpi on thinkpad t20

The hibernate scripts don't provide a interface for killing applications.  In order for my sound apps to be killed and restarted I wrote a daemon based upon the scripts provided from the ubuntu install page on thinkwiki.

#!/bin/bash
# Based on work:
# Copyright (C) 2003 by MandrakeSoft, Chmouel Boudjnah <chmouel@mandrakesoft.com>
# Redistribution of this file is permitted under the terms of the GNU 
# Public License (GPL)

. /etc/rc.conf
. /etc/rc.d/functions

SOUND_RUN=/var/run/pm-soundprogs
XMMS_PLAYLIST=/var/run/pm-xmms-playlist.m3u
XMMS_CURRENT=/var/run/pm-xmms-current


case "$1" in
  stop)
    stat_busy "Killing all sound apps"
    rm -rf $SOUND_RUN
    for n in `lsof -n|grep /dev|egrep ' (14|116),'|sed -e 's/ \+/|/g'|cut '-d|' -f1-3`; do
    SOUNDPID=`echo $n |cut '-d|' -f2`
    SOUNDPROG=`ps -p $SOUNDPID -o args=`
    SOUNDUSER=`echo $n |cut '-d|' -f3`
    if [[ -f $SOUND_RUN ]] && grep -q "$SOUNDPROG.*$SOUNDUSER.*" $SOUND_RUN;then
        continue;
    fi
    SOUNDDISPLAY=`perl -e 's/\000/\n/g;' -p /proc/$SOUNDPID/environ|grep ^DISPLAY=|cut -d= -f2-`

    #specific programs here
    if [[ $SOUNDPROG == "xmms" ]];then
        su --shell="/bin/bash" - "$SOUNDUSER" -c \
        'xmms-shell -e currenttrack|cut -d" " -f3|tr /./ " "' > $XMMS_CURRENT
        su --shell="/bin/bash" - "$SOUNDUSER" -c \
        "xmms-shell -e \"save /tmp/.tmp.xmms.list;fade left 0 1 50000;xmmsquit\"" > $XMMS_PLAYLIST
        mv -f /tmp/.tmp.xmms.list $XMMS_PLAYLIST
    else
        kill $SOUNDPID
        ps "$SOUNDPID" &>/dev/null && kill -9 $SOUNDPID
    fi
    echo "$SOUNDPROG|$SOUNDPID|$SOUNDUSER|$SOUNDDISPLAY" >>$SOUND_RUN
    
done
    stat_done
    ;;
  start)
    stat_busy "Restarting all sound apps"
      if [[ -f $SOUND_RUN ]];then
    # at least we can restart the programs using sound on
    # the right display
        for n in `cat $SOUND_RUN`; do
          SOUNDPROG=`echo $n|cut '-d|' -f1`
          SOUNDPID=`echo $n|cut '-d|' -f2`
          SOUNDUSER=`echo $n|cut '-d|' -f3`
          SOUNDDISPLAY=`echo $n|cut '-d|' -f4`

          if [[ $SOUNDPROG == "xmms" ]];then
           CURRENT=$(cat $XMMS_CURRENT)
           su --shell="/bin/bash" - "$SOUNDUSER" -c \
            "source ~/.bashrc;[ -f ~/.bash_profile ] && source ~/.bash_profile;export DISPLAY=\"$SOUNDDISPLAY\"; xmms $XMMS_PLAYLIST &"
           su --shell="/bin/bash" - "$SOUNDUSER" -c \
            "source ~/.bashrc;[ -f ~/.bash_profile ] && source ~/.bash_profile;export DISPLAY=\"$SOUNDDISPLAY\"; xmms-shell -e \"jump $CURRENT;play\" >/dev/null 2>/dev/null"

        else
          su --shell="/bin/bash" - "$SOUNDUSER" -c \
            "source /etc/profile;[ -f ~/.bashrc ] && \
            source ~/.bashrc;[ -f ~/.bash_profile ] && \
        source ~/.bash_profile;export DISPLAY="$SOUNDDISPLAY";$SOUNDPROG &"
        fi
      done
      rm -f $SOUND_RUN $XMMS_PLAYLIST $XMMS_CURRENT
    fi

        
    stat_done
    ;;
  *)
    usage $0 "{stop|start}"
esac

I couldn't, however get the hibernate scripts to work for me.  It went into this eternal loop of suspending every time I resumed.  Rather than trying to troubleshoot this, I simplified by writing a my own suspend-to-ram script, and attaching it to my acpi handler.

#!/bin/bash
/etc/rc.d/alsa stop
/etc/rc.d/sound-apps stop
/sbin/rmmod snd-cs46xx
echo -n "mem" > /sys/power/state
/sbin/modprobe snd-cs46xx
/etc/rc.d/sound-apps start
/etc/rc.d/alsa start

I would like to get hhibernation working at some point, but I am content for now.  Thanks for your help!

Offline

#11 2007-07-21 01:47:24

webbrewer
Member
From: Eugene, OR USA
Registered: 2007-07-10
Posts: 25

Re: acpi on thinkpad t20

A new problem as arisen (or perhaps overlooked before): After resuming from suspend to ram, the thinkpad fn keys no longer work.  I tried restarting acpid and I verified that the cat /proc/acpi/ibm/hotkey is still enabled.
Also, my solution that I posted doesn't work with the standard arch kernel, only the suspend2 kernel, despite not being able to get suspend2 to work reliably (hibernate doesn't die after resuming, and when I kill it, to returns to suspend.)  Intriguing...hmmm...

Offline

#12 2007-08-23 01:07:41

webbrewer
Member
From: Eugene, OR USA
Registered: 2007-07-10
Posts: 25

Re: acpi on thinkpad t20

Ok, disregard most things on this thread.  I tried using apm instead of acpi, as detailed in the thinkwiki apm page, and now everything works flawlessly.  I did need to modify /etc/apm_proxy to start and stop the sound module, but now I am very pleased with my system (I almost retreated to xubuntu...)

I am thinking about starting a T20 on ARCH page on thinkwiki, anyone else have info to contribute?

Offline

Board footer

Powered by FluxBB