Chinaunix首页 | 论坛 | 博客
  • 博客访问: 242251
  • 博文数量: 29
  • 博客积分: 1598
  • 博客等级: 上尉
  • 技术积分: 388
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-09 13:35
文章分类
文章存档

2012年(3)

2011年(4)

2010年(1)

2009年(21)

我的朋友

分类: LINUX

2009-03-20 22:02:23

今天下午终于成功了,uboot1.2.0+linux2.6.18.6+root.img移植成功,真开心。再一次让我体验到,碰到困难就要克服它!!在这个过程中学到了许多知识,这也是一个成长的过程咯。

不过还是有很些遗憾,就是还没有自己制作过交叉编译器和文件系统,驱动也是刚学习。前面还有很长的路走~~~

下一步就要开始这些工作~~感谢网上各位高手的资料共享,没有你们的奉献,我是不可能移植成功的:D

uboot1.2.0采用交叉编译器3.3.2进行编译

linux2.6.18.6采用3.4.1编译,交叉编译器的版本可能会导致你编译出错哦~

下面关于vivi的分区信息是以前针对vivi移植时做的总结,但我现在已经成功移植了uboot1.2.0,具体个人的uboot移植总结,待整理好了再帖出来:D


我下载的内核版本是2.6.18

2.6.18的内核映像文件一般会大于1M,所以对nandflash重新进行分区是很重要的。通常2410的分区模式是


内核只占了768K的大小,

内核的分区信息必须与vivi的分区信息一致。因为vivi的分区信息是用来将自己、内核、文件系统加载到SDRAM中的真正地址(0x30000000~0x34000000),而内核并不会去读vivi中的分区信息,它只会读取内核本身MTD分区中的信息。若两者不一致,可能会导致读取失败。


重新定义vivi分区。

Name

Offset

Size

Flag


Vivi

0x00000000

0x00020000

0

128k

Param

0x00020000

0x00010000

0

64k

Kernel

0x00030000

0x001e0000

0

1M+896k

Filesystem

0x00200000

0x00400000

4

4M

Program

0x00600000

0x03a00000

0

58M


上述的vivi信息只作参考。


1 正文:

内核MTD需要注意的是,2.6.16前需要自己添加分区信息,2.6.17以后的版本源码中已经添加了分区信息,仅需要修改分区信息就行了。相对来讲新的内核版本修改起来也比较简单。

因此不能修改/arch/arm/mach_s3c2410目录下的devs.c,而应该去修改这个目录下的common_smdk.c文件,这个c文件已经定义了内核的分区信息,如果在devs.c中自己又添加分区信息,那么会造成重复。可能会出错。

/* NAND parititon from 2.6.18 2009-3-31*/


static struct mtd_partition smdk_default_nand_part[] = {

[0] = {

.name = "bootloader",这是我修改的信息

.size = SZ_128K,

.offset = 0,

},

[1] = {

.name = "bootloader param",修改的

.offset = SZ_128K,

.size = SZ_64K,

},

[2] = {

.name = "KERNEL",内核分区

.offset = SZ_128K+SZ_64K,

.size = SZ_1M+(SZ_1M-(SZ_128K+SZ_64K)),

},

[3] = {

.name = "FILE SYSTEM",文件系统

.offset = SZ_1M * 2,

.size = SZ_1M * 4,

},

[4] = {

.name = "THE REST",剩余的空间

.offset = SZ_1M * 6,

.size = SZ_1M* 58,

},

/*[5] = {

.name = "S3C2410 flash partition 5",

.offset = SZ_1M * 14,

.size = SZ_1M * 10,

},

[6] = {

.name = "S3C2410 flash partition 6",

.offset = SZ_1M * 24,

.size = SZ_1M * 24,

},

[7] = {

.name = "S3C2410 flash partition 7",

.offset = SZ_1M * 48,

.size = SZ_16M,

}*/

};

修改/drivers/mtd/nand/s3c2410.c s3c2410_nand_init_chip函数中,禁止nandflash的差错检错。将chip->eccmode=NAND_ECC_NONE

编译linux2.6.18.6

1 修改makefile中的SUBDIR值,令SUBDIR=arm

修改CROSS-COMPILE=/usr/local/arm/3.3.2/bin/arm-linux-

/arch/arm/config/目录下的s3c2410_defconfig复制到根目录下,

