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文件系统是挂载成功了,但是内核还是启动不起来,下篇文章在具体分析了。我的周末呀。。。。