




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
linux内核移植笔记目标机:ok6410交叉编译器:arm-linux-gcc-4.3.2交叉编译器路径:/usr/local/arm/4.3.2要移植的内核版本:linux-2.6.36U-BOOT:u-boot1.1.6文件系统类型: cramfs (目前使用光盘中linux-2.6.36的文件系统)一、 获取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:$PATHrootwww ok6410# cd linux-2.6.36rootwww linux-2.6.36# vi Makefile-#ARCH ?= $(SUBARCH)#CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:%=%)ARCH ?= armCROSS_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.36archarmmach-s3c64xxmach-smdk6410.c文件中,添加如下内容:/tzq20120401 add it#include #include #include /*我的开发板Nand Flash大小为1GB,按如下大小进行分区*/3.1 建立分区表/* * tzq20120401 add 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,File System以及以便以后扩展使用的用户文件系统空间。各分区在Nandflash中起始地址.分区大小.记录如下:bootloader: start:0x00000000 len:0x00100000 1MB kernel: start:0x00100000 len:0x00500000 3MB rootfs: start:0x00600000 len:0x07800000 40MB User: start:0x08400000 len:0x40000000 20MB3.2 加入Nand Flash 分区static struct s3c2410_nand_set ok6410_nand_sets = 0 = .name = nand,.nr_chips = 1,.nr_partitions = ARRAY_SIZE(ok6410_nand_part),.partitions = ok6410_nand_part,;注释:nr_partitions:指明partition_info中定义的分区数目partitions:分区信息表3.3 建立Nand Flash芯片支持static struct s3c2410_platform_nand ok6410_nand_info = .tacls = 25,.twrph0 = 55,.twrph1 = 40,.nr_sets = ARRAY_SIZE(ok6410_nand_sets),.sets = ok6410_nand_sets,;注释:tacls,twrph0,twrph1的意思见S3C6410手册,这3个值最后会被设置到NFCONF中,见S3C6410手册.sets:支持的分区集nr_set:分区集的个数四、 指定启动时初始化static struct platform_device *smdk6410_devices _initdata = #ifdef CONFIG_SMDK6410_SD_CH0&s3c_device_hsmmc0,#endif#ifdef CONFIG_SMDK6410_SD_CH1&s3c_device_hsmmc1,#endif&s3c_device_i2c0,&s3c_device_i2c1,&s3c_device_fb,&s3c_device_ohci,&s3c_device_usb_hsotg,&s3c64xx_device_iisv4,&samsung_device_keypad,/tzq20120401 add it&s3c_device_nand,#ifdef CONFIG_REGULATOR&smdk6410_b_pwr_5v,#endif&smdk6410_lcd_powerdev,&smdk6410_smsc911x,&s3c_device_adc,&s3c_device_cfcon,&s3c_device_rtc,&s3c_device_ts,&s3c_device_wdt,;五、 加入Nand Flash芯片支持到Nand Flash驱动static void _init smdk6410_machine_init(void)u32 cs1;s3c_i2c0_set_platdata(NULL);s3c_i2c1_set_platdata(NULL);s3c_fb_set_platdata(&smdk6410_lcd_pdata);/tzq20120401 add its3c_nand_set_platdata(&ok6410_nand_info);samsung_keypad_set_platdata(&smdk6410_keypad_data);s3c24xx_ts_set_platdata(&s3c_ts_platform);/* configure nCS1 width to 16 bits */cs1 = _raw_readl(S3C64XX_SROM_BW) & (S3C64XX_SROM_BW_CS_MASK S3C64XX_SROM_BW_NCS1_SHIFT);cs1 |= (1 S3C64XX_SROM_BW_DATAWIDTH_SHIFT) |(1 S3C64XX_SROM_BW_WAITENABLE_SHIFT) |(1 S3C64XX_SROM_BW_BYTEENABLE_SHIFT) S3C64XX_SROM_BW_NCS1_SHIFT;_raw_writel(cs1, S3C64XX_SROM_BW);/* set timing for nCS1 suitable for ethernet chip */_raw_writel(0 S3C64XX_SROM_BCX_PMC_SHIFT) | (6 S3C64XX_SROM_BCX_TACP_SHIFT) | (4 S3C64XX_SROM_BCX_TCAH_SHIFT) | (1 S3C64XX_SROM_BCX_TCOH_SHIFT) | (0xe S3C64XX_SROM_BCX_TACC_SHIFT) | (4 S3C64XX_SROM_BCX_TCOS_SHIFT) | (0 Memory Technology Device (MTD) support - * MTD partitioning support #支持MTD分区这样我们在前面设置的分区才有意义 NAND Device Support - NAND Flash support for S3C/S3C SoC另外再把这个选项选上device drivers - Memory Technology Device (MTD) support - Caching block device access to MTD devices (此出勾选可防止出现:VFS: Cannot open root device mtdblock2 or unknown-block(2,0) 错误) 保存退出 七、 编译内核 make zImage 。编译成功后则在arch/arm/boot/目录下有zImage镜像八、 备注把得到的zImage镜像下载到开发板上出现如下问题VFS: Cannot open root device mtdblock2 or unknown-block(0,0)Please append a correct root= boot option; here are the available partitions:Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) (unwind_backtrace+0x0/0xec) from (panic+0x54/0x174) (panic+0x54/0x174) from (mount_block_root+0x25c/0x2ac) (mount_block_root+0x25c/0x2ac) from (prepare_namespace+0x164/0x1bc) (prepare_namespace+0x164/0x1bc) from (kernel_init+0x10c/0x14c) (kernel_init+0x10c/0x14c) from (kernel_thread_exit+0x0/0x8)问题原因:配置nandflash出错解决方法:解决方法就是修改arch./arm/plat-samsung/dev-nand.c 中的static struct resource s3c_nand_resource = 0 = .start = S3C_PA_NAND, .end = S3C_PA_NAND + SZ_1M -1, .flags = IORESOURCE_MEM, ;.end = S3C_PA_NAND + SZ_1M-1, 减去一就行了此外可能遇到如下问题问题二:.end_request: I/O error, dev mtdblock2, sector 16Buffer I/O error on device mtdblock2, logical block 2uncorrectable error : uncorrectable error : end_request: I/O error, dev mtdblock2, sector 24Buffer I/O error on device mtdblock2, logical block 3uncorrectable error : uncorrectable error : end_request: I/O error, dev mtdblock2, sector 24Buffer I/O error on device mtdblock2, logical block 3List of all partitions:1f00 256 mtdblock0 (driver?)1f01 3840 mtdblock1 (driver?)1f02 81920 mtdblock2 (driver?)1f03 176128 mtdblock3 (driver?)No filesystem could mount root, tried: cramfsKernel panic - not syncing: VFS: Unable to mount root fs on un
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 长沙商贸旅游职业技术学院《水文地质学》2024-2025学年第一学期期末试卷
- 河北体育学院《图像处理技术》2024-2025学年第一学期期末试卷
- 南通职业大学《蒙台梭利教育与实践》2024-2025学年第一学期期末试卷
- 解读临床护理实践指南
- 南开大学滨海学院《农药营销与管理学》2024-2025学年第一学期期末试卷
- 广东以色列理工学院《民航快递实训》2024-2025学年第一学期期末试卷
- 西昌民族幼儿师范高等专科学校《数学课程标准与教材分析》2024-2025学年第一学期期末试卷
- 遂宁能源职业学院《信息管理学》2024-2025学年第一学期期末试卷
- 湖北生物科技职业学院《游泳课保健》2024-2025学年第一学期期末试卷
- 贵州农业职业学院《平面设计》2024-2025学年第一学期期末试卷
- 2024年高级统计实务考试真题及答案解析
- 失语症筛查评定表
- 铁总物资〔2015〕250号:中国铁路总公司物资采购异议处理办法
- GB/Z 42625-2023真空技术真空计用于分压力测量的四极质谱仪特性
- 人民医院心血管外科临床技术操作规范2023版
- 助理工程师考试试题以及答案
- 送东阳马生序
- 2017年全国大学生数学建模A题
- 2023年专升本计算机题库含答案专升本计算机真题
- GB/T 16674.1-2016六角法兰面螺栓小系列
- 住宅项目景观工程施工策划(图文并茂)
评论
0/150
提交评论