cp arch/arm/configs/smdk2410_cdefconfig .config

执行make menuconfig时 将这个导入进去。。。再进行相关配置。。具体配置就不一一例举了,只要稍作修改即可!

接着make 错误就出现了。

错误1

scripts/mod/sumversion.c:384: 错误: ‘PATH_MAX’未声明(在此函数内第一次使用)

scripts/mod/sumversion.c:384: 错误: (即使在一个函数内多次出现,每个未声明的标识符在其

scripts/mod/sumversion.c:384: 错误: 所在的函数内也只报告一次。)

scripts/mod/sumversion.c:384: 警告: 未使用的变量‘filelist’

这是一个bug..修改措施,在scripts/mod/sumversion.c文件中添加#include

make ,这个问题解决。但下个问题又出来了


2问题2

/tmp/ccnVXlT1.s: Assembler messages:

/tmp/ccnVXlT1.s:5741: Error: .err encountered

make[1]: *** [mm/page_alloc.o] 错误 1

make: *** [mm] 错误 2

据网上说,又是一个bug

这个交叉编译器的问题。3.3.2会出现这个错误。换了3.4.1问题则能解决。

3.4.1下载地址


二 烧写内核

1 要使用tftp命令,首先要在电脑上安装tftp服务,具体怎么安装,在我另一个帖子里已经说明了:D

将编译好的zImage下载到板子上之后可以直接用go来执行,但是go启动内核的话会出现下面错误:

tc2410 # tftp 30008000 zImage

TFTP from server 192.168.1.10; our IP address is 192.168.1.110

Filename 'zImage'.

Load address: 0x30008000

Loading: #################################################################

#################################################################

#################################################################

########################

done

Bytes transferred = 1118644 (1111b4 hex)

tc2410 # go 30008000

## Starting application at 0x30008000 ...

Uncompressing Linux.............................................................

Error: unrecognized/unsupported machine ID (r1 = 0x33f4fcac).

Available machine support:

ID (hex) NAME

000000c1 SMDK2410

Please check your kernel config and/or bootloader.

go命令不能将Uboot的参数传递给内核,因此内核不能启动。

至于如何使go命令能够传递参数,我没有试验过,以后再弄弄

产生的原因是go启动内核的话,u-boot不会传machiine ID给内核,因为go只是执行普通的应用程序,不考虑到传递参数给内核的问题,没有必要在乎它。如果只是想看看go能不能启动内核的话,修改方法有两个:

a、修改u-bootcommon/cmd_boot.cdo_go()函数:

/*#if defined(CONFIG_I386)*/ <==注释掉

DECLARE_GLOBAL_DATA_PTR;

/*#endif*/ <==注释掉

....

#if !defined(CONFIG_NIOS)


/*******************add here*******************************/

if(argc==2)

rc = ((ulong (*)(int, char *[]))addr) (0, gd->bd->bi_arch_number);

else

/*********************add end *****************************/

rc = ((ulong (*)(int, char *[]))addr) (--argc, &argv[1]);


b、修改内核的arch/arm/kernel/head.S,直接将s3c2410的参数赋给内核

__INIT

.type stext, %function

ENTRY(stext)

/****************add here*****************/

mov r0, #0

mov r1, #0xc1

ldr r2, =0x30000100

/***************end add******************/

msr cpsr_c, #PSR_F_BIT | PSR_I_BIT | MODE_SVC @ ensure svc mode

@ and irqs disabled

2 bootm启动内核

这个方法u-boot可以将machine Id传给内核,正常启动,不过用u-bootmkimage工具(在u-boot1.2.0/tools/目录下)将前面生成的zImage加上一个信息头(有关如何添加头的命令和使用tftp在后面讲述),之后下载到板子上,启动控制台信息如下:


切换到uboot1.2.0目录下,将tools目录下的mkimage文件以及zImage拷贝到自己的工作目录下,输入下面命令用来给zImage添加信息头。先看看mkimage的用法吧

tangcong@ubuntu:~/working/add_imageheader$ ./mkimage

Usage: ./mkimage -l image mkiamge的用法

-l ==> list image header information

./mkimage [-x] -A arch -O os -T type -C comp -a addr -e ep -n name -d data_file[:data_file...] image

-A ==> set architecture to 'arch' 体系结构

-O ==> set operating system to 'os ' 操作系统

