Linux移植过程记录及命令记录

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

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

六、结果

运行结果:(成功)

Uncompressing Linux… done, booting the kernel.

Linux version 2.4.18-rmk7-swl8 (root@localhost.localdomain) (gcc version 2.95.3 20010315 (release)) #1 三 9月 6 15:05:59 CST 2006

CPU: SAMSUNG S3C2410(Arm920T)sid(wb) revision 0

Machine: CyberLab LN2410

On node 0 totalpages: 16384

zone(0): 16384 pages.

zone(1): 0 pages.

zone(2): 0 pages.

Kernel command line: root=/dev/mtdblock2 load_ramdisk=0 init=/linuxrc console=ttyS0 mem=64M devfs=mount

Console: colour dummy device 80x30

Calibrating delay loop… 96.05 BogoMIPS

Memory: 64MB = 64MB total

Memory: 62668KB available (1402K code, 328K data, 68K init)

Dentry-cache hash table entries: 8192 (order: 4, 65536 bytes)

Inode-cache hash table entries: 4096 (order: 3, 32768 bytes)

Mount-cache hash table entries: 1024 (order: 1, 8192 bytes)

Buffer-cache hash table entries: 4096 (order: 2, 16384 bytes)

Page-cache hash table entries: 16384 (order: 4, 65536 bytes)

POSIX conformance testing by UNIFIX

Linux NET4.0 for Linux 2.4

Based upon Swansea University Computer Society NET3.039

Initializing RT netlink socket

Starting kswapd

devfs: v1.10 (20020120) Richard Gooch (rgooch@atnf.csiro.au)

devfs: boot_options: 0x1

JFFS version 1.0, © 1999, 2000 Axis Communications AB

JFFS2 version 2.1. © 2001 Red Hat, Inc., designed by Axis Communications AB.

l3 S3C2410 Adapter Initialized

ttyS00 at MEM 0xe0000000 (irq = 52) is a S3C2410

ttyS01 at MEM 0xe0004000 (irq = 55) is a S3C2410

screen_cpu:c480e000 ,screen_dma:33f01000

Console: switching to colour frame buffer device 80x30

Installed LN2410X TFT 16bpp frame buffer

by redizi, CyberLab 2003

pty: 256 Unix98 ptys configured

Loading S3C2410 Touch Screen Driver

Installing S3C2410 RTC

S3C Real Time Clock driver v1.00

block: 128 slots per queue, batch=32

RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize

eth0: incorrect signature 0x4000

cs89x0: no cs8900 or cs8920 detected. Be sure to disable PnP with SETUP

loop: loaded (max 8 devices)

S3C2410 UDA1341 / IIS initialized

NAND device: Manufacture ID: 0xec, Chip ID: 0x76 (Samsung K9D1208V0M)

Creating 5 MTD partitions on “Samsung K9D1208V0M”:

0x00000000-0x00030000 : “boot”

0x00030000-0x00200000 : “kernel”

0x00200000-0x02000000 : “rootfs”

0x02000000-0x03000000 : “ext-fs1”

0x03000000-0x04000000 : “ext-fs2”

usb.c: registered new driver hub

usb-ohci.c: USB OHCI at membase 0xd9000000, IRQ 26

usb.c: new USB bus registered, assigned bus number 1

hub.c: USB hub found

hub.c: 2 ports detected

mice: PS/2 mouse device common for all mice

NET4: Linux TCP/IP 1.0 for NET4.0

IP Protocols: ICMP, UDP, TCP

IP: routing cache hash table of 512 buckets, 4Kbytes

TCP: Hash tables configured (established 4096 bind 4096)

NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.

NetWinder Floating Point Emulator V0.95 © 1998-1999 Rebel.com

VFS: Mounted root (cramfs filesystem).

Mounted devfs on /dev

Freeing init memory: 68K

console=/dev/console

init started: BusyBox v0.60.3 (2002.05.13-08:36+0000) multi-call binary

Starting pid 16, console /dev/console: ‘/etc/init.d/rcS’

exec: /usr/etc/rc.local: No such file or directory

Waiting for enter to start ‘/bin/sh’ (pid 19, terminal /dev/console)

Please press Enter to activate this console.

Starting pid 19, console /dev/console: ‘/bin/sh’

BusyBox v0.60.3 (2002.05.13-08:36+0000) Built-in shell (ash)

Enter ‘help’ for a list of built-in commands.

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值