# ASUS L3500D Notebook Help Thread

## der bastler

There are at least three L3500D owners visiting this forums, me being one of them. I created this thread to collect several tips'n'tricks regarding the "exotic" SiS chipset (everything else --eth0, usb mouse, touchpad, CD writer, etc-- is easy to configure).

So I'll start with a question...

Thomas Winischhofer provides display drivers for framebuffer and XFree86.

It's not a problem to install the framebuffer driver.

Until now I used the SiS driver which comes with XFree86 4.3 (works well). But now I want to use Mr Winschhofer's driver --it's because I've to give a speech about my bachelor thesis and I'd like to use all features of the notebook's graphics chipset.

All I need to do is to recompile sis_drv.o using XFree's source. But how to do this? In theory I let portage fetch the new sources and extract them. Then I've to replace some files and let portage continue the merge process. Is this possible? Or are there other L3500D owners who use the Winischhofer XFree86 drivers?

----------

## d99ma

You could use the ebuild command. You could use it to fetch and unpack the xfree source, then change the files you want (in /var/tmp/portage/xfree-4.X/work) and then use it to compile and install.

----------

## der bastler

 *d99ma wrote:*   

> You could use the ebuild command. You could use it to fetch and unpack the xfree source, then change the files you want (in /var/tmp/portage/xfree-4.X/work) and then use it to compile and install.

 

You mean something like this?

```
ebuild xfree fetch unpack

cp *.c *.h var/tmp/portage/xfree-4.3.0-r3/work/Xserver/hw/xfree86/drivers/sis/

ebuild xfree compile install qmerge
```

Hm, I'll try this soon (compiling X is time consumpting). Thanks for kickin' me into the right direction...   :Wink: 

----------

## der bastler

Success! Here's a mini-howto "installing Thomas Winischhofer's XFree86 SiS-Drivers"

Log in as root.

Get the driver source and example config files from Thomas Winischhofer's page, e.g. using wget.

Extract the .tar.gz archive to a directory of your choice, change to this directory.

Sync portage tree:

```

emerge sync

```

Probe xfree regarding it's dependencies:

```

emerge xfree --pretend

```

Keep the exact version resp. its path in mind. In my case it was /usr/portage/x11-base/xfree/xfree-4.3.0-r5.ebuild, the following code samples assume you use this version as well --otherwise change the name...

If there are other packages to install then merge them first. Unmerge blocked packages.

Next step: Get/unpack source package

```

ebuild /usr/portage/x11-base/xfree/xfree-4.3.0-r5.ebuild fetch unpack

```

Follow Thomas Winischhofer's installation documentation. Because I use xfree-4.3.x, I had to copy all of his .c and .h files over the existing ones in Xfree86's source tree. The unpacked source is available in /var/tmp/portage/your_xfree_version/work/xc/

```

cp *.c *.h /var/tmp/portage/xfree-4.3.0-r5/work/xc/programs/Xserver/hw/xfree86/drivers/sis/

```

Continue with merge process (compile, install, clean up):

```

ebuild /usr/portage/x11-base/xfree/xfree-4.3.0-r5.ebuild compile install qmerge

```

Now X11 should be ready for a restart. Take a look at the xfree config files I mentioned above. 

Optional: You can install the program "SisCtrl" to change parameters of your chipset on-the-fly. Download its source from Thomas Winischhofer's page, extract the files to a directory of your choice and read the README file.

----------

## prometheus0815

thanks bastler for that howto. the next time i feel i need a new version of X for my L3500D, i'll do it your way. the last time, i simply checked my version of X and downloaded the appropriate binary driver from thomas' site. copied it to the right place and --- done! works fine, but now that we're using gentoo anyway, we should do it the "right" way, of course  :Wink: 

----------

## der bastler

Yesterday I gave my first lecture (*) using OpenOffice Impress and Xine. The additional VGA connector worked great with the new driver and its control tool SiSCtrl. No problems, it just worked out of the box: Great advertising for Linux, OpenOffice and Xine.  :Cool: 

One thing: Don't try Fn+F8 (hardware connector switch), it'll give you a hard-lock!

* presenting the results of my B.Sc. thesis "speed control of an image derotator by image processing". Now there's some paperwork to do but I think I can spend some virtual champagne next week : :Wink: :

----------

## prometheus0815

