Linux内核编译及加载
时间:2010-09-19 来源:璀璨
内核编译:(转载自刘同学)
一.首先下载新的内核源代码。可以到网站:www.kernel.org下载。
二.例如我下载的是linux-2.6.35.4.tar.bz2
将源代码包复制到放源码的目录下,如/usr/src.
解压缩源码包,输入命令:tar jxzf linux-2.6.35.4.tar.bz2
四.在编译新内核之前确保已有
安装包:
build-essential kernel-package,
gcc,make,
libncurses5-dev(在执行make menuconfig中用到);
命令:
mkinitramfs,
mkisofs;
若没有则用命令:sudo apt-get install 安装包或命令名称
五.准备工作做好了就开始编译了。进入要编译源码的目录,如linux-2.6.35.4
一次执行下面的命令:
- sudo make menuconfig(配置内核参数,如果只是尝试,可以忽略,如果想让其做服务器,就应该手动配置,可参考这个网站http://lamp.linux.gov.cn/Linux/kernel_options.html)
- sudo make dep //这一步有时是不需要的,因为我在编译时就不需要,系统直接提示:unessary
- sudo make clean //做一点清除工作,把没用的中间文件删除掉
- sudo make
- sudo make modules //编译模块
- sudo make modules_install //安装模块
- sudo mkinitramfs -o /boot/initrd-2.6.30.img 2.6.30 //生成内核镜像文件
- sudo make install //安装内核
5,接下来就是修改启动选项,将你所编译成功的内核加载到启动选项中:
sudo gedit /boot/grub/menu.lst
复制一个启动选项,然后只修改很少部分,如我是这样修改的:
复制一份这样一份:
title Ubuntu 9.04, kernel 2.6.28-14-generic
uuid 56ec4d75-8894-405a-b262-48ca12e86586
kernel /boot/vmlinuz-2.6.28-14-generic root=UUID=56ec4d75-8894-405a-b262-48ca12e86586 ro locale=zh_CN quiet splash
initrd /boot/initrd.img-2.6.28-14-generic
quiet
然后将其修改为:
title Test Ubuntu 9.04, kernel 2.6.30
uuid 56ec4d75-8894-405a-b262-48ca12e86586
kernel /boot/vmlinuz-2.6.30 root=UUID=56ec4d75-8894-405a-b262-48ca12e86586 ro locale=zh_CN quiet splash
initrd /boot/initrd-2.6.30.img
看见了吗,就只将蓝色部分换成红色部分就OK了,很简单,然后重启进入新的选项!(注:也可以使用ls /boot 命令查看你编译内核成功后生成的内核镜像和初始化文件)
加载驱动代码目录和子目录:(Makefile和Kconfig)
例如要在内核源码drivers下新建目录lf下新增如下用于test driver的树形目录;
一.在新增lf目录下要创建test.c, test_net.c, test_user.c.
以及cpu目录,cpu目录里要包含有cpu.c文件。
二.在lf目录下要包含如下Kconfig文件:
相关阅读 更多 +