linux内核的编译及加载

来源:互联网 发布:新版淘宝怎么添加好友 编辑:程序博客网 时间:2024/05/16 06:55
内核的编译和镜像的制作
内核源码目录介绍
arch:和体系结构相关的核心代码,每个子目录代表一种支持的体系结构,如arm,powerpc,x86,MIPS等等

include:内核编译时所需要的大部分头文件,如遇arm相关的头文件在include/asm-arm子目录下

drivers:放置系统所有的设备驱动程序

fs:列出Linux系统所支持的所有文件系统,常用的闪存设备fs有 cramfs,romfs,ramfs,jffs2,yaffs

init:核心代码的初始化代码

ipc:包含核心进程间的通信代码,管道,信号,消息队列,内存共享,信号量,套接字

kernel:包含内核管理的核心代码

net:核心的网络部分代码

mm:内存管理代码

scripts:配置核心的脚本文件

lib:核心的库代码


制作过程
1、 解压内核源文件压缩包到相应目录,如
tar  -xvzf linux-2.6.32.2-gz  -C /mini2440
2、 拷贝config_mini2440_x35并命名为.config,以适合x35屏幕的mini2440开发板使用。
使用make menuconfig 命令(基于文本菜单的配置界面),使用make config , makemenuconfig 等后,会生成一个.config 配置文件,记录那些部分被编译入内核、那些部分被编译为模块。
(运行make menuconfig等时,配置工具首先分析与体系结构对应的/archKconfig文件,关于Kconfig另行了解)

3、修改/mini2440/linux-2.6.32.2/Makefile 的183、184行,改成:   ARCH  ?= arm
ROSS_COMPILE ?= arm-linux-
4、 执行/mini2440/linux-2.6.32.2 下的make
5、 修改分区表/linux-2.6.32.2/arch/arm/mach-s3c2440/mini2440.c中的339/282行,主要是为了写入开发板时,与nandflash相对应。
6、 将/linux-2.6.32.2/include/asm/mach-types中的第1985行改成 #define  mini2440 362
7、(如果要配置自己设置的内核,则执行这条语句,否则略过)在/mini2440/linux-2.6.32.2-gz下,makedistclean ,然后 make menuconfig 配置自己相应的内核。
8、 制作内核镜像:将mkuImage拷贝到/linux-2.6.32.2/arch/arm/boot下面,执行./mkuImage,将zImage生成uImage,然后将uimage拷贝到tftpboot下,烧写入开发板。(参照烧写uimage的实现笔记)。
9、 编译内核模块:进入内核目录(linux-2.6.32.2)
Make modules 

0 0
原创粉丝点击