linux-2.6.20的内核,cramfs文件系统,再启动到最后挂载文件系统时偶尔会出现错误:
Error -5 while decompressing!
c0327d8a(1928)->c3dfc000(4096)
Error -3 while decompressing!
注:1,ECC校验已经改成NAND_ECC_NONE
2,坏块已经处理
3,LCD缓冲分配内存较小时出现几率也较小,如320*240显示的时候基本不出问题
U-Boot 1.1.6 (Apr 13 2009 - 09:09:56)
U-Boot code: 23F00000 -> 23F2CADC BSS: -> 23F8BB28
RAM Configuration:
Bank #0: 20000000 64 MB
NAND: NAND device: Manufacturer ID: 0xec, Chip ID: 0x76 (Samsung NAND 64MiB 3,3V 8-bit)
NAND_ECC_NONE selected by board driver. This is not recommended !!
64 MiB
DataFlash:AT45DB161
Nb pages: 4096
Page Size: 528
Size= 2162688 bytes
Logical address: 0xC0000000
Area 0: C0000000 to C0003FFF (RO)
Area 1: C0004000 to C0007FFF
Area 2: C0008000 to C0037FFF (RO)
Area 3: C0038000 to C020FFFF
vga init 0x4::0x20
VGA INIT DONE
[LCD] Initializing LCD frambuffer at 00300000
lcd_init
[LCD] Drawing the logo...
Logo: width 160 height 96 colors 31 cmap 31
In: serial
Out: serial
Err: serial
DM9161A PHY Detected
No link
MAC: error during RMII initialization
### main_loop entered: bootdelay=3
### main_loop: bootcmd=" nand read 0x22200000 0x00000000 0x0017D620; bootm 0x22200000"
Hit any key to stop autoboot: 0
NAND read: device 0 offset 0x0, size 0x17d620
nand_read_ecc: eccmode 0
1562144 bytes read: OK
## Booting image at 22200000 ...
Image Name: Linux-2.6.20
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1562080 Bytes = 1.5 MB
Load Address: 20008000
Entry Point: 20008000
Verifying Checksum ... OK
OK
No initrd
## Transferring control to Linux (at address 20008000) ...
Starting kernel ...
Uncompressing Linux...................................................................................................... done, booting the kernel.
Linux version 2.6.20 (root@localhost.localdomain) (gcc version 3.4.5) #215 Fri Apr 17 20:33:13 CST 2009
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
Machine: Atmel AT91SAM9263-EK
Ignoring unrecognised tag 0x54410008
Memory policy: ECC disabled, Data cache writeback
Clocks: CPU 200 MHz, master 100 MHz, main 16.000 MHz
CPU0: D VIVT write-back cache
CPU0: I cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
CPU0: D cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
Built 1 zonelists. Total pages: 16256
Kernel command line: mem=64M console=ttyS0,115200 initrd=0x21100000,25165824 root=/dev/mtdblock2 rw init=linuxrc
AT91: 160 gpio irqs in 5 banks
PID hash table entries: 256 (order: 8, 1024 bytes)
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: 37016KB available (2876K code, 275K data, 120K init)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
NET: Registered protocol family 16
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: 1, 8192 bytes)
TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
TCP: Hash tables configured (established 2048 bind 1024)
TCP reno registered
checking if image is initramfs...it isn't (bad gzip magic numbers); looks like an initrd
Freeing initrd memory: 24576K
NetWinder Floating Point Emulator V0.97 (double precision)
NTFS driver 2.1.28 [Flags: R/W DEBUG].
JFFS2 version 2.2. (NAND) (C) 2001-2006 Red Hat, Inc.
io scheduler noop registered
io scheduler anticipatory registered (default)
atmel_lcdfb atmel_lcdfb.0: atmel_lcdfb_probe BEGIN
atmel_lcdfb atmel_lcdfb.0: atmel_lcdfb_check_var:
atmel_lcdfb atmel_lcdfb.0: resolution: 1024x768
atmel_lcdfb atmel_lcdfb.0: pixclk: 48902 KHz
atmel_lcdfb atmel_lcdfb.0: bpp: 16
atmel_lcdfb atmel_lcdfb.0: clk: 100000 KHz
atmel_lcdfb atmel_lcdfb.0: atmel_lcdfb_probe::map=00000000
atmel_lcdfb atmel_lcdfb.0: 1536KiB frame buffer at 21200000 (mapped at ffc00000)
atmel_lcdfb atmel_lcdfb.0: atmel_lcdfb_check_var:
atmel_lcdfb atmel_lcdfb.0: resolution: 1024x768
atmel_lcdfb atmel_lcdfb.0: pixclk: 48902 KHz
atmel_lcdfb atmel_lcdfb.0: bpp: 16
atmel_lcdfb atmel_lcdfb.0: clk: 100000 KHz
atmel_lcdfb atmel_lcdfb.0: atmel_lcdfb_set_par:
atmel_lcdfb atmel_lcdfb.0: * resolution: 1024x768 (1024x768 virtual)
atmel_lcdfb atmel_lcdfb.0: * update DMA engine
atmel_lcdfb atmel_lcdfb.0: * LCDCON2 = 80008682
atmel_lcdfb atmel_lcdfb.0: * LCDTIM1 = 00001401
atmel_lcdfb atmel_lcdfb.0: * LCDTIM2 = 08a00945
atmel_lcdfb atmel_lcdfb.0: * re-enable DMA engine
atmel_lcdfb atmel_lcdfb.0: * re-enable LCDC core
DONE
atmel_lcdfb atmel_lcdfb.0: * DONE
atmel_lcdfb atmel_lcdfb.0: fb0: Atmel LCDC at 0x00700000 (mapped at c485c000), irq 26
atmel_usart.0: ttyS0 at MMIO 0xfeffee00 (irq = 1) is a ATMEL_SERIAL
atmel_usart.1: ttyS1 at MMIO 0xfff8c000 (irq = 7) is a ATMEL_SERIAL
RAMDISK driver initialized: 16 RAM disks of 16384K size 1024 blocksize
loop: loaded (max 8 devices)
nbd: registered device at major 43
PPP generic driver version 2.4.2
macb macb: detected PHY at address 0 (ID 0181:b8a0)
eth0: Atmel MACB at 0xfffbc000 irq 21 (00:00:00:00:00:00)
block2mtd: version $Revision: 1.30 $
NAND device: Manufacturer ID: 0xec, Chip ID: 0x76 (Samsung NAND 64MiB 3,3V 8-bit)
Scanning device for bad blocks
Creating 2 MTD partitions on "NAND 64MiB 3,3V 8-bit":
0x00000000-0x00300000 : "Partition 1"
0x00300000-0x04000000 : "Partition 2"
atmel_spi atmel_spi.0: Atmel SPI Controller at 0xfffa4000 (irq 14)
at91_ohci at91_ohci: AT91 OHCI
at91_ohci at91_ohci: new USB bus registered, assigned bus number 1
at91_ohci at91_ohci: irq 29, io mem 0x00a00000
usb usb1: Product: AT91 OHCI
usb usb1: Manufacturer: Linux 2.6.20 ohci_hcd
usb usb1: SerialNumber: at91
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 hiddev
usbcore: registered new interface driver usbhid
drivers/usb/input/hid-core.c: v2.6:USB HID core driver
udc: at91_udc version 3 May 2006
mice: PS/2 mouse device common for all mice
ads7846 spi0.3: touchscreen, irq 31
input: ADS784x Touchscreen as /class/input/input0
i2c /dev entries driver
AT91 MMC: 4 wire bus mode not supported by this driver - using 1 wire
Advanced Linux Sound Architecture Driver Version 1.0.14rc1 (Tue Jan 09 09:56:17 2007 UTC).
AC97C regs = FFFA0000
AC97C irq = 18
at91-ac97: codec read timeout
<4>at91-ac97: codec read timeout
<4>at91-ac97: codec read timeout
<4>at91-ac97: codec read timeout
<6>ALSA device list:
#0: Atmel AC97 Controller at 0xfffa0000, irq 18
TCP cubic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
RAMDISK: Couldn't find valid RAM disk image starting at 0.
VFS: Mounted root (cramfs filesystem) readonly.
Freeing init memory: 120K
mount /etc as ramfs
linuxrc: line 12: cannot create /proc/sys/kernel/hotplug: nonexistent directory
mount: mounting none on /dev/pts failed
mount: mounting tmpfs on /dev/shm failed
init started: BusyBox v1.6.0 (2008-01-09 17:10:28 CST) multi-call binary
starting pid 772, tty '': '/etc/init.d/rcS'
ifconfig: SIOCSIFFLAGS: Cannot assign requested address
eth0: link down
Please press Enter to activate this console.【这个地方有时会出现Error -3 while decompressing! 错误】 [9;0][?33l[?25lWarning: Generating '/usr/etc/dict/words' dawg from word list.
Warning: could not register server
QDir::readDirEntries: Cannot read the directory: /usr/lib/ipkg/externinfo
这时正常启动时的信息,出错一般是在启动QTE时
貌似进入 busybox 后出错的嘛,是不是 busybox 移植的有问题呢 ...
应该不是busybox的问题,控制台可以用的。
启动QT图形界面时,cramfs解压产生数据错误
网上有人这么说:
Cramfs can not be extracted
since memory couldn't be allocated for the output buffer. Most probably
you got an application that leaks memory. To solve this you have to
observe the memory usage of the system.
现在还是不知道怎么下手
/root 文件系统放在内存里面嘛,cramfs 的数据解压到 /root 文件系统下,
不行么...
我的文件系统是放在nandflash里的,启动过程中读取并解压
应该是文件系统错误,
检查
/etc/init.d/rcS
和
/usr/lib/ipkg/externinfo
看看有什么问题没
更换一片nand flash试一下,我遇到过这个问题