移植linux-2.6.29+busybox最小系统到单板OK6410

来源:互联网 发布:微博登录网络异常 编辑:程序博客网 时间:2024/05/16 10:18

系统:ubuntu 10.04.4
单板:ok6410
编译器:arm-none-linux-gnueabi-

搭建开发环境详见ubuntu 10.04.4开发环境配置。
目标:
一.配置 编译android-2.6.29,放到OK6410上,板子串口正常输出
二.移植DM9000网卡驱动,配置内核,支持nfs挂载网络文件系统

一.配置 编译android-2.6.29,放到OK6410上,板子串口正常输出

1.获取交叉编译链 http://code.google.com/p/smp-on-qemu/downloads/list 选择arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2并下载。然后在ubuntu下直接解压即可
2.git下载内核源码android-2.6.29

change@change:~$ mkdir android

change@change:~/android$ git clonehttps://android.googlesource.com/kernel/goldfish.git
Initialized empty Git repository in /home/change/android/goldfish/.git/
remote: Counting objects: 41021, done
remote: Finding sources: 100% (114/114)
remote: Getting sizes: 100% (70/70)
remote: Compressing objects: 100% (311571/311571)
Receiving objects: 100% (2442756/2442756), 499.75 MiB | 901 KiB/s, done.
remote: Total 2442756 (delta 2048893), reused 2442724 (delta 2048890)
Resolving deltas: 100% (2049059/2049059), done.

显示100%之后则表示同步完成。此时goldfish下的所有内核版本的源码都已同步完成
设定默认使用版本
进入到goldfish目录下,使用如下命令查看所有可用版本名称。
change@change:~/android$ cd goldfish/
change@change:~/android/goldfish$ git branch -a

我的系统显示如下:
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/android-goldfish-2.6.29
  remotes/origin/android-goldfish-3.4
  remotes/origin/linux-goldfish-3.0-wip
  remotes/origin/master
“*”指代的当前目录下默认的版本。设定“android-goldfish-2.6.29”为默认,则可以在终端中输入如下命令:
git checkout -b android-2.6.29 origin/android-goldfish-2.6.29
-b后面的android-2.6.29只是给后面的内核源码版本起了个自己定义的名字,方便自己查看而已,也可以不定义,不定义就会使用默认名称。此时,查看goldfish下的目录即为“android-goldfinsh-2.6.29”版本的模拟器内核源码。在goldfish目录下使用如下命令进行查看当前内核版本的名称。
change@change:~/android/goldfish$ git checkout -b android-2.6.29 origin/android-goldfish-2.6.29
Checking out files: 100% (26821/26821), done.
Branch android-2.6.29 set up to track remote branch android-goldfish-2.6.29 from origin.
Switched to a new branch 'android-2.6.29'
change@change:~/android/goldfish$ git branch
* android-2.6.29
  master

下载的android-2.6.29代码如下:
change@change:~/android/goldfish$ ls
arch     CREDITS        drivers   include  Kbuild  MAINTAINERS  net             samples   sound
block    crypto         firmware  init     kernel  Makefile     README          scripts   usr
COPYING  Documentation  fs        ipc      lib     mm           REPORTING-BUGS  security  virt
change@change:~/android/goldfish$

3.修改顶部Makefile:193
ARCH            ?= arm
CROSS_COMPILE   ?= /home/change/tools/arm-2009q3//bin/arm-none-linux-gnueabi-
4.配置
make s3c6400_defconfig
5.编译make uImage

make uImage
Image Name:   Linux-2.6.29-gcb06bef-dirty
Created:      Fri Jan 18 14:24:35 2013
Image Type:   ARM Linux Kernel Image (uncompressed)
Data Size:    938176 Bytes = 916.19 kB = 0.89 MB
Load Address: 50008000
Entry Point:  50008000
  Image arch/arm/boot/uImage is ready
编译过程比较顺利,没有报错

SMDK6410 # set bootcmd 'nand read 0x50000000 0x100000 0x300000;bootm 0x50000000'
SMDK6410 # boot
Unknown command 'nand' - try 'help'
## Booting kernel from Legacy Image at 50000000 ...
   Image Name:   Linux-2.6.29-ge3d684d-dirty
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    943040 Bytes = 920.9 KiB
   Load Address: 50008000
   Entry Point:  50008000
   Verifying Checksum ... Bad Data CRC
