S3C6410嵌入式应用平台构建(六)——linux-3.14.4移植到OK6410-(Yaffs2文件制作)

S3C6410嵌入式应用平台构建(六)——linux-3.14.4移植到OK6410-(Yaffs2文件制作)

本文主要讲怎用利用yaffs2工具和busybox制作yaffs2文件系统镜像。大多数都是参照网上的,目的在于记录学习,不做任何用途。

   一、制作mkyaffs2image工具

         进入yaffs2源码目录下utils目录,修改mkyaff2image.c,做如下修改:

// Adjust these to match your NAND LAYOUT:
#if 0
#define chunkSize 2048
#define spareSize 64
#define pagesPerBlock 64
#else
#define chunkSize 4096
#define spareSize 218
#define pagesPerBlock 128
#endif

进入yaffs2源码目录下direct目录,修改yportenv.h

增加#define CONFIG_YAFFS_DEFINES_TYPES

保存后make,这时就在utils目录生产mkyaffs2image文件,把这个文件拷贝到/usr/bin目录下

到此,后面我们就可以用该工具制作镜像文件了。

    二、制作根文件系统

当我们在linux下输入ls  / 的时候,见到的目录结构以及这些目录下的内容都大同小异,这是因为所有的linux发行版在对根文件系统布局上都遵循FHS标准的建议规定。

该标准规定了根目录下各个子目录的名称及其存放的内容:

目录名

存放的内容

/bin

必备的用户命令,例如ls、cp等

/sbin

必备的系统管理员命令,例如ifconfig、reboot等

/dev

设备文件,例如mtdblock0、tty1等

/etc

系统配置文件,包括启动文件,例如inittab等

/lib

必要的链接库,例如C链接库、内核模块

/home

普通用户主目录

/root

root用户主目录

/usr/bin

非必备的用户程序,例如find、du等

/usr/sbin

非必备的管理员程序,例如chroot、inetd等

/usr/lib

库文件

/var

守护程序和工具程序所存放的可变,例如日志文件

/proc

用来提供内核与进程信息的虚拟文件系统,由内核自动生成目录下的内容

/sys

用来提供内核与设备信息的虚拟文件系统,由内核自动生成目录下的内容

/mnt

文件系统挂接点,用于临时安装文件系统

/tmp

临时性的文件,重启后将自动清除

制作根文件系统就是要建立以上的目录,并在其中建立完整目录内容。其过程大体包括:

· 编译/安装busybox,生成/bin、/sbin、/usr/bin、/usr/sbin目录

· 利用交叉编译工具链,构建/lib目录

· 手工构建/etc目录

· 手工构建最简化的/dev目录

· 创建其它空目录

· 配置系统自动生成/proc目录

· 利用udev构建完整的/dev目录

· 制作根文件系统的Yaffs2映像文件

下面就来详细介绍这个过程。

  1. 下载并编译Busybox,生成/bin、/sbin、/usr/bin、/usr/sbin目录

  1.1 下载网址:http://www.busybox.net/   我下载  busybox-1.22.1.tar.bz2

  1.2 解压后修改Makefile文件,这就不用说,跟Linux一样。

 ARCH            ?= arm
 CROSS_COMPILE   ?= arm-linux- 

   1.3 配置菜单

我们大多按找默认配置,然后在此基础上进行修改。

   $ make defconfig

   $ make menuconfig

Busybox Settings --->Build Options --->(arm-linux-) Cross Compiler prefix
Busybox Settings --->General Configuration --->[*] Don't use /usr

Busybox Settings --->Installation Options—>你自己要安装的目录(默认是_install目录)

我自己设置在ok6410_fs/  


  1.4 编译,安装

  $make;make install

  我们进入ok6410_fs后发现,已经有了  /bin、/sbin、/usr/bin、/usr/sbin

2. 构建基本的文件夹及文件

   建立Linux文件系统基本的文件夹,我也是参照别人的,无非就是新建文件夹,然后改权限嘛,我这里就偷个懒,和别人一样,写个脚本。

