我的linux内核移植笔记.docVIP

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
我的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:???0x00100

文档评论(0)

xx88606 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档