分类: LINUX
2009-04-10 10:02:08
以下内容可以参照Linux设备驱动开发详解P50页。
1、 下载内核源代码,如Linux2.6放入/usr/src目录
2、 如果内核下的modutils工具包需要更新,要下载较新版本的modutils和module-init-tools,分别进行安装。
3、 在/usr/src下解压缩内核源代码,cd Linux2.6
4、 执行make mrproper命令,该命令确保源代码目录下没有不正确的.o文件以及文件的互相依赖,对于刚下载的完整的源程序包,可以省略此步,但是,如果这些源代码被多次使用过,那么在编译之前应运行此命令。
5、 配置内核
make menuconfig (基于文本菜单的配置界面)
make xconfig(要求QT被安装)
make gconfig(要求GTK+被安装)
6、 编译内核,并将映像复制到相应的目录。
make bzImage
(生成使用gzip压缩的文件,生成的文件位于/usr/src/linux/arch/i386/boot目录)
make modules modules_install
cd /usr/src/linux/
mv arch/i386/boot/bzImage /boot/ bzImage2.6
mv system.map /boot/system.map-2.6
cd /boot
mv oldsystem.map
In –s system.map-2.6 system.map(创建相应的system.map符号链接)
system.map-2.6是编译生成的Linux2.6内核的符号表,而system.map是内核符号表的链接。
7、 修改启动脚本文件/etc/rc.sysinit
8、 修改启动选项
修改/boot/grub/grub.conf
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
hiddenmenu
title Fedora (
root (hd0,0)
kernel /boot/vmlinuz-2.6.25-14.fc9.i686 ro root=UUID=3aec9fde-e30d-47b7-b454-e
initrd /boot/initrd-2.6.25-14.fc9.i686.img
Linux2.6内核的配置系统由以下3个部分组成:
Makefile:分部在Linux内核源代码中的Makefile,定义Linux内核的编译规则
配置文件(Kconfig):给用户提供配置选择的功能
配置工具:包括配置命令解释器和配置用户界面。
使用make menuconfig等命令后,会生成一个.config配置文件(隐含在顶层Makefile中),记录哪些部分被编译入内核,那些部分被编译为内核模块。
用户运行make zImage等生成映像的命令时,先检索顶层Makefile(在arch/xxx目录下的Makefile为顶层Makefile补充体系结构相关的信息),顶层Makefile完成两个主要的任务:产生内核映像文件和内核模块,为了达到此目的,顶层Makefile会递归地进入内核的各个子目录中,分别调用位于这些子目录中Makefile(子目录中的Makefile属于kbuild类型Makefile,记录编译目标)。进入那些子目录则取决于内核的配置,这也就是make menuconfig等生成.config文件发挥作用的地方。
在Linux内核中增加程序需要完成以下3项工作。
a,将编写的源代码复制到Linux内核源代码的相应目录中
b,在目录的Kconfig文件中增加新源代码对应项目的编译配置选项
c,在目录的Makefile文件中增加对新源代码的编译条目