Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1162909
  • 博文数量: 93
  • 博客积分: 7185
  • 博客等级: 准将
  • 技术积分: 3560
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-02 13:54
文章分类
文章存档

2011年(43)

2010年(11)

2009年(27)

2008年(12)

分类: 嵌入式

2009-09-07 23:30:32

16. 制作ramfs

为了测试,仅制作文件系统..步骤如下
RDSIZE=1024 
BLKSIZE=1024
#
为了测试,越小越好,创建一个1M ram disk,这样下载快(现在我只有串口)
dd if=/dev/zero of=ramdisk.img bs=$BLKSIZE count=$RDSIZE
#
在其上制作ext2文件系统
/sbin/mke2fs -F -m 0 -b $BLKSIZE ramdisk.img $RDSIZE    
-F      
强制运行,不管是否是块设备/或者已经安装
-m 0    
设置预留块数量的百分比, 我们可不能浪费,所以一个都不保留....呵呵.
-b 1024 
一个block 1k
下载,运行,呵呵又出错了:
try load ram disk /*这是自己加的调试信息*/
RAMDISK: ext2 filesystem found at block 0   /*
我们制作的是ext2文件系统,这里也认出了*/
RAMDISK: Loading 4000KiB [1 disk] into ram disk... done. /*
这里看出initrd真是加载成功了,到了ramdisk0*/
load image ret 1   /*这是自己加的调试信息, mount失败*/    
      
原因很明显,我们根本没有编译ext2文件系统支持, 重新配置编译,运行.呵呵根文件系统安装真的成功了.不过,问题还没有完:
VFS: Mounted root (ext2 filesystem).
Freeing init memory: 92K
Warning: unable to open an initial console.
Failed to execute /linuxrc.  Attempting defaults...
Kernel panic - not syncing: No init found.  Try passing init= option to kernel.
这个嘛,嘿嘿,我们的文件系统上啥都没有, 得搞个什么东西上去才行啊.
--------------------------------------------------------------------------------

16.1 initrd "hello world"  
   
也试了直接编译busybox,可是看起来busybox启动了,但是没有任何输出.busybox的说明,busybox建议最好自己用cross toolchain搞个hello world试试,看看你能不能运行,不行的话就别搞busybox,肯定不行啦.
  
故而,hello world一个(好久不hello world):  
arm-linux-gcc -static -o test test.c  
arm-linux-objcopy -S test test_strip  [
这个去掉大部分没有用的段,大大减小bin的大小]  
   
然后用arm-linux-readelf -A test 看看. (aeabi)   rootfs(ramdisk.img)建立/dev和必要的设备文件:  
mount -t ext2 ramdisk.img /mnt/initrd -o loop  
mkdir dev  
cp -a /dev/null dev  
cp -a /dev/console dev  
cp /cross/src/linux2.6.24.4/test_strip linuxrc   [
我们的hello world就是linuxrc,呵呵]  
sync  
umount /mnt/initrd     
gzip -9 ramdisk.img 
    
下载, 启动.... 没有看到我熟悉的hello world
VFS: Mounted root (ext2 filesystem).
Freeing init memory: 92K
selected clock c01adf24 (pclk) quot 26, calc 115740
     google
,发现自己几乎犯过了所有的毛病,先是内核并不支持eabi串口无输出,就编译成支持eabi的内核,结果一样不幸.google,发现float point emulation必须选一,我没选,选上重来. 最终float point终于解决了这个问题.内核中只能使用浮点模拟,运行大部分的 binaries 都需要浮点支持.
  
最后hello world终于搞定了. (经测试,没有eabi支持的内核照样可以hello world,以后再研究吧]
VFS: Mounted root (ext2 filesystem).
Freeing init memory: 92K
selected clock c01adf24 (pclk) quot 26, calc 115740
hello world  [这就是我们期待的输出...]

--------------------------------------------------------------------------------

16.2 busy box
    先编译一个busybox用用,  下载最新的1.9.2玩玩.
   
