|
|
最近看了Gentoo wiki上的HOWTO Software Suspend v2,就动手实践了一下,写点体会,也给想装的兄弟参考。
按照这篇HowTO,我也是直接用的官方的suspend2-sources。
配置时注意,除HowTo中所说的之外,agpgart也不要选。但如果选了也没多大问题。
Ftape, the floppy tape device driver --->
< > /dev/agpgart (AGP Support)
编译安装结束后,安装hibernate-script:
参照修改/etc/hibernate/hibernate.conf和/boot/grub/grub.conf。至此安装已大致结束(具体安装请参考Wiki上的HowTO)。
但我的显卡是GForce2 MX400(很老了),此时如果直接用hibernate命令,是不会成功的,根本不能休眠。上官方网站一查,原来是NV的显卡驱动不支持。http://wiki.suspend2.net/DistroAndHardwareSetup/Nvidia,所幸有打补丁的方法。
我用的是最新的1.0.7676驱动,需要在nv.c的第3667行加上
于是,下载驱动,使用-x选项,解压:
NVIDIA-Linux-x86-1.0-7676-pkg1.run -x
得到NVIDIA-Linux-x86-1.0-7676-pkg1/usr/src/nv/nv.c,做一个patch。然后以官方的ebuild为基础改了一下,其实也就把官方打的补丁注释掉,加上自己的而已。权且命名为nvidia-kernel-1.0.7676-r1.ebuild :p 。
修改/etc/make.conf,因为我用了中文portage,所以加入:
PORTDIR_OVERLAY=""
PORTDIR_OVERLAY="${PORTDIR_OVERLAY} /usr/local/portage/glc"
PORTDIR_OVERLAY="${PORTDIR_OVERLAY} /usr/local/portage/me"
然后将/usr/portage/media-video/nvidia-kernel下的文件全拷到/usr/local/portage/me/media-video/nvidia-kernel,并把patch放在/usr/local/portage/me/media-video/nvidia-kernel/files/1.0.7667中。运行:
ebuild nvidia-kernel-1.0.7676-r1.ebuild digest
并在/etc/portage/package.keywords中加入:=media-video/nvidia-glx-1.0.7676-r1 ~x86
=media-video/nvidia-kernel-1.0.7676-r1 ~x86
注意确保版本一致(正好就有官方的media-video/nvidia-glx-1.0.7676-r1 :cool: ),版本不一致是不会成功的。
还要修改/etc/X11/xorg.conf:
Section "Device"
Identifier "GForce2 MX400"
Driver "nvidia"
Option "NoLogo" "true"
Option "NvAgp" "0" (一定要加这一行!!!!)
EndSection
下面就简单了,直接emerge:
emerge nvidia-kernel nvidia-glx
modprobe nvidia
modules-update
opengl-update nvidia
最后改动/etc/hibernate/blacklisted-modules,将nvidia注释掉。
至此大功告成,可以在X下直接输入命令hibernate启动休眠了。
顺便多说一句,再开机唤醒后,如果间隔时间长的话会自动启动屏保或干脆就是黑屏,这是正常现象,只要动动Mouse或Keyboard,输入密码就可以正常使用了。
最后还有个问题,我的桌面环境是Gnome,每次休眠都会弹出对话框,说是声音什么的错误,需要在醒来后点击重新载入什么的(记不清了),但不影响使用。我想是因为ALSA停掉后,音量控制出错。不知有没有解决办法。 |
|