hi all!

i'd like to turn the backlights of my asus l3500d off when the system is unused. my idea was to start the usual xscreensaver after 10 or 15 minutes of inactivity, and then turn the backlights off after 30 minutes. i guess this is possible via some echo to /proc. i wouldn't want to rely on backlights off alone since it would be rather stressful for the lights to be switched off and on all the time.

does anyone know the appropriate code and how to make it work in the above way? thanks for your replies!

EDIT: i'm using kernel 2.6.5-mm6 with the asus notebook extras and acpi enabled. my desktop is gnome 2.6.0 with xscreensaver 4.15. xorg-x11 6.7.0-r1 is the backend.

----------

## prometheus0815

ok, i found out that the following will switch off the lcd display:

```
echo 0 >> /proc/acpi/asus/lcd
```

and

```
echo 1 >> /proc/acpi/asus/lcd
```

will switch it on again. now all i need is a little shell script that will be launched instead of xscreensaver. the script will start xscreensaver and then, after some more time, it will switch off the display. hope this will work...

----------

## der bastler

Last weekend I risked the leap from 2.4.25/XFree to 2.6.9/Xorg. One week later it's still running, stable. Success!

* Gensplash is working, but not with SisFB(?). Using VesaFB at the moment.

* ACPI and PowerNow work out of the box: 600 MHz, 37°C  :Wink: 

* Xorg can be installed the same way as mentioned above (stepwise emerge/patch progress). It will use your old XFree config file without problems.

* MergedFB is functioning, too, spreading the desktop over two monitors (I never tried it so I was very impressed).

Useful links:

Power Management Guide

Gentoo-Wiki: Xorg and Fonts

Gentoo-Wiki: FBSplash

Spock: Gensplash in 5 easy steps

Thomas Winischhofer.net: SiS graphic adapter drivers

----------

## der bastler

New card, new game...   :Confused: 

I bought a Netgear WG511 WLAN PCMCIA adapter, but it refuses to work. For the record: During the last months I could work with the USB WLAN adapter (Netgear MA111) of my tutor using Uberlord's wireless-config script --without problems.

But now this new PCMCIA card unmasks itself as troublemaker. Btw it runs fine on a Windows platform. So the card ain't broken.

Anyway, here's what I get:

Output of lspci (only the newest stable version identifies the WG511)

```

0000:00:00.0 Host bridge: Silicon Integrated Systems [SiS] 740 Host (rev 01)

0000:00:01.0 PCI bridge: Silicon Integrated Systems [SiS] Virtual PCI-to-PCI bridge (AGP)

0000:00:02.0 ISA bridge: Silicon Integrated Systems [SiS] SiS962 [MuTIOL Media IO] (rev 04)

0000:00:02.1 SMBus: Silicon Integrated Systems [SiS] SiS961/2 SMBus Controller

0000:00:02.5 IDE interface: Silicon Integrated Systems [SiS] 5513 [IDE]

0000:00:02.6 Modem: Silicon Integrated Systems [SiS] AC'97 Modem Controller (rev a0)

0000:00:02.7 Multimedia audio controller: Silicon Integrated Systems [SiS] Sound Controller (rev a0)

0000:00:03.0 USB Controller: Silicon Integrated Systems [SiS] USB 1.0 Controller (rev 0f)

0000:00:03.1 USB Controller: Silicon Integrated Systems [SiS] USB 1.0 Controller (rev 0f)

0000:00:03.2 USB Controller: Silicon Integrated Systems [SiS] USB 1.0 Controller (rev 0f)

0000:00:03.3 USB Controller: Silicon Integrated Systems [SiS] USB 2.0 Controller

0000:00:04.0 Ethernet controller: Silicon Integrated Systems [SiS] SiS900 PCI Fast Ethernet (rev 90)

0000:00:0a.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev aa)

0000:00:0a.1 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev aa)

0000:00:0a.2 FireWire (IEEE 1394): Ricoh Co Ltd R5C552 IEEE 1394 Controller (rev 02)

0000:01:00.0 VGA compatible controller: Silicon Integrated Systems [SiS] 65x/M650/740 PCI/AGP VGA Display Adapter

0000:02:00.0 Network controller: Intersil Corporation Intersil ISL3890 [Prism GT/Prism Duette] (rev 01)

```

Essential part of dmesg

```

PCI: Enabling device 0000:02:00.0 (0000 -> 0002)

ACPI: PCI interrupt 0000:02:00.0[A] -> GSI 5 (level, low) -> IRQ 5

eth1: islpci_open()

eth1: resetting device...

eth1: uploading firmware...

eth1: firmware uploaded done, now triggering reset...

eth1: device soft reset timed out

eth1: timeout waiting for mgmt response 1000, triggering device

eth1: timeout waiting for mgmt response

eth1: timeout waiting for mgmt response 1000, triggering device

eth1: timeout waiting for mgmt response

eth1: timeout waiting for mgmt response 1000, triggering device

eth1: timeout waiting for mgmt response

eth1: timeout waiting for mgmt response 1000, triggering device

eth1: timeout waiting for mgmt response

eth1: mgmt tx queue is still full

eth1: mgmt tx queue is still full

eth1: mgmt tx queue is still full

eth1: mgmt tx queue is still full

eth1: mgmt tx queue is still full

eth1: mgmt tx queue is still full

eth1: mgmt tx queue is still full

eth1: mgmt tx queue is still full

eth1: mgmt tx queue is still full

eth1: mgmt tx queue is still full

eth1: mgmt tx queue is still full

eth1: mgmt tx queue is still full

eth1: mgmt tx queue is still full

eth1: mgmt tx queue is still full

eth1: mgmt tx queue is still full

eth1: mgt_commit has failed. Restart the device 

eth1: mgmt tx queue is still full

eth1: mgmt tx queue is still full

eth1: mgmt tx queue is still full

eth1: mgmt tx queue is still full

eth1: mgmt tx queue is still full

eth1: mgmt tx queue is still full

eth1: prism54_set_txpower() auto power will be implemented later.

eth1: mgmt tx queue is still full

eth1: mgmt tx queue is still full

eth1: mgmt tx queue is still full

eth1: mgmt tx queue is still full

eth1: mgmt tx queue is still full

eth1: mgmt tx queue is still full

eth1: mgmt tx queue is still full

eth1: mgmt tx queue is still full

eth1: mgmt tx queue is still full

eth1: mgmt tx queue is still full

eth1: mgmt tx queue is still full

eth1: mgmt tx queue is still full

eth1: mgmt tx queue is still full

eth1: mgmt tx queue is still full

eth1: prism54_set_txpower() auto power will be implemented later.

eth1: mgmt tx queue is still full

eth1: mgmt tx queue is still full

eth1: mgmt tx queue is still full

eth1: mgmt tx queue is still full

eth1: islpci_close ()

```

Hmm, timeout during soft reset? Managment(?) tx queue is full?  :Shocked: 

I tried several firmware versions from prism54.org, without success.  :Sad: 

Damn, I searched the net for a WLAN PCMCIA adapter that runs flawlessly with Linux and many people told WG511 is fine. Even in this forums that seemed to be the case.   :Rolling Eyes: 

----------

## prometheus0815

Hi everyone!

I recently migrated all my university, personal and "business" stuff to my Linux installation. Now that this is done, I need my Palm m100 to sync cleanly with Evolution. I'm "forced" to use Irda for that, as I lost the serial cable along the way.

Did anyone set up his/her infrared port on the L3500D to be used for palm synchronization? I'd be grateful for any hint, howto or config example. Once I have everything running smoothly, I'll post a howto in this thread.

Cheers

Prometheus

----------

## der bastler

*reviewsownthreads*

Oh, I just forgot to inform the people reading this thread here that my Netgear WG511 is a v3. Same vendor, same chip, slightly different internals -> no linux support so far.

But it works with NDISWRAPPER.

----------

## jdkbx

 *prometheus0815 wrote:*   

> Hi everyone!
> 
> Did anyone set up his/her infrared port on the L3500D to be used for palm synchronization? I'd be grateful for any hint, howto or config example. Once I have everything running smoothly, I'll post a howto in this thread.
> 
> 

 

i aint got no palm and i haven't tested actually sending files yet, but irda works and i can for instance emulate remote controls, even doe the range is just about 3 feet.

if u want it in serial mode you need the serial port support in the kernel (or module). that should find 2 ports, the second of wich is the irda device. you can try it out with lirc.