配置的时候选上 don't use /usr,不然make install 就完蛋了
make ARCH=arm CROSS_COMPILE=arm-linux- allnoconfig
make ARCH=arm  CROSS_COMPILE=arm-linux- menuconfig  /*
只要ash mount echo ls cat ps dmsg sysctl, static 连接*/
make  ARCH=arm  CFLAGS="-I/cross/cross-arm/arm-linux/sys-include/" CROSS_COMPILE=arm-linux-
make  ARCH=arm  CFLAGS="-I/cross/cross-arm/arm-linux/sys-include/" CROSS_COMPILE=arm-linux- install
(
需要把applets.c的警告去掉, glibc静态连接不好用,bug,我们就试试,玩玩, 建议用ulibc,呵呵)然后就开始制作了:
#
把我们先前制作的ramdisk.img加载到临时目录
mount ramdisk.img /mnt/initrd -t ext2 -o loop=/dev/loop0
# busy box
为我们建立好了各种符号连接,copy即可
cp -rf  /cross/src/busybox-1.9.2/_install/*  .
我们的rootfs就有了 bin sbin linuxrc
#
然后在ramdisk上建立如下目录
mkdir dev
#
创建相应的设备文件
cp -a /dev/console dev
cp -a /dev/null dev
#cp -a /dev/ttyS0 dev   #
没用s3c2410上串口设备是s3c2410_serial1
#cp -a /dev/ttyS1 dev   #
#
解除安装, 可以压缩的(俺的很小,不压缩也罢!)
umount /mnt/initrdgzip -9 ramdisk.img
#
先搞这么多,先玩一把,下面是输出,爽啊
FS: Mounted root (ext2 filesystem).
Freeing init memory: 92K
selected clock c01a9df0 (pclk) quot 26, calc 115740
selected clock c01a9df0 (pclk) quot 26, calc 115740
init started: BusyBox v1.9.2 (2008-04-18 22:44:50 CST)
selected clock c01a9df0 (pclk) quot 26, calc 115740
command='reboot' action=32 tty=''
command='umount -a -r' actselected clock c01a9df0 (pclk) quot 26, calc 115740ion=64 tty=''
command='init' action=128 tty=''
command='-/bin/sh' action=4 tty=''
command='-/bin/sh' action=4 tty='/dev/tty2'
command='-/bin/sh' action=4 tty='/dev/tty3'
command='-/bin/sh' action=4 tty='/dev/tty4'
command='/etc/init.d/rcS' action=1 tty=''
starting pid 720, tty '': '/etc/init.d/rcS'
Cannot run '/etc/init.d/rcS': No such file or directory
waiting for enter to start '/bin/sh'(pid 721, tty '')
Please press Enter to activate this console.
Can't open /dev/tty3: No such file or directory
Can't open /dev/tty4: No such file or directory
process '-/bin/sh' (pid 724) exited. Scheduling it for restart.
process '-/bin/sh' (pid 726) exited. Scheduling it for restart.
Can't open /dev/tty3: No such file or directory
Can't open /dev/tty4: No such file or directory(
不断重复中,看看需要做的东西还多着呢,不过ash已经启动了...ls可以工作的..呵呵)
这个事情有人报告是个bug:

关于这个问题的报告 既然如此,先升级的1.10.1看看, 测试结果:
1. applets.c
的警告没有了
2. make ARCH=arm CROSS_COMPILE=arm-linux-  CFLAGS=-I/cross/cross-arm/arm-linux/sys-linux
这次busybox选的东西比较多,弄了个2Mramdisk, 压缩后399k. ...
问题一样地...,好了自己写linuxrc.
--------------------------------------------------------------------------------

16.3 busybox 配置脚本
1) 先简单看看各种文件系统的作用吧:
tmpfs  :/dev/shm   #share mem
对应的文件系统
devpts :/dev/pts   #
目前最常见的 pseudo 终端(PTYs)实现方式
sysfs  :/sys       #sysfs
包含进程相关的proc fs,设备相关的devfs以及为终端相关的devpty fs的信息,是当前趋势
                    
由内核内的kobj形成,udev严重依赖于sysf,能够在/dev目录下产生系统真正存在的设备,而不是一锅粥的方式
                      sysfs
udev配合,势必要击败devfs+devfsd(?)
udev   :           #
需要/etc/udev/rules.d 目录和一堆的配置规则
devfs   :/dev         #
devfsd配合使用, devfsd将会负责创建旧类型兼容性设备节点;在注册/注销设备时执行自动化操作;                      负责备份对根文件系统上某个目录的设备许可权和所有权的更改,以及其它更多功能
proc   :proc       # proc
文件系统,不必多说

2)
简单的inuxrc:
#!/bin/she
cho echo "Open ARM AKAE "
echo
mount -t proc /proc /proc
mount -t sysfs sysfs /sys
mount -t devpts devpts /dev/pts
echo "Start mdev..."
mdev -s                         /*mdev -s
把设备从sysfs 同步到/dev目录,需要要/etc/mdev.conf*/
init                            /*
传递给脚本inittab...*/

