linux内核编译
来源:互联网 发布:周恩来 知乎 编辑:程序博客网 时间:2024/05/16 13:06
一:准备工作
1、linux内核2.6.38.7
2、编辑器arm-linux-gcc version 4.2.4 http://ftp.snapgear.org/pub/snapgear/tools/arm-linux/arm-linux-tools-20080623.tar.gz 3、文件系统 yaffs2 http://aleph1.co.uk/gitweb?p=yaffs2.git;a=snapshot;h=HEAD;
4、平台 OK2440-Ⅲ
二、移植内核
1、解压内核
tar –xvf linux-2.6.38.7.tar.gz
2、进入内核目录
cd linux-2.6.38.7
3、修改主目录下Makefile
vim Makefile
在191行
ARCH ?= $(SUBARCH)CROSS_COMPILE ?=修改为ARCH ?=armCROSS_COMPILE ?=arm-linux-
4,修改机器码# vim arch/arm/tools/mach-types在379行s3c2440 ARCH_S3C2440 S3C2440 362修改为s3c2440 ARCH_S3C2440 S3C2440 193与bootloader传入的机器码参数一致即可
5、修改晶振频率( 可解决打印信息乱码问题 )文件:arch/arm/mach-s3c2440/mach-smdk2440.c 163行/*s3c24xx_init_clocks(16934400);*/ s3c24xx_init_clocks(12000000)!
6、修改Nand Flash分区# vim arch/arm/plat-s3c24xx/common-smdk.c在109行static struct mtd_partition smdk_default_nand_part[] = { [0] = { .name = "Boot", .size = 0x00100000, .offset = 0 }, [1] = { .name = "MyApp", .size = 0x003c0000, .offset = 0x00140000, }, [2] = { .name = "Kernel", .size = 0x00300000, .offset = 0x00500000, }, [3] = { .name = "fs_yaffs", .size = 0x0f000000, //240M .offset = 0x00800000, }, /*[4] = { .name = "WINCE", .size = 0x03c00000, .offset = 0x04400000, } */ };
7、关闭ECC校验文件:drivers/mtd/nand/s3c2410.c 839行函数:s3c2410_nand_init_chip/*chip->ecc.mode = NAND_ECC_SOFT; */ chip->ecc.mode = NAND_ECC_NONE;问题:关于ECC:ECC是“Error Correcting Code”的简写,中文名称是“错误检查和纠正”。ECC是一种能够实现“错误检查和纠正”的技术,ECC内存就是应用了这种技术的内存,一般多应用在服务器及图形工作站上,这将使整个电脑系统在工作时更趋于安全稳定。此处为避免容易出错,将ECC关闭。
8、修改nandflash驱动,支持K9F1G08的nandflash修改drivers/mtd/nand下面的nand_bbt.c 文件:static struct nand_bbt_descr largepage_memorybased = {.options = 0,.offs = 0,.len = 1, // 原数值为2,支持2K每页的flash修改为1。K9F1G08,K9F2G08是2k每页的flash.pattern = scan_ff_pattern};static struct nand_bbt_descr largepage_flashbased = {.options = NAND_BBT_SCAN2NDPAGE,.offs = 0,.len = 1, //1285行,原数值为2,支持2K每页的flash修改为1。K9F1G08,K9F2G08是2k每页的flash.pattern = scan_ff_pattern};
- Linux内核:编译内核
- 【LINUX内核】LINUX内核编译
- Android编译 & Linux内核编译
- linux内核编译kernel编译
- Linux编译内核详解
- Linux编译内核详解
- linux内核编译
- 菜鸟编译Linux内核
- linux内核编译详解
- LINUX内核编译(ZT)
- Linux 内核编译 全功略
- 第一次编译linux内核
- linux内核编译步骤
- Linux内核编译步骤
- Linux 内核编译详解
- Linux内核编译详解
- Linux内核编译
- linux内核编译
- 选我所爱,爱我所选
- 时间类型数据的运算
- ORACLE EBS 系统主数据管理(D)
- 最近项目用到关键技术概况
- C++标准中的一些语法,近期收集,慢慢更新
- linux内核编译
- 用iis发布网站
- Tomcat 启动startup.bat一闪而过问题【JDK的环境变量配置】
- 软件开发模式有哪些?
- 解决SWFUpload上传文件组件使用时报告2049错误
- html特殊符号转换
- ORACLE EBS 系统主数据管理(E)
- 整理最新的行政区代码表步骤
- VC6.0下OCI编程实例