本文主要讲怎用利用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.csdn.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如下:

[06/08-16:48:38:628]U-Boot 2010.03-svn3 (May 06 2014 - 22:13:20) 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文件系统是挂载成功了,但是内核还是启动不起来,下篇文章在具体分析了。我的周末呀。。。。

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

  1. S3C6410嵌入式应用平台构建(四)——linux-3.14.4移植到OK6410-(初步启动)

    这次,还是把基本的基于我目前最新的Linux源码进行移植到OK6410吧,同时也写下我移植过程中遇到的问题及解决方法,不过有些方法是借鉴网上的,有些是自己加的,会有一些小bug. 一.基本工作 1. ...

  2. S3C6410嵌入式应用平台构建(一)

    [2014-4/8~4/10]目前我们已经积累一定的嵌入式相关知识,对嵌入式的架构及开发过程有了大体了解,唯一缺的就是实践,通过自己的分析搭建自己的嵌入式系统.下面,我将从此处开始记录我和我同学一起分 ...

  3. S3C6410嵌入式应用平台构建(五)——linux-3.14.4移植到OK6410-(Nand分区问题)

    前一篇文章,我们的Linux能后启动了,只是在识别nand时候,没有获取到时钟源,导致后面的分区没哟进行. 我们从启动的log发现: [06/08-11:25:41:371]s3c24xx-nand ...

  4. S3C6410嵌入式应用平台构建(三)

    构建了好久的系统,由于工作原因,没有及时写记录,目前我已经进展到构建yaffs2文件系统,启动Linux内核了.Uboot移植基本功能已经完成. 由于Uboot移植方法大致是一样的,我主要参考这位博友 ...

  5. S3C6410嵌入式应用平台构建(二)

    [2014-4/11~4/14]经过之前的实验,对Uboot已经有了大体的了解,前我们已经把led灯给点亮,但这不是我们的根本目的,我们是要进入boot启动,经过两天的分析代码和反复的实验,终于可以进 ...

  6. KTL 一个支持C++14编辑公式的K线技术工具平台 - 第六版,支持OpenGL,3D上帝视角俯视K线概貌。

    K,K线,Candle蜡烛图. T,技术分析,工具平台 L,公式Language语言使用c++14,Lite小巧简易. 项目仓库:https://github.com/bbqz007/KTL 国内仓库 ...

  7. Unity跨平台C/CPP动态库编译---可靠UDP网络库kcp基于CMake的各平台构建实践

    1.为什么需要动态库 a)提供原生代码(native code)的支持,也叫原生插件,但是我实践的是c/cpp跨平台动态库,这里不具体涉及安卓平台java库和ios平台的objectc库构建. b)某 ...

  8. Unity3D跨平台动态库编译---记kcp基于CMake的各平台构建实践

    一 为什么需要动态库 1)提供原生代码(native code)的支持,也叫原生插件,但是我实践的是c/cpp跨平台动态库,这里不具体涉及安卓平台java库和ios平台的objectc库构建. 2)某 ...

  9. SharpGL学习笔记(一) 平台构建与Opengl的hello World (转)

    (一)平台构建与Opengl的hello World OpenGL就是3d绘图的API,微软针和它竞争推出D3D,也就是玩游戏时最常见的DirectorX组件中的3d功能. 所以不要指望windows ...

随机推荐

  1. IO-02

    /** 2 *A2-IO-02. 整数四则运算(10) 3 *C语言实现 4 *测试已通过 5 */ #include "stdio.h" #include "stdli ...

  2. linux日志(常用命令)

    LinuxIDERedHat防火墙活动  cat tail -f 日 志 文 件 说    明 /var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志 ...

  3. delphi 读网页线程TReadHtmlThread

    读网页,通常是一个耗时操作.故把读网页放入线程是显得比较重要了. 本例用改进后的 TIdhttpEx 加上线程来实现读网页. 它的父类TSimpleThread 在此 本例程源码在此 源码中包含了所有 ...

  4. CC++初学者编程教程(8) VS2013配置编程助手与QT

    1. 2. 配置编程助手 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26 ...

  5. java 书籍推荐 JavaEE程序员必读图书大推荐

    java 书籍推荐 JavaEE程序员必读图书大推荐 转自:http://www.cnblogs.com/xlwmin/articles/2192775.html 下面是我根据多年的阅读和实践经验,给 ...

  6. java web基础环境搭建

    java web基础环境包括:(1)servlet容器也即tomcat(2)jre即java程序运行环境 环境变量配置:分别下载jdk和tomcat安装包. jdk环境变量配置: 第一步:系统环境变量 ...

  7. [置顶] Mysql存储过程入门知识

    Mysql存储过程入门知识 #1,查看数据库所有的存储过程名 #--这个语句被用来移除一个存储程序.不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程 #SELECT NAME FROM ...

  8. SQLServer与Oracle的对照

        近期去铁科院面试,项目组长问了我这样一下问题:SQLServer与Oracle的差别是什么?从进入软件行业.从開始CS的编码到BS的编码过程中使用的都是SQLServer.在半年前開始敲DRP ...

  9. 【整理】SQLServer查询各种数据库对象(表,索引,视图,图表,存储过程等)

    首先明确数据库对象的定义:数据库对象定义数据库内容的结构.它们包含在数据库项目中,数据库项目还可以包含数据生成计划和脚本. 常见的数据库对象包括:表,索引,视图,图表,缺省值,规则,触发器,存储过程, ...

  10. 自定义构造方法和description方法

    知识回顾在第5讲中已经介绍了如何定义类和创建并初始化对象,比如有Student这个类1.Student.h 1 #import <Foundation/Foundation.h>23@in ...