文档详情

我的linux内核移植笔记.doc

发布:2017-02-12约7.57千字共8页下载文档
文本预览下载声明
我的linux内核移植笔记 宿主机: 目标机: 交叉编译器:arm-linux-gcc- 交叉编译器路径:/usr/local/arm/ 要移植的内核版本:linux-2.6.3 文件系统类型: (目前使用光盘中linux-2.6.的文件系统)2012-4-4 获取Linux内核源码 首先,从官网上下载linux-2.6.36的内核。 在/pub/linux/kernel/v2.6/ 找到。 新建目录 mkdir /home/yueye/ok6410,接着将源码包放在该目录下。 解压源码包到我的工作目录 tar -zxvf linux-2.6.36.tar.gz –C /home/yueye/ok6410 修改Makefile 前提是你的PATH环境编译可以找到你的交叉编译工具链。 查看PATH环境变量: echo $PATH 添加环境变量:vi ~/.bashrc 在打开的文件最后加上:export PATH=/usr/local/arm/4.3.2/bin:$PATH [root@www ok6410]# cd linux-2.6.36 [root@www linux-2.6.36]# vi Makefile ------------------------------------------ #ARCH ?= $(SUBARCH) #CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:%=%) ARCH ?= arm CROSS_COMPILE ?= /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi- 备注:后来编译内核时出现无法找到交叉编译器的错误,这个问题郁闷了一天,原来在配置内核时要选择这个选项才能吃到我们设定的交叉编译器。 在配置内核注意要选上以下选项 Kernel Features --- [*] Use the ARM EABI to compile the kernel [*] Allow old ABI binaries to run with this kernel (EXPERIMENTAL) 配置Nand Flash分区信息 在linux-2.6.36\arch\arm\mach-s3c64xx\mach-smdk6410.c文件中,添加如下内容: //tzqadd it #include linux/mtd/mtd.h #include linux/mtd/partitions.h #include plat/nand.h /*我的开发板Nand Flash大小为1GB,按如下大小进行分区*/ 3.1 建立分区表 /************************************ * tzqadd it * Configuring Nandflash on SMDK6410 ************************************/ struct mtd_partition ok6410_nand_part[] = { {/*1MB*/ .name = Bootloader, .offset = 0, .size = (1 * SZ_1M), .mask_flags = MTD_CAP_NANDFLASH, }, {/*5MB*/ .name = Kernel, .offset = (1 * SZ_1M), .size = (5*SZ_1M) , .mask_flags = MTD_CAP_NANDFLASH, }, {/*120MB*/ .name = User, .offset = (6 * SZ_1M), .size = (120*SZ_1M) , }, {/*THE LESS SIZE ALL*/ .name = File System, .offset = MTDPART_OFS_APPEND, .size = MTDPART_SIZ_FULL, } }; 注释: name:?代表分区名字 size:?代表flash分区大小(单位:字节) offset:?代表flash分区的起始地址(相对于0x0的偏移) 4个区,分别存放bootloader,?kernel,?以及以便以后扩展使用的用户文件系统空间。 Nand?flash中起始地址.?分区大小.?记录如下:bootloader: start:?0 len:
显示全部
相似文档