ERROR: can't get kernel image!
SMDK6410 #tftp 0x50000000 uImage                                               
dm9000 i/o: 0x18000000, id: 0x90000a46
DM9000: running in 16 bit mode
MAC: 00:0c:29:4d:e4:f4
operating at 100M full duplex mode
Using dm9000 device
TFTP from server 172.16.1.132; our IP address is 172.16.1.111
Filename 'uImage'.
Load address: 0x50000000
Loading: #################################################################
done
Bytes transferred = 943104 (e6400 hex)
SMDK6410 # md 0x50000000
50000000: 56190527 3d367e35 d0678651 c0630e00    '..V5~6=Q.g...c.
50000010: 00800050 00800050 15e75322 00020205    P...P..."S......
50000020: 756e694c 2e322d78 39322e36 3365672d    Linux-2.6.29-ge3
50000030: 34383664 69642d64 00797472 00000000    d684d-dirty.....
50000040: e1a00000 e1a00000 e1a00000 e1a00000    ................
50000050: e1a00000 e1a00000 e1a00000 e1a00000    ................
50000060: ea000002 016f2818 00000000 000e63c0    .....(o......c..
50000070: e1a07001 e1a08002 e10f2000 e3120003    .p....... ......
50000080: 1a000001 e3a00017 ef123456 e10f2000    ........V4... ..
50000090: e38220c0 e121f002 00000000 00000000    . ....!.........
500000a0: e28f00d0 e890307e e0500001 0a00000a    ....~0....P.....
500000b0: e0855000 e0866000 e08cc000 e0822000    .P...`....... ..
500000c0: e0833000 e08dd000 e5961000 e0811000    .0..............
500000d0: e4861004 e156000c 3afffffa e3a00000    ......V....:....
500000e0: e4820004 e4820004 e4820004 e4820004    ................
500000f0: e1520003 3afffff9 eb000028 e1a0100d    ..R....:(.......
SMDK6410 # nand read 0x50000000 0x100000 0x300000

NAND read: device 0 offset 0x100000, size 0x300000
realpage value:1023
page value:1023
ret value:0
 3145728 bytes read: OK
SMDK6410 # md 0x50000000
50000000: 56190527 3d367e35 d0678651 c0630e00    '..V5~6=Q.g...c.
50000010: 00800050 00800050 15e75322 00020205    P...P..."S......
50000020: 756e694c 2e322d78 39322e36 3365672d    Linux-2.6.29-ge3
50000030: 34383664 69642d64 00797472 00000000    d684d-dirty.....
50000040: e1a00000 e1a00000 e1a00000 e1a00000    ................
50000050: e1a00000 e1a00000 e1a00000 e1a00000    ................
50000060: ea000002 016f2818 00000000 000e63c0    .....(o......c..
50000070: e1a07001 e1a08002 e10f2000 e3120003    .p....... ......
50000080: 1a000001 e3a00017 ef123456 e10f2000    ........V4... ..
50000090: e38220c0 e121f002 00000000 00000000    . ....!.........
500000a0: e28f00d0 e890307e e0500001 0a00000a    ....~0....P.....
500000b0: e0855000 e0866000 e08cc000 e0822000    .P...`....... ..
500000c0: e0833000 e08dd000 e5961000 e0811000    .0..............
500000d0: e4861004 e156000c 3afffffa e3a00000    ......V....:....
500000e0: e4820004 e4820004 e4820004 e4820004    ................
500000f0: e1520003 3afffff9 eb000028 e1a0100d    ..R....:(.......
SMDK6410 #

放到内存读出的数据也一样,这个问题感觉怪怪的,可能是u-boot留下的bug,但是这样有可以启动,等我实现上面目标,最后再解决这个新问题。

SMDK6410 # tftp 0x50000000 uImage
dm9000 i/o: 0x18000000, id: 0x90000a46
DM9000: running in 16 bit mode
MAC: 00:0c:29:4d:e4:f4
operating at 100M full duplex mode
Using dm9000 device
TFTP from server 172.16.1.132; our IP address is 172.16.1.111
Filename 'uImage'.
Load address: 0x50000000
Loading: #################################################################
done
Bytes transferred = 943104 (e6400 hex)
SMDK6410 # bootm 0x50000000
## Booting kernel from Legacy Image at 50000000 ...
   Image Name:   Linux-2.6.29-ge3d684d-dirty
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    943040 Bytes = 920.9 KiB
   Load Address: 50008000
   Entry Point:  50008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux.............................................................. done, booting the kernel.

Error: unrecognized/unsupported machine ID (r1 = 0x000004f6).

Available machine support:

ID (hex)        NAME
0000065a        SMDK6410

Please check your kernel config and/or bootloader.

好吧现实试试,重启设置machid

SMDK6410 # set machid 65a
SMDK6410 # tftp 0x50000000 uImage
dm9000 i/o: 0x18000000, id: 0x90000a46
DM9000: running in 16 bit mode
MAC: 00:0c:29:4d:e4:f4
operating at 100M full duplex mode
Using dm9000 device
TFTP from server 172.16.1.132; our IP address is 172.16.1.111
Filename 'uImage'.
Load address: 0x50000000
Loading: #################################################################
done
Bytes transferred = 943104 (e6400 hex)
SMDK6410 # bootm 0x50000000
## Booting kernel from Legacy Image at 50000000 ...
   Image Name:   Linux-2.6.29-ge3d684d-dirty
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    943040 Bytes = 920.9 KiB
   Load Address: 50008000
   Entry Point:  50008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK
Using machid 0x65a from environment

Starting kernel ...

Uncompressing Linux.............................................................. done, booting the kernel.
<5>Linux version 2.6.29-ge3d684d-dirty (change@change) (gcc version 4.4.1 (Sourcery G++ Lite 2009q3-67) ) #1 Sun May 5 22:08:01 CST 2013
CPU: ARMv6-compatible processor [410fb766] revision 6 (ARMv7), cr=00c5387f
CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
Machine: SMDK6410
Memory policy: ECC disabled, Data cache writeback
<7>On node 0 totalpages: 32768
<7>free_area_init_node: node 0, pgdat c01dc164, node_mem_map c0213000
<7>  Normal zone: 256 pages used for memmap
<7>  Normal zone: 0 pages reserved
<7>  Normal zone: 32512 pages, LIFO batch:7
CPU S3C6410 (id 0x36410101)
<7>s3c6410_init_clocks: initialising clocks
<6>S3C24XX Clocks, (c) 2004 Simtec Electronics
<7>s3c6400_setup_clocks: registering clocks
<7>s3c6400_setup_clocks: clkdiv0 = 00003300
<7>s3c6400_setup_clocks: xtal is 12000000
<6>S3C64XX: PLL settings, A=532000000, M=532000000, E=97699996
<6>S3C64XX: HCLK2=266000000, HCLK=133000000, PCLK=66500000
<6>mout_apll: source is fout_apll (1), rate is 532000000
<6>mout_epll: source is ext_xtal (0), rate is 0
<6>mout_mpll: source is mpll (1), rate is 532000000
<6>mmc_bus: source is mout_epll (0), rate is 0
<6>mmc_bus: source is mout_epll (0), rate is 0
<6>mmc_bus: source is mout_epll (0), rate is 0
<6>usb-bus-host: source is clk_48m (0), rate is 48000000
<6>uclk1: source is mout_epll (0), rate is 0
<6>spi-bus: source is mout_epll (0), rate is 0
<6>spi-bus: source is mout_epll (0), rate is 0
<6>audio-bus: source is mout_epll (0), rate is 0
<6>audio-bus: source is mout_epll (0), rate is 0
<6>irda-bus: source is mout_epll (0), rate is 0
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 32512
<5>Kernel command line: console=ttySAC0,115200 root=/dev/mtdblock3
<7>s3c64xx_init_irq: initialising interrupts
PID hash table entries: 512 (order: 9, 2048 bytes)
<7>timer tcon=00500000, tcnt 1b0f0, tcfg 00000200,00010000, usec 00001719
Console: colour dummy device 80x30
                                  <6>console [ttySAC0] enabled
Linux version 2.6.29-ge3d684d-dirty (change@change) (gcc version 4.4.1 (Sourcery G++ Lite 2009q3-67) ) #1 Sun May 5 22:08:01 CST 2013
CPU: ARMv6-compatible processor [410fb766] revision 6 (ARMv7), cr=00c5387f
CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
Machine: SMDK6410
Memory policy: ECC disabled, Data cache writeback
CPU S3C6410 (id 0x36410101)
S3C24XX Clocks, (c) 2004 Simtec Electronics
S3C64XX: PLL settings, A=532000000, M=532000000, E=97699996
S3C64XX: HCLK2=266000000, HCLK=133000000, PCLK=66500000
mout_apll: source is fout_apll (1), rate is 532000000
mout_epll: source is ext_xtal (0), rate is 0
mout_mpll: source is mpll (1), rate is 532000000
mmc_bus: source is mout_epll (0), rate is 0
mmc_bus: source is mout_epll (0), rate is 0
mmc_bus: source is mout_epll (0), rate is 0
usb-bus-host: source is clk_48m (0), rate is 48000000
uclk1: source is mout_epll (0), rate is 0
spi-bus: source is mout_epll (0), rate is 0
spi-bus: source is mout_epll (0), rate is 0
audio-bus: source is mout_epll (0), rate is 0
audio-bus: source is mout_epll (0), rate is 0
irda-bus: source is mout_epll (0), rate is 0
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 32512
Kernel command line: console=ttySAC0,115200 root=/dev/mtdblock3
PID hash table entries: 512 (order: 9, 2048 bytes)
Console: colour dummy device 80x30
console [ttySAC0] enabled
<6>Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
<6>Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
<6>Memory:Memory: 128MB 128MB = 128MB total
 = 128MB total
<5>Memory: 127644KB available (1696K code, 301K data, 84K init)
Memory: 127644KB available (1696K code, 301K data, 84K init)
<6>SLUB: Genslabs=10, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
SLUB: Gen<labs=10, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
6>Calibrating delay loop... Calibrating delay loop... 530.84 BogoMIPS (lpj=2654208)
530.84 BogoMIPS (lpj=2654208)
Mount-cache hash table entries: 512
Mount-cache hash table entries: 512
<6>CPU: Testing write buffer coherency: CPU: Testing write buffer coherency: ok
ok
S3C6410: Initialising architecture
S3C6410: Initialising architecture
bio: create slab <bio-0> at 0
bio: create slab <bio-0> at 0
<6>io scheduler noop registered
io scheduler noop registered
<6>io scheduler anticipatory registered
io scheduler anticipatory registered
<6>io scheduler deadline registered
io scheduler deadline registered
<6>io scheduler cfq registered (default)
io scheduler cfq registered (default)
<6>Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
<6>s3c6400-uart.0: s3c2410_serial0 at MMIO 0x7f005000 (irq = 16) is a S3C6400/10
s3c6400-uart.0: s3c2410_serial0 at MMIO 0x7f005000 (irq = 16) is a S3C6400/10
<6>s3c6400-uart.1: s3c2410_serial1 at MMIO 0x7f005400 (irq = 20) is a S3C6400/10
s3c6400-uart.1: s3c2410_serial1 at MMIO 0x7f005400 (irq = 20) is a S3C6400/10
<6>brd: module loaded
brd: module loaded
<6>loop: module loaded
loop: module loaded
<6>mice: PS/2 mouse device common for all mice
mice: PS/2 mouse device common for all mice
<6>i2c /dev entries driver
i2c /dev entries driver
<6>sdhci: Secure Digital Host Controller Interface driver
sdhci: Secure Digital Host Controller Interface driver
<6>sdhci: Copyright(c) Pierre Ossman
sdhci: Copyright(c) Pierre Ossman
<6>VFP support v0.3: VFP support v0.3: implementor 41 architecture 1 part 20 variant b rev 5
implementor 41 architecture 1 part 20 variant b rev 5
VFS: Cannot open root device "mtdblock3" or unknown-block(0,0)
PFS: Cannot open root device "mtdblock3" or unknown-block(0,0)
lease append a correct "root=" boot option; here are the available partitions:
Please append a c<rrect "root=" boot option; here are the available partitions:
0>Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

这样看起来是正常的,还没有文件系统供挂载

二.移植DM9000网卡驱动,配置内核,支持nfs挂载网络文件习统

1修改arch/arm/mach-s3c6410/mach-smdk6410.c
添加代码如下:
50:
#include <linux/dm9000.h>
72:
/* DM9000AEP 10/100 ethernet controller */
#define S3C64XX_PA_DM9000   (0x18000000) 
#define S3C64XX_SZ_DM9000   SZ_1M 
#define S3C64XX_VA_DM9000   S3C_ADDR(0x03b00300)

static struct resource dm9000_resources[] = { 
     [0] = { 
         .start      = S3C64XX_PA_DM9000, 
         .end        = S3C64XX_PA_DM9000 + 3, 
         .flags      = IORESOURCE_MEM, 
     }, 
     [1] = { 
         .start      = S3C64XX_PA_DM9000 + 4, 
         .end        = S3C64XX_PA_DM9000 + S3C64XX_SZ_DM9000 - 1, 
         .flags      = IORESOURCE_MEM, 
     }, 
     [2] = { 
         .start      = IRQ_EINT(7), 
         .end        = IRQ_EINT(7), 
         .flags      = IORESOURCE_IRQ | IRQF_TRIGGER_HIGH, 
     }, 
 }; 
  
  
 static struct dm9000_plat_data dm9000_setup = { 
     .flags          = DM9000_PLATF_16BITONLY, 
     .dev_addr       = { 0x08, 0x90, 0x00, 0xa0, 0x90, 0x90 }, 
 }; 
  
  
 static struct platform_device s3c_device_dm9000 = { 
     .name           = "dm9000", 
     .id             = 0, 
     .num_resources  = ARRAY_SIZE(dm9000_resources), 
     .resource       = dm9000_resources, 
     .dev            = { 
         .platform_data = &dm9000_setup, 
     } 
 };
186:
&s3c_device_dm9000,   // dm9000 driver
2.make menuconfig

change@change:~/android/goldfish$ make menuconfig

/dm9000 看到

  | Symbol: DM9000 [=n]                                                                                                  |
  | Prompt: DM9000 support                                                                                               |
  |   Defined at drivers/net/Kconfig:921                                                                                 |
  |   Depends on: NETDEVICES && NET_ETHERNET && (ARM || BLACKFIN || MIPS)                                                |
  |   Location:                                                                                                          |
  |     -> Device Drivers                                                                                                |
  |       -> Network device support (NETDEVICES [=n])                                                                    |
  |         -> Ethernet (10 or 100Mbit) (NET_ETHERNET [=n]) 

/NETDEVICES

  | Symbol: NETDEVICES [=n]                                                                                              |
  | Prompt: Network device support                                                                                       |
  |   Defined at drivers/net/Kconfig:6                                                                                   |
  |   Depends on: NET                                                                                                    |
  |   Location:                                                                                                          |
  |     -> Device Drivers  

要先选上 [*] Networking support  ---> 过程如下:
[*] Networking support  --->  
Device Drivers
 [*] Network device support  --->
  [*]   Ethernet (10 or 100Mbit)  --->
   <*>   DM9000 support 

同样方法选nfs,过程如下
Networking support (NET [=y])                                                         
        -> Networking options                                                                 
               ->  [*] TCP/IP networking(INET [=y])
    [*]   IP: kernel level autoconfiguration
File systems  --->
 [*] Network File Systems (NEW)  --->
   --- Network File Systems
  <*>   NFS client support 
  [*]     NFS client support for NFS version 3
  [*]     Root file system on NFS 
  <*>   NFS server support
  [*]     NFS server support for NFS version 3
  [*]     NFS server support for NFS version 3
3.make uImage

change@change:~/android/goldfish$ make uImage

Image Name:   Linux-2.6.29-ge3d684d-dirty
Created:      Mon May  6 15:42:20 2013
Image Type:   ARM Linux Kernel Image (uncompressed)
Data Size:    1413260 Bytes = 1380.14 kB = 1.35 MB
Load Address: 50008000
Entry Point:  50008000
  Image arch/arm/boot/uImage is ready

change@change:~/android/goldfish$ cp arch/arm/boot/uImage /home/change/work/tftpboot/

4.设置u-boot的bootargs,通过nfs挂载文件系统
SMDK6410 # set bootargs console=ttySAC0,115200 init=/linuxrc root=/dev/nfs nfsroot=172.16.1.132:/home/change/work/rootfs_dir/fs_mini \
nolock ip=172.16.1.111:172.16.1.132:172.16.1.1:255.255.255.0::eth0:off

5.测试


U-Boot 2012.04.01 (Nov 25 2012 - 21:01:21) for SMDK6410


CPU:     S3C6400@532MHz
         Fclk = 532MHz, Hclk = 133MHz, Pclk = 66MHz (ASYNC Mode)
Board:   SMDK6410
DRAM:  128 MiB
WARNING: Caches not enabled
Flash: 0 KB
NAND:  select s3c_nand_oob_mlc_64
id_data[0] = 0xec id_data[1] = 0xd5 id_data[2] = 0x94 id_data[3] = 0x29 id_data[4] = 0x34 id_data[5] = 0x41 id_data[6] = 0xec id_data[7] = 0xd5 NAND_ECC_NONE selected by board driver. This is not recommended !!
2048 MiB
realpage value:255
page value:255
ret value:0
In:    serial
Out:   serial
Err:   serial
Net:   dm9000
Hit any key to stop autoboot:  0

##### 100ask Bootloader for OpenJTAG #####
[n] Download u-boot to Nand Flash
[k] Download Linux kernel uImage
[j] Download root_jffs2 image
[y] Download root_yaffs image
[d] Download to SDRAM & Run
[z] Download zImage into RAM
[g] get file, and write to nand flash 0 block
[f] Format the Nand Flash
[s] Set the boot parameters
[b] Boot the system
[r] Reboot u-boot
[q] Quit from menu
Enter your selection: q
SMDK6410 # printenv
baudrate=115200
bootargs=console=ttySAC0,115200 init=/linuxrc root=/dev/nfs nfsroot=172.16.1.132:/home/change/work/rootfs_dir/fs_mini \
nolock ip=172.16.1.111:172.16.1.132:172.16.1.1:255.255.255.0::eth0:off
bootcmd=nand read 0x50000000 0x100000 0x300000;bootm 0x50000000
bootdelay=5
ethact=dm9000
ethaddr=00:0c:29:4d:e4:f4
fileaddr=50000000
filesize=E6400
ipaddr=172.16.1.111
machid=65a
mtddevname=u-boot
mtddevnum=0
mtdids=nand0=OK6410-0
mtdparts=mtdparts=OK6410-0:512k(u-boot),512k(params),3M(kernel),-(rootfs)
netmask=255.255.255.0
partition=nand0,0
serverip=172.16.1.132
stderr=serial
stdin=serial
stdout=serial

Environment size: 658/524284 bytes
SMDK6410 # tftp 0x50000000 uImage
dm9000 i/o: 0x18000000, id: 0x90000a46
DM9000: running in 16 bit mode
MAC: 00:0c:29:4d:e4:f4
operating at 100M full duplex mode
Using dm9000 device
TFTP from server 172.16.1.132; our IP address is 172.16.1.111
Filename 'uImage'.
Load address: 0x50000000
Loading: #################################################################
         ################################
done
Bytes transferred = 1413324 (1590cc hex)
SMDK6410 # bootm 0x50000000
## Booting kernel from Legacy Image at 50000000 ...
   Image Name:   Linux-2.6.29-ge3d684d-dirty
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1413260 Bytes = 1.3 MiB
   Load Address: 50008000
   Entry Point:  50008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK
Using machid 0x65a from environment

Starting kernel ...

Uncompressing Linux.......................................................................................... done, booting the kernel.
<5>Linux version 2.6.29-ge3d684d-dirty (change@change) (gcc version 4.4.1 (Sourcery G++ Lite 2009q3-67) ) #2 Mon May 6 15:42:04 CST 2013
CPU: ARMv6-compatible processor [410fb766] revision 6 (ARMv7), cr=00c5387f
CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
Machine: SMDK6410
Memory policy: ECC disabled, Data cache writeback
<7>On node 0 totalpages: 32768
<7>free_area_init_node: node 0, pgdat c02bf490, node_mem_map c02fe000
<7>  Normal zone: 256 pages used for memmap
<7>  Normal zone: 0 pages reserved
<7>  Normal zone: 32512 pages, LIFO batch:7
CPU S3C6410 (id 0x36410101)
<7>s3c6410_init_clocks: initialising clocks
<6>S3C24XX Clocks, (c) 2004 Simtec Electronics
<7>s3c6400_setup_clocks: registering clocks
<7>s3c6400_setup_clocks: clkdiv0 = 00003300
<7>s3c6400_setup_clocks: xtal is 12000000
<6>S3C64XX: PLL settings, A=532000000, M=532000000, E=97699996
<6>S3C64XX: HCLK2=266000000, HCLK=133000000, PCLK=66500000
<6>mout_apll: source is fout_apll (1), rate is 532000000
<6>mout_epll: source is ext_xtal (0), rate is 0
<6>mout_mpll: source is mpll (1), rate is 532000000
<6>mmc_bus: source is mout_epll (0), rate is 0
<6>mmc_bus: source is mout_epll (0), rate is 0
<6>mmc_bus: source is mout_epll (0), rate is 0
<6>usb-bus-host: source is clk_48m (0), rate is 48000000
<6>uclk1: source is mout_epll (0), rate is 0
<6>spi-bus: source is mout_epll (0), rate is 0
<6>spi-bus: source is mout_epll (0), rate is 0
<6>audio-bus: source is mout_epll (0), rate is 0
<6>audio-bus: source is mout_epll (0), rate is 0
<6>irda-bus: source is mout_epll (0), rate is 0
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 32512
<5>Kernel command line: console=ttySAC0,115200 init=/linuxrc root=/dev/nfs nfsroot=172.16.1.132:/home/change/work/rootfs_dir/fs_mini
nolock ip=172.16.1.111:172.16.1.132:172.16.1.1:255.255.255.0::eth0:off
<7>s3c64xx_init_irq: initialising interrupts
PID hash table entries: 512 (order: 9, 2048 bytes)
<7>timer tcon=00500000, tcnt 1b0f0, tcfg 00000200,00010000, usec 00001719
Console: colour dummy device 80x30
                                  <6>console [ttySAC0] enabled
Linux version 2.6.29-ge3d684d-dirty (change@change) (gcc version 4.4.1 (Sourcery G++ Lite 2009q3-67) ) #2 Mon May 6 15:42:04 CST 2013
CPU: ARMv6-compatible processor [410fb766] revision 6 (ARMv7), cr=00c5387f
CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
Machine: SMDK6410
Memory policy: ECC disabled, Data cache writeback
CPU S3C6410 (id 0x36410101)
S3C24XX Clocks, (c) 2004 Simtec Electronics
S3C64XX: PLL settings, A=532000000, M=532000000, E=97699996
S3C64XX: HCLK2=266000000, HCLK=133000000, PCLK=66500000
mout_apll: source is fout_apll (1), rate is 532000000
mout_epll: source is ext_xtal (0), rate is 0
mout_mpll: source is mpll (1), rate is 532000000
mmc_bus: source is mout_epll (0), rate is 0
mmc_bus: source is mout_epll (0), rate is 0
mmc_bus: source is mout_epll (0), rate is 0
usb-bus-host: source is clk_48m (0), rate is 48000000
uclk1: source is mout_epll (0), rate is 0
spi-bus: source is mout_epll (0), rate is 0
spi-bus: source is mout_epll (0), rate is 0
audio-bus: source is mout_epll (0), rate is 0
audio-bus: source is mout_epll (0), rate is 0
irda-bus: source is mout_epll (0), rate is 0
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 32512
Kernel command line: console=ttySAC0,115200 init=/linuxrc root=/dev/nfs nfsroot=172.16.1.132:/home/change/work/rootfs_dir/fs_mini
nolock ip=172.16.1.111:172.16.1.132:172.16.1.1:255.255.255.0::eth0:off
PID hash table entries: 512 (order: 9, 2048 bytes)
Console: colour dummy device 80x30
console [ttySAC0] enabled
<6>Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
<6>Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
<6>Memory:Memory: 128MB 128MB = 128MB total
 = 128MB total
<5>Memory: 126720KB available (2560K code, 361K data, 104K init)
Memory: 126720KB available (2560K code, 361K data, 104K init)
<6>SLUB: Genslabs=10, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
SLUB: Gen<labs=10, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
6>Calibrating delay loop... Calibrating delay loop... 530.84 BogoMIPS (lpj=2654208)
530.84 BogoMIPS (lpj=2654208)
Mount-cache hash table entries: 512
Mount-cache hash table entries: 512
<6>CPU: Testing write buffer coherency: CPU: Testing write buffer coherency: ok
ok
<6>net_namespace: 760 bytes
net_namespace: 760 bytes
<6>NET: Registered protocol family 16
NET: Registered protocol family 16
S3C6410: Initialising architecture
S3C6410: Initialising architecture
bio: create slab <bio-0> at 0
bio: create slab <bio-0> at 0
<6>NET: Registered protocol family 2
NET: Registered protocol family 2
<6>IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
<6>TCP established hash table entries: 4096 (order: 3, 32768 bytes)
TCP established hash table entries: 4096 (order: 3, 32768 bytes)
<6>TCP bind hash table entries: 4096 (order: 4, 81920 bytes)
TCP bind hash table entries: 4096 (order: 4, 81920 bytes)
<6>TCP: Hash tables configured (established 4096 bind 4096)
TCP: Hash tables configured (established 4096 bind 4096)
<6>TCP reno registered
TCP reno registered
<6>Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
<6>io scheduler noop registered
io scheduler noop registered
<6>io scheduler anticipatory registered
io scheduler anticipatory registered
<6>io scheduler deadline registered
io scheduler deadline registered
<6>io scheduler cfq registered (default)
io scheduler cfq registered (default)
<6>Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
<6>s3c6400-uart.0: s3c2410_serial0 at MMIO 0x7f005000 (irq = 16) is a S3C6400/10
s3c6400-uart.0: s3c2410_serial0 at MMIO 0x7f005000 (irq = 16) is a S3C6400/10
<6>s3c6400-uart.1: s3c2410_serial1 at MMIO 0x7f005400 (irq = 20) is a S3C6400/10
s3c6400-uart.1: s3c2410_serial1 at MMIO 0x7f005400 (irq = 20) is a S3C6400/10
<6>brd: module loaded
brd: module loaded
<6>loop: module loaded
loop: module loaded
<6>dm9000 Ethernet Driver, V1.31
dm9000 Ethernet Driver, V1.31
<6>eth0 (dm9000): not using net_device_ops yet
eth0 (dm9000): not using net_device_ops yet
<6>eth0: dm9000a at c8814000,c8a00004 IRQ 108 MAC: 08:90:00:a0:90:90 (platform data)
eth0: dm9000a at c8814000,c8a00004 IRQ 108 MAC: 08:90:00:a0:90:90 (platform data)
<6>mice: PS/2 mouse device common for all mice
mice: PS/2 mouse device common for all mice
<6>i2c /dev entries driver
i2c /dev entries driver
<6>sdhci: Secure Digital Host Controller Interface driver
sdhci: Secure Digital Host Controller Interface driver
<6>sdhci: Copyright(c) Pierre Ossman
sdhci: Copyright(c) Pierre Ossman
<6>TCP cubic registered
TCP cubic registered
<6>RPC: Registered udp transport module.
RPC: Registered udp transport module.
<6>RPC: Registered tcp transport module.
RPC: Registered tcp transport module.
<6>VFP support v0.3: VFP support v0.3: implementor 41 architecture 1 part 20 variant b rev 5
implementor 41 architecture 1 part 20 variant b rev 5
<6>eth0: link down
eth0: link down
<6>eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
IP-Config: Complete:IP-Config: Complete:
     device=eth0
     device=eth0, addr=172.16.1.111, addr=172.16.1.111, mask=255.255.255.0, mask=255.255.255.0, gw=172.16.1.1, gw=172.16.1.1,
     host=172.16.1.111, domain=, nis-domain=(none),
     host=172.16.1.111, domain=, nis-domain=(none),
     bootserver=172.16.1.132,
     bootserver=172.16.1.132, rootserver=172.16.1.132, rootserver=172.16.1.132, rootpath=, rootpath=

<5>Looking up port of RPC 100003/2 on 172.16.1.132
Looking up port of RPC 100003/2 on 172.16.1.132
<5>Looking up port of RPC 100005/1 on 172.16.1.132
Looking up port of RPC 100005/1 on 172.16.1.132
VFS: Mounted root (nfs filesystem) on device 0:11.
VFS: Mounted root (nfs filesystem) on device 0:11.
<6>Freeing init memory: 104K
Freeing init memory: 104K
mkdir: can't create directory '/dev/pts': File exists

Please press Enter to activate this console.

Processing /etc/profile... Done

/ # ifconfig
eth0      Link encap:Ethernet  HWaddr 08:90:00:A0:90:90 
          inet addr:172.16.1.111  Bcast:172.16.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3528 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2512 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2496454 (2.3 MiB)  TX bytes:420656 (410.7 KiB)
          Interrupt:108 Base address:0x4000

lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

/ # ping 172.16.1.132
PING 172.16.1.132 (172.16.1.132): 56 data bytes
64 bytes from 172.16.1.132: seq=0 ttl=64 time=1.217 ms
64 bytes from 172.16.1.132: seq=1 ttl=64 time=0.433 ms
64 bytes from 172.16.1.132: seq=2 ttl=64 time=1.088 ms
64 bytes from 172.16.1.132: seq=3 ttl=64 time=0.424 ms
64 bytes from 172.16.1.132: seq=4 ttl=64 time=1.083 ms
^C
--- 172.16.1.132 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 0.424/0.849/1.217 ms
/ # ls
bin      etc      linuxrc  proc     sbin     tmp
dev      lib      mnt      root     sys      usr
/ #

看到系统正常启动了,网也ping通了。剩下的问题以后再解决。

原创粉丝点击