分类: 嵌入式
2010-10-16 23:54:27
将前面两章生成的内核映像文件和根文件系统映像文件下载到mini2440开发板,查看启动信息。我成功移植启动信息如下:
VIVI version MMU table base address = 0x33DFC000 Succeed memory mapping. DIVN_UPLL0 MPLLVal [M:7fh,P:2h,S:1h] CLKDIVN:5h +---------------------------------------------+ | S +---------------------------------------------+ 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 K9D1208V 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 = 0x 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 CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=c0007177 CPU: VIVT data cache, VIVT instruction cache Machine: Study-S ATAG_INITRD is deprecated; please update your bootloader. Memory policy: ECC disabled, Data cache writeback CPU S S S 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 S S S 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 c S bio: create slab 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 NET: Registered protocol family 1 Installing knfsd (copyright (C) 1996 okir@monad.swb.de). NTFS driver 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: s s s s 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,c Driver 'sd' needs updating - please use bus_type methods S s 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 s s s 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 s input: s i s s s S s 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 s usb 1-1: configuration #1 chosen from 1 choice input: USB Mouse as /devices/platform/s generic-usb 0003:15D9: 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- 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开发板的环境和使用,知道怎么使用,并不知道该如何自己构建这样的一个环境。在网上看到很多人从移植内核和根文件系统开始搭建开发环境,再写设备驱动和应用程序,基本上就是围绕着“内核--->驱动--->应用程序”这条线来的。移植内核和根文件系统,我参照了几十篇网上的文章和一些好心网友整理的资料,终于搭建好了一个能够正常启动的内核和根文件系统。在这里非常感谢网友的无私奉献,为感谢网友、分享学习心得,这是我写这篇笔记的主要原因,只会索取而不奉献怎么行,希望我的笔记对初学者有用,我也是初学者,正在学习。