Linux设备驱动程序学习--内核编译

来源:岁月联盟 编辑:exp 时间:2012-03-09

 Linux内核版本3.2.0(uname -r可查看)
Ubuntu版本10.04(查看方法http://www.2cto.com/os/201203/122509.html)


通过http://www.kernel.org/下载需要的内核版本
解压到某一路径下,我解压到了/usr/src,任意路径应该都可以,该文件夹的名字为linux-3.2
#cd /usr/src/linux-3.2
配置内核,使用make menuconfig, make xconfig等命令均可,配置方法参考http://lamp.linux.gov.cn/Linux/kernel_options.html,由于我并不了解,不在此班门弄斧。
编译内核
#make
可能需要几个小时
安装模块及内核
#make modules_install
#make install
更新grub
两种方法
#grub_mkconfig

#update-grub
之后,启动项在/boot/grub/grub.cfg中查看,大概60多行的样子
我的增加了如下内容
menuentry 'Ubuntu,Linux 3.2.0' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod ext2
    set root='(hd0,3)'
    search --no-floppy --fs-uuid --set 6f9dd836-7461-4b59-84ca-eff8707297e1
    linux   /boot/vmlinuz-3.2.0 root=/dev/sda3 ro   quiet splash
}
menuentry 'Ubuntu,Linux 3.2.0 (恢复模式)' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod ext2
    set root='(hd0,3)'
    search --no-floppy --fs-uuid --set 6f9dd836-7461-4b59-84ca-eff8707297e1
    echo    '载入Linux ...'
    linux   /boot/vmlinuz-3.2.0 root=/dev/sda3 ro single 
    echo    '载入引导虚拟磁盘...'
}
重新启动电脑,选择该选项,即可进入自己新编译的内核了。
看起来很简单的事情,愁了好几天。主要是不知道grub要更新,有命令的,我自己进入该文件,类似的复制了一份,进行了修改,应该是修改错了,每次选择那个内核的时候,都是kernel panic,我一度怀疑是配置内核时出问题了,编译了无数次。。。。
感谢zjc和gmy给我的帮助。
 
摘自 bjutstar的专栏