NAND write: device 0 offset 0x300000, size 0x2800000 Input block length is not page aligned Data did not fit into device, due to bad blocks 41943040 bytes written: ERROR 就是因为上面的2800000没有对齐。yaffs文件系统的block大小为512+16,因此需要对齐。直接使用$(filesize)代替2800000就可以解决这个问题。 这个问题解决了,第二个问题也就解决了。 yaffs: dev is 32505858 name is "mtdblock2" yaffs: passed flags "" yaffs: Attempting MTD mount on 31.2, "mtdblock2" VFS: Mounted root (yaffs filesystem). Freeing init memory: 128K Warning: unable to open an initial console. Kernel panic - not syncing: No init found. Try passing init= option to kernel. 下面是我昨晚弄好Linux后的完整的启动界面。 U-Boot 1.1.6 (Feb 18 2009 - 21:58:05)
DRAM: 64 MB Flash: 512 kB NAND: 64 MiB In: serial Out: serial Err: serial Hit any key to stop autoboot: 0
NAND read: device 0 offset 0x100000, size 0x200000 2097152 bytes read: OK ## Booting image at 30007fc0 ... Image Name: Linux-2.6.22.6 Created: 2009-02-26 12:13:39 UTC Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 1530276 Bytes = 1.5 MB Load Address: 30008000 Entry Point: 30008000 Verifying Checksum ... OK OK
Starting kernel ...
Uncompressing Linux.................................................................................................... done, booting the kern. Linux version 2.6.22.6 (root@localhost.localdomain) (gcc version 3.4.5) #5 Thu Feb 26 20:12:32 CST 2009 CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=00007177 Machine: SMDK2410 Memory policy: ECC disabled, Data cache writeback CPU S3C2410A (id 0x32410002) S3C2410: core 200.000 MHz, memory 100.000 MHz, peripheral 50.000 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: 16256 Kernel command line: noinitrd console=ttySAC0 root=/dev/mtdblock2 rootfstype=yaffs irq: clearing pending ext status 00000200 irq: clearing subpending status 00000002 PID hash table entries: 256 (order: 8, 1024 bytes) timer tcon=00500000, tcnt a2c1, tcfg 00000200,00000000, usec 00001eb8 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: 61616KB available (2824K code, 307K data, 128K 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 S3C24XX DMA Driver, (c) 2003-2004,2006 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 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 reno registered NetWinder Floating Point Emulator V0.97 (double precision) JFFS2 version 2.2. (NAND) ?? 2001-2006 Red Hat, Inc. yaffs Feb 18 2009 22:32:31 Installing. 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 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: module loaded 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, 30ns Twrph0=7 70ns, Twrph1=3 30ns NAND device: Manufacturer ID: 0xec, Chip ID: 0x76 (Samsung NAND 64MiB 3,3V 8-bit) Scanning device for bad blocks Creating 4 MTD partitions on "NAND 64MiB 3,3V 8-bit": 0x00000000-0x00100000 : "U-Boot" 0x00100000-0x00300000 : "Kernel" 0x00300000-0x02b00000 : "yaffs" 0x02b00000-0x04000000 : "jffs2" 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 S3C24XX RTC, (c) 2004,2006 Simtec Electronics s3c2410-i2c s3c2410-i2c: slave address 0x10 s3c2410-i2c s3c2410-i2c: bus frequency set to 390 KHz s3c2410-i2c s3c2410-i2c: i2c-0: S3C I2C adapter TCP cubic registered NET: Registered protocol family 1 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" VFS: Mounted root (yaffs filesystem). Freeing init memory: 128K init started: BusyBox v1.7.0 (2009-02-24 21:27:36 CST) starting pid 732, tty '': '/etc/init.d/rcS' ifconfig: SIOCSIFADDR: No such device mount: can't find ??–a in /etc/fstab
Please press Enter to activate this console.
starting pid 737, tty '/dev/ttySAC0': '/bin/sh' # ls bin home lost+found root tmp dev lib mnt sbin usr etc linuxrc proc sys var #
# ls pcy.c # 其中,pcy.c是我在usr目录下建立的一个简单的C文件。下面是我截取的几张图片。