登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

sk

 
 
 

日志

 
 
关于我

越把苦当苦,生活就越苦,最后众叛亲离,越把事儿当事儿,就越多事儿,小事儿变成大事儿!

Debian编译升级内核(could not load /lib/modules/2.6.28/modules.dep问题)  

2009-02-04 17:52:45|  分类: 学习 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 

虚拟机VMware下的Debian etch 2.6.18-6-686,欲升级为2.6.28内核。

首先,修改/etc/apt/sources.list,如果其中有含cdrom这行,用“#”号注释掉该行。

然后,打开终端Terminal,运行

#apt-get update

#apt-get install build-essential

这步将装上如gcc等的所有基本软件工具,由于打算使用X-Window中的xconfig界面来配置内核,所以,需要安装qt3,运行命令

#apt-get install pkg-config qt3-dev-tools libqt3-headers libqt3-mt-dev qt3-qtconfig qt3-doc

当然,前提是,以上所以软件包,都能在http://www.debian.com/distrib/packages中找到。

然后在http://www.kernel.org/上下载最新的Linux Kernel。

为啥?他娘的,好不容易升级一次,咋还不整个最新的?我升级时,最新内核文件是linux-2.6.28.tar.gz,放到目录/usr/src下,

#cd /usr/src

#tar xzvf linux-2.6.28.tar.gz

#ln -s linux-2.6.28 linux                      //在当前目录下创建linux-2.6.28的链接文件linux

#cd linux

#make xconfig                       

X-Window下的内核配置命令,如果要使用USB摄像头,一定把video4linux(v4l和v4l2的选项选为模块),最好把其中的驱动都选上,比如gspca,spca5xx,zc0301等。另外,还需要选上 。其他的可以用默认选项。然后saveàquit。之后运行

#make dep                               //这步应该是检查依赖关系

#make clean                            //如果是第一次编译新下载的内核,这步可省略

#make bzImage                       //生成新内核的镜像

#make modules                       //编译外挂模块

#make modules_install            //安装模块

#/sbin/depmod –a                    //创建模块的链接

#make install                          

这步创建System.map与vmlinuz。若不成功,需要手动创建,进入/boot文件夹下,执行

#cd /boot

#cp /usr/src/linux/System.map System.map-2.6.28

#cp /usr/src/linux//arch/i386/boot/bzImage vmlinuz-2.6.28

不过,正常情况下,上三步不用执行,make install已经创建好了链接。

接下来,我是这样做的:

#/usr/sbin/mkinitramfs -o /boot/initrd-2.6.28 2.6.28

#cd /boot/grub

#vim menu.lst

在最下面的

#####End Default Options#####

后添加

title Debian GNU/Linux kernel 2.6.28

root (hd0,0)

kernel /boot/vmlinuz-2.6.28 root=/dev/sda1 ro

initrd /boot/initrd.img-2.6.28

savedefault

注意,这里的格式要和原来Kernel的启动设置格式相同,然后确认一下,相应文件是否确实存在,比如/boot/vmlinuz-2.6.28。

这时我重启后,出现错误:

could not load /lib/modules/2.6.28/modules.dep,还好保留有原来的内核,于是又进入原内核,删掉了之前生成的/boot/initrd.img-2.6.28,执行

#cd /usr/src/linux

#update-initramfs –c –k 2.6.28

这样,重新在/boot下创建initrd.img-2.6.28,重启后,进入了新内核,内核编译升级成功。

  评论这张
 
阅读(3525)| 评论(4)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018