Chinaunix首页 | 论坛 | 博客
  • 博客访问: 153732
  • 博文数量: 53
  • 博客积分: 2042
  • 博客等级: 大尉
  • 技术积分: 425
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-15 21:39
文章存档

2011年(6)

2010年(47)

分类: LINUX

2010-05-18 18:53:09

一.下载核心以及相应补丁:

Linux核心:linux-2.4.18.tar.bz2

补丁:

patch-2.4.18-rmk7.gz

patch-2.4.18-rmk7-swl8.gz

patch-2.4.18-rmk7-swl8-cy2.gz

patch-2.4.18-rmk7-swl8-cy2-lc3.gz



二. 解压缩:

# tar xzvf linux-2.4.18.tar.gz
# gunzip patch-2.4.18-rmk7.gz
# gunzip patch-2.4.18-rmk7-swl8.gz
# gunzip patch-2.4.18-rmk7-swl8-cy2.gz
# gunzip patch-2.4.18-rmk7-swl8-cy2-lc3.gz



三. 打补丁:

# cd linux-2.4.18
# patch -p1 < .. patch-2.4.18-rmk7
# patch -p1 < .. patch-2.4.18-rmk7-swl8
# patch -p1 < .. patch-2.4.18-rmk7-swl8-cy2
# patch -p1 < .. patch-2.4.18-rmk7-swl8-cy2-lc3



四. 修改相关代码:

(1)修改主目录的Makefile

vi linux/Makefiel

a.指定目标平台为ARM:

#ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/)
ARCH := arm



   b.指定交叉编译器:
CROSS_COMPILE = /usr/local/arm/2.95.3/bin/arm-linux-

(我的交叉编译工具放在/usr/local/arm文件夹下)



(2)修改arch目录中的文件
  Linux的arch目录存放硬件相关的内核代码,因此,在Linux内核中增加对S3C2410的支持,最主要就是要修改arch目录中的文件。

在arch/arm/Makefile文件中加入:

ifeq ($(CONFIG_ARCH_S3C2410),y)
TEXTADDR = 0xC0008000
MACHINE = s3c2410
Endif



(3) 在arch/arm/boot/Makefile文件中加入:

ifeq ($(CONFIG_ARCH_S3C2410),y)
ZTEXTADDR = 0x30008000
ZRELADDR = 0x30008000
endif



(4) 修改arch/arm/mm/mm-armv.c文件(arch/arm/mm/目录中的文件完成与ARM相关的MMU处理):

修改:

init_maps->bufferable = 0;

为:

init_maps->bufferable = 1;



五.编译内核:

make menuconfig

一定要选上 :FILE_SYSTEM

CONFIG_DEVFS_FS=y

修改启动命令行:

CONFIG_CMDLINE="root=/dev/mtdblock2 init=/linuxrc console=ttyS0,115200 devfs=mount load_ramdisk=0"



Make dep

Make zImage



运行结果:(成功)
阅读(882) | 评论(0) | 转发(0) |
0

上一篇:书籍

下一篇:CPU 模拟器--SimOs 简介

给主人留下些什么吧!~~