-T ==> set image type to 'type' 给什么类型加信息头

-C ==> set compression type 'comp' 压缩类型

-a ==> set load address to 'addr' (hex) 加载地址

-e ==> set entry point to 'ep' (hex) 入口点,信息头占64个字节因此是30008040

-n ==> set image name to 'name' 源名字

-d ==> use image data from 'datafile' 目标名字

-x ==> set XIP (execute in place)

tangcong@ubuntu:~/working/add_imageheader$ ./mkimage -A arm -O linux -T kernel -C none -a 30008000 -e 30008040 -n linux2.6.18.6 -d zImage uImage2.6.18.6

Image Name: linux2.6.18.6

Created: Sun Apr 19 17:53:35 2009

Image Type: ARM Linux Kernel Image (uncompressed)

Data Size: 1394320 Bytes = 1361.64 kB = 1.33 MB

Load Address: 0x30008000

Entry Point: 0x30008040


再重新输入tftp 0x30008000 uImage2.6.18.6

U-Boot 1.2.0 (Apr 19 2009 - 15:31:15)


U-Boot code: 33F80000 -> 33F9B9C8 BSS: -> 33FA0180

DRAM: 64 MB

Flash: 512 kB

NAND: 64 MB

In: serial

Out: serial

Err: serial

tc2410 # tftp 0x30008000 uImage2.6.18.6

TFTP from server 192.168.1.100; our IP address is 192.168.1.10

Filename 'uImage2.6.18.6'.

Load address: 0x30008000

Loading: T T T T ###############################################################

#################################################################

#################################################################

#################################################################

#############

done

Bytes transferred = 1394384 (1546d0 hex)

tc2410 # bootm 30008000

## Booting image at 30008000 ...

Image Name: linux2.6.18.6

Created: 2009-04-19 9:53:35 UTC

Image Type: ARM Linux Kernel Image (uncompressed)

Data Size: 1394320 Bytes = 1.3 MB

Load Address: 30008000

Entry Point: 30008040

Verifying Checksum ... OK

XIP Kernel Image ... OK

Starting kernel ...

Uncompressing Linux.............................................................

Linux version 2.6.18.6 (tangcong@ubuntu) (gcc version 3.4.1) #2 Wed Apr 8 12:319

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

Machine: SMDK2410

Memory policy: ECC disabled, Data cache writeback

CPU S3C2410A (id 0x32410002)

S3C2410: core 202.800 MHz, memory 101.400 MHz, peripheral 50.700 MHz

S3C24XX Clocks, (c) 2004 Simtec Electronics

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

CPU0: D VIVT write-back cache

CPU0: I cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets

CPU0: D cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets

Built 1 zonelists. Total pages: 16384

Kernel command line: noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0M

irq: clearing subpending status 00000002

PID hash table entries: 512 (order: 9, 2048 bytes)

timer tcon=00500000, tcnt a509, tcfg 00000200,00000000, usec 00001e4c

Console: colour dummy device 80x30

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: 61884KB available (2341K code, 535K data, 104K init)

Mount-cache hash table entries: 512

CPU: Testing write buffer coherency: ok

NET: Registered protocol family 16

S3C2410 Power Management, (c) 2004 Simtec Electronics

S3C2410: Initialising architecture

usbcore: registered new driver usbfs

usbcore: registered new driver hub

NET: Registered protocol family 2

IP route cache hash table entries: 512 (order: -1, 2048 bytes)

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

TCP bind hash table entries: 1024 (order: 0, 4096 bytes)

TCP: Hash tables configured (established 2048 bind 1024)

TCP reno registered

S3C2410 DMA Driver, (c) 2003-2004 Simtec Electronics

DMA channel 0 at c4800000, irq 33

DMA channel 1 at c4800040, irq 34

DMA channel 2 at c4800080, irq 35

DMA channel 3 at c48000c0, irq 36

NetWinder Floating Point Emulator V0.97 (double precision)

JFFS version 1.0, (C) 1999, 2000 Axis Communications AB

JFFS2 version 2.2. (NAND) (C) 2001-2006 Red Hat, Inc.

io scheduler noop registered

io scheduler anticipatory registered (default)

io scheduler deadline registered

io scheduler cfq registered

s3c2410-lcd s3c2410-lcd: no platform data for lcd, cannot attach

