1、实验 5 linux 内核的裁剪移植一、实验目的:学习利用 menuconfig 配置文件进行裁减内核,编译内核并移植到开发板上。二、实验内容一、开发环境宿主机:ubuntu10.04开发板:tiny6410编译器:4.3.2二、内核移植1.下载源码ftp:/ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.38.tar.bz2此实验所需的文件放到/home/embedded/11 目录下:linux-2.6.38.tar.bz2, yaffs2.tar.bz2s3c_nand.c , s3c_nand_mlc.fo ,nand_base.c ,Kc
2、onfig ,regs-nand.h 2.解压( 进入根目录下的/home/poplar/expr4/kernel 目录,解压源码)# cd /home# mkdir poplar/expr4/kernel p# cd /home/poplar/expr4/kernel# cp /home/embedded/11/linux-2.6.38.tar.bz2 ./tar xvfj /home/poplar/expr4/kernel/linux-2.6.38.tar.bz23.修改架构,编译器(需要在 arm 上运行,所以用交叉编译器)解压完进入解压出来的 linux-2.6.38 目录#cd li
3、nux-2.6.38#vi Makefile (或者用 gedit)191 行改为 ARCH ?= arm /191 行CROSS_COMPILE ?= /usr/local/arm/4.3.2/bin/arm-linux- (找到其交叉编译环境, 把路径加全) /192 行4.生成默认配置文件#cp arch/arm/configs/s3c6400_defconfig .config如省略这个操作的话 后面会找不到 System TypeLinux 内核中已经自带了关于我们 6410 开发板的配置。5.修改配置项#make menuconfigSystem Type-* MINI6410 选
4、上,6.拷贝 NAND FLASH 驱动到根目录下的/home/poplar/expr4/kernel 下的 linux-2.6.38 里相应的文件位置处(以下的文件在实验五文件夹里有)drivers/mtd/nand/s3c_nand.carch/arm/plat-samsung/include/plat/regs-nand.h drivers/mtd/nand/s3c_nand_mlc.fo drivers/mtd/nand/nand_base.cdrivers/mtd/nand/Kconfig执行命令:#cp /home/embedded/11/s3c_nand.c ./drivers/
5、mtd/nand/#cp /home/embedded/11/s3c_nand_mlc.fo ./drivers/mtd/nand/#cp /home/embedded/11/nand_base.c ./drivers/mtd/nand/#cp /home/embedded/11/Kconfig ./drivers/mtd/nand/#cp /home/embedded/11/regs-nand.h ./arch/arm/plat-samsung/include/plat/7 修改 nand 驱动 makefile输入指令#cd drivers/mtd/nand#vi Makefiledriv
6、ers/mtd/nand/Makefile 中 20 行增加obj-$(CONFIG_MTD_NAND_S3C) += s3c_nand.o末尾再增加obj-$(CONFIG_MTD_NAND_S3C) += s3c_nand_mlc.fo8增加相应选项输入指令#cd /home/poplar/expr4/kernel/linux-2.6.38#make menuconfigDevice Drivers- Memory Technology Device (MTD) support -* MTD partitioning support* Command line partition tabl
7、e parsing Direct char device access to MTD devices Caching block device access to MTD devicesNAND Device Support -NAND Flash support for Samsung S3C SoCs 去掉不要选NAND Flash support for S3C SoC * S3C NAND Hardware ECC三、 添加 yaffs2 文件系统的支持首先向内核源代码中加入支持 yaffs2 的源代码】解压 yaffs2.tar.bz2#cd /home/poplar/expr4/kernel#cp /home/embedded/11/yaffs2.tar.bz2 ./#tar xvfj yaffs2.tar.bz2进入解压出的目录#cd yaffs2执行如下命令./patch-ker.sh c m +内核源码路径# ./patch-ker.sh c m ./linux-2.6.38然后进入内核源码目录#cd /home/poplar/expr4/kernel/linux-2.6.38执行 make menuconfig