当前位置: 技术问答>linux和unix
linux启动加载root.cramfs的问题
来源: 互联网 发布时间:2015-12-09
本文导语: 硬件平台: 原来的硬件平台是 Samsung 2410a 32M SDRAM * 2 64M nand flash samsung k9f1208 用bon part 0 192k 1m 分区后 烧入vivi kernel root.cramfs后 能正常启动并进入linux 后来我把 64M 的k9f1208 换成了 128M 的 k9k1g...
硬件平台:
原来的硬件平台是
Samsung 2410a
32M SDRAM * 2
64M nand flash samsung k9f1208
用bon part 0 192k 1m 分区后
烧入vivi kernel root.cramfs后 能正常启动并进入linux
后来我把 64M 的k9f1208 换成了 128M 的 k9k1g08
也用bon part 0 192k 1m 分区后
直接烧入64M用的 vivi ,结果能 vivi 能顺利执行并加载linux
再烧入 kernel 和 root.cramfs后 能正常启动并进入linux
但在加载 root.cramfs 时 却出错了
我的想法是 root.cramfs 烧入的地址都是一样的 都是1M的地方 但为什么不能加载呢?
我把打印信息附后 请大家帮忙看看怎么解决
--------------------------------------------------------------------------------------------------------------
VIVI version 0.1.4 (root@localhost.localdomain) (gcc version 2.95.2 20000516 (r6MMU table base address = 0x33DFC000
allocate S3C2410 NAND MTD device structure.
NAND device: Manufacture ID: 0xec, Chip ID: 0x79 (Samsung K9D1G08V0M)
Could not found stored vivi parameters. Use default vivi parameters.
Press Return to start the LINUX now, any other key for vivi300
Copy linux kernel from 0x00030000 to 0x30008000, size = 0x000c0000 ... done
zImage magic = 0x016f2818
Setup linux parameters at 0x30000100
linux command line is: "noinitrd root=/dev/mtdblock/1 init=/linuxrc console=tty"MACH_TYPE = 193
NOW, Booting Linux......
Uncompressing Linux...................................................... done,.Linux version 2.4.18-rmk7-pxa1 (root@localhost.localdomain) (gcc version 2.95.25CPU: ARM/CIRRUS Arm920Tsid(wb) revision 0
Machine: Samsung-SMDK2410
On node 0 totalpages: 16384
zone(0): 16384 pages.
zone(1): 0 pages.
zone(2): 0 pages.
DEBUG: timer count 15626
Console: colour dummy device 80x30
Calibrating delay loop... 99.94 BogoMIPS
Memory: 64MB = 64MB total
Memory: 62620KB available (1380K code, 328K data, 136K 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
CPU clock = 200.000 Mhz, HCLK = 100.000 Mhz, PCLK = 50.000 Mhz
Starting kswapd
devfs: v1.10 (20020120) Richard Gooch (rgooch@atnf.csiro.au)
devfs: boot_options: 0x1
JFFS version 1.0, (C) 1999, 2000 Axis Communications AB
JFFS2 version 2.1. (C) 2001 Red Hat, Inc., designed by Axis Communications AB.
GPIO L3 bus interface for S3C2410, installed
ttyS%d0 at I/O 0x50000000 (irq = 52) is a S3C2410
ttyS%d1 at I/O 0x50004000 (irq = 55) is a S3C2410
ttyS%d2 at I/O 0x50008000 (irq = 5 is a S3C2410
test lcd start 0719
------------------1
------------------2
SAMSUNG LTV350QV 35IN LCD TEST.
------------------3
--------------------6
------------------4
--------------------6
Console: switching to colour frame buffer device 40x30
------------------5
Installed S3C2410 frame buffer
pty: 256 Unix98 ptys configured
BackLight was installed.
S3C2410 Real Time Clock Driver v0.2
S3C2410 ADC core was installed.
is_enables = 1
s3c2410 TSP was installed.
block: 128 slots per queue, batch=32
eth0: cs8900 rev K(3.3 Volts) found at 0xd0000300
cs89x0 media RJ-45, IRQ 37
NAND device: Manufacture ID: 0xec, Chip ID: 0x79 (Samsung K9D1G08V0M)
Creating 3 MTD partitions on "Samsung K9D1G08V0M":
0x00000000-0x00100000 : "kernel"
0x00100000-0x03d00000 : "root"
0x03d00000-0x03e00000 : "S3C2410 part3"
bon:cannot find partition table
bon:cannot find partition table
bon:cannot find partition table
Mtd Block 0.
Mtd Block 1.
Mtd Block 2.
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
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 (c) 1998-1999 Rebel.com
// 从这里开始出错 前面的信息跟64M的完全一样
cramfs: wrong magic
FAT: bogus logical sector size 65535
原来的硬件平台是
Samsung 2410a
32M SDRAM * 2
64M nand flash samsung k9f1208
用bon part 0 192k 1m 分区后
烧入vivi kernel root.cramfs后 能正常启动并进入linux
后来我把 64M 的k9f1208 换成了 128M 的 k9k1g08
也用bon part 0 192k 1m 分区后
直接烧入64M用的 vivi ,结果能 vivi 能顺利执行并加载linux
再烧入 kernel 和 root.cramfs后 能正常启动并进入linux
但在加载 root.cramfs 时 却出错了
我的想法是 root.cramfs 烧入的地址都是一样的 都是1M的地方 但为什么不能加载呢?
我把打印信息附后 请大家帮忙看看怎么解决
--------------------------------------------------------------------------------------------------------------
VIVI version 0.1.4 (root@localhost.localdomain) (gcc version 2.95.2 20000516 (r6MMU table base address = 0x33DFC000
allocate S3C2410 NAND MTD device structure.
NAND device: Manufacture ID: 0xec, Chip ID: 0x79 (Samsung K9D1G08V0M)
Could not found stored vivi parameters. Use default vivi parameters.
Press Return to start the LINUX now, any other key for vivi300
Copy linux kernel from 0x00030000 to 0x30008000, size = 0x000c0000 ... done
zImage magic = 0x016f2818
Setup linux parameters at 0x30000100
linux command line is: "noinitrd root=/dev/mtdblock/1 init=/linuxrc console=tty"MACH_TYPE = 193
NOW, Booting Linux......
Uncompressing Linux...................................................... done,.Linux version 2.4.18-rmk7-pxa1 (root@localhost.localdomain) (gcc version 2.95.25CPU: ARM/CIRRUS Arm920Tsid(wb) revision 0
Machine: Samsung-SMDK2410
On node 0 totalpages: 16384
zone(0): 16384 pages.
zone(1): 0 pages.
zone(2): 0 pages.
DEBUG: timer count 15626
Console: colour dummy device 80x30
Calibrating delay loop... 99.94 BogoMIPS
Memory: 64MB = 64MB total
Memory: 62620KB available (1380K code, 328K data, 136K 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
CPU clock = 200.000 Mhz, HCLK = 100.000 Mhz, PCLK = 50.000 Mhz
Starting kswapd
devfs: v1.10 (20020120) Richard Gooch (rgooch@atnf.csiro.au)
devfs: boot_options: 0x1
JFFS version 1.0, (C) 1999, 2000 Axis Communications AB
JFFS2 version 2.1. (C) 2001 Red Hat, Inc., designed by Axis Communications AB.
GPIO L3 bus interface for S3C2410, installed
ttyS%d0 at I/O 0x50000000 (irq = 52) is a S3C2410
ttyS%d1 at I/O 0x50004000 (irq = 55) is a S3C2410
ttyS%d2 at I/O 0x50008000 (irq = 5 is a S3C2410
test lcd start 0719
------------------1
------------------2
SAMSUNG LTV350QV 35IN LCD TEST.
------------------3
--------------------6
------------------4
--------------------6
Console: switching to colour frame buffer device 40x30
------------------5
Installed S3C2410 frame buffer
pty: 256 Unix98 ptys configured
BackLight was installed.
S3C2410 Real Time Clock Driver v0.2
S3C2410 ADC core was installed.
is_enables = 1
s3c2410 TSP was installed.
block: 128 slots per queue, batch=32
eth0: cs8900 rev K(3.3 Volts) found at 0xd0000300
cs89x0 media RJ-45, IRQ 37
NAND device: Manufacture ID: 0xec, Chip ID: 0x79 (Samsung K9D1G08V0M)
Creating 3 MTD partitions on "Samsung K9D1G08V0M":
0x00000000-0x00100000 : "kernel"
0x00100000-0x03d00000 : "root"
0x03d00000-0x03e00000 : "S3C2410 part3"
bon:cannot find partition table
bon:cannot find partition table
bon:cannot find partition table
Mtd Block 0.
Mtd Block 1.
Mtd Block 2.
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
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 (c) 1998-1999 Rebel.com
// 从这里开始出错 前面的信息跟64M的完全一样
cramfs: wrong magic
FAT: bogus logical sector size 65535
|
可能是因为kernel的地址要载入到最高的位置