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

Linux内核版本3.2.0(uname -r可查看)

Ubuntu版本10.04(查看方法http://www.cnblogs.com/zero1665/archive/2010/05/24/1742962.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给我的帮助。

你可能感兴趣的:(Linux设备驱动程序学习--内核编译)