利用uboot启动远程Kernel(TFTP)以及挂载远程ROOTFS(NFS)

转载地址:http://www.arm9home.net/simple/index.php?t27737.html

0. 准备工作

1. 编译uboot
2. 将uboot写入SD卡
3. 编译kernel,设置其可以通过NFS挂载根文件系统
4. 开发环境安装TFTP服务器
5. 开发环境安装NFS服务器
6. 目标环境设置uboot参数
7. 制作根文件系统(optional)。
8. 完整的启动LOG。


    有几位网友发信问我uboot挂载文件系统的方法,其实这个部分也不是我原创的,大部分都是参考其他网友的方法,现在将我的手顺记录下来,希望对大家有所帮助。

    整体思路大概是这样:
    * 将uboot烧写到SD卡。
    * 从SD卡启动系统,SD卡中的uboot通过TFTP协议将远程的的Kernel下载到内存中。
    * uboot将内核参数设定为ROOT分区为远程的NFS-SERVER共享的一个目录,并JUMP到内核的START ADDRESS。
    * kernel自解压,并JUMP 到解压后的新的内核START ADDRESS,内核正常启动。
    * 最后通过内核通过uboot设置的ROOTFS参数得知根文件系统在远程,并通过NFS挂载ROOTFS。
    * 根文件系统挂载完了以后,就会去执行init程序, init程序被uboot指定为 /linuxrc。

    我的开发环境是 ubunto 12.04LTS。
    目标系统的内核是 3.0.8 ,源代码位于 /opt/S5PV210/rootfs/usr/src/linux-3.0.8。
    uboot的源代码位于 /opt/S5PV210/rootfs/usr/src/opencsbc-u-boot。
    目标环境的根文件系统位于 /opt/S5PV210/rootfs。
    交叉编译器位于 /opt/linaro-gcc473-eglibc216-armv7a-neon。


0. 准备工作

    编译uboot和linux内核都需要使用到交叉编译器,所以需要确保shell 的PATH 环境中包含了你的交叉编译器的路径。
    比如我的PATH为:(通过export查看)

    declare -x PATH="/usr/lib/lightdm/lightdm:/opt/linaro-gcc473-eglibc216-armv7a-neon/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
    这样,就可以直接查找到 arm-linux-gcc 这条命令了,不许要输入 arm-linux-gcc 的绝对路径。

1. 编译uboot

    uboot来自于kasim修改的uboot,原帖在http://www.arm9home.net/read.php?tid-16001.html。
    可以通过 https://gitorious.org/opencsbc/u-boot/trees/mini210_linaro-2012.11-stable 右边的 download mini210_linaro-2012.11-stable as tar.gz 这个按钮获取到打包的源代码。

    将源代码下载下来以后,解压到某一个目录,我机器上是位于 /opt/S5PV210/rootfs/usr/src/opencsbc-u-boot 这个目录。进入到这个目录。
    首先配置uboot是针对 tiny210 环境的。 tiny210v2 也是使用的这个配置项:

复制代码
  1.         make ARCH=arm CROSS_COMPILE=arm-linux- tiny210_config

    然后才是真正的编译uboot:
复制代码
  1.         make ARCH=arm CROSS_COMPILE=arm-linux- all spl

    编译完成以后,就可以看到uboot的二进制文件 spl/tiny210-spl.bin 和 uboot.bin。

    另外还有一个用于制作 uImage 的工具 tool/mkimage。为了方便,把这个文件拷贝到 /usr/bin:

复制代码
  1.         sudo cp tool/mkimage  /usr/bin/


2. 将uboot写入SD卡

    注意,这部需要特别留心,别因为误写入,把你的硬盘给弄坏了。
    注意,SD卡的内容最好备份好。

    将SD卡放到读卡器里面,并将SD卡读卡器接入开发环境,在我的环境中, SD卡会被识别为 /dev/sdc。

    通过下面的命令将uboot写入SD卡,保证这个SD卡可以启动。

复制代码
  1.     sudo dd iflag=dsync oflag=dsync if=spl/tiny210-spl.bin of=/dev/sdc seek=1
        sudo dd iflag=dsync oflag=dsync if=u-boot.bin of=/dev/sdc seek=49


    如果怕写入不同步,可以再执行一下  sync 这个命令,保证cache都写入到磁盘中。
    到此为止,就可以通过SD卡启动uboot了。


3. 编译kernel,设置其可以通过NFS挂载根文件系统

    光盘中带的内核,默认不支持从NFS挂载ROOTFS。需要重新配置并编译内核。
    在/opt/S5PV210/rootfs/usr/src/linux-3.0.8目录下,通过 make menuconfig 启动ncurses图形配置界面。
    下面几个个内核配置项,必须选中。

复制代码
  1.     * Networking support -> Networking options ->IP:kernel level autoconfiguration

        注意,这个选项下面的 IP:DHCP support / IP:BOOTP support / IP:RARP aupport 不能选。
        因为我的开发环境中没有安装 DHCP server。开发板的 IP 是在内核启动参数中指定的。


复制代码
  1.     * File systems -> Network File System -> NFS client support
        * File systems -> Network File System -> NFS client support for NFS version 3 或者 4
        * File systems -> Network File System -> Root file system on NFS

    
    将退出配置,并保存。
    执行下面的命令生成 uImage 内核镜像文件,这个过程其实是先生成了 zImage ,然后调用了刚才uboot的那个 mkimage 生成 uImage。

