Chinaunix首页 | 论坛 | 博客
  • 博客访问: 399538
  • 博文数量: 115
  • 博客积分: 2501
  • 博客等级: 少校
  • 技术积分: 1009
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-23 17:05
文章分类

全部博文(115)

文章存档

2011年(2)

2010年(86)

2009年(27)

我的朋友

分类: 嵌入式

2010-10-16 23:54:27

启动系统

将前面两章生成的内核映像文件和根文件系统映像文件下载到mini2440开发板,查看启动信息。我成功移植启动信息如下:

VIVI version 0.1.4 (root@capcross) (gcc version 2.95.3 20010315 (release)) #0.1.4 Mon Oct 27 10:18:15 CST 2008

MMU table base address = 0x33DFC000

Succeed memory mapping.

DIVN_UPLL0

MPLLVal [M:7fh,P:2h,S:1h]

CLKDIVN:5h

 

 

+---------------------------------------------+

| S3C2440A USB Downloader ver R0.03 2004 Jan  |

+---------------------------------------------+

USB: IN_ENDPOINT:1 OUT_ENDPOINT:3

FORMAT: +++

NOTE: Power off/on or press the reset button for 1 sec

      in order to get a valid USB device address.

 

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

Could not found stored vivi parameters. Use default vivi parameters.

Press Return to start the LINUX/Wince now, any other key for vivi

Copy linux kernel from 0x00050000 to 0x30008000, size = 0x00200000 ... done

zImage magic = 0x016f2818

Setup linux parameters at 0x30000100

linux command line is: "noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0"

MACH_TYPE = 782

NOW, Booting Linux......

Uncompressing Linux.................................................................................................................. done, booting the kernel.

Linux version 2.6.29.1 (root@localhost.localdomain) (gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72) ) #25 Sun Aug 9 11:19:36 CST 2009

CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=c0007177

CPU: VIVT data cache, VIVT instruction cache

Machine: Study-S3C2440

ATAG_INITRD is deprecated; please update your bootloader.

Memory policy: ECC disabled, Data cache writeback

CPU S3C2440A (id 0x32440001)

S3C24XX Clocks, (c) 2004 Simtec Electronics

S3C244X: core 405.000 MHz, memory 101.250 MHz, peripheral 50.625 MHz

CLOCK: Slow mode (1.500 MHz), fast, MPLL on, UPLL on

Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 16256

Kernel command line: noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0

irq: clearing pending status 02000000

irq: clearing subpending status 00000002

PID hash table entries: 256 (order: 8, 1024 bytes)

Console: colour dummy device 80x30

console [ttySAC0] enabled

Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)

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

Memory: 64MB = 64MB total

Memory: 61132KB available (3276K code, 285K data, 144K init)

Calibrating delay loop... 201.93 BogoMIPS (lpj=504832)

Mount-cache hash table entries: 512

CPU: Testing write buffer coherency: ok

net_namespace: 296 bytes

NET: Registered protocol family 16

S3C2440: Initialising architecture

S3C2440: IRQ Support

S3C24XX DMA Driver, (c) 2003-2004,2006 Simtec Electronics

DMA channel 0 at c4808000, irq 33

DMA channel 1 at c4808040, irq 34

DMA channel 2 at c4808080, irq 35

DMA channel 3 at c48080c0, irq 36

S3C244X: Clock Support, DVS off

bio: create slab at 0

SCSI subsystem initialized

usbcore: registered new interface driver usbfs

usbcore: registered new interface driver hub

usbcore: registered new device driver usb

NET: Registered protocol family 2

IP route cache hash table entries: 1024 (order: 0, 4096 bytes)

TCP established hash table entries: 2048 (order: 2, 16384 bytes)

TCP bind hash table entries: 2048 (order: 1, 8192 bytes)

TCP: Hash tables configured (established 2048 bind 2048)

TCP reno registered

NET: Registered protocol family 1

Installing knfsd (copyright (C) 1996 okir@monad.swb.de).

NTFS driver 2.1.29 [Flags: R/O].

yaffs Aug  9 2009 11:14:06 Installing.

msgmni has been set to 119

io scheduler noop registered

io scheduler anticipatory registered (default)

io scheduler deadline registered

io scheduler cfq registered

Console: switching to colour frame buffer device 30x40

fb0: s3c2410fb frame buffer device

s3c2440-uart.0: s3c2410_serial0 at MMIO 0x50000000 (irq = 70) is a S3C2440

s3c2440-uart.1: s3c2410_serial1 at MMIO 0x50004000 (irq = 73) is a S3C2440

s3c2440-uart.2: s3c2410_serial2 at MMIO 0x50008000 (irq = 76) is a S3C2440

brd: module loaded

loop: module loaded