```
LIRC_OPTS="--with-driver=sir" emerge lirc
```

 and make a file in /etc/modules.d/ which contains 

```
pre-install lirc_sir setserial /dev/ttyS1 uart none

alias char-major-61 lirc_sir

alias /dev/lirc* lirc_sir

options lirc_sir irq=3 io=0x2f8
```

 after modprobe lirc_sir and starting lircd you can use (x)mode2 to see if you can recieve remote signals.

next step is getting FIR going. in your kernel enable Device Drivers -> Networking Support -> IrDA ...

under IrDA select what you want and in Infrared-port device drivers, add NSC PC87108/PC87338 (depends on ISA) as a module. again you will need a file in /etc/modules.d/ that contains 

```
alias irda0 nsc-ircc

options nsc-ircc irq=3 io=0x2f8 dongle_id=0x08
```

that should get u going

----------

## prometheus0815

Thanks, jdkbx, for your reply. Now that the semester holidays started, I guess I'll finally have the time to try your suggestions. As I said in my laast posting, I'll write a howto and post it in this very thread.

bastler, I got the same Netgear WG511 WiFi card that you have as a christmas present, and it turned out to be a V3 as well, I got it running with ndiswrapper as well, but of course I'm looking forward for it being supported by the "real" prism54 driver in the future. From what I read around the net, it seems it wouldn't be that much work to adjust the driver as the chipset is still the same, only the firmware loading procedure seems to have changed a little (don't quote me on that!). Let's just hope they get it done soon. Ping times are horrible with ndiswrapper, but at least it's running more or less stable.

Cheers

Prometheus

----------

## der bastler

 *prometheus0815 wrote:*   

> From what I read around the net, it seems it wouldn't be that much work to adjust the driver as the chipset is still the same, only the firmware loading procedure seems to have changed a little (don't quote me on that!). Let's just hope they get it done soon. Ping times are horrible with ndiswrapper, but at least it's running more or less stable.

 

Yes, it hangs during firmware reset (upload's working fine).

I use it to control our institute's mobile robot, therefore I can live with bad pings.

----------

## der bastler

https://forums.gentoo.org/viewtopic-p-2587562.html

Some scripts regarding WLAN/ndiswrapper/wpa_supplicant plus examples how to activate the two spare LEDs at the front (mail/blue and wlan/yellow).

----------

## der bastler

Setup:

kernel 2.6.12-gentoo-r6 + wireless extensions 18 + suspend2 patch

/proc/acpi/asus/info:

```
Asus Laptop ACPI Extras Driver 0.29

Model reference    : L3D

SFUN value         : 0x0077

DSDT length        : 16745

DSDT checksum      : 130

DSDT revision      : 1

OEM id             : ASUS

OEM table id       : L3000D

OEM revision       : 0x1000

ASL comp vendor id : MSFT

ASL comp revision  : 0x100000e
```

1.) Follow power management guide:

http://www.gentoo.org/doc/en/power-management-guide.xml

2.) When you have got acpid (the ACPI Daemon) up and running, create a directory acpi in your root home directory

```
mkdir /root/acpi
```

and use the following script as your /etc/acpi/default.sh:

```
#!/bin/sh

# Copyright 1999-2004 Gentoo Foundation

# Distributed under the terms of the GNU General Public License v2

# $Header: /var/cvsroot/gentoo-x86/sys-power/acpid/files/acpid-1.0.4-default.sh,v 1.1 2005/03/15 19:15:53 ciaranm Exp $

# Default acpi script that takes an entry for all actions

# adapted to fit events of ASUS L3500D

set $*

# F.A.: Debug output

#echo "$*" >> /root/acpi/logbuch.txt

case "$1" in

        "hotkey")

                if [ "$2" == "HOTK" ]; then

                        case "$3" in

                                "00000030") echo "speaker +" >> /root/acpi/logbuch.txt ;;

                                "00000031") echo "speaker -" >> /root/acpi/logbuch.txt ;;

                                "00000032")

                                        if (( 0x"$4" & 0x00000001 )); then

                                                echo "unmute speaker" >> /root/acpi/logbuch.txt

                                        else

                                                echo "mute speaker" >> /root/acpi/logbuch.txt

                                        fi ;;

                                "0000005c") echo "power gear" >> /root/acpi/logbuch.txt ;;

                                "00000050") echo "mail" >> /root/acpi/logbuch.txt ;;

                                "00000051") echo "internet" >> /root/acpi/logbuch.txt ;;

                                "00000052") echo "flash (programmable)" >> /root/acpi/logbuch.txt ;;

                                "00000057") echo "ac->battery" >> /root/acpi/logbuch.txt ;;

                                "00000058") echo "battery->ac" >> /root/acpi/logbuch.txt ;;

                                "00000040") echo "previous track" >> /root/acpi/logbuch.txt ;;

                                "00000041") echo "next track" >> /root/acpi/logbuch.txt ;;

                                "00000043") echo "stop" >> /root/acpi/logbuch.txt ;;

                                "00000045") echo "play/pause" >> /root/acpi/logbuch.txt ;;

                        esac

                fi ;;

        "button/power")

                if [ "$2" == "PWRF" ]; then

                        echo "power button" >> /root/acpi/logbuch.txt

                fi ;;

        "button/lid")

                if [ "$2" == "LID" ]; then

                        echo "lid opened/closed" >> /root/acpi/logbuch.txt

                fi ;;

        "ac_adapter")

                if [ "$2" == "AC" ]; then

                        echo "mains plug attached/detached" >> /root/acpi/logbuch.txt

                fi ;;

esac
```

This small script is called each time an ACPI event occurs. Several parameters are passed as shown in this 

```
hotkey HOTK 00000050 00000006
```

or in this line

```
button/power PWRF 00000080 0000000f
```

Format of parameters:

 first field: group of action (ASUS: hotkey, button/power, button/lid and ac_adapter)

 second field: type of action (ASUS: HOTK, PWRF, LID, AC)

 third field: hex identifier (ASUS: 0x80 in case of "power" event, otherwise: hotkey id)

 fourth field: hex counter (useful for toggle buttons like the mute/unmute function)

Parameter table for various events

speaker control

volume down: hotkey HOTK 00000031 xxxxxxxx

volume up: hotkey HOTK 00000030 xxxxxxxx

mute (counter even): hotkey HOTK 00000032 xxxxxxxx

unmute (counter odd): hotkey HOTK 00000032 xxxxxxxx

Buttons at top of keyboard, from left to right:

power gear: hotkey HOTK 0000005c xxxxxxxx

mail: hotkey HOTK 00000050 xxxxxxxx

internet: hotkey HOTK 00000051 xxxxxxxx

flash: hotkey HOTK 00000052 xxxxxxxx

power: button/power PWRF 00000080 xxxxxxxx

pulling mains plug (AC->battery) triggers two events:

hotkey HOTK 00000057 xxxxxxxx

ac_adapter AC 00000080 xxxxxxxx

plugging in mains plug (battery->AC) triggers two events:

hotkey HOTK 00000058 xxxxxxxx

ac_adapter AC 00000080 xxxxxxxx

closing/opening screen toggles LID:

button/lid LID 00000080 xxxxxxxx

CD player controls at front of notebook:

previous track: hotkey HOTK 00000040 xxxxxxxx

next track: hotkey HOTK 00000041 xxxxxxxx

stop: hotkey HOTK 00000043 xxxxxxxx

play/pause: hotkey HOTK 00000045 xxxxxxxx

--

What does the script do? In this version it only echos a status message to /root/acpi/logbuch.txt.

For this purpose it checks the first field ("$1"). If it encounters a hotkey event, it checks the second field ("$2") for a sanity check and uses the third field ("$3") to determine the type of event.

Non-hotkey events are treated similar.

Mute/unmute actions are identified by testing the event counter. Initially all counters start at zero and the sound is unmuted (the mute LED is switched off). If you push the volume dial, the LED is switched on and an event with a counter zero is triggered. If you push the volume dial again, the LED is switched off, the triggered event shows a counter of one. This continues, and by knowing the initial state (LED off, counter=0) one can determine the state of the LED:

 counter=0,2,4,... LED on, sound muted; counter is an even number, counter AND 1 = 0

 counter=1,3,5,... LED off, sound unmuted; counter is an odd number, counter AND 1 = 1

Possible applications: 

 hook alsa's main volume to the speaker control

 trigger email program with mail button

 call firefox with internet button

 wire hibernate script to power button

 change into battery runlevel using hotkey events 57/58

 control XMMS using the notebook's own CD player controls

 suspend-to-ram when closing the lid/screen

 ...

Soon in this thread: An example script from my notebook.

----------

## der bastler

This is my ACPI script:

 volume wheel is working (+/-/mute)

 CD player buttons at front (prev/next/stop/play) control current XMMS session

 The power button causes the notebook to suspend-to-disk -- awful fast and flawlessly!

I still have no clue what to do with the remaining buttons "power gear", "mail", "internet" and "flash". Ideas, suggestions?

/etc/acpi/default.sh

```
#!/bin/sh

# Copyright 1999-2004 Gentoo Foundation

# Distributed under the terms of the GNU General Public License v2

# $Header: /var/cvsroot/gentoo-x86/sys-power/acpid/files/acpid-1.0.4-default.sh,v 1.1 2005/03/15 19:15:53 ciaranm Exp $

# Default acpi script that takes an entry for all actions

# adapted to fit events of ASUS L3500D

set $*

# F.A.: Debug output

#echo "$*" >> /root/acpi/logbuch.txt

case "$1" in

        "hotkey")

                if [ "$2" == "HOTK" ]; then

                        case "$3" in

                                "00000030")

                                        amixer -q set Master 10%+ ;;

                                "00000031")

                                        amixer -q set Master 10%- ;;

                                "00000032")

                                        if (( 0x"$4" & 0x00000001 )); then

                                                amixer -q set Master unmute

                                        else

                                                amixer -q set Master mute

                                        fi ;;

                                "0000005c") echo "power gear" >> /root/acpi/logbuch.txt ;;

                                "00000050") echo "mail" >> /root/acpi/logbuch.txt ;;

                                "00000051") echo "internet" >> /root/acpi/logbuch.txt ;;

                                "00000052") echo "flash (programmable)" >> /root/acpi/logbuch.txt ;;

                                "00000057") echo "ac->battery" >> /root/acpi/logbuch.txt ;;

                                "00000058") echo "battery->ac" >> /root/acpi/logbuch.txt ;;

                                "00000040") /etc/acpi/actions/xmmsctrl.sh prev ;;

                                "00000041") /etc/acpi/actions/xmmsctrl.sh next ;;

                                "00000043") /etc/acpi/actions/xmmsctrl.sh stop ;;

                                "00000045") /etc/acpi/actions/xmmsctrl.sh play ;;

                        esac

                fi ;;

        "button/power")

                if [ "$2" == "PWRF" ]; then

                        /usr/sbin/hibernate

                fi ;;

        "button/lid")

                if [ "$2" == "LID" ]; then

                        echo -n "lid was activated: " >> /root/acpi/logbuch.txt

                        if (( 0x"$4" & 0x00000001 )); then

                                echo "opened" >> /root/acpi/logbuch.txt

                        else

                                echo "closed" >> /root/acpi/logbuch.txt

                        fi

                fi ;;

        "ac_adapter")

                if [ "$2" == "AC" ]; then

                        echo "mains plug attached/detached" >> /root/acpi/logbuch.txt

                fi ;;

esac
```

XMMS has to be controlled by its owner. The ACPI daemon acts as root and therefore can easily switch to $xmmsuser, which is obtained via ps:

/etc/acpi/actions/xmmsctrl.sh

```
#!/bin/bash

xmmsps=( $(ps axfo uname,fname,ppid | grep xmms | grep -v _) )

xmmsuser=${xmmsps[0]}

if [ "$xmmsuser" != "" ]; then

        su $xmmsuser -c "/etc/acpi/actions/xmmsctrl_proxy.sh $1"

fi
```

To make the su call a little bit easier the xmmsctrl commands are toggled using a proxy script:

/etc/acpi/actions/xmmsctrl_proxy.sh

```
#!/bin/bash

#echo $1 >> /root/acpi/logbuch.txt

if [ "$1" = "play" ]; then

        if xmmsctrl playing; then

                xmmsctrl pause

        else

                xmmsctrl play

        fi

else

        xmmsctrl $1

fi
```

As you can see in default.sh I can detect whether the lid (i.e. screen) was opened or closed. My plans were to call hibernate-ram when closing the screen. The problem: after calling hibernate-ram the notebook is suspending to RAM, but after a second or two the HDD ticks and the notebook wakes up. Not very useful... How can I fix it?

----------