复制代码
  1.         make uImage


    下面的LOG表明 uImage 生成了,位于 arch/arm/boot/uImage。
复制代码
  1.       CHK     include/linux/version.h
          CHK     include/generated/utsrelease.h
        make[1]: `include/generated/mach-types.h' is up to date.
          CALL    scripts/checksyscalls.sh
          CHK     include/generated/compile.h
          Kernel: arch/arm/boot/Image is ready
          SHIPPED arch/arm/boot/compressed/lib1funcs.S
          AS      arch/arm/boot/compressed/lib1funcs.o
          LD      arch/arm/boot/compressed/vmlinux
          OBJCOPY arch/arm/boot/zImage
          Kernel: arch/arm/boot/zImage is ready
          UIMAGE  arch/arm/boot/uImage
        Image Name:   Linux-3.0.8-TINY210V2+
        Created:      Wed Jan 23 21:10:56 2013
        Image Type:   ARM Linux Kernel Image (uncompressed)
        Data Size:    3555872 Bytes = 3472.53 kB = 3.39 MB
        Load Address: 20008000
        Entry Point:  20008000
          Image arch/arm/boot/uImage is ready

    编译内核的时候,如果你使用的是 4.6以后的 gcc,需要在Makefile中添加 -mno-unaligned-access 给 KBUILD_CFLAGS 防止内核解压完以后启动不了。
复制代码
  1.          367 KBUILD_CFLAGS   := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
             368            -fno-strict-aliasing -fno-common \
             369            -Werror-implicit-function-declaration \
             370            -Wno-format-security \
             371            -fno-delete-null-pointer-checks \
             372            -mno-unaligned-access


    如果你生成的内核有问题,可以试一试我的内核配置文件 my_config。

4. 开发环境安装TFTP服务器

    接下来,就是要在开发环境上安装 TFTP 服务器,使开发板可以通过TFTP协议下载 uImage 这个文件。
    在 ubuntu 下,可以通过下面的命令安装 TFTP 服务器,这个服务是通过 inet 监听的。

复制代码
  1.         sudo apt-get install atftpd openbsd-inetd


    安装完以后,需要配置一下 TFTP 的默认查找目录,我将其设定为 /srv/tftp:
    确认 /etc/inetd.conf 文件中有如下一行:

复制代码
  1.         #:BOOT: TFTP service is provided primarily for booting.  Most sites
            #       run this only on machines acting as "boot servers."
            tftp        dgram   udp wait    nobody  /usr/sbin/tcpd  /usr/sbin/in.tftpd /srv/tftp


    因为 TFTP 服务主要是给 uboot 提供内核镜像文件,为了避免每次内核编译完以后都拷贝到 /srv/tftp 目录中,
    我在 /srv/tftp 目录中,建立了一个 符号文件,指向 /opt/S5PV210/rootfs/usr/src/linux-3.0.8/arch/arm/boot/uImage。

复制代码
  1.         ln -s /opt/S5PV210/rootfs/usr/src/linux-3.0.8/arch/arm/boot/uImage  /srv/tftp/uImage


    可以通过下面的命令重启 inetd ,保证这个 supper服务器能够监听 TFTP 端口:
复制代码
  1.         sudo service  openbsd-inetd restart


    可以通过 查看端口确认 inetd 是否真的在监听 TFTP 端口:
复制代码
  1.         zoulz@Seagate:/tmp$ netstat  -a | grep tftp
            udp        0      0 *:tftp                  *:*  


    可以通过下面的命令测试一下 TFTP 服务是否正常工作:
复制代码
  1.         zoulz@Seagate:/tmp$ tftp localhost
            tftp> get uImage
            Received 3578106 bytes in 0.3 seconds


5. 开发环境安装NFS服务器

    接下来是配置 NFS 服务器,用于开发板上内核启动以后挂载开发环境的ROOTFS。

    通过下面的命令安装 nfs 服务器:

复制代码
  1.         sudo apt-get  install nfs-kernel-server


    安装完成以后,还需要修改 /etc/exports 文件,设置 NFS 共享的文件目录。我们需要将 /opt/S5PV210/rootfs 设置为NFS共享目录。
复制代码
  1.         # Example for NFSv2 and NFSv3:
            # /srv/homes       hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
            #
            # Example for NFSv4:
            # /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
            # /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)
            #
            /opt/S5PV210/rootfs *(rw,sync,no_subtree_check,no_root_squash)


    每一次修改 /etc/exports 这个文件,都需要重新启动 NFS 服务器:
复制代码
  1.          sudo service nfs-kernel-server restart


    可以通过下面的命令测试 NFS 服务器是否设置正确:
复制代码
  1.         zoulz@Seagate:/tmp$ rm a b
            zoulz@Seagate:/tmp$ mkdir /tmp/a
            zoulz@Seagate:/tmp$ sudo mount -t nfs -o nolock localhost:/opt/S5PV210/rootfs /tmp/a
            zoulz@Seagate:/tmp$ ls /tmp/a
            bin  dev  etc  home  lib  linuxrc  proc  root  run  sbin  sys  tmp  usr  var
            zoulz@Seagate:/tmp$ ls /opt/S5PV210/rootfs
            bin  dev  etc  home  lib  linuxrc  proc  root  run  sbin  sys  tmp  usr  var


    也可以通过 df 命令查看挂载情况:
复制代码
  1.         zoulz@Seagate:/tmp$ df
            Filesystem                    1K-blocks     Used Available Use% Mounted on
            localhost:/opt/S5PV210/rootfs 125439744 36394112  89045632  30% /tmp/a


6. 目标环境设置uboot参数

    注意: ubuntu 的 network manager, 如果开发板和开发环境的PC直连的话, 每次开发板哪掉电,开发环境PC会检测为网络未链接,
        nm 就会将已经设置好的网卡 down 掉。这在开发板reset的时候特别讨厌,你得每次都重新去设置PC的IP地址。


    因此我将桌面右上角的network manager的 Enable Networking 设置为 不选中,禁止 network manager 去管理网络。
    然后在终端里通过下面的命令,将网卡设置为 192.168.1.5,这样每次开发板reset就不用再设置开发环境PC的IP了。

复制代码
  1.         sudo ifconfig eth0 192.168.1.5


    当然,如果你的开发板和开发环境PC都是链接到路由器或者HUB,就没有这个烦恼。

    现在所有的东西都准备好了。将SD卡插入开发板,并调整switch,设置从SD卡启动系统。

    正常情况下,就应该能够看到 uboot 的界面了( FriendlyLEG-TINY210 )了:
    在 uboot 的shell中,通过 setenv 命令设置相关参数。

复制代码
  1.         setenv baudrate 115200
            setenv stderr serial
            setenv stdin  serial
            setenv stdout serial
            setenv bootdelay 3
            setenv ethact dm9000
            setenv ethaddr 00:40:5c:26:0a:5b
            setenv gatewayip 192.168.1.1
            setenv ipaddr 192.168.1.80
            setenv netmask 255.255.255.0
            setenv serverip 192.168.1.5
            setenv bootargs root=/dev/nfs rw nfsroot=$serverip:/opt/S5PV210/rootfs,nolock,tcp ip=$ipaddr console=ttySAC0,115200 ctp=1 kgdboc=ttySAC0,115200
            setenv bootcmd "tftp 21000000 uImage;bootm 21000000"


    bootcmd参数中的 tftp 21000000 用于: 通过 TFTP 命令,将 192.168.1.5 的 /srv/tftp/uImage 下载到 0x21000000 这个位置。
    bootcmd参数中的 bootm 21000000 用于: uboot将CPU执行权地交给 0x21000000 这个位置的内核镜像,也就是启动内核。
    bootargs参数用于设置内核的启动参数,其中 root=/dev/fs rw nfsroot=$serverip:/opt/S5PV210/rootfs,nolock,tcp 告诉内核通过NFS启动,
        根文件系统位于 192.168.1.5:/opt/S5PV210/rootfs
        NFS 的参数为 nolock,tcp ,用于防止 udp 不稳定导致 NFS 读取NG 的情况。
        ip=$ipaddr 设置开发板自身的ip地址为 192.168.1.80 。

    通过 saveenv 将上面的参数写入到 SD卡中,这样就不用每次reset都输入一遍uboot的参数了。

    通过 boot 命令,将CPU 执行权专递给 Kernel。


7. 制作根文件系统(optional)。
    待续,busybox + toolchain。

8. 完整的启动LOG。

复制代码
  1. root@Seagate:/tmp# minicom  /dev/ttyS0

    Welcome to minicom 2.5

    OPTIONS: I18n 
    Compiled on May  2 2011, 00:39:27.
    Port /dev/ttyS0

    Press CTRL-A Z for help on special keys                                                                        
                                                                                                                   
    OKOK                                                                                                        
                                                                                                                   
    U-Boot 2013.01-rc2 (Jan 07 2013 - 10:18:16) for FriendlyLEG-TINY210                                            

    CPU:    S5PC110@1000MHz

    Board:   FriendlyLEG-TINY210
    DRAM:  512 MiB
    WARNING: Caches not enabled

    PWM Moudle Initialized.
    GPD0CON  : 1111, GPD0DAT  : e
    NAND:  2048 MiB
    MMC:   SAMSUNG SD/MMC: 0, SAMSUNG SD/MMC: 1
    In:    serial
    Out:   serial
    Err:   serial
    Net:   dm9000
    Hit any key to stop autoboot:  0 
    dm9000 i/o: 0x88001000, id: 0x90000a46 
    DM9000: running in 16 bit mode
    MAC: 00:40:5c:26:0a:5b
    operating at 100M full duplex mode
    Using dm9000 device
    TFTP from server 192.168.1.5; our IP address is 192.168.1.80
    Filename 'uImage'.
    Load address: 0x21000000
    Loading: #################################################################
             #################################################################
             #################################################################
             #################################################################
             #################################################################
             #################################################################
             #################################################################
             #################################################################
             #################################################################
             #################################################################
             #############################################
    done
    Bytes transferred = 3555936 (364260 hex)
    ## Booting kernel from Legacy Image at 21000000 ...
       Image Name:   Linux-3.0.8-TINY210V2+
       Image Type:   ARM Linux Kernel Image (uncompressed)
       Data Size:    3555872 Bytes = 3.4 MiB
       Load Address: 20008000
       Entry Point:  20008000
       Verifying Checksum ... OK
       Loading Kernel Image ... OK
    OK

    Starting kernel ...

    Uncompressing Linux... done, booting the kernel.
    [    0.000000] Initializing cgroup subsys cpu
    [    0.000000] Linux version 3.0.8-TINY210V2+ (zoulz@Seagate) (gcc version 4.7.3 20121205 (prerelease) (crosstool-NG hg+unknown-20130103.094521 - S5PV210) ) #5 PREEMPT Wed Jan 23 10:04:06 CST 2013
    [    0.000000] CPU: ARMv7 Processor [412fc082] revision 2 (ARMv7), cr=10c53c7f
    [    0.000000] CPU: VIPT nonaliasing data cache, VIPT aliasing instruction cache
    [    0.000000] Machine: MINI210
    [    0.000000] Memory policy: ECC disabled, Data cache writeback
    [    0.000000] CPU S5PV210/S5PC110 (id 0x43110220)
    [    0.000000] s5pv210_init_clocks: initializing clocks
    [    0.000000] S3C24XX Clocks, Copyright 2004 Simtec Electronics
    [    0.000000] s5pv210_setup_clocks: registering clocks
    [    0.000000] s5pv210_setup_clocks: clkdiv0 = 14131440, clkdiv1 = 00000400
    [    0.000000] s5pv210_setup_clocks: xtal is 24000000
    [    0.000000] S5PV210: PLL settings, A=1000000000, M=667000000, E=80000000 V=54000000
    [    0.000000] S5PV210: ARMCLK=1000000000, HCLKM=200000000, HCLKD=166750000
    [    0.000000] HCLKP=133400000, PCLKM=100000000, PCLKD=83375000, PCLKP=66700000
    [    0.000000] sclk_dmc: source is sclk_a2m (0), rate is 200000000
    [    0.000000] sclk_onenand: source is hclk_dsys (1), rate is 166750000
    [    0.000000] uclk1: source is mout_mpll (6), rate is 66700000
    [    0.000000] uclk1: source is mout_mpll (6), rate is 66700000
    [    0.000000] uclk1: source is mout_mpll (6), rate is 66700000
    [    0.000000] uclk1: source is mout_mpll (6), rate is 66700000
    [    0.000000] sclk_mixer: source is sclk_dac (0), rate is 54000000
    [    0.000000] sclk_fimc: source is ext_xtal (0), rate is 24000000
    [    0.000000] sclk_fimc: source is ext_xtal (0), rate is 24000000
    [    0.000000] sclk_fimc: source is ext_xtal (0), rate is 24000000
    [    0.000000] sclk_cam0: source is ext_xtal (0), rate is 24000000
    [    0.000000] sclk_cam1: source is ext_xtal (0), rate is 24000000
    [    0.000000] sclk_fimd: source is ext_xtal (0), rate is 24000000
    [    0.000000] sclk_mmc: source is mout_mpll (6), rate is 47642857
    [    0.000000] sclk_mmc: source is mout_mpll (6), rate is 47642857
    [    0.000000] sclk_mmc: source is mout_epll (7), rate is 80000000
    [    0.000000] sclk_mmc: source is mout_epll (7), rate is 80000000
    [    0.000000] sclk_mfc: source is sclk_a2m (0), rate is 200000000
    [    0.000000] sclk_g2d: source is sclk_a2m (0), rate is 200000000
    [    0.000000] sclk_g3d: source is sclk_a2m (0), rate is 200000000
    [    0.000000] sclk_csis: source is ext_xtal (0), rate is 24000000
    [    0.000000] sclk_spi: source is ext_xtal (0), rate is 24000000
    [    0.000000] sclk_spi: source is ext_xtal (0), rate is 24000000
    [    0.000000] sclk_pwi: source is ext_xtal (0), rate is 24000000
    [    0.000000] sclk_pwm: source is ext_xtal (0), rate is 24000000
    [    0.000000] s5p: 36864 kbytes system memory reserved for mfc at 0x3dbf5000, 0-bank base(0x3dbf5000)
    [    0.000000] s5p: 36864 kbytes system memory reserved for mfc at 0x3b7f5000, 1-bank base(0x00000000)
    [    0.000000] s5p: 6144 kbytes system memory reserved for fimc0 at 0x3b1f5000, 1-bank base(0x00000000)
    [    0.000000] s5p: 16 kbytes system memory reserved for fimc1 at 0x3b1f1000, 1-bank base(0x00000000)
    [    0.000000] s5p: 6144 kbytes system memory reserved for fimc2 at 0x3abf1000, 1-bank base(0x00000000)
    [    0.000000] s5p: 8192 kbytes system memory reserved for jpeg at 0x3a3f1000, 0-bank base(0x3a3f1000)
    [    0.000000] s5p: 13060 kbytes system memory reserved for fimd at 0x39730000, 1-bank base(0x00000000)
    [    0.000000] s5p: 8192 kbytes system memory reserved for g2d at 0x38f30000, 0-bank base(0x38f30000)
    [    0.000000] On node 0 totalpages: 102203
    [    0.000000]   Normal zone: 1024 pages used for memmap
    [    0.000000]   Normal zone: 0 pages reserved
    [    0.000000]   Normal zone: 101179 pages, LIFO batch:31
    [    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
    [    0.000000] pcpu-alloc: [0] 0 
    [    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 101179
    [    0.000000] Kernel command line: root=/dev/nfs rw nfsroot=192.168.1.5:/opt/S5PV210/rootfs,nolock,tcp ip=192.168.1.80 console=ttySAC0,115200 ctp=1 kgdboc=ttySAC0,115200
    [    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
    [    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
    [    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
    [    0.000000] Memory: 399MB 0MB = 399MB total
    [    0.000000] Memory: 396940k/512416k available, 11872k reserved, 0K highmem
    [    0.000000] Virtual kernel memory layout:
    [    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    [    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
    [    0.000000]     DMA     : 0xff000000 - 0xffe00000   (  14 MB)
    [    0.000000]     vmalloc : 0xe0800000 - 0xfd000000   ( 456 MB)
    [    0.000000]     lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)
    [    0.000000]     modules : 0xbf000000 - 0xc0000000   (  16 MB)
    [    0.000000]       .init : 0xc0008000 - 0xc002d000   ( 148 kB)
    [    0.000000]       .text : 0xc002d000 - 0xc06911ec   (6545 kB)
    [    0.000000]       .data : 0xc0692000 - 0xc06d9c40   ( 288 kB)
    [    0.000000]        .bss : 0xc06d9c64 - 0xc071e000   ( 273 kB)
    [    0.000000] SLUB: Genslabs=11, HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
    [    0.000000] Preemptible hierarchical RCU implementation.
    [    0.000000] NR_IRQS:393
    [    0.000000] VIC @fd000000: id 0x00041192, vendor 0x41
    [    0.000000] VIC @fd010000: id 0x00041192, vendor 0x41
    [    0.000000] VIC @fd020000: id 0x00041192, vendor 0x41
    [    0.000000] VIC @fd030000: id 0x00041192, vendor 0x41
    [    0.000000] mult[140737]
    [    0.000000] max_delta_ns[2937815369]
    [    0.000000] min_delta_ns[30517]
    [    0.000000] rate[32768]
    [    0.000000] HZ[256]
    [    0.000000] Console: colour dummy device 80x30
    [    0.000000] console [ttySAC0] enabled
    [    0.491824] Calibrating delay loop... 994.84 BogoMIPS (lpj=1941504)
    [    0.515576] pid_max: default: 32768 minimum: 301
    [    0.515827] Mount-cache hash table entries: 512
    [    0.516312] Initializing cgroup subsys debug
    [    0.516362] Initializing cgroup subsys cpuacct
    [    0.516419] Initializing cgroup subsys freezer
    [    0.520295] CPU: Testing write buffer coherency: ok
    [    0.530660] print_constraints: dummy: 
    [    0.530949] NET: Registered protocol family 16
    [    0.549032] S3C Power Management, Copyright 2004 Simtec Electronics
    [    0.565355] fimd at 0x39730000
    [    0.565467] hsmmc0: sclk_mmc: source is mout_mpll, rate is 47642857
    [    0.565534] hsmmc1: sclk_mmc: source is mout_mpll, rate is 47642857
    [    0.565594] hsmmc2: sclk_mmc: source is mout_mpll, rate is 47642857
    [    0.565654] hsmmc3: sclk_mmc: source is mout_mpll, rate is 47642857
    [    0.573248] S5PV210: Initializing architecture
    [    0.577794] s3c-adc s5pv210-adc: attached adc driver
    [    0.581035] s3c24xx-pwm s3c24xx-pwm.0: tin at 66700000, tdiv at 66700000, tin=divclk, base 0
    [    0.590202] print_constraints: pd_tv_supply: 5000 mV normal 
    [    0.595088] print_constraints: pd_lcd_supply: 5000 mV normal 
    [    0.600797] print_constraints: pd_g3d_supply: 5000 mV normal 
    [    0.606515] print_constraints: pd_mfc_supply: 5000 mV normal 
    [    0.612256] print_constraints: pd_audio_supply: 5000 mV normal 
    [    0.679867] bio: create slab <bio-0> at 0
    [    0.682650] SCSI subsystem initialized
    [    0.688076] usbcore: registered new interface driver usbfs
    [    0.688866] usbcore: registered new interface driver hub
    [    0.689384] usbcore: registered new device driver usb
    [    0.690919] s3c-i2c s3c2440-i2c.0: slave address 0x10
    [    0.690978] s3c-i2c s3c2440-i2c.0: bus frequency set to 378 KHz
    [    0.694312] s3c-i2c s3c2440-i2c.0: i2c-0: S3C I2C adapter
    [    0.698209] s3c-i2c s3c2440-i2c.1: slave address 0x10
    [    0.703096] s3c-i2c s3c2440-i2c.1: bus frequency set to 65 KHz
    [    0.709538] s3c-i2c s3c2440-i2c.1: i2c-1: S3C I2C adapter
    [    0.714317] s3c-i2c s3c2440-i2c.2: slave address 0x10
    [    0.719208] s3c-i2c s3c2440-i2c.2: bus frequency set to 260 KHz
    [    0.726196] s3c-i2c s3c2440-i2c.2: i2c-2: S3C I2C adapter
    [    0.732195] Advanced Linux Sound Architecture Driver Version 1.0.24.
    [    0.737949] Bluetooth: Core ver 2.16
    [    0.740770] NET: Registered protocol family 31
    [    0.744847] Bluetooth: HCI device and connection manager initialized
    [    0.751091] Bluetooth: HCI socket layer initialized
    [    0.755912] Bluetooth: L2CAP socket layer initialized
    [    0.760971] Bluetooth: SCO socket layer initialized
    [    0.766890] cfg80211: Calling CRDA to update world regulatory domain
    [    0.773644] Switching to clocksource clock_source_systimer
    [    0.781205] Switched to NOHz mode on CPU #0
    [    0.814450] NET: Registered protocol family 2
    [    0.814719] IP route cache hash table entries: 4096 (order: 2, 16384 bytes)
    [    0.815436] TCP established hash table entries: 16384 (order: 5, 131072 bytes)
    [    0.815751] TCP bind hash table entries: 16384 (order: 6, 327680 bytes)
    [    0.817762] TCP: Hash tables configured (established 16384 bind 16384)
    [    0.823843] TCP reno registered
    [    0.826926] UDP hash table entries: 256 (order: 1, 12288 bytes)
    [    0.832817] UDP-Lite hash table entries: 256 (order: 1, 12288 bytes)
    [    0.839450] NET: Registered protocol family 1
    [    0.843904] RPC: Registered named UNIX socket transport module.
    [    0.849390] RPC: Registered udp transport module.
    [    0.854022] RPC: Registered tcp transport module.
    [    0.858686] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [    0.865330] PMU: registered new PMU device of type 0
    [    0.870717] cpuidle: phy_regs_save:0x389ff000
    [    0.874682] Loaded driver for PL330 DMAC-0 s3c-pl330
    [    0.879385]  DBUFF-64x8bytes Num_Chans-8 Num_Peri-2 Num_Events-32
    [    0.885545] Loaded driver for PL330 DMAC-1 s3c-pl330
    [    0.890354]  DBUFF-8x4bytes Num_Chans-8 Num_Peri-32 Num_Events-32
    [    0.896527] Loaded driver for PL330 DMAC-2 s3c-pl330
    [    0.901343]  DBUFF-8x4bytes Num_Chans-8 Num_Peri-32 Num_Events-32
    [    0.916582] ashmem: initialized
    [    0.948580] ROMFS MTD (C) 2007 Red Hat, Inc.
    [    0.949199] yaffs: yaffs built Jan 21 2013 17:12:49 Installing.
    [    0.949318] msgmni has been set to 775
    [    0.952233] io scheduler noop registered
    [    0.952280] io scheduler deadline registered
    [    0.952505] io scheduler cfq registered (default)
    [    0.953022] start plist test
    [    0.964738] end plist test
    [    0.965544] s3cfb s3cfb: win 2: pmem_start=0x39b95000
    [    0.965600] s3cfb s3cfb: [fb2] dma: 0x39b95000, cpu: 0xe1000000, size: 0x0085c000
    [    0.980388] FIMD src sclk = 166750000
    [    0.980503] s3cfb s3cfb: registered successfully
    [    0.999445] s5pv210-uart.0: ttySAC0 at MMIO 0xe2900000 (irq = 16) is a S3C6400/10
    [    1.004497] s5pv210-uart.1: ttySAC1 at MMIO 0xe2900400 (irq = 20) is a S3C6400/10
    [    1.012278] s5pv210-uart.2: ttySAC2 at MMIO 0xe2900800 (irq = 24) is a S3C6400/10
    [    1.020063] s5pv210-uart.3: ttySAC3 at MMIO 0xe2900c00 (irq = 28) is a S3C6400/10
    [    1.028139] kgdb: Registered I/O driver kgdboc.
    [    1.029336] leds     initialized
    [    1.029853] pwm      initialized
    [    1.030397] mini210-adc      initialized
    [    1.031294] backlight        initialized
    [    1.033368] PA FB = 0x39B95000, bits per pixel = 32
    [    1.033419] screen width=800 height=480 va=0xd9b95000 pa=0x39b95000
    [    1.037300] xres_virtual = 800, yres_virtual = 1440, xoffset = 0, yoffset = 0
    [    1.044271] fb_size=8765440
    [    1.046967] Back frameBuffer[0].VAddr=d9d0c000 PAddr=39d0c000 size=1536000
    [    1.053883] Back frameBuffer[1].VAddr=d9e83000 PAddr=39e83000 size=1536000
    [    1.060711] Video Y Buffer[0].VAddr=d9ffa000 PAddr=39ffa000 size=921600
    [    1.067274] Video Y Buffer[1].VAddr=da0db000 PAddr=3a0db000 size=921600
    [    1.073853] Video Y Buffer[2].VAddr=da1bc000 PAddr=3a1bc000 size=921600
    [    1.080435] Video UV Buffer[0].VAddr=da29d000 PAddr=3a29d000 size=462848
    [    1.087114] Video UV Buffer[1].VAddr=da30e000 PAddr=3a30e000 size=462848
    [    1.093781] Video UV Buffer[2].VAddr=da37f000 PAddr=3a37f000 size=462848
    [    1.116968] brd: module loaded
    [    1.125950] loop: module loaded
    [    1.129049] S3C NAND Driver, (c) 2008 Samsung Electronics
    [    1.232765] MLC nand initialized, 2012 ported by FriendlyARM
    [    1.232829] S3C NAND Driver is using hardware ECC.
    [    1.232908] NAND device: Manufacturer ID: 0xec, Chip ID: 0xd5 (Samsung NAND 2GiB 3,3V 8-bit)
    [    1.232996] Creating 5 MTD partitions on "s5pv210-nand":
    [    1.234619] 0x0000000c0000-0x000000100000 : "misc"
    [    1.241942] 0x000000100000-0x000000600000 : "recovery"
    [    1.247967] 0x000000600000-0x000000b00000 : "kernel"
    [    1.252719] 0x000000b00000-0x000000e00000 : "ramdisk"
    [    1.257397] 0x000000e00000-0x000080000000 : "system"
    [    1.599156] PPP generic driver version 2.4.2
    [    1.600049] PPP Deflate Compression module registered
    [    1.600107] PPP BSD Compression module registered
    [    1.601243] PPP MPPE Compression module registered
    [    1.601298] NET: Registered protocol family 24
    [    1.601345] tun: Universal TUN/TAP device driver, 1.6
    [    1.605267] tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
    [    1.611828] dm9000 Ethernet Driver, V1.31
    [    1.616853] eth0: dm9000a at e0838000,e083c00c IRQ 39 MAC: 00:40:5c:26:0a:5b (chip)
    [    1.623722] usbcore: registered new interface driver ath9k_htc
    [    1.629099] sdhci: Secure Digital Host Controller Interface driver
    [    1.634953] sdhci: Copyright(c) Pierre Ossman
    [    1.639317] s3c-sdhci s3c-sdhci.0: clock source 0: hsmmc (133400000 Hz)
    [    1.645807] s3c-sdhci s3c-sdhci.0: clock source 2: sclk_mmc (47642857 Hz)
    [    1.652605] mmc0: no vmmc regulator found
    [    1.656922] Registered led device: mmc0::
    [    1.661006] mmc0: SDHCI controller on samsung-hsmmc [s3c-sdhci.0] using ADMA
    [    1.667701] s3c-sdhci s3c-sdhci.1: clock source 0: hsmmc (133400000 Hz)
    [    1.674146] s3c-sdhci s3c-sdhci.1: clock source 2: sclk_mmc (47642857 Hz)
    [    1.682986] mmc1: no vmmc regulator found
    [    1.685346] Registered led device: mmc1::
    [    1.689318] mmc1: SDHCI controller on samsung-hsmmc [s3c-sdhci.1] using ADMA
    [    1.699252] s3c-sdhci s3c-sdhci.2: clock source 0: hsmmc (133400000 Hz)
    [    1.702486] s3c-sdhci s3c-sdhci.2: clock source 2: sclk_mmc (47642857 Hz)
    [    1.709288] mmc2: no vmmc regulator found
    [    1.715636] Registered led device: mmc2::
    [    1.717615] mmc2: SDHCI controller on samsung-hsmmc [s3c-sdhci.2] using ADMA
    [    1.724348] s3c-sdhci s3c-sdhci.3: clock source 0: hsmmc (133400000 Hz)
    [    1.730824] s3c-sdhci s3c-sdhci.3: clock source 2: sclk_mmc (47642857 Hz)
    [    1.740810] mmc3: no vmmc regulator found
    [    1.741967] Registered led device: mmc3::
    [    1.746035] mmc3: SDHCI controller on samsung-hsmmc [s3c-sdhci.3] using ADMA
    [    1.752951] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
    [    1.761432] s5p-ehci s5p-ehci: S5P EHCI Host Controller
    [    1.764380] s5p-ehci s5p-ehci: new USB bus registered, assigned bus number 1
    [    1.771406] s5p-ehci s5p-ehci: irq 87, io mem 0xec200000
    [    1.789533] s5p-ehci s5p-ehci: USB 0.0 started, EHCI 1.00
    [    1.790770] hub 1-0:1.0: USB hub found
    [    1.790847] hub 1-0:1.0: 1 port detected
    [    1.791927] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
    [    1.798054] s5p-ohci s5p-ohci: EXYNOS OHCI Host Controller
    [    1.801174] s5p-ohci s5p-ohci: new USB bus registered, assigned bus number 2
    [    1.808229] s5p-ohci s5p-ohci: irq 87, io mem 0xec300000
    [    1.872876] hub 2-0:1.0: USB hub found
    [    1.872960] hub 2-0:1.0: 1 port detected
    [    1.874844] usbcore: registered new interface driver usbserial
    [    1.874907] usbserial: USB Serial Driver core
    [    1.874948] Initializing USB Mass Storage driver...
    [    1.878576] usbcore: registered new interface driver usb-storage
    [    1.879346] USB Mass Storage support registered.
    [    1.884519] s3c-udc : S3C HS USB Device Controller Driver, (c) 2008-2009 Samsung Electronics
    [    1.884530] s3c-udc : version 15 March 2009 (DMA Mode)
    [    1.906446] android_usb gadget: Mass Storage Function, version: 2009/09/11
    [    1.906517] android_usb gadget: Number of LUNs=1
    [    1.908906]  lun0: LUN: removable file: (no medium)
    [    1.917974] android_usb gadget: android_usb ready
    [    1.935143] Registered gadget driver 'android_usb'
    [    1.936127] mousedev: PS/2 mouse device common for all mice
    [    1.937682] input: gpio-keys as /devices/platform/gpio-keys/input/input0
    [    1.939892] touchscreen-1wire        initialized
    [    1.939941] backlight-1wire  initialized
    [    1.943390] setup_irq: ret = 0
    [    1.949344] PWM clock = 66700000
    [    1.949382] TCNT_FOR_SAMPLE_BIT = 433, TCFG1 = 00010000
    [    1.955703] input: fa_ts_input as /devices/virtual/input/input1
    [    1.962284] ts-if    initialized
    [    1.964422] S3C24XX RTC, (c) 2004,2006 Simtec Electronics
    [    1.969103] s3c-rtc s3c64xx-rtc: rtc disabled, re-enabling
    [    1.976461] s3c-rtc s3c64xx-rtc: rtc disabled, re-enabling
    [    1.979792] s3c-rtc s3c64xx-rtc: rtc disabled, re-enabling
    [    1.985189] s3c-rtc s3c64xx-rtc: rtc disabled, re-enabling
    [    1.990673] s3c-rtc s3c64xx-rtc: rtc disabled, re-enabling
    [    2.000583] using rtc device, s3c, for alarms
    [    2.000695] s3c-rtc s3c64xx-rtc: rtc core: registered s3c as rtc0
    [    2.007003] i2c /dev entries driver
    [    2.012407] Linux video capture interface: v2.00
    [    2.014907] gspca: v2.13.0 registered
    [    2.018650] usbcore: registered new interface driver zc3xx
    [    2.023604] mfc_init: <6>S5PC110 MFC Driver, (c) 2009 Samsung Electronics
    [    2.023610] 
    [    2.035622] S3C JPEG Driver, (c) 2007 Samsung Electronics
    [    2.037195] JPEG driver for S5PV210
    [    2.041789] i2c i2c-1: attached s5p_ddc into i2c adapter successfully
    [    2.047438] S5PC11X HPD Driver, (c) 2010 Samsung Electronics
    [    2.053696] S5PC11X CEC Driver, (c) 2010 Samsung Electronics
    [    2.060876] usbcore: registered new interface driver uvcvideo
    [    2.064060] USB Video Class driver (v1.1.0)
    [    2.110690] input: mma7660 as /devices/platform/s3c2440-i2c.0/i2c-0/0-004c/input/input2
    [    2.111368] mma7660 0-004c: MMA7660 device is probed successfully.
    [    2.111789] i2c-core: driver [mma7660] using legacy suspend method
    [    2.111853] i2c-core: driver [mma7660] using legacy resume method
    [    2.114800] MMA7660 sensor driver registered.
    [    2.119136] S3C2410 Watchdog Timer, (c) 2004 Simtec Electronics
    [    2.125786] s3c2410-wdt s3c2410-wdt: watchdog inactive, reset disabled, irq enabled
    [    2.134915] device-mapper: uevent: version 1.0.3
    [    2.138459] device-mapper: ioctl: 4.20.0-ioctl (2011-02-02) initialised: dm-devel@redhat.com
    [    2.145779] Bluetooth: HCI UART driver ver 2.2
    [    2.150063] Bluetooth: HCI H4 protocol initialized
    [    2.154842] Bluetooth: HCI BCSP protocol initialized
    [    2.159764] Bluetooth: HCILL protocol initialized
    [    2.164444] Bluetooth: HCIATH3K protocol initialized
    [    2.169384] Bluetooth: Generic Bluetooth USB driver ver 0.6
    [    2.175389] usbcore: registered new interface driver btusb
    [    2.180717] cpuidle: using governor ladder
    [    2.185080] cpuidle: using governor menu
    [    2.208617] usbcore: registered new interface driver usbhid
    [    2.208677] usbhid: USB HID core driver
    [    2.211671] ALSA device list:
    [    2.211711]   No soundcards found.
    [    2.211742] oprofile: hardware counters not available
    [    2.211784] oprofile: using timer interrupt.
    [    2.214112] TCP cubic registered
    [    2.216531] NET: Registered protocol family 17
    [    2.220996] NET: Registered protocol family 15
    [    2.225725] Bluetooth: RFCOMM TTY layer initialized
    [    2.230259] Bluetooth: RFCOMM socket layer initialized
    [    2.235331] Bluetooth: RFCOMM ver 1.11
    [    2.239059] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
    [    2.244356] Bluetooth: BNEP filters: protocol multicast
    [    2.249546] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
    [    2.255892] NET: Registered protocol family 35
    [    2.260125] lib80211: common routines for IEEE802.11 drivers
    [    2.265489] lib80211_crypt: registered algorithm 'NULL'
    [    2.270687] Registering the dns_resolver key type
    [    2.275418] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 2
    [    2.282994] ThumbEE CPU extension supported.
    [    2.287734] s5pv210_cpufreq_init: S5PV210 cpu-freq driver
    [    2.294262] regulator_init_complete: pd_mfc_supply: disabling
    [    2.298338] regulator_init_complete: pd_tv_supply: disabling
    [    2.304023] s3c-rtc s3c64xx-rtc: rtc disabled, re-enabling
    [    2.309451] s3c-rtc s3c64xx-rtc: setting system clock to 2013-01-23 10:13:49 UTC (1358936029)
    [    2.323559] FIMC0 registered successfully
    [    2.325558] FIMC1 registered successfully
    [    2.327653] FIMC2 registered successfully
    [    2.330330] S5PC1XX TVOUT Driver, (c) 2009 Samsung Electronics
    [    2.336619] s5p-tvout s5p-tvout: hpd status is cable removed
    [    2.371581] usb 1-1: new high speed USB device number 2 using s5p-ehci
    [    2.383306] dm9000 dm9000: eth0: link up, 100Mbps, full-duplex, lpa 0xCDE1
    [    2.398891] IP-Config: Guessing netmask 255.255.255.0
    [    2.399198] IP-Config: Complete:
    [    2.399239]      device=eth0, addr=192.168.1.80, mask=255.255.255.0, gw=255.255.255.255,
    [    2.399315]      host=192.168.1.80, domain=, nis-domain=(none),
    [    2.399365]      bootserver=255.255.255.255, rootserver=192.168.1.5, rootpath=
    [    2.502828] hub 1-1:1.0: USB hub found
    [    2.503021] hub 1-1:1.0: 4 ports detected
    [    2.653901] VFS: Mounted root (nfs filesystem) on device 0:13.
    [    2.654047] Freeing init memory: 148K
    [    5.735512] s3c-rtc s3c64xx-rtc: rtc disabled, re-enabling

    Please press Enter to activate this console. 
    [    6.200469] udevd[876]: starting version 175

    [root@FA-HF /]# 
    [   12.817109] vo_open::check tvout start !!
    [   12.821308] vo_open::check tvout start !!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值