#!/bin/sh
echo "--------Create root,dev......"
mkdir root dev etc bin sbin mnt sys proc lib home tmp var usr
mkdir usr/sbin usr/bin usr/lib usr/modules usr/etc
mkdir mnt/usb mnt/nfs mnt/etc mnt/etc/init.d
mkdir lib/modules
chmod 1777 tmp

sudo mknod -m 600 dev/console c 5 1
sudo mknod -m 666 dev/null c 1 3

echo "-------make direction done---------"

保存,修改权限:chmod +x creat_fs.sh

$ ./creat_fs.sh

2. 1 创建 /etc/profile文件,主要用于环境变量。文件内容如下:

# Ash profile 
# vim: syntax=sh
# No core files by default
ulimit -S -c 0 > /dev/null 2>&1
USER="`id -un`"
LOGNAME=$USER
PS1='[u@h W]# '
PATH=$PATH
HOSTNAME=`/bin/hostname`
export USER LOGNAME PS1 PATH

2.2 创建初始化文件。etc/init.d/rcS

#! /bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:
runlevel=S
prevlevel=N
umask 022
export PATH runlevel prevlevel

#
# Trap CTRL-C &c only in this shell so we can interrupt subprocesses.
#
trap ":" INT QUIT TSTP
/bin/hostname hcm 

/bin/mount -n -t proc none /proc
/bin/mount -n -t sysfs none /sys
/bin/mount -n -t usbfs none /proc/bus/usb
/bin/mount -t ramfs none /dev

echo /sbin/mdev > /proc/sys/kernel/hotplug
/sbin/mdev -s
/bin/hotplug
# mounting file system specified in /etc/fstab
mkdir -p /dev/pts
mkdir -p /dev/shm
/bin/mount -n -t devpts none /dev/pts -o mode=0622
/bin/mount -n -t tmpfs tmpfs /dev/shm
/bin/mount -n -t ramfs none /tmp
/bin/mount -n -t ramfs none /var
mkdir -p /var/empty
mkdir -p /var/log
mkdir -p /var/lock
mkdir -p /var/run
mkdir -p /var/tmp

/sbin/hwclock -s -f /dev/rtc

syslogd
/etc/rc.d/init.d/netd start
echo " " > /dev/tty1
echo "Starting networking..." > /dev/tty1
#sleep 1
#/etc/rc.d/init.d/httpd start
#echo " " > /dev/tty1
#echo "Starting web server..." > /dev/tty1
#sleep 1
#/etc/rc.d/init.d/leds start
#echo " " > /dev/tty1
#echo "Starting leds service..." > /dev/tty1
#echo " "
#sleep 1
echo "*************************************" 
echo " Welcome to Root FileSystem! " 
echo " " 
echo " http://write.blog.****.net/postlist "
echo "*************************************" 


mkdir /mnt/disk
mount -t yaffs2 /dev/mtdblock3 /mnt/disk

mount -t vfat /dev/mmcblk0p1 /home/
mount -t yaffs2 /dev/mtdblock3 /mnt/
cd /mnt/
tar zxvf /home/urbetter-rootfs-qt-2.2.0.tgz
sync
cd /
umount /mnt/
umount /home/
/sbin/ifconfig lo 127.0.0.1
chmod +x etc/init.d/ifconfig-eth0 
/etc/init.d/ifconfig-eth0
/bin/qtopia &
echo " " > /dev/tty1
echo "Starting Qtopia, please waiting..." > /dev/tty1
echo " "
echo "Starting Qtopia, please waiting..." 

注意修改这个文件权限:chmod +x /etc/init.d/rcS

2.3 创建etc/fstab文件

proc /proc proc defaults 0 0
none /tmp ramfs defaults 0 0
none /var ramfs defaults 0 0
mdev /dev ramfs defaults 0 0
sysfs /sys sysfs defaults 0 0

2.4 创建 etc/inittab文件

inittab文件中每个条目用来定义一个需要init启动的子进程,并确定它的启动方式,格式为<id>:<runlevel>:<action>:<process>。例如:ttySAC0::askfirst:-/bin/sh

::sysinit:/etc/init.d/rcS
::askfirst:-/bin/sh
::ctrlaltdel:/bin/umount -a -r
::shutdown:/bin umount -a -r
::shutdown:/sbin/swapoff –a

2.5 创建 usr/etc/init