s3c2410-lcd: probe of s3c2410-lcd failed with error -22

lp: driver loaded but no devices found

S3C2410 RTC, (c) 2004 Simtec Electronics

ppdev: user-space parallel port driver

S3C2410 Watchdog Timer, (c) 2004 Simtec Electronics

Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enabled

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

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

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

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

loop: loaded (max 8 devices)

dm9000 Ethernet Driver

Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2

ide: Assuming 50MHz system bus speed for PIO modes; override with idebus=xx

S3C24XX NAND Driver, (c) 2004 Simtec Electronics

s3c2410-nand s3c2410-nand: Tacls=3, 29ns Twrph0=7 69ns, Twrph1=3 29ns

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

NAND_ECC_NONE selected by board driver. This is not recommended !!

Scanning device for bad blocks

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

0x00000000-0x00020000 : "bootloader"

0x00020000-0x00030000 : "bootloader param" 这是我在内核中设置的分区信息

0x00030000-0x00200000 : "KERNEL"

0x00200000-0x00600000 : "FILE SYSTEM"

0x00600000-0x04000000 : "THE REST"

usbmon: debugfs is not available

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

mice: PS/2 mouse device common for all mice

s3c2410-i2c s3c2410-i2c: slave address 0x10

s3c2410-i2c s3c2410-i2c: bus frequency set to 99 KHz

s3c2410-i2c s3c2410-i2c: i2c-0: S3C I2C adapter

TCP bic registered

NET: Registered protocol family 1

jffs_scan_flash(): Did not find even a single chunk of free space. This is BAD!

jffs_scan_falsh():Free size accounting screwed

jfffs_scan_flash():free_chunk_size1 == 0x400000, free_chunk_size2 == 0x0, fmc->0

JFFS: Failed to mount device mtdblock3.

No filesystem could mount root, tried: ext3 cramfs msdos vfat jffs romfs

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,3)

这句话表示没有挂载文件系统,现在离移植成功已经很近了,只要再挂载文件系统就OK


tftp命令只是将内核下载到0x30008000开始的内存地址中,断电以后内容将会消失,如果想实现自启动,可以使用下面的方法。

要实现自启动,必须将它烧写到nandflash中去,可以使用Uboot的nand_erase,nand_write命令来实现。每次开机后让u-boot帮你复制到sdram中,再使用bootm命令引导的话,可以按照这样操作:
tc2410=>tftp 0x30008000 uImage2.6.18.6
TFTP from server 192.168.1.100; our IP address is 192.168.1.10
Filename 'uImage2.6.18.6'.
Load address: 0x30008000
Loading: #################################################################
#################################################################
#################################################################
####################################################
done
Bytes transferred = 1263324 (1346dc hex)
tc2410=>nand erase 0x30000 0x200000 根据内核的分区信息填写
NAND erase: device 0 offset 196608, size 1900544 ... OK
tc2410=>nand write 0x30008000 0x30000 0x200000
NAND write: device 0 offset 196608, size 1900544 ... 1900544 bytes written: OK

tc2410=>setenv bootcmd nand read 0x30008000 0x30000 0x200000\;bootm 0x30008000
tc2410=>saveenv
Saving Environment to NAND...
Erasing Nand...Writing to Nand... done

tc2410=>reset

开发板重启以后,可以自动启动内核了。

2.6的内核挂在cramfs时,需要在/dev目录下添加console,null节点

具体操作:切换到root权限,以及转到dev目录

mknod -m 660 null c 1 3

mknod -m 660 console 5 1具体什么意思我也不懂。

先少进板子里看看吧。以后有机会了再自己制作文件系统。


2.6的内核挂在cramfs时,需要在/dev目录下添加console,null节点

具体操作:切换到root权限,以及转到dev目录

mknod -m 660 null c 1 3

mknod -m 660 console 5 1具体什么意思我也不懂。

先少进板子里看看吧。以后有机会了再自己制作文件系统。


mkcramfs的用法

Mkcramfs [-h][--eedition][-l file][-n name] Dirname,outputfile

./mkcramfs root root.img


uboot传递给内核的参数

/board/tc2410/tc2410.c


/* arch number of SMDK2410-Board */


gd->bd->bi_arch_number = MACH_TYPE_SMDK2410;




/* adress of boot parameters */


