level 8
上网浏览时发现-据说-非谣言-325.15只需要改个小地方就可以了,决定试一试。
【Debian sid】
2013年09月07日 15点09分
1
level 8
1)编译3.11
lee@
lz
h-main:~/android/src/linux-3.11$ fakeroot make-kpkg --initrd -j 4 --revision 0.1.1 kernel_headers kernel_image
lee@lzh-main:~/android/src$ su -c 'dpkg -i linux-headers-3.11.0_0.1.1_amd64.deb linux-image-3.11.0_0.1.1_amd64.deb'
2013年09月07日 15点09分
10
level 8
2)先解压缩,略作修改
NVIDIA-Linux-x86_64-325.15/kernel/
nv-linux.h
第961行改为
#define NV_NUM_PHYSPAGES totalram_pages
$ sh NVIDIA-Linux-x86_64-325.15.run --extract-only
2013年09月07日 15点09分
11
level 8
3)重启后选择新装内核3.11,没有可用的nvidia驱动,显示黑屏,只有光标闪闪, ctl+alt+f1打开控制台。
root登录或登录后切换到root。停止X服务。
# /etc/init.d/gdm3 stop
进入NVIDIA-Linux-x86_64-325.15目录,尝试安装:
# ./nvidia-installer
出现几屏提示,仔细阅读之。有dkms提示的页面时选择yes,把它加入到dkms库中方便以后换新内核时及时编译安装。
这时可以另开一个控制台,如ctl+alt+f2,以普通用户登录,将安装过程中提到的log保存一份备用,每次应重命名,如
$ cp /var/log/nvidia-installer.log nvidia-installer.1.log
注意上面的totalram_pages可以先不改,看看生成的log。
安装成功之后提示是否生成一个配置文件,当然让它生成一个啦。
随后可以启用X了:
# /etc/init.d/gdm3 start
进入登录界面。
2013年09月07日 15点09分
12
level 8
验证:
root@lzh-main:/home/lee# dkms status
nvidia, 325.15, 3.11.0, x86_64: installed
vboxhost, 4.2.16, 3.10-2-rt-amd64, x86_64: installed
vboxhost, 4.2.16, 3.11.0, x86_64: installedError! Could not locate dkms.conf file.
File: does not exist.
vboxhost, 4.2.16, 3.8.7, x86_64: installed
root@lzh-main:/home/lee#
那个Error!看着让人发毛,难道VirtualBox的驱动没有编译? 重新来过:
root@lzh-main:/home/lee# /etc/init.d/vboxdrv setup
[ ok ] Stopping VirtualBox kernel modules:.
[....] Uninstalling old VirtualBox DKMS kernel modules:Error! Could not locate dkms.conf file.
File: does not exist.
Error! There are no instances of module: vboxhost
4.2.16 located in the DKMS tree.
Error! There are no instances of module: vboxhost
4.2.16 located in the DKMS tree.
. ok
[ ok ] Trying to register the VirtualBox kernel modules using DKMS:.
[ ok ] Starting VirtualBox kernel modules:.
再看看,还是有!?
root@lzh-main:/home/lee# dkms status
nvidia, 325.15, 3.11.0, x86_64: installedError! Could not locate dkms.conf file.
File: does not exist.
vboxhost, 4.2.16, 3.11.0, x86_64: installed
root@lzh-main:/home/lee#
先留个疑问在此处,从哪里输出的?
=======================
最后看看totalram_pages在linux内核的哪里定义的:
lee@lzh-main:~/android/src/linux-3.11/include$ grep totalram_pages linux/*.h
linux/mm.h:extern unsigned long totalram_pages;
linux/mm.h: * and totalram_pages.
linux/mmzone.h: * long. Write access to zone->managed_pages and totalram_pages are
linux/mmzone.h: * touching zone->managed_pages and totalram_pages.
linux/swap.h:extern unsigned long totalram_pages;
lee@lzh-main:~/android/src/linux-3.11/include$ grep num_physpages linux/*.h
linux/mm.h:static inline unsigned long get_num_physpages(void)
lee@lzh-main:~/android/src/linux-3.11/include$
2013年09月07日 15点09分
13