c840 Suspending

UPDATE (05/2008): If agpgart does not show up in lsmod, it’s compiled into the kernel, in which case the only way to disable it is with the boot parameter: “agp=off” combined with “Option NvAGP “1” in xorg.conf in order to use NVidia’s special proprietary AGP so that the screen light will come back on during resume!!!

Also see fine documentation on AGP at http://tw.download.nvidia.com/XFree86/Linux-x86/169.04/README/chapter-12.html

Who-Hoo! Just upgraded my Dell Latitude C800 to a C840! This was a forced upgrade – I cracked the LCD somehow in the trunk on a long trip to my cousin’s hunting lease & it would cost as much to repl the LCD than to upgrade, so I upgraded (<$500)!!!! 🙂 I tested it out before buying by simply taking my hard disk, caddy & all & placing it into the C840, booting up in console mode & editing /etc/X11/xorg.conf to change the video card driver from “r128” to “nv”, then starting X (The C840 has an NVidia video card instead of an ATI). Just about everything worked out of the box, except the touchpad which works really slowly & suspend-2-ram and standby do not work (screen comes back very VERY dim & must power-cycle to get it back), but suspend-2-disk works fine. Anyway, after much trial&Error, I finally got this bad boy working properly post-suspend. Here’s how:

1) apt-get install nvidia-glx
2) run the nvidia proprietary driver install utility in the Mepis utilities or whatever you have to do to install it.
3) Save & edit /etc/X11/xorg.conf doing the following:

Add: Load “i2c” to the “Module” section
Change: Driver “nv” to Driver “nvidia”
Uncomment the “CursorShadow” options
Comment the “FlatPanelProperties” line.
Comment the “IgnoreEdid” line.
Add the line: Option “NvAGP” “1”
You no longer have to turn DMA off!!!!!
Comment out the “TwinViewOrientation” line.
Comment out the “ConnectedMonitor” line.

4) Now go save & edit “/etc/default/acpi-support and change the following:

Change “HIBERNATE_MODE=shutdown” to “HIBERNATE_MODE=platform”
Change “LOCK_SCREN=false” to “LOCK_SCREEN=true”
Make sure a “POST_VIDEO=false” line is in there!

NOTE: For ALL cases, you MUST switch to a console (out of X, ie. chvt 1) BEFORE
standby/suspend/hibernate!!!!

5) Save & modify /etc/modprobe.d/modprobe.conf adding the following lines:

blacklist intel_agp
blacklist via_agp
blacklist ati_agp

6) Use following script to suspend-2-ram:

#!/bin/sh

#LOCK THE SCREEN (Optional)
/usr/bin/xscreensaver-command -lock

# shut off things that can’t handle hibernation (usb and alsa)
#/etc/init.d/alsa-utils stop
modprobe -r usbhid ohci_hcd uhci_hcd

#SYNC UP THE HARD DRIVE
sync

#HAVE TO SWITCH OUTTA X FOR NVIDIA!
chvt 1

# this does the actual hibernation
/bin/echo 3 > /proc/acpi/sleep

# re-activate things after a resume (usb)
hwclock –hctosys
modprobe uhci_hcd
modprobe ohci_hcd
modprobe usbhid
chvt 7
#END SCRIPT

Change “echo 3” to “echo 4” for suspend-2-disk!

For standby, use following script:

#!/bin/sh

#LOCK THE SCREEN (Optional)
/usr/bin/xscreensaver-command -lock

#SYNC UP THE HARD DRIVE
sync

#HAVE TO SWITCH OUTTA X FOR NVIDIA!
chvt 1

# this does the actual standby
i8kfan 0 0
/bin/echo 1 > /proc/acpi/sleep

# re-activate things after a resume (alsa & usb)
chvt 7
#END SCRIPT

Post-suspend/standby/hibernate, everything seems to work EXCEPT the touchpad is very insensitive and right-edge scrolling no longer works.

UPDATE: Touchpad seems to work now, after removing extra touchpad entry in the “server layout” section. Here’s what I have now:

Section “ServerLayout”
Identifier “XFree86 Configured”
Screen 0 “Screen0” 0 0
InputDevice “Keyboard0” “CoreKeyboard”
InputDevice “Alps Glidepoint”
######InputDevice “PS/2 Mouse” “AlwaysCore”
InputDevice “USB Mouse” “CorePointer”
EndSection

Section “InputDevice”
Identifier “Alps Glidepoint”
Driver “synaptics”
Option “SendCoreEvents” “true”
Option “Device” “/dev/psaux”
Option “Protocol” “auto-dev”
Option “SHMConfig” “on”
Option “LeftEdge” “120”
Option “RightEdge” “830”
Option “TopEdge” “120”
Option “BottomEdge” “600”
Option “FingerLow” “25”
Option “FingerHigh” “30”
Option “MaxTapTime” “180”
Option “MaxTapMove” “110”
Option “MaxDoubleTapTime” “200”
Option “ClickTime” “1200”
Option “FastTaps” “1”
Option “EmulateMidButtonTime” “75”
Option “VertScrollDelta” “10”
Option “HorizScrollDelta” “20”
Option “MinSpeed” “0.25”
Option “MaxSpeed” “1.8”
Option “AccelFactor” “0.03”
Option “EdgeMotionMinZ” “30”
Option “EdgeMotionMaxZ” “160”
Option “EdgeMotionMinSpeed” “15”
Option “EdgeMotionMaxSpeed” “15”
Option “EdgeMotionUseAlways” “0”
Option “UpDownScrolling” “1”
Option “LeftRightScrolling” “1”
Option “TouchpadOff” “0”
Option “GuestMouseOff” “1”
Option “LockedDrags” “1”
Option “RTCornerButton” “0”
Option “RBCornerButton” “0”
Option “LTCornerButton” “2”
Option “LBCornerButton” “2”
Option “TapButton1” “1”
Option “TapButton2” “1”
Option “TapButton3” “3”
Option “CircularScrolling” “0”
Option “CircScrollDelta” “0.08”
Option “CircScrollTrigger” “0”
Option “CircularPad” “0”
Option “PalmDetect” “1”
Option “PalmMinWidth” “10”
Option “PalmMinZ” “200”
Option “CoastingSpeed” “0”
EndSection

Now, Everything appears to be working w/Linux both pre and post suspend, including the modem! I would highly reccommend this lappy for running Linux as the support is excellent! The only things I haven’t been able to test yet are external monitor & tvout. Linux support is much better than my old C800, which had the 3-comm modem that doesn’t work and the ATI radion which works for the most part, but no fglrx driver support.

BTW, if you want a good DELL refurb for low$$$$, check out Outlet Computer in Carrolton! Great place, Great service & help, Most Excellent prices!!!

Advertisements

Feel Free to Comment (Name/Email/Website optional):

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: