~悟`~念~ 发表于 2012-5-1 12:49:41

挂载yaffs2文件系统的问题

本帖最后由 ~悟`~念~ 于 2012-5-1 15:09 编辑

我在挂载yaffs2文件系统的时候出错?搞了一天,还是不行!所以上论坛请教一下大神!!!!!
Enter your selection: 8
Start Linux ...
Copy linux kernel from 0x00200000 to 0x30008000, size = 0x00300000 ... Copy Kern
el to SDRAM done,NOW, Booting Linux......
Uncompressing Linux.............................................................
............................................................. done, booting the kernel.
Linux version 2.6.30.4-EmbedSky (root@localhost.localdomain) (gcc version 4.3.3
(Sourcery G++ Lite 2009q1-176) ) #9 Tue May 1 11:14:51 CST 2012
CPU: ARM920T revision 0 (ARMv4T), cr=c0007177
CPU: VIVT data cache, VIVT instruction cache
Machine: SMDK2440
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 400.000 MHz, memory 100.000 MHz, peripheral 50.000 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
NR_IRQS:85
irq: clearing pending ext status 00080000
irq: clearing subpending status 00000003
irq: clearing subpending status 00000002
PID hash table entries: 256 (order: 8, 1024 bytes)
Console: colour dummy device 80x30
console 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: 60816KB available (3472K code, 368K data, 104K init, 0K highmem)
SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Calibrating delay loop... 199.47 BogoMIPS (lpj=498688)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
net_namespace: 936 bytes
NET: Registered protocol family 16
S3C Power Management, Copyright 2004 Simtec Electronics
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 <bio-0> at 0
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
s3c2440-i2c s3c2440-i2c: slave address 0x10
s3c2440-i2c s3c2440-i2c: bus frequency set to 97 KHz
s3c2440-i2c s3c2440-i2c: i2c-0: S3C I2C adapter
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
NetWinder Floating Point Emulator V0.97 (extended precision)
JFFS2 version 2.2. (NAND) (SUMMARY)漏 2001-2006 Red Hat, Inc.
ROMFS MTD (C) 2007 Red Hat, Inc.
msgmni has been set to 118
io scheduler noop registered (default)
Console: switching to colour frame buffer device 30x40
fb0: s3c2410fb frame buffer device
lp: driver loaded but no devices found
ppdev: user-space parallel port driver
s3c2440-uart.0: tq2440_serial0 at MMIO 0x50000000 (irq = 70) is a S3C2440
s3c2440-uart.1: tq2440_serial1 at MMIO 0x50004000 (irq = 73) is a S3C2440
s3c2440-uart.2: tq2440_serial2 at MMIO 0x50008000 (irq = 76) is a S3C2440
loop: module loaded
Uniform Multi-Platform E-IDE driver
ide-gd driver 1.18
ide-cd driver 5.00
Driver 'sd' needs updating - please use bus_type methods
dm9000 Ethernet Driver, V1.31
S3C24XX NAND Driver, (c) 2004 Simtec Electronics
s3c2440-nand s3c2440-nand: Tacls=2, 20ns Twrph0=3 30ns, Twrph1=2 20ns
NAND device: Manufacturer ID: 0xec, Chip ID: 0xda (Samsung NAND 256MiB 3,3V 8-bi
t)
Scanning device for bad blocks
Bad eraseblock 313 at 0x000002720000
Creating 3 MTD partitions on "NAND 256MiB 3,3V 8-bit":
0x000000000000-0x000000040000 : "EmbedSky_Board_uboot"
0x000000200000-0x000000500000 : "EmbedSky_Board_kernal"
0x000000500000-0x000010000000 : "EmbedSky_Board_yaffs2"
usbmon: debugfs is not available
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
usbcore: registered new interface driver libusual
usbcore: registered new interface driver usbserial
USB Serial support registered for generic
usbcore: registered new interface driver usbserial_generic
usbserial: USB Serial Driver core
USB Serial support registered for FTDI USB Serial Device
usbcore: registered new interface driver ftdi_sio
ftdi_sio: v1.4.3:USB FTDI Serial Converters Driver
USB Serial support registered for pl2303
usbcore: registered new interface driver pl2303
pl2303: Prolific PL2303 USB to serial adaptor driver
mice: PS/2 mouse device common for all mice
S3C24XX RTC, (c) 2004,2006 Simtec Electronics
S3C2410 Watchdog Timer, (c) 2004 Simtec Electronics
s3c2410-wdt s3c2410-wdt: watchdog inactive, reset disabled, irq enabled
Advanced Linux Sound Architecture Driver Version 1.0.20.
ALSA device list:
No soundcards found.
TCP cubic registered
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
end_request: I/O error, dev mtdblock2, sector 256
isofs_fill_super: bread failed, dev=mtdblock2, iso_blknum=64, block=128
List of all partitions:
1f00             256 mtdblock0 (driver?)
1f01            3072 mtdblock1 (driver?)
1f02          257024 mtdblock2 (driver?)
No filesystem could mount root, tried:ext3 ext2 cramfs vfat msdos iso9660 romf
s
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,2)
[<c0028ab4>] (unwind_backtrace+0x0/0xe8) from [<c02c29d0>] (panic+0x44/0x124)
[<c02c29d0>] (panic+0x44/0x124) from [<c0008f38>] (mount_block_root+0x1c8/0x224)

[<c0008f38>] (mount_block_root+0x1c8/0x224) from [<c0009170>] (prepare_namespace
+0xf0/0x184)
[<c0009170>] (prepare_namespace+0xf0/0x184) from [<c00085ac>] (kernel_init+0xc0/
0xec)
[<c00085ac>] (kernel_init+0xc0/0xec) from [<c0045fe8>] (do_exit+0x0/0x5fc)
[<c0045fe8>] (do_exit+0x0/0x5fc) from [<00000000>] (0x0)
后来我换用了天嵌自带的内核镜像,用自己的yaffs2文件系统挂载能挂载上,但是会出现如下的问题:
yaffs: dev is 32505858 name is "mtdblock2"
yaffs: passed flags ""
yaffs: Attempting MTD mount on 31.2, "mtdblock2"
yaffs: auto selecting yaffs2
block 274 is bad
yaffs_read_super: isCheckpointed 0
VFS: Mounted root (yaffs filesystem) on device 31:2.
Freeing init memory: 240K
Failed to execute /linuxrc. Attempting defaults...
Kernel panic - not syncing: No init found.Try passing init= option to kernel.
Backtrace:
[<c0048fd4>] (dump_backtrace+0x0/0x10c) from [<c0349710>] (dump_stack+0x18/0x1c)

r7:00000000 r6:c04b7d40 r5:c04b7700 r4:c0480248
[<c03496f8>] (dump_stack+0x0/0x1c) from [<c0349760>] (panic+0x4c/0x124)
[<c0349714>] (panic+0x0/0x124) from [<c00444f0>] (init_post+0xec/0x178)
r3:00000000 r2:c388be00 r1:c04ee000 r0:c0411a8c
[<c0044404>] (init_post+0x0/0x178) from [<c000847c>] (kernel_init+0xcc/0xf4)
r5:c001ec40 r4:c001f05c
[<c00083b0>] (kernel_init+0x0/0xf4) from [<c0059f30>] (do_exit+0x0/0x620)
r7:00000000 r6:00000000 r5:00000000 r4:00000000

我在网上也看了很多关于这些问题,但是怎么改还是不行,其中论坛里有个帖子也有这个问题的解释,
http://bbs.embedsky.net/forum.php?mod=viewthread&tid=6422
但是我做了还不行,我有两个疑问:1.我的内核编译是不是有问题啊?2.我的文件系统那里配置错了啊?我编译完内核时,我自己的内核不会有重启的现象?
求教???????







guoke25 发表于 2012-5-1 20:35:37

从你打印的信息来看,你的内核说没有发现文件系统,说明你的yaffs应该没有移植成功。参考手册把yaffs的移植做一下。后面No init found的情况在漏做手册中创建/dev/console和/dev/null两个设备文件时会出现,检查一下有没有做这个步骤?

guoke25 发表于 2012-5-1 20:43:28

不好意思搞错了,如果是没做那两个文件不会引起No init found,只会Warning: unable to open an initial console.

guoke25 发表于 2012-5-1 20:58:31

建议你把你自己做的文件系统打包以后发上来大家帮你看一下

wuweidong 发表于 2012-5-1 21:18:39

guoke25 发表于 2012-5-2 01:50:47

wuweidong 发表于 2012-5-1 21:18 static/image/common/back.gif
No filesystem could mount root,
uboot的bootargs没设置对或者yaffs没有烧写到对应的地方

我觉得如果是写错地方的话用天嵌的烧写程序无论是哪个命令来烧写都会覆盖内核,内核好像都无法启动?如果用错了文件系统的制作程序应该会出现大量的逻辑坏块,这里却看不到。因此楼主很可能在烧写天嵌内核的时候把整个nandflash格式化了,然后把天嵌的内核烧入了nandflash却没有进一步的烧写文件系统。结果校验的时候由于文件系统全部都是FF,所以不会出现大量的坏块,但是入口却没有任何程序。
个人认为楼主应该做一下以下检查:
1、注意制作yaffs文件系统和移植yaffs文件系统驱动是两回事,检查烧入天嵌内核以后是否有烧入文件系统?
2、如果已经移植成功yaffs驱动的话,无论文件系统中的数据是否正确,内核都会启动yaffs来加载文件系统。而且无论使用什么启动参数都应该会显示yaffs Nov 11 2011 20:57:33 Installing. 之类的信息。但是这里却显示No filesystem could mount root,而且没有yaffs Nov 11 2011 20:57:33 Installing. 之类的信息,说明楼主应该根本没移植成功yaffs文件系统驱动。具体为什么没有移植成功只能让楼主自己描述一下移植的过程了。

guoke25 发表于 2012-5-2 02:00:16

guoke25 发表于 2012-5-2 01:50 static/image/common/back.gif
我觉得如果是写错地方的话用天嵌的烧写程序无论是哪个命令来烧写都会覆盖内核,内核好像都无法启动?如果 ...

“如果已经移植成功yaffs驱动的话,无论文件系统中的数据是否正确,内核都会启动yaffs来加载文件系统”不好意思这里说错了,应该说在启动参数设置为yaffs加载的时候,无论文件系统中的数据是否正确,内核都会启动yaffs来加载文件系统。
不过就算启动参数设置为nfs,如果yaffs驱动移植成功的话都会显示yaffs Nov 11 2011 20:57:33 Installing. 之类的信息的,个人认为楼主在移植yaffs文件系统驱动的时候应该没移植成功。

~悟`~念~ 发表于 2012-5-2 13:53:20

wuweidong 发表于 2012-5-1 21:18 static/image/common/back.gif
No filesystem could mount root,
uboot的bootargs没设置对或者yaffs没有烧写到对应的地方

按着天嵌的手册yaffs2应该烧写在0x000000500000-0x000010000000 上吧!地址我是设置对了,至于uboot的bootargs的设置,好像我没有注意着个选项,我再好好看看,谢谢!

~悟`~念~ 发表于 2012-5-2 14:18:23

本帖最后由 ~悟`~念~ 于 2012-5-2 21:35 编辑

guoke25 发表于 2012-5-2 02:00 http://bbs.embedsky.net/static/image/common/back.gif
“如果已经移植成功yaffs驱动的话,无论文件系统中的数据是否正确,内核都会启动yaffs来加载文件系统”不 ...

首先先感谢楼主的解答,昨天晚上停电了,今天上了一早上的C#课。所以没有及时回复:
我的想法:
      我用我的内核编译zImage.bin 和我自己制作的yaffs2文件系统挂载的时候会出现我上面图中的第一个错误,也就是没有挂载上yaffs2文件,用天嵌公司的内核镜像和我自己制作的yaffs2文件系统挂载的时候,好似能挂载上了,所以说我的yaffs2文件系统应该是没有大错的,但出现我上面图中的第二个错误。第二个错误:Failed to execute /linuxrc.Attempting defaults...
我上网翻了很多资料也按着做了,还是这个错误。
由于上面的对比 我认为是我的yaffs2系统在内核上添加的驱动程序不够,所以我又再三检查了一下,后来重新编译,我这除了手册上的红字部分改了之外,看着黑字也完全改了一遍,再次烧录后只出现第二个错误(自己的内核文件zImage.bin和自己的yaffs2文件系统),现在依旧在实验当中。。。。。。
因为论坛上的楼主们都说会有开发板重启的现象,而我的为什么没有啊?

guoke25 发表于 2012-5-2 15:02:57

~悟`~念~ 发表于 2012-5-2 14:18 static/image/common/back.gif
首先先感谢楼主的解答,昨天网上停电了,今天上了一早上的C#课。所以没有及时回复:
我的想法:
   ...

这个时候你可以尝试烧入你自己做的内核和天嵌的文件系统,看看能否成功进入控制台。如果能进入控制台的话说明你的内核应该成功移植了yaffs文件系统驱动了,这个时候再慢慢去找你自己做的文件系统中有什么问题。如果用的是天嵌的内核并成功进入控制台的话,由于天嵌的内核中已经移植了看门狗驱动,很多人自己做的文件系统中没设置喂狗程序就会自动重启了。

~悟`~念~ 发表于 2012-5-2 19:59:50

guoke25 发表于 2012-5-2 15:02 static/image/common/back.gif
这个时候你可以尝试烧入你自己做的内核和天嵌的文件系统,看看能否成功进入控制台。如果能进入控制台的话 ...

我检查了n遍还是那个问题,后来我把原先的都备份了,自己又重新移植了一遍yaffs2文件系统,后来一次性成功编译了,呵呵!
如图所示,但是我看到我的yaffs2就打印出两行,这个是否会影响其它项啊?

~悟`~念~ 发表于 2012-5-2 20:01:51

wuweidong 发表于 2012-5-1 21:18 static/image/common/back.gif
No filesystem could mount root,
uboot的bootargs没设置对或者yaffs没有烧写到对应的地方

谢谢,重新移植了一遍,已经移植成功了!

wuweidong 发表于 2012-5-3 06:28:26

zhongfushun 发表于 2012-6-25 22:21:23

YEAH,我遇到的问题跟你的差不多,但我用TQ的内核配自已的YAFFS2正常可以出现控制台。郁闷中。。。。

woada 发表于 2012-6-27 23:54:25

本帖最后由 woada 于 2012-6-27 23:55 编辑

我的, 进不了控制台,郁闷啊。
tq2440,3.5屏,linux-2.6.30.4_20100531
用的是天嵌的工具链,linux代码是网上下的,参考的是手册一步步做的,一开始也出mount 错误,后来直接用天嵌代码中的yaffs2拷贝过来,但又出来“can't open /dev/tq2440_serial0: No such file or directory
”一直打印这个,无法进入控制台,高手帮忙分析下啊,先谢谢啦!
8
Start Linux ...
Copy linux kernel from 0x00200000 to 0x30008000, size = 0x00300000 ... Copy Kernel to SDRAM done,NOW, Booting Linux......
Uncompressing Linux....................................................................................................................... done, booting the kernel.
Linux version 2.6.30.4-EmbedSky (root@root-vm) (gcc version 4.3.3 (Sourcery G++ Lite 2009q1-176) ) #4 Wed Jun 27 23:29:36 CST 2012
CPU: ARM920T revision 0 (ARMv4T), cr=c0007177
CPU: VIVT data cache, VIVT instruction cache
Machine: SMDK2440
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 400.000 MHz, memory 100.000 MHz, peripheral 50.000 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
NR_IRQS:85
irq: clearing pending ext status 00080000
irq: clearing subpending status 00000003
irq: clearing subpending status 00000002
PID hash table entries: 256 (order: 8, 1024 bytes)
Console: colour dummy device 80x30
console 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: 60956KB available (3332K code, 372K data, 108K init, 0K highmem)
SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Calibrating delay loop... 199.47 BogoMIPS (lpj=498688)
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 <bio-0> at 0
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
s3c2440-i2c s3c2440-i2c: slave address 0x10
s3c2440-i2c s3c2440-i2c: bus frequency set to 97 KHz
s3c2440-i2c s3c2440-i2c: i2c-0: S3C I2C adapter
cfg80211: Calling CRDA to update world regulatory domain
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
yaffs Jun 27 2012 23:29:25 Installing.
msgmni has been set to 119
alg: No test for stdrng (krng)
io scheduler noop registered (default)
Console: switching to colour frame buffer device 30x20
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
loop: module loaded
Driver 'sd' needs updating - please use bus_type methods
dm9000 Ethernet Driver, V1.31
S3C24XX NAND Driver, (c) 2004 Simtec Electronics
s3c2440-nand s3c2440-nand: Tacls=2, 20ns Twrph0=3 30ns, Twrph1=2 20ns
NAND device: Manufacturer ID: 0xec, Chip ID: 0xda (Samsung NAND 256MiB 3,3V 8-bit)
Scanning device for bad blocks
Bad eraseblock 691 at 0x000005660000
Bad eraseblock 1527 at 0x00000bee0000
Creating 3 MTD partitions on "NAND 256MiB 3,3V 8-bit":
0x000000000000-0x000000040000 : "EmbedSky_Board_uboot"
0x000000200000-0x000000500000 : "EmbedSky_Board_kernel"
0x000000500000-0x000010000000 : "EmbedSky_Board_yaffs2"
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: New USB device found, idVendor=1d6b, idProduct=0001
usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb1: Product: S3C24XX OHCI
usb usb1: Manufacturer: Linux 2.6.30.4-EmbedSky ohci_hcd
usb usb1: SerialNumber: s3c24xx
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.
usbcore: registered new interface driver usbserial
usbserial: USB Serial Driver core
USB Serial support registered for pl2303
usbcore: registered new interface driver pl2303
pl2303: Prolific PL2303 USB to serial adaptor driver
s3c2410_udc: debugfs dir creation failed -19
mice: PS/2 mouse device common for all mice
S3C24XX RTC, (c) 2004,2006 Simtec Electronics
i2c /dev entries driver
Linux video capture interface: v2.00
zc0301: V4L2 driver for ZC0301 Image Processor and Control Chip v1:1.10
usbcore: registered new interface driver zc0301
gspca: main v2.5.0 registered
usbcore: registered new interface driver uvcvideo
USB Video Class driver (v0.1.0)
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
Advanced Linux Sound Architecture Driver Version 1.0.20.
No device for DAI UDA134X
No device for DAI s3c24xx-i2s
ALSA device list:
No soundcards found.
pktgen v2.70: Packet Generator for packet performance testing.
TCP cubic registered
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
lib80211: common routines for IEEE802.11 drivers
drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
yaffs: dev is 32505858 name is "mtdblock2"
yaffs: passed flags ""
yaffs: Attempting MTD mount on 31.2, "mtdblock2"
yaffs: auto selecting yaffs2
block 652 is bad
block 1488 is bad
yaffs_read_super: isCheckpointed 0
VFS: Mounted root (yaffs filesystem) on device 31:2.
Freeing init memory: 108K
can't open /dev/tq2440_serial0: No such file or directory
can't open /dev/tq2440_serial0: No such file or directory
页: [1] 2
查看完整版本: 挂载yaffs2文件系统的问题