3) /etc/inittab
s3c2410_serial1::respawn:-/bin/sh   #/*
注意s3c2410上串口的设备名称是/dev/s3c2410_serial[0..3]*/

4) /etc/mdev.conf
#
空文件,有就行,用了在说吧

5)
启动信息
Open ARM akae
Start mdev...
selected clock c0239b70 (pclk) quot 26, calc 115740
init started: Busyselected clock c0239b70 (pclk) quot 26, calc 115740
Box v1.10.1 (2008-04-19 15:27:01 CST)
command='-/bin/sh ' action=2 tty='/dev/s3c2410_serial1'
starting pid 229, tty '/dev/s3c2410_serial1': '-/bin/sh '
BusyBox v1.10.1 (2008-04-19 15:27:01 CST) built-in shell (ash)
Enter 'help' for a list of built-in commands.
#

6)
Trouble shoot
(1)
/bin/sh: can't access tty; job control turned off
  busybox
通过系统控制台来做些工作, 如果我们的shell启动在 /dev/console  (5,1), tty_io.c 函数opennoctty就被设置成1,导致这个问题,具体原因还不知道.总之要启动在一个真实的串口就没有关系
 
解决方法可以通过busyboxinit指定shell的设备, 注意, S3C2410, 串口1s3c2410_serial1.最终就是在etc/inittab中加入下面一句话就可以了:
s3c2410_serial1::respawn:-/bin/sh   #/*
注意s3c2410上串口的设备名称是/dev/s3c2410_serial[0..3]*/
(2)busybox
init脚本问题  no tty3 tty4 之类
 
可以先启动mdev, (mdev -s), 然后运行init就可以了.
  
就是让/dev/tty0-4 都存在即可.... (具体原因未知)
(3)
加载mtdblock3 jffs2文件系统出现下述信息:
   jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0001001c: 0x3c04
  
建议:将此分区数据清除,更近一步,加载一个image到这个分区.
(4)
下载了新内核,ramdisk找不到了
  runaddr
ramdisk距离太近, 内核解压缩后覆盖了ramdisk... ft
--------------------------------------------------------------------------------

16.4 busy boxinit 和各种脚本的分工
 
看到上面的脚本...写的不咋样,甚至都不符合各种配置文件的具体分工,很不规整. 下面来研究一个比较规整的方案. 下面是google结果(busybox init的代码?,人生苦短,以后把)
1)
在串口上启动 shell 
   为了避开在busybox "job control"的那个问题, /dev/console 直接改成 s3c2410_serial1的设备号,就是:
  mknod -m 666 console c 204 65  #204, 64,65,66
 
然后直接用busybox _install目录下的linuxrc,busybox的一个软连接,也是启动init. 

2)
busybox init的流程
   简单说,就是执行inittab里指定的命令.具体流程如下:  
a)
如果没有/etc/inittab,则默认执行/etc/init.d/rcS (见下面说明)  
b)
执行inittab中动作类型为wait的命令  
c)
执行inittab中动作类型是once的命令  
d)
然后进入等待和循环执过程
     .
如果一动作为respawn类型的进程退出了,就重新启动它
     .
如果动作为askfirst类型的程序退出了,也要重新启动它,但是先询问用户.
   busybox
inittab的语法格式是: (examples/inittab) 
id:runlevels:action:process
 
id: busybox id域指定程序运行的控制台. 如果是串口控制台,id
 
runlevels:  busybox根本不使用它
 