dm9000 Ethernet Driver, V1.31

dm9000 dm9000.0: eth%d: Invalid ethernet MAC address. Please set using ifconfig

Now use the default MAC address:08:90:90:90:90:90

eth0 (dm9000): not using net_device_ops yet

eth0: dm9000e at c4818000,c481c004 IRQ 51 MAC: 08:90:90:90:90:90 (chip)

Driver 'sd' needs updating - please use bus_type methods

S3C24XX NAND Driver, (c) 2004 Simtec Electronics

s3c2440-nand s3c2440-nand: Tacls=1, 9ns Twrph0=4 39ns, Twrph1=1 9ns

NAND device: Manufacturer ID: 0xec, Chip ID: 0x76 (Samsung NAND 64MiB 3,3V 8-bit)

Scanning device for bad blocks

Creating 3 MTD partitions on "NAND 64MiB 3,3V 8-bit":

0x000000000000-0x000000030000 : "boot"

0x000000050000-0x000000250000 : "kernel"

0x000000250000-0x000003ffc000 : "kernel"

ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver

s3c2410-ohci s3c2410-ohci: S3C24XX OHCI

s3c2410-ohci s3c2410-ohci: new USB bus registered, assigned bus number 1

s3c2410-ohci s3c2410-ohci: irq 42, io mem 0x49000000

usb usb1: configuration #1 chosen from 1 choice

hub 1-0:1.0: USB hub found

hub 1-0:1.0: 2 ports detected

Initializing USB Mass Storage driver...

usbcore: registered new interface driver usb-storage

USB Mass Storage support registered.

mice: PS/2 mouse device common for all mice

s3c2410 TouchScreen successfully loaded

input: s3c2410 TouchScreen as /devices/virtual/input/input0

i2c /dev entries driver

s3c2440-i2c s3c2440-i2c: slave address 0x10

s3c2440-i2c s3c2440-i2c: bus frequency set to 98 KHz

s3c2440-i2c s3c2440-i2c: i2c-0: S3C I2C adapter

S3C2410 Watchdog Timer, (c) 2004 Simtec Electronics

s3c2410-wdt s3c2410-wdt: watchdog inactive, reset disabled, irq enabled

usbcore: registered new interface driver usbhid

usbhid: v2.6:USB HID core driver

TCP cubic registered

NET: Registered protocol family 17

RPC: Registered udp transport module.

RPC: Registered tcp transport module.

yaffs: dev is 32505858 name is "mtdblock2"

yaffs: passed flags ""

yaffs: Attempting MTD mount on 31.2, "mtdblock2"

usb 1-1: new low speed USB device using s3c2410-ohci and address 2

usb 1-1: configuration #1 chosen from 1 choice

input: USB Mouse as /devices/platform/s3c2410-ohci/usb1/1-1/1-1:1.0/input/input1

generic-usb 0003:15D9:0A37.0001: input,hidraw0: USB HID v1.10 Mouse [USB Mouse] on usb-s3c24xx-1/input0

yaffs_read_super: isCheckpointed 0

VFS: Mounted root (yaffs filesystem) on device 31:2.

Freeing init memory: 144K

----------munt all----------------

network interface

dm9000 dm9000.0: WARNING: no IRQ resource flags set.

eth0: link down

****************Studying ARM*********************

Kernel version:linux-2.6.29.1

Student:Feng dong rui

Date:2009.07.15

**************************************************

 

Please press Enter to activate this console. eth0: link up, 10Mbps, half-duplex, lpa 0x0021

 

[rootMrFeng]#ls

bin         etc         linuxrc     opt         sbin        usr

boot        home        lost+found  proc        sys         var

dev         lib         mnt         root        tmp         www

[rootMrFeng]#

这期间可能会遇到这样或那样启动失败的错误,要么是内核移植有问题,要么是根文件系统没制作好,只有到google上搜索解决问题了。我就是重复的配置和编译、google,甚至虚拟机上的Linux系统都重新装过,经过许多重复的劳动和思考终于移植成功了。

 

总结

参照友善的说明书熟悉了mini2440开发板的环境和使用,知道怎么使用,并不知道该如何自己构建这样的一个环境。在网上看到很多人从移植内核和根文件系统开始搭建开发环境,再写设备驱动和应用程序,基本上就是围绕着“内核--->驱动--->应用程序”这条线来的。移植内核和根文件系统,我参照了几十篇网上的文章和一些好心网友整理的资料,终于搭建好了一个能够正常启动的内核和根文件系统。在这里非常感谢网友的无私奉献,为感谢网友、分享学习心得,这是我写这篇笔记的主要原因,只会索取而不奉献怎么行,希望我的笔记对初学者有用,我也是初学者,正在学习。

阅读(956) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~