gd->bd->bi_boot_params = 0x30000100;


MACH_TYPE_SMDK2410include/asm-arm/mach_type.h中定义了


#define MACH_TYPE_SMDK2410 193


因此我们可知bi_arch_number 193


bi_boot_params= 0x30000100


这两个参数是传递到内核里去的,如果与内核里面的不相等,则linux不能启动。linux关于这两个参数的定义在arch/arm/tools/mach_types文件中定义了。


# machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number


smdk2410 ARCH_SMDK2410 SMDK2410 193




可以看出类型都是SMDK2410,且为193。参数相等,可以启动。






使用tftp下载过来是下在内存里面,断电以后就不存在了。因此如果要实现自启动,必须将它烧写到nandflash中去,可以使用Ubootnand_erasenand_write命令来实现。每次开机后让u-boot帮你复制到sdram中,再使用bootm命令引导的话,可以按照这样操作:

下载内核


tc2410=>tftp 0x30008000 uImage2.6.18.6


TFTP from server 192.168.1.100; our IP address is 192.168.1.10


Filename 'uImage2.6.18.6'.


Load address: 0x30008000


Loading: #################################################################


#################################################################


#################################################################


####################################################


done


Bytes transferred = 1263324 (1346dc hex)


tc2410=>nand erase 0x30000 0x200000 根据内核的分区信息填写


NAND erase: device 0 offset 196608, size 1900544 ... OK


tc2410=>nand write 0x30008000 0x30000 0x200000


NAND write: device 0 offset 196608, size 1900544 ... 1900544 bytes written: OK

如何设置Uboot自启动内核

我默认的下载地址是0x30008000,因此采用这条自启动命令


tc2410=>setenv bootcmd nand read 0x30008000 0x30000 0x200000\;bootm 0x30008000


tc2410=>saveenv


Saving Environment to NAND...


Erasing Nand...Writing to Nand... done




tc2410=>reset,可以加载内核了。

因为我编译的内核里面的boot option参数设置了加载的文件系统在/dev/mtdblock3里,因此我只要根据我的nandflash分区信息,将下载的文件系统烧到mtdblock3分区中,就能实现内核自动挂载文件系统了。


下载文件系统


tc2410 # tftp 0x31000000 root.img


TFTP from server 192.168.1.100; our IP address is 192.168.1.10


Filename 'root.img'.


Load address: 0x31000000


##########################


tc2410=>nand erase 0x200000 0x600000 nandflash分区的mtdblock3的范围,只给cramfs分了4M的空间,很明显对于以后拥有更多的应用程序的文件这是不够用的。不过还剩余了58M的空间够我来挂载大的文件系统拉


tc2410=>nand write 0x31000000 0x200000 0x600000

reset一下。搞定!下面是我的启动信息

U-Boot 1.2.0 (Apr 19 2009 - 15:31:15)



U-Boot code: 33F80000 -> 33F9B9C8 BSS: -> 33FA0180


DRAM: 64 MB


Flash: 512 kB


NAND: 64 MB


In: serial


Out: serial


Err: serial


Hit any key to stop autoboot: 0



NAND read: device 0 offset 196608, size 2097152 ...


2097152 bytes read: OK


## Booting image at 30008000 ...


Image Name: linux2.6.18.6


Created: 2009-04-19 9:53:35 UTC


Image Type: ARM Linux Kernel Image (uncompressed)


Data Size: 1394320 Bytes = 1.3 MB


Load Address: 30008000


Entry Point: 30008040


Verifying Checksum ... OK


XIP Kernel Image ... OK



Starting kernel ...



Uncompressing Linux.............................................................


Linux version 2.6.18.6 (tangcong@ubuntu) (gcc version 3.4.1) #2 Wed Apr 8 12:319


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


Machine: SMDK2410


Memory policy: ECC disabled, Data cache writeback


CPU S3C2410A (id 0x32410002)


S3C2410: core 202.800 MHz, memory 101.400 MHz, peripheral 50.700 MHz


S3C24XX Clocks, (c) 2004 Simtec Electronics


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


CPU0: D VIVT write-back cache


CPU0: I cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets


CPU0: D cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets


Built 1 zonelists. Total pages: 16384


Kernel command line: noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0M


irq: clearing subpending status 00000002


PID hash table entries: 512 (order: 9, 2048 bytes)