action: 字段定义了该进程应该运行在何种状态下:
      sysinit :boot time
时执行 (第一此运行init的时候?) 
      respawn :init
监视其启动的进程,如果退出了,这种类型的进程需要重新启动
      askfirst:
respawn差不多,就是要按下回车键才运行
      wait    :
要等待其运行完成
      once    :
只运行一次
      ctrlaltdel :
这个组合键按下时启动.

  busybox init
的默认动作:
 ::sysinit:/etc/init.d/rcS
 ::askfirst:/bin/sh
  
如果/dev/console 不是串口终端则继续运行:
  tty2::askfirst:/bin/sh

3)
inittab
#
pc机上这个inittab本来是定义运行级别来着,这里就简单这么写吧
::sysinit:/etc/init.d/rcS
console::askfirst:-/bin/sh         #
我们把console换成了第一串口

4)
etc/init.d/rcS
#!/bin/sh
echo
echo "Open ARM AKAE- "
echo
mount -t proc /proc /proc
mount -t devpts devpts /dev/pts
echo "Start mdev..."
# read the busybox docs: mdev.txt, you need config your kernerl with hotplug surport
mount -t sysfs sysfs /sys
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s

5)
一个空的/etc/mdev.conf文件先对付着

6)
/etc/fstab也没有做   

--------------------------------------------------------------------------------
17.
内核启动信息分析

Uncompressing Linux...................................................... done          
, booting the kernel.                                              [
archarmootcompressedmisc.c: decompress_kernel()]
Linux version 2.6.24.4 (root@localhost.localdomain) (gcc version 4.1.2) #7
Tue Apr 15 07:50:25 CST 2008                                                                                      [
init/main.c :start_kernel]
CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=c0007177                   [
start_kernel->setup_arch->setup_processor]
Machine: SMDK2410                                                                                           [setup_arch->setup_machine]
Converting old-style param struct to taglist                                  [
setup_arch->convert_to_tag_list->..->build_tag_list]
ATAG_INITRD is deprecated; please update your bootloader.                       [setup_arch->parse_tags->parse_tag_initrd ]
Memory policy: ECC disabled, Data cache writeback                          [
setup_arch->paging_init->build_mem_type_table]
On node 0 totalpages: 16384   [
setup_arch->paging_init->bootmem_init_node->free_area_init_node-> calculate_node_totalpages]
   DMA zone: 128 pages used for memmap                        [
setup_arch->..->free_area_init_node->free_area_init_core]
   DMA zone: 0 pages reserved
   DMA zone: 16256 pages, LIFO batch:3
   Normal zone: 0 pages used for memmap
   Movable zone: 0 pages used for memmap

CPU S3C2440A (id 0x32440001) [setup_arch->paging_init->devicemaps_init->mdesc->smdk2410_map_io->s3c24xx_init_io]
S3C244X: core 400.000 MHz, memory 100.000 MHz, peripheral 50.000 MHz [..
smdk2410_map_io->cpu_ids->s3c244x_init_clocks]
S3C24XX Clocks, (c) 2004 Simtec Electronics                                       [...
s3c244x_init_clocks->s3c24xx_setup_clocks]
CLOCK: Slow mode (1.500 MHz), fast, MPLL on, UPLL on                          [...
s3c244x_init_clocks->s3c2410_baseclk_add]