#!/bin/sh
ifconfig eth0 192.1681.50 up
ifconfig lo 127.0.0.1


注意修改权限:chmod +x usr/etc/init

2.6 创建usr/etc/mdev.conf,内容为空。

3. 拷贝arm工具链中库文件到lib目录中

$ cp /usr/local/arm/toolschain/4.4.3/arm-none-linux-gnueabi/lib/*so* lib/ –d

-d的作用,原来是一个链接文件的还拷贝成一个链接文件,如果不带-d的话会拷贝到源文件,这个时候文件就会比较大

4. 到此,基本的根文件系统已经准备好,下面用mkyaffs2image产生镜像文件。

$ mkyaffs2image ok6410_fs  rootfs.yaffs2

最后通过,tftp下载到板子上,写到nandflash上启动,启动log如下:

for SMDK6410
[06/08-16:48:38:628]
[06/08-16:48:38:628]*******************************************************
[06/08-16:48:38:638]                Welcome to Embedded System
[06/08-16:48:38:639]                Base On S3C6410 Devolopment
[06/08-16:48:38:639]                Date:   2014/4/15 22:00 PM
[06/08-16:48:38:650]*******************************************************
[06/08-16:48:38:650]
[06/08-16:48:38:650]CPU:     S3C6410@533MHz
[06/08-16:48:38:651]         Fclk = 533MHz, Hclk = 133MHz, Pclk = 66MHz (ASYNC Mode) 
[06/08-16:48:38:651]Board:   SMDK6410
[06/08-16:48:38:655]DRAM:  256 MB
[06/08-16:48:38:698]Flash:  0 kB
[06/08-16:48:38:699]NAND Flash:  2048 MB
[06/08-16:48:39:819]********************************************************
[06/08-16:48:39:819]Initial LCD controller
[06/08-16:48:39:834]  clk_freq:9 MHz,  div_freq:13 ,rea_freq:9 MHz 
[06/08-16:48:39:834]
[06/08-16:48:39:834] HBP = 2 HFP = 2 HSW = 41,Hpixs:480
[06/08-16:48:39:834] VBP = 2 VFP = 2 VSW = 10,Vpixs:272
[06/08-16:48:39:849]FrameBuff:57e7a000
[06/08-16:48:39:850]  LCD initialization Finished. 
[06/08-16:48:39:850]********************************************************
[06/08-16:48:39:871]In:    serial
[06/08-16:48:39:872]
[06/08-16:48:39:872]Out:   lcd
[06/08-16:48:39:874]
[06/08-16:48:39:874]Err:   lcd
[06/08-16:48:39:875]
[06/08-16:48:40:225]Net:   DM9000
[06/08-16:48:43:262]Hit any key to stop auto 0  1  2 
[06/08-16:48:43:263]
[06/08-16:48:43:263]NAND read: 
[06/08-16:48:43:264]device 0 offset 0x100000, size 0x500000
[06/08-16:48:43:265]
[06/08-16:48:46:505] 5242880 bytes read: OK
[06/08-16:48:46:505]
[06/08-16:48:46:506]## Booting kernel from Legacy Image at 50008000 ...
[06/08-16:48:46:506]
[06/08-16:48:46:506]   Image Name:   Linux-3.14.4
[06/08-16:48:46:524]
[06/08-16:48:46:525]   Image Type:   ARM Linux Kernel Image (uncompressed)
[06/08-16:48:46:543]
[06/08-16:48:46:543]   Data Size:    2558448 Bytes =  2.4 MB
[06/08-16:48:46:558]
[06/08-16:48:46:559]   Load Address: 50008000
[06/08-16:48:46:576]
[06/08-16:48:46:577]   Entry Point:  50008040
[06/08-16:48:46:592]
[06/08-16:48:47:104]   Verifying Checksum ... OK
[06/08-16:48:47:122]
[06/08-16:48:47:124]   XIP Kernel Image ... OK
[06/08-16:48:47:136]
[06/08-16:48:47:136]OK
[06/08-16:48:47:153]
[06/08-16:48:47:154]
[06/08-16:48:47:154]Starting kernel ...
[06/08-16:48:47:155]
[06/08-16:48:47:165]
[06/08-16:48:47:180]
[06/08-16:48:47:193]
[06/08-16:48:47:648]Uncompressing Linux... done, booting the kernel.
[06/08-16:48:48:729][    0.000000] Booting Linux on physical CPU 0x0
[06/08-16:48:48:740][    0.000000] Linux version 3.14.4 (simiar@Embedded) (gcc version 4.4.3 (ctng-1.6.1) ) #16 Mon Jun 2 23:49:21 CST 2014
[06/08-16:48:48:753][    0.000000] CPU: ARMv6-compatible processor [410fb766] revision 6 (ARMv7), cr=00c5387d
[06/08-16:48:48:754][    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
[06/08-16:48:48:764][    0.000000] Ignoring unrecognised tag 0x54410008
[06/08-16:48:48:765][    0.000000] Memory policy: Data cache writeback
[06/08-16:48:48:775][    0.000000] CPU: found DTCM0 8k @ 00000000, not enabled
[06/08-16:48:48:776][    0.000000] CPU: moved DTCM0 8k to fffe8000, enabled
[06/08-16:48:48:777][    0.000000] CPU: found DTCM1 8k @ 00000000, not enabled
[06/08-16:48:48:786][    0.000000] CPU: moved DTCM1 8k to fffea000, enabled
[06/08-16:48:48:787][    0.000000] CPU: found ITCM0 8k @ 00000000, not enabled
[06/08-16:48:48:797][    0.000000] CPU: moved ITCM0 8k to fffe0000, enabled
[06/08-16:48:48:798][    0.000000] CPU: found ITCM1 8k @ 00000000, not enabled
[06/08-16:48:48:807][    0.000000] CPU: moved ITCM1 8k to fffe2000, enabled
[06/08-16:48:48:818][    0.000000] Kernel command line: root=/dev/mtdblock2 rootfstype=yaffs2 console=ttySAC0,115200
[06/08-16:48:48:819][    0.000000] PID hash table entries: 1024 (order: 0, 4096 bytes)
[06/08-16:48:48:829][    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
[06/08-16:48:48:831][    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
[06/08-16:48:48:840][    0.000000] Virtual kernel memory layout:
[06/08-16:48:48:841][    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[06/08-16:48:48:852][    0.000000]     DTCM    : 0xfffe8000 - 0xfffec000   (  16 kB)
[06/08-16:48:48:852][    0.000000]     ITCM    : 0xfffe0000 - 0xfffe4000   (  16 kB)
[06/08-16:48:48:863][    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
[06/08-16:48:48:863][    0.000000]     vmalloc : 0xd0800000 - 0xff000000   ( 744 MB)
[06/08-16:48:48:875][    0.000000]     lowmem  : 0xc0000000 - 0xd0000000   ( 256 MB)
[06/08-16:48:48:876][    0.000000]     modules : 0xbf000000 - 0xc0000000   (  16 MB)
[06/08-16:48:48:884][    0.000000]       .text : 0xc0008000 - 0xc046e228   (4505 kB)
[06/08-16:48:48:885][    0.000000]       .init : 0xc046f000 - 0xc04937fc   ( 146 kB)
[06/08-16:48:48:896][    0.000000]       .data : 0xc0494000 - 0xc04d35e8   ( 254 kB)
[06/08-16:48:48:896][    0.000000]        .bss : 0xc04d4000 - 0xc0511038   ( 245 kB)
[06/08-16:48:48:907][    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[06/08-16:48:48:908][    0.000000] NR_IRQS:246
[06/08-16:48:48:918][    0.000000] S3C6410 clocks: apll = 533000000, mpll = 533000000
[06/08-16:48:48:921][    0.000000]  epll = 24000000, arm_clk = 533000000
[06/08-16:48:48:930][    0.000000] VIC @f6000000: id 0x00041192, vendor 0x41
[06/08-16:48:48:930][    0.000000] VIC @f6010000: id 0x00041192, vendor 0x41
[06/08-16:48:48:941][    0.000031] sched_clock: 32 bits at 33MHz, resolution 30ns, wraps every 128929599457ns
[06/08-16:48:48:942][    0.000600] Console: colour dummy device 80x30
[06/08-16:48:48:952][    0.000674] Calibrating delay loop... 531.66 BogoMIPS (lpj=2658304)
[06/08-16:48:48:953][    0.050065] pid_max: default: 32768 minimum: 301
[06/08-16:48:48:963][    0.050464] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[06/08-16:48:48:964][    0.050508] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[06/08-16:48:48:973][    0.052041] CPU: Testing write buffer coherency: ok
[06/08-16:48:48:974][    0.052760] Setting up static identity map for 0x5034eac0 - 0x5034eb1c
[06/08-16:48:48:985][    0.057045] devtmpfs: initialized
[06/08-16:48:48:986][    0.060591] VFP support v0.3: implementor 41 architecture 1 part 20 variant b rev 5
[06/08-16:48:48:996][    0.065304] NET: Registered protocol family 16
[06/08-16:48:48:997][    0.066785] DMA: preallocated 256 KiB pool for atomic coherent allocations
[06/08-16:48:49:007][    0.075253] OK6410: Option string ok6410=0
[06/08-16:48:49:007][    0.075295] OK6410: selected LCD display is 480x272
[06/08-16:48:49:008][    0.175364] bio: create slab <bio-0> at 0
[06/08-16:48:49:018][    0.178158] pl08xdmac dma-pl080s.0: initialized 8 virtual memcpy channels
[06/08-16:48:49:029][    0.178260] pl08xdmac dma-pl080s.0: initialized 16 virtual slave channels
[06/08-16:48:49:030][    0.200300] pl08xdmac dma-pl080s.0: DMA: PL080s rev1 at 0x75000000 irq 73
[06/08-16:48:49:040][    0.200728] pl08xdmac dma-pl080s.1: initialized 8 virtual memcpy channels
[06/08-16:48:49:052][    0.200824] pl08xdmac dma-pl080s.1: initialized 12 virtual slave channels
[06/08-16:48:49:053][    0.219254] pl08xdmac dma-pl080s.1: DMA: PL080s rev1 at 0x75100000 irq 74
[06/08-16:48:49:063][    0.222558] usbcore: registered new interface driver usbfs
[06/08-16:48:49:063][    0.223416] usbcore: registered new interface driver hub
[06/08-16:48:49:074][    0.224422] usbcore: registered new device driver usb
[06/08-16:48:49:074][    0.234444] Switched to clocksource samsung_clocksource_timer
[06/08-16:48:49:075][    0.323831] NET: Registered protocol family 2
[06/08-16:48:49:085][    0.325123] TCP established hash table entries: 2048 (order: 1, 8192 bytes)
[06/08-16:48:49:096][    0.325351] TCP bind hash table entries: 2048 (order: 3, 40960 bytes)
[06/08-16:48:49:097][    0.325862] TCP: Hash tables configured (established 2048 bind 2048)
[06/08-16:48:49:107][    0.326090] TCP: reno registered
[06/08-16:48:49:109][    0.326149] UDP hash table entries: 256 (order: 1, 12288 bytes)
[06/08-16:48:49:118][    0.326341] UDP-Lite hash table entries: 256 (order: 1, 12288 bytes)
[06/08-16:48:49:119][    0.327222] NET: Registered protocol family 1
[06/08-16:48:49:130][    0.328285] RPC: Registered named UNIX socket transport module.
[06/08-16:48:49:130][    0.328328] RPC: Registered udp transport module.
[06/08-16:48:49:131][    0.328347] RPC: Registered tcp transport module.
[06/08-16:48:49:140][    0.328362] RPC: Registered tcp NFSv4.1 backchannel transport module.
[06/08-16:48:49:141][    0.335325] futex hash table entries: 256 (order: 0, 7168 bytes)
[06/08-16:48:49:152][    0.395670] NFS: Registering the id_resolver key type
[06/08-16:48:49:153][    0.395807] Key type id_resolver registered
[06/08-16:48:49:163][    0.395840] Key type id_legacy registered
[06/08-16:48:49:164][    0.395894] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[06/08-16:48:49:174][    0.395916] Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
[06/08-16:48:49:175][    0.399037] ROMFS MTD (C) 2007 Red Hat, Inc.
[06/08-16:48:49:185][    0.400295] BeFS version: 0.9.3
[06/08-16:48:49:186][    0.402498] io scheduler noop registered
[06/08-16:48:49:186][    0.402540] io scheduler deadline registered
[06/08-16:48:49:197][    0.403824] io scheduler cfq registered (default)
[06/08-16:48:49:198][    0.423896] s3c-fb s3c-fb: window 0: fb 
[06/08-16:48:49:208][    0.999196] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[06/08-16:48:49:209][    1.007881] s3c6400-uart.0: ttySAC0 at MMIO 0x7f005000 (irq = 69, base_baud = 0) is a S3C6400/10
[06/08-16:48:49:222][    1.490303] console [ttySAC0] enabled
[06/08-16:48:49:223][    1.495733] s3c6400-uart.1: ttySAC1 at MMIO 0x7f005400 (irq = 70, base_baud = 0) is a S3C6400/10
[06/08-16:48:49:229][    1.504605] s3c6400-uart.2: ttySAC2 at MMIO 0x7f005800 (irq = 71, base_baud = 0) is a S3C6400/10
[06/08-16:48:49:241][    1.513383] s3c6400-uart.3: ttySAC3 at MMIO 0x7f005c00 (irq = 72, base_baud = 0) is a S3C6400/10
[06/08-16:48:49:285][    1.566243] brd: module loaded
[06/08-16:48:49:314][    1.590247] loop: module loaded
[06/08-16:48:49:315][    1.595120] ------------[ cut here ]------------
[06/08-16:48:49:326][    1.595207] WARNING: CPU: 0 PID: 1 at drivers/clk/clk.c:926 __clk_enable+0x94/0xa4()
[06/08-16:48:49:328][    1.602726] ---[ end trace a4fe0eb127a10b3d ]---
[06/08-16:48:49:340][    1.606757] s3c24xx-nand s3c6400-nand: Tacls=4, 30ns Twrph0=8 60ns, Twrph1=6 45ns
[06/08-16:48:49:341][    1.614020] s3c24xx-nand s3c6400-nand: System booted from NAND
[06/08-16:48:49:347][    1.619696] s3c24xx-nand s3c6400-nand: NAND hardware ECC
[06/08-16:48:49:359][    1.625085] nand: device found, Manufacturer ID: 0xec, Chip ID: 0xd5
[06/08-16:48:49:359][    1.631357] nand: Samsung NAND 2GiB 3,3V 8-bit
[06/08-16:48:49:360][    1.635745] nand: 2048MiB, MLC, page size: 4096, OOB size: 218
[06/08-16:48:49:366][    1.641674] Scanning device for bad blocks
[06/08-16:48:49:455][    1.735417] Bad eraseblock 985 at 0x00001ecff000
[06/08-16:48:49:483][    1.762428] Bad eraseblock 1295 at 0x0000287ff000
[06/08-16:48:49:649][    1.929342] Bad eraseblock 3218 at 0x00006497f000
[06/08-16:48:49:729][    2.006987] Creating 4 MTD partitions on "nand":
[06/08-16:48:49:730][    2.007071] 0x000000000000-0x000000100000 : "Bootloader"
[06/08-16:48:49:743][    2.017024] 0x000000100000-0x000000600000 : "Linux Kernel"
[06/08-16:48:49:744][    2.022909] 0x000000600000-0x00000ce00000 : "File System"
[06/08-16:48:49:752][    2.028529] 0x00000ce00000-0x000080000000 : "User"
[06/08-16:48:49:767][    2.036197] dm9000 dm9000: read wrong id 0x01010101
[06/08-16:48:49:771][    2.036278] dm9000 dm9000: eth%d: Invalid ethernet MAC address. Please set using ifconfig
[06/08-16:48:49:777][    2.046340] eth0: dm9000a at d085a000,d085c004 IRQ 108 MAC: 5e:c8:ea:19:f0:8d (random)
[06/08-16:48:49:781][    2.052348] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[06/08-16:48:49:781][    2.057706] ohci-s3c2410: OHCI S3C2410 driver
[06/08-16:48:49:791][    2.064452] s3c2410-ohci s3c2410-ohci: OHCI Host Controller
[06/08-16:48:49:803][    2.067626] s3c2410-ohci s3c2410-ohci: new USB bus registered, assigned bus number 1
[06/08-16:48:49:804][    2.075630] s3c2410-ohci s3c2410-ohci: irq 79, io mem 0x74300000
[06/08-16:48:49:864][    2.140048] s3c2410-ohci s3c2410-ohci: init err (00000000 0000)
[06/08-16:48:49:865][    2.140347] s3c2410-ohci s3c2410-ohci: can't start
[06/08-16:48:49:875][    2.145261] s3c2410-ohci s3c2410-ohci: startup error -75
[06/08-16:48:49:879][    2.150496] s3c2410-ohci s3c2410-ohci: USB bus 1 deregistered
[06/08-16:48:49:887][    2.156247] s3c2410-ohci: probe of s3c2410-ohci failed with error -75
[06/08-16:48:49:896][    2.165804] mousedev: PS/2 mouse device common for all mice
[06/08-16:48:49:896][    2.171047] i2c /dev entries driver
[06/08-16:48:49:897][    2.173832] sdhci: Secure Digital Host Controller Interface driver
[06/08-16:48:49:907][    2.177730] sdhci: Copyright(c) Pierre Ossman
[06/08-16:48:49:908][    2.182493] s3c-sdhci s3c-sdhci.0: clock source 0: mmc_busclk.0 (133250000 Hz)
[06/08-16:48:49:917][    2.189325] s3c-sdhci s3c-sdhci.0: clock source 2: mmc_busclk.2 (24000000 Hz)
[06/08-16:48:49:953][    2.230055] mmc0: SDHCI controller on samsung-hsmmc [s3c-sdhci.0] using ADMA
[06/08-16:48:49:969][    2.231782] s3c-sdhci s3c-sdhci.1: clock source 0: mmc_busclk.0 (133250000 Hz)
[06/08-16:48:49:970][    2.238734] s3c-sdhci s3c-sdhci.1: clock source 2: mmc_busclk.2 (24000000 Hz)
[06/08-16:48:50:002][    2.280052] mmc1: SDHCI controller on samsung-hsmmc [s3c-sdhci.1] using ADMA
[06/08-16:48:50:017][    2.295148] usbcore: registered new interface driver usbhid
[06/08-16:48:50:018][    2.295219] usbhid: USB HID core driver
[06/08-16:48:50:029][    2.299442] TCP: cubic registered
[06/08-16:48:50:030][    2.302312] NET: Registered protocol family 17
[06/08-16:48:50:030][    2.306958] Key type dns_resolver registered
[06/08-16:48:50:039][    2.315242] drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
[06/08-16:48:50:062][    2.337471] yaffs: dev is 32505858 name is "mtdblock2" rw
[06/08-16:48:50:063][    2.337537] yaffs: passed flags ""
[06/08-16:49:06:062][   18.341636] mmc1: mmc_rescan_try_freq: trying to init card at 400000 Hz
[06/08-16:49:06:074][   18.343144] VFS: Mounted root (yaffs2 filesystem) on device 31:2.
[06/08-16:49:06:075][   18.348772] devtmpfs: error mounting -2
[06/08-16:49:06:087][   18.354852] Freeing unused kernel memory: 144K (c046f000 - c0493000)
[06/08-16:49:06:089][   18.359049] Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.
[06/08-16:49:06:097][   18.371964] CPU: 0 PID: 1 Comm: swapper Tainted: G        W    3.14.4 #16
[06/08-16:49:06:107][   18.378781] [<c0014dd0>] (unwind_backtrace) from [<c00125f4>] (show_stack+0x10/0x14)
[06/08-16:49:06:119][   18.386481] [<c00125f4>] (show_stack) from [<c034ac7c>] (panic+0x8c/0x1dc)
[06/08-16:49:06:120][   18.393317] [<c034ac7c>] (panic) from [<c034a770>] (kernel_init+0xc8/0xec)
[06/08-16:49:06:130][   18.400167] [<c034a770>] (kernel_init) from [<c000f1b8>] (ret_from_fork+0x14/0x3c)

从上面可以看出,yaffs2文件系统是挂载成功了,但是内核还是启动不起来,下篇文章在具体分析了。我的周末呀。。。。