timer tcon=00500000, tcnt a509, tcfg 00000200,00000000, usec 00001e4c


Console: colour dummy device 80x30


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: 61884KB available (2341K code, 535K data, 104K init)


Mount-cache hash table entries: 512


CPU: Testing write buffer coherency: ok


NET: Registered protocol family 16


S3C2410 Power Management, (c) 2004 Simtec Electronics


S3C2410: Initialising architecture


usbcore: registered new driver usbfs


usbcore: registered new driver hub


NET: Registered protocol family 2


IP route cache hash table entries: 512 (order: -1, 2048 bytes)


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


TCP bind hash table entries: 1024 (order: 0, 4096 bytes)


TCP: Hash tables configured (established 2048 bind 1024)


TCP reno registered


S3C2410 DMA Driver, (c) 2003-2004 Simtec Electronics


DMA channel 0 at c4800000, irq 33


DMA channel 1 at c4800040, irq 34


DMA channel 2 at c4800080, irq 35


DMA channel 3 at c48000c0, irq 36


NetWinder Floating Point Emulator V0.97 (double precision)


JFFS version 1.0, (C) 1999, 2000 Axis Communications AB


JFFS2 version 2.2. (NAND) (C) 2001-2006 Red Hat, Inc.


io scheduler noop registered


io scheduler anticipatory registered (default)


io scheduler deadline registered


io scheduler cfq registered


s3c2410-lcd s3c2410-lcd: no platform data for lcd, cannot attach


s3c2410-lcd: probe of s3c2410-lcd failed with error -22


lp: driver loaded but no devices found


S3C2410 RTC, (c) 2004 Simtec Electronics


ppdev: user-space parallel port driver


S3C2410 Watchdog Timer, (c) 2004 Simtec Electronics


Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enabled


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


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


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


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


loop: loaded (max 8 devices)


dm9000 Ethernet Driver


Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2


ide: Assuming 50MHz system bus speed for PIO modes; override with idebus=xx


S3C24XX NAND Driver, (c) 2004 Simtec Electronics


s3c2410-nand s3c2410-nand: Tacls=3, 29ns Twrph0=7 69ns, Twrph1=3 29ns


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


NAND_ECC_NONE selected by board driver. This is not recommended !!


Scanning device for bad blocks


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


0x00000000-0x00020000 : "bootloader"


0x00020000-0x00030000 : "bootloader param"


0x00030000-0x00200000 : "KERNEL"


0x00200000-0x00600000 : "FILE SYSTEM" 我现在的mtdblock3只有4M的大小,难怪我烧root_china.cramfs进去时,不能启动,因为这个文件有20M了。。


0x00600000-0x04000000 : "THE REST"


usbmon: debugfs is not available


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


mice: PS/2 mouse device common for all mice


s3c2410-i2c s3c2410-i2c: slave address 0x10


s3c2410-i2c s3c2410-i2c: bus frequency set to 99 KHz


s3c2410-i2c s3c2410-i2c: i2c-0: S3C I2C adapter


TCP bic registered


NET: Registered protocol family 1


VFS: Mounted root (cramfs filesystem) readonly.


Freeing init memory: 104K


mount /etc as ramfs


re-create the /etc/mtab entries


console=/dev/console


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


Starting pid 751, console /dev/console: '/etc/init.d/rcS'


mount: Mounting none on /dev/pts failed: No such file or directory


mount: Mounting tmpfs on /dev/shm failed: No such file or directory


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


Waiting for enter to start '/bin/sh' (pid 754, terminal /dev/console)



Please press Enter to activate this console.


Starting pid 754, console /dev/console: '/bin/sh'




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

使用的以前得旧文件系统,下一步目标就是自己用busubox做一个文件系统了


Enter 'help' for a list of built-in commands.



# ls


bin etc linuette mnt qt tmp var


dev lib linuxrc proc sbin usr


#


问题:如何设置linux_cmd_line,bootargs是什么?

uboot是用来引导linux的,如果ubootbootargs设置了的话,uboot在引导Linux时会用bootargs替换掉linuxcommand string。这个command_string是不是就等价于linux_cmd_line??

进去系统以后,Mount 主机上的nfs不成功,好像是我主机ip的问题,掩码变成244,而不是我设置的255.255.255.0,更奇怪的是我设置以后它又自己变成244了,- -






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