CPU0: D VIVT write-back cache                                                                [setup_arch->cpu_init->dump_cpu_info]
CPU0: I cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets
CPU0: D cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 16256                         [
start_kernel->build_all_zonelists]
Kernel command line: root=/dev/ram init=/linuxrc initrd=0x30a00000,0x00100000                  [
start_kernel, print cmd line ]
console=
ttySAC1,115200 mem=65536K devfs=mount
irq: clearing pending ext status 000dff00          [
start_kernel->init_IRQ->init_arch_irq(mdesc->init_irq)->s3c24xx_init_irq]
irq: clearing pending ext status 00001000          [
init_arch_irq arm体系下是一个函数指针,setup_arch初始化其为mdesc->init_irq]
irq: clearing subpending status 0000009a
irq: clearing subpending status 00000092
PID hash table entries: 256 (order: 8, 1024 bytes)  [
start_kernel->pidhash_init]
timer tcon=00090000, tcnt a2c1, tcfg 00000200,00000000, usec 00001eb8  [
start_kernel->time_init->system_timer.init->
                                                                                                  s3c2410_timer_init->s3c2410_timer_setup]
        [
setup_arch中初始化全局函数指针 system_timer = mdesc->timer ,s3c24xx_timer, arch/arm/plat-s3c24xx/timer.c]
Console: colour dummy device 80x30                [
start_kernel->console_init-> via lds __con_initcall_start ->vt:con_init]
selected clock c0239b70 (pclk) quot 26, calc 115740 [console_initcall(s3c24xx_serial_initconsole)->register_console->console.setup->
s3c24xx_serial_console.setup(s3c24xx_serial_console_setup)->uart_set_options->s3c24xx_serial_set_termios->s3c24xx_serial_getclk]console [
ttySAC1] enabled                             [console_initcall(s3c24xx_serial_initconsole)->register_console]
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)                                          [
start_kernel->vfs_caches_init_early]
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 64MB = 64MB total                                                                                                             [
start_kernel->mem_init]
Memory: 61440KB available (2060K code, 248K data, 108K init)
Calibrating delay loop... 199.47 BogoMIPS (lpj=498688)                                                            [
start_kernel->calibrate_delay]
Mount-cache hash table entries: 512                                &n bsp;                                     [start_kernel-> vfs_caches_init->mnt_init]
CPU: Testing write buffer coherency: ok                                    [
start_kernel->check_bugs->check_writebuffer_bugs]
net_namespace: 64 bytes                   [
start_kernel->rest_init->kernel_init->do_basic_setup->pure_initcall(net_ns_init)]
NET: Registered protocol family 16                                                     [
core_initcall(netlink_proto_init)->sock_register]
S3C2440: Initialising architecture                          [
arch_initcall(s3c_arch_init)->(cpu->init())->cpu_ids->s3c2410_init]
S3C2440: IRQ Support             [
arch_initcall(s3c2440_irq_init)->sysdev_driver_register->drv.add()->s3c2440_irq_add]
S3C2440: Clock Support, DVS off                          [
arch_initcall(s3c24xx_clk_driver)->s3c2440_clk_driver.s3c2440_clk_add]
S3C24XX DMA Driver, (c) 2003-2004,2006 Simtec Electronics       [
arch_initcall(s3c2410_dma_drvinit)->sysdev_driver_register->
DMA channel 0 at c4800000, irq 33              c2410_dma_driver.s3c2410_dma_add->s3c2410_dma_init->s3c24xx_dma_init]
DMA channel 1 at c4800040, irq 34
DMA channel 2 at c4800080, irq 35
DMA channel 3 at c48000c0, irq 36
usbcore: registered new interface driver usbfs   [
subsys_initcall(usb_init)->usb_register(&usbfs_driver)->usb_register_driver]
usbcore: registered new interface driver hub    [
subsys_initcall(usb_init)->usb_hub_init(&hub_driver)->usb_register_driver]
usbcore: registered new device driver usb        [
subsys_initcall(usb_init)->usb_register_device_driver(&usb_generic_driver)]
NET: Registered protocol family 2                                                                                        [
fs_initcall(inet_init)->sock_register]
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)                                [fs_initcall(inet_init)->ip_init->ip_rt_init ]
TCP established hash table entries: 2048 (order: 2, 16384 bytes)    [
fs_initcall(inet_init)->ip_init->tcp_init]
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)                [
fs_initcall(inet_init)->ip_init->tcp_init]
TCP: Hash tables configured (established 2048 bind 2048)              [
fs_initcall(inet_init)->ip_init->tcp_init]
TCP reno registered                              [
fs_initcall(inet_init)->ip_init->tcp_init->tcp_register_congestion_control]
checking if image is initramfs...<5>it isn't (no cpio magic); looks like an initrd                  [
rootfs_initcall(populate_rootfs)]
Freeing initrd memory: 1024K              [
rootfs_initcall(populate_rootfs)->free_initrd->free_initrd_mem->free_area]
NetWinder Floating Point Emulator V0.97 (extended precision)  [
module_init(fpe_init);]
JFFS2 version 2.2. (NAND)
2001-2006 Red Hat, Inc.    [module_init(init_jffs2_fs);]
io scheduler noop registered                            [
module_init(noop_init)->elv_register]
io scheduler anticipatory registered (default)                      [
module_init(as_init)->elv_register]
io scheduler deadline registered                     [
module_init(deadline_init)->elv_register]
io scheduler cfq registered                                              [
module_init(cfq_init)->elv_register]
Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enabled            [
module_init(serial8250_init)]
s3c2440-uart.0: s3c2410_serial0 at MMIO 0x50000000 (irq = 70) is a S3C2440 [
module_init(s3c24xx_serial_modinit)->s3c2440_serial_init->
s3c2440-uart.1: s3c2410_serial1 at MMIO 0x50004000 (irq = 73) is a S3C2440  s3c2440_serial_probe->uart_add_one_port->
s3c2440-uart.2: s3c2410_serial2 at MMIO 0x50008000 (irq = 76) is a S3C2440  uart_configure_port->uart_report_port]
RAMDISK driver initialized: 2 RAM disks of 4096K size 1024 blocksize                                               [
module_init(rd_init);]
loop: module loaded                                                                                                               [
module_init(loop_init);]
S3C24XX NAND Driver, (c) 2004 Simtec Electronics                                          [
module_init(s3c2410_nand_init);]
s3c2440-nand s3c2440-nand: Tacls=3, 30ns Twrph0=7 70ns, Twrph1=3 30ns  [
s3c2440_nand_probes->3c2410_nand_inithw]
NAND device: Manufacturer ID: 0xec, Chip ID: 0x76 (Samsung NAND 64MiB 3,3V 8-bit) [ form above...->nand_scan_ident nand_get_flash_type]
Scanning device for bad blocks   [s3c24xx_nand_probe->nand_scan ->nand_scan_tail->chip->scan_bbt:..->create_bbt]
Creating 4 MTD partitions on "NAND 64MiB 3,3V 8-bit":                       [
s3c2410_nand_add_partition->add_mtd_partitions]
0x00000000-0x00030000 : "Boot Agent"
0x00030000-0x00200000 : "kernel"
0x00200000-0x02000000 : "ramfs"
0x02000000-0x04000000 : "extfs"
ohci_hcd: 2006 August 04 USB 1.1 'Open' Host Controller (OHCI) Driver
ohci_hcd: block sizes: ed 64 td 64
s3c2410-ohci s3c2410-ohci: s3c2410_start_hc:
s3c2410-ohci s3c2410-ohci: S3C24XX OHCI
s3c2410-ohci s3c2410-ohci: new USB bus registered, assigned bus number 1
s3c2410-ohci s3c2410-ohci: irq 42, io mem 0x49000000
s3c2410-ohci s3c2410-ohci: created debug files
s3c2410-ohci s3c2410-ohci: OHCI controller state
s3c2410-ohci s3c2410-ohci: OHCI 1.0, NO legacy support registers
s3c2410-ohci s3c2410-ohci: control 0x083 HCFS=operational CBSR=3
s3c2410-ohci s3c2410-ohci: cmdstatus 0x00000 SOC=0
s3c2410-ohci s3c2410-ohci: intrstatus 0x00000004 SF
s3c2410-ohci s3c2410-ohci: intrenable 0x8000005a MIE RHSC UE RD WDH
s3c2410-ohci s3c2410-ohci: hcca frame #001e
s3c2410-ohci s3c2410-ohci: roothub.a 02001202 POTPGT=2 NOCP NPS NDP=2(2)
s3c2410-ohci s3c2410-ohci: roothub.b 00000000 PPCM=0000 DR=0000
s3c2410-ohci s3c2410-ohci: roothub.status 00008000 DRWE
s3c2410-ohci s3c2410-ohci: roothub.portstatus [0] 0x00000100 PPS
s3c2410-ohci s3c2410-ohci: roothub.portstatus [1] 0x00000100 PPSu
sb usb1: default language 0x0409
usb usb1: uevent
usb usb1: usb_probe_device
usb usb1: configuration #1 chosen from 1 choice
usb usb1: adding 1-0:1.0 (config #1, interface 0)
usb 1-0:1.0: uevent
hub 1-0:1.0: usb_probe_interface
hub 1-0:1.0: usb_probe_interface - got id
hub 1-0:1.0: USB hub found
s3c2410-ohci s3c2410-ohci: s3c2410_hub_control(c3c2b400,0xa006,0x2900,0x0000,c3c19a84,000f)
hub 1-0:1.0: 2 ports detected
hub 1-0:1.0: standalone hub
hub 1-0:1.0: no power switching (usb 1.0)
hub 1-0:1.0: no over-current protection
hub 1-0:1.0: power on to power good time: 4ms
s3c2410-ohci s3c2410-ohci: s3c2410_hub_control(c3c2b400,0xa000,0x0000,0x0000,c3c19a40,0004)
hub 1-0:1.0: local power source is good
hub 1-0:1.0: trying to enable port power on non-switchable hub
s3c2410-ohci s3c2410-ohci: s3c2410_hub_control(c3c2b400,0x2303,0x0008,0x0001,c3c19a40,0000)
s3c2410-ohci s3c2410-ohci: s3c2410_hub_control(c3c2b400,0x2303,0x0008,0x0002,c3c19a40,0000)
hub 1-0:1.0: state 7 ports 2 chg 0000 evt 0000
usb usb1: new device strings: Mfr=3, Product=2, SerialNumber=1
usb usb1: Product: S3C24XX OHCI
usb usb1: Manufacturer: Linux 2.6.24.4 ohci_hcd
usb usb1: SerialNumber: s3c24xx
s3c2410_udc: debugfs dir creation failed -19
s3c2410-ohci s3c2410-ohci: s3c2410_hub_control(c3c2b400,0xa300,0x0000,0x0001,c3c6fe30,0004)
s3c2410-ohci s3c2410-ohci: s3c2410_hub_control(c3c2b400,0xa300,0x0000,0x0002,c3c6fe30,0004)
mice: PS/2 mouse device common for all mice                        [
module_init(mousedev_init);]
S3C24XX RTC, (c) 2004,2006 Simtec Electronics                       [
module_init(s3c_rtc_init);]
s3c2440-i2c s3c2440-i2c: slave address 0x10    [
s3c2440_i2c_driver.s3c24xx_i2c_probe->s3c24xx_i2c_init]
s3c2440-i2c s3c2440-i2c: bus frequency set to 390 KHz   [
同上]
s3c2440-i2c s3c2440-i2c: i2c-0: S3C I2C adapter                           [
s3c2440_i2c_driver.s3c24xx_i2c_probe]
S3C2410 Watchdog Timer, (c) 2004 Simtec Electronics   [
module_init(watchdog_init);]
s3c2410-wdt s3c2410-wdt: watchdog inactive, reset disabled, irq enabled
TCP cubic registered          [
module_init(cubictcp_register)->tcp_register_congestion_control]
drivers/rtc/hctosys.c: unable to open rtc device (rtc0)   [
late_initcall(rtc_hctosys)]
RAMDISK: Compressed image found at block 0  [
kernel_init->prepare_namespace->initrd_load->rd_load_image->identify_ramdisk_image]
VFS: Mounted root (ext2 filesystem).      [
kernel_init->prepare_namespace->mount_root->mount_block_root->do_mount_root]
Freeing init memory: 108K
selected clock c0239b70 (pclk) quot 26, calc 115740  /*
以下内容为busybox产生*/
selected clock c0239b70 (pclk) quot 26, calc 115740
init started: BusyBox v1.10.1 (2008-04-19 15:27:01 CST)
selected clock c0239b70 (pclk) quot 26, calc 115740
starting pid 225, tty '': '/etc/init.d/rcS'
Open ARM AKAE-
Start mdev...
mount: mounting sysfs on /sys failed: Device or resource busy
selected clock c0239b70 (pclk) quot 26, calc 115740
starting pid 236, tty '/dev/console': '-/bin/sh '
BusyBox v1.10.1 (2008-04-19 15:27:01 CST) built-in shell (msh)
Enter 'help' for a list of built-in commands.

--------------------------------------------------------------------------------

阅读(1913) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~