文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>移植Linux2.6.26内核到SEP4020平台上

移植Linux2.6.26内核到SEP4020平台上

时间:2009-07-18  来源:fpseustar

最近想学习下arm linux 的启动过程,于是就想把sep4020的现有Linux2.6.16平台升级到2.6.26平台上,顺便学习下linux启动过程:

步骤一:

下载一个Linux2.6.26版本下来可以到http://www.af.kernel.org/pub/linux/kernel/v2.6/

上下载2.6.26版本,并在fedora 7的根目录下面解压缩。

步骤二:

修改linux-2.6.26根目录下面的Makefile,在内核根目录下的Makefile文件中指定要用到的编译器和架构(arch),方法:在第194行添加代码 ,将ARCH    ?=(SUBARCH) 改为,
ARCH ?=arm
CROSS_COMPILE ?=arm-linux-

步骤三:

由于我们是已经有很完善的Linux2.6.16平台了,(这个平台的移植参考leeming的文章Porting Linux2.6.16内核到sep4020(arm720T)),我在这里就比较轻松的将两个主要目录arch/arm/mach-sep4020和include/asm-arm/arch-sep4020直接拷贝到2.6.26内核相应目录,修改好arch/arm的Kconfig和Makefile文件,让它支持我们的SEP4020处理器。

另外还需要注意的是,在arch/arm/tools/mach-types文件中增加一行sep4020的机器ID

 

步骤四:

make menuconfig,将内核大部分选项全部去掉,这里有关sep4020的能正常用的config文件,如果需要,大家可以参考这个来改menuconfig

文件: gfd4020_defconfig.rar
大小: 3KB
下载: 下载

步骤五:

编译内核,问题相当多,分别列举如下:

问题1:

[root@localhost linux-2.6.26]# make  HOSTLD  scripts/kconfig/conf scripts/kconfig/conf -s arch/arm/Kconfig  CHK     include/linux/version.h  SYMLINK include/asm-arm/arch -> include/asm-arm/arch-sep4020 make[1]: “include/asm-arm/mach-types.h”是最新的。  CHK     include/linux/utsrelease.h  CC      kernel/bounds.s  GEN     include/linux/bounds.h  CC      arch/arm/kernel/asm-offsets.s In file included from include/linux/irqflags.h:46,                 from include/asm/system.h:65,                 from include/asm/bitops.h:27,                 from include/linux/bitops.h:17,                 from include/linux/kernel.h:15,                 from include/linux/sched.h:52,                 from arch/arm/kernel/asm-offsets.c:13: include/asm/irqflags.h:11:5: warning: "__LINUX_ARM_ARCH__" is not defined In file included from include/asm/bitops.h:27,                 from include/linux/bitops.h:17,                 from include/linux/kernel.h:15,                 from include/linux/sched.h:52,                 from arch/arm/kernel/asm-offsets.c:13: include/asm/system.h:167:5: warning: "__LINUX_ARM_ARCH__" is not defined include/asm/system.h:173:5: warning: "__LINUX_ARM_ARCH__" is not defined include/asm/system.h:177:35: warning: "__LINUX_ARM_ARCH__" is not defined include/asm/system.h:297:5: warning: "__LINUX_ARM_ARCH__" is not defined include/asm/system.h:302:5: warning: "__LINUX_ARM_ARCH__" is not defined In file included from include/linux/bitops.h:17,                 from include/linux/kernel.h:15,                 from include/linux/sched.h:52,                 from arch/arm/kernel/asm-offsets.c:13: include/asm/bitops.h:237:5: warning: "__LINUX_ARM_ARCH__" is not defined In file included from include/asm/thread_info.h:16,                 from include/linux/thread_info.h:47,                 from include/linux/preempt.h:9,                 from include/linux/spinlock.h:49,                 from include/linux/seqlock.h:29,                 from include/linux/time.h:8,                 from include/linux/timex.h:57,                 from include/linux/sched.h:54,                 from arch/arm/kernel/asm-offsets.c:13: include/asm/fpstate.h:32:5: warning: "__LINUX_ARM_ARCH__" is not defined In file included from include/linux/prefetch.h:14,                 from include/linux/list.h:6,                 from include/linux/preempt.h:11,                 from include/linux/spinlock.h:49,                 from include/linux/seqlock.h:29,                 from include/linux/time.h:8,                 from include/linux/timex.h:57,                 from include/linux/sched.h:54,                 from arch/arm/kernel/asm-offsets.c:13: include/asm/processor.h:109:5: warning: "__LINUX_ARM_ARCH__" is not defined In file included from include/linux/spinlock.h:302,                 from include/linux/seqlock.h:29,                 from include/linux/time.h:8,                 from include/linux/timex.h:57,                 from include/linux/sched.h:54,                 from arch/arm/kernel/asm-offsets.c:13: include/asm/atomic.h:25:5: warning: "__LINUX_ARM_ARCH__" is not defined In file included from include/asm/page.h:29,                 from include/linux/mm_types.h:13,                 from include/linux/sched.h:61,                 from arch/arm/kernel/asm-offsets.c:13: include/asm/glue.h:119:2: #error Unknown data abort handler type include/asm/glue.h:146:2: #error Unknown prefetch abort handler type In file included from include/linux/mm_types.h:13,                 from include/linux/sched.h:61,                 from arch/arm/kernel/asm-offsets.c:13: include/asm/page.h:111:2: #error Unknown user operations model make[1]: *** [arch/arm/kernel/asm-offsets.s] 错误 1 make: *** [prepare0] 错误 2 解决方法: 这个主要是由于我没在/arch/arm/mm/Kconfig的720T中增加sep4020引起的。   问题 2: include/linux/compiler.h:34:1: warning: this is the location of the previous definition  CC      init/do_mounts_rd.o  CC      init/do_mounts_initrd.o  LD      init/mounts.o  CC      init/initramfs.o  CC      init/calibrate.o  LD      init/built-in.o  HOSTCC  usr/gen_init_cpio  GEN     usr/initramfs_data.cpio.gz  AS      usr/initramfs_data.o  LD      usr/built-in.o  CC      arch/arm/kernel/compat.o  AS      arch/arm/kernel/entry-armv.o arch/arm/kernel/entry-armv.S: Assembler messages: arch/arm/kernel/entry-armv.S:210: Error: bad instruction `get_irqnr_preamble r5,lr' arch/arm/kernel/entry-armv.S:431: Error: bad instruction `get_irqnr_preamble r5,lr' make[1]: *** [arch/arm/kernel/entry-armv.o] 错误 1 make: *** [arch/arm/kernel] 错误 2 解决方法: 进入arch/arm/kernel/entry-armv.S屏掉这两句话 因为

[ARM] 4185/2: entry: introduce get_irqnr_preamble and arch_ret_to_user

get_irqnr_preamble allows machines to take some action before entering the

get_irqnr_and_base loop. On iop we enable cp6 access.

arch_ret_to_user is added to the userspace return path to allow individual

architectures to take actions, like disabling coprocessor access, before

the final return to userspace.

Per Nicolas Pitre's note, there is no need to cp_wait on the return to user

as the latency to return is sufficient.

Signed-off-by: Dan Williams

Signed-off-by: Russell King

问题3: arch/arm/kernel/entry-common.S: Assembler messages: arch/arm/kernel/entry-common.S:30: Error: bad instruction `arch_ret_to_user r1,lr' arch/arm/kernel/entry-common.S:69: Error: bad instruction `arch_ret_to_user r1,lr' make[1]: *** [arch/arm/kernel/entry-common.o] 错误 1 make: *** [arch/arm/kernel] 错误 2 解决方法: 直接屏掉这两句话,原因同上   问题4: In file included from include/linux/init.h:4,                 from arch/arm/mach-sep4020/irq.c:1: include/linux/compiler.h:34:1: warning: this is the location of the previous definition arch/arm/mach-sep4020/irq.c:35: error: variable `sep4020_chip' has initializer but incomplete type arch/arm/mach-sep4020/irq.c:37: error: unknown field `ack' specified in initializer arch/arm/mach-sep4020/irq.c:37: warning: excess elements in struct initializer arch/arm/mach-sep4020/irq.c:37: warning: (near initialization for `sep4020_chip') arch/arm/mach-sep4020/irq.c:38: error: unknown field `mask' specified in initializer arch/arm/mach-sep4020/irq.c:38: warning: excess elements in struct initializer arch/arm/mach-sep4020/irq.c:38: warning: (near initialization for `sep4020_chip') arch/arm/mach-sep4020/irq.c:39: error: unknown field `unmask' specified in initializer arch/arm/mach-sep4020/irq.c:39: warning: excess elements in struct initializer arch/arm/mach-sep4020/irq.c:39: warning: (near initialization for `sep4020_chip') arch/arm/mach-sep4020/irq.c: In function `sep4020_init_irq': arch/arm/mach-sep4020/irq.c:54: error: `do_level_IRQ' undeclared (first use in this function) arch/arm/mach-sep4020/irq.c:54: error: (Each undeclared identifier is reported only once arch/arm/mach-sep4020/irq.c:54: error: for each function it appears in.) arch/arm/mach-sep4020/irq.c:55: warning: passing arg 2 of `set_irq_chip' from incompatible pointer type arch/arm/mach-sep4020/irq.c: At top level: arch/arm/mach-sep4020/irq.c:35: error: storage size of `sep4020_chip' isn't known make[1]: *** [arch/arm/mach-sep4020/irq.o] 错误 1 make: *** [arch/arm/mach-sep4020] 错误 2 解决方法: 将irq.c的35行换为static struct irq_chip sep4020_chip 将54行的set_irq_handler(i, do_level_IRQ);换为 set_irq_handler(i, handle_level_irq);   问题5: In file included from include/linux/timex.h:56,                 from arch/arm/mach-sep4020/time.c:1: include/linux/compiler.h:34:1: warning: this is the location of the previous definition arch/arm/mach-sep4020/time.c: In function `sep4020_timer_interrupt': arch/arm/mach-sep4020/time.c:29: error: too many arguments to function `timer_tick' arch/arm/mach-sep4020/time.c: At top level: arch/arm/mach-sep4020/time.c:38: error: `SA_INTERRUPT' undeclared here (not in a function) arch/arm/mach-sep4020/time.c:38: error: `SA_TIMER' undeclared here (not in a function) arch/arm/mach-sep4020/time.c:38: error: initializer element is not constant arch/arm/mach-sep4020/time.c:38: error: (near initialization for `sep4020_timer_irq.flags') arch/arm/mach-sep4020/time.c:39: warning: initialization from incompatible pointer type arch/arm/mach-sep4020/time.c: In function `sep4020_timer_init': arch/arm/mach-sep4020/time.c:47: error: implicit declaration of function `setup_irq' make[1]: *** [arch/arm/mach-sep4020/time.o] 错误 1 make: *** [arch/arm/mach-sep4020] 错误 2 解决方法: 将29行 timer_tick(regs);换为 timer_tick(); 将23行static irqreturn_t sep4020_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)换为static irqreturn_t sep4020_timer_interrupt(int irq, void *dev_id) 将38行 .flags = SA_INTERRUPT | SA_TIMER,换为 .flags = IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL, 另外在开头处写上#include <linux/irq.h>   问题6: [root@localhost linux-2.6.26]# make  CHK     include/linux/version.h make[1]: “include/asm-arm/mach-types.h”是最新的。  CHK     include/linux/utsrelease.h  CALL    scripts/checksyscalls.sh <stdin>:1097:2: warning: #warning syscall fadvise64 not implemented <stdin>:1265:2: warning: #warning syscall migrate_pages not implemented <stdin>:1321:2: warning: #warning syscall pselect6 not implemented <stdin>:1325:2: warning: #warning syscall ppoll not implemented <stdin>:1365:2: warning: #warning syscall epoll_pwait not implemented  CHK     include/linux/compile.h  CC      arch/arm/mach-sep4020/Devices.o  CC      arch/arm/mach-sep4020/clock.o In file included from include/asm/io.h:85,                 from arch/arm/mach-sep4020/clock.c:27: include/asm/arch/io.h:53:1: warning: "__cond_lock" redefined In file included from include/linux/stddef.h:4,                 from include/linux/list.h:4,                 from include/linux/module.h:9,                 from arch/arm/mach-sep4020/clock.c:13: include/linux/compiler.h:34:1: warning: this is the location of the previous definition In file included from include/asm/io.h:85,                 from arch/arm/mach-sep4020/clock.c:27: include/asm/arch/io.h:53:1: warning: "__cond_lock" redefined In file included from include/linux/stddef.h:4,                 from include/linux/list.h:4,                 from include/linux/module.h:9,                 from arch/arm/mach-sep4020/clock.c:13: include/linux/compiler.h:34:1: warning: this is the location of the previous definition  CC      arch/arm/mach-sep4020/dma.o In file included from include/asm/io.h:85,                 from arch/arm/mach-sep4020/dma.c:16: include/asm/arch/io.h:53:1: warning: "__cond_lock" redefined In file included from include/linux/stddef.h:4,                 from include/linux/list.h:4,                 from include/linux/module.h:9,                 from arch/arm/mach-sep4020/dma.c:5: include/linux/compiler.h:34:1: warning: this is the location of the previous definition  CC      arch/arm/mach-sep4020/4020.o In file included from include/asm/io.h:85,                 from arch/arm/mach-sep4020/4020.c:2: include/asm/arch/io.h:53:1: warning: "__cond_lock" redefined In file included from include/linux/stddef.h:4,                 from include/linux/posix_types.h:4,                 from include/linux/types.h:11,                 from include/asm/io.h:26,                 from arch/arm/mach-sep4020/4020.c:2: include/linux/compiler.h:34:1: warning: this is the location of the previous definition In file included from include/linux/time.h:8,                 from include/linux/timex.h:57,                 from include/linux/sched.h:54,                 from include/linux/interrupt.h:12,                 from arch/arm/mach-sep4020/4020.c:7: include/linux/seqlock.h:76:34: macro "__cond_lock" passed 2 arguments, but takes just 1 In file included from include/linux/time.h:8,                 from include/linux/timex.h:57,                 from include/linux/sched.h:54,                 from include/linux/interrupt.h:12,                 from arch/arm/mach-sep4020/4020.c:7: include/linux/seqlock.h: In function `write_tryseqlock': include/linux/seqlock.h:76: error: `__cond_lock' undeclared (first use in this function) include/linux/seqlock.h:76: error: (Each undeclared identifier is reported only once include/linux/seqlock.h:76: error: for each function it appears in.) make[1]: *** [arch/arm/mach-sep4020/4020.o] 错误 1 make: *** [arch/arm/mach-sep4020] 错误 2 解决方法: 将include/asm-arm/arch-sep4020/io.h中的 #ifdef __CHECKER__ # define __user __attribute__((noderef, address_space(1))) # define __kernel // default address space # define __safe __attribute__((safe)) # define __force __attribute__((force)) # define __nocast __attribute__((nocast)) # define __iomem __attribute__((noderef, address_space(2))) # define __acquires(x) __attribute__((context(0,1))) # define __releases(x) __attribute__((context(1,0))) # define __acquire(x) __context__(1) # define __release(x) __context__(-1) # define __cond_lock(x) ((x) ? ({ __context__(1); 1; }) : 0) extern void __chk_user_ptr(void __user *); extern void __chk_io_ptr(void __iomem *); #else # define __user # define __kernel # define __safe # define __force # define __nocast # define __iomem # define __chk_user_ptr(x) (void)0 # define __chk_io_ptr(x) (void)0 # define __builtin_warning(x, y...) (1) # define __acquires(x) # define __releases(x) # define __acquire(x) (void)0 # define __release(x) (void)0 # define __cond_lock(x) (x) #endif 这一大段屏掉,因为在/include/linux/compiler.h中也定义了这些,重复定义了   问题7:  SYSMAP  System.map  SYSMAP  .tmp_System.map  OBJCOPY arch/arm/boot/Image  Kernel: arch/arm/boot/Image is ready  AS      arch/arm/boot/compressed/head.o  GZIP    arch/arm/boot/compressed/piggy.gz  AS      arch/arm/boot/compressed/piggy.o  CC      arch/arm/boot/compressed/misc.o arch/arm/boot/compressed/misc.c:73: error: redefinition of 'putstr' include/asm/arch/uncompress.h:44: error: previous definition of 'putstr' was here arch/arm/boot/compressed/misc.c: In function `putstr': arch/arm/boot/compressed/misc.c:78: error: implicit declaration of function `putc' arch/arm/boot/compressed/misc.c:82: error: implicit declaration of function `flush' make[2]: *** [arch/arm/boot/compressed/misc.o] 错误 1 make[1]: *** [arch/arm/boot/compressed/vmlinux] 错误 2 make: *** [zImage] 错误 2 解决方法: 将linux/include/asm-arm/arch-4020/uncompress.h 的43行的 static void putstr(const char *s) { char c;   while ((c = *s++) != '\0') { while (clps_readl(SYSFLGx) & SYSFLG_UTXFF) barrier(); clps_writel(c, UARTDRx);   if (c == '\n') { while (clps_readl(SYSFLGx) & SYSFLG_UTXFF) barrier(); clps_writel('\r', UARTDRx); } } while (clps_readl(SYSFLGx) & SYSFLG_UBUSY) barrier(); } 改为: static inline void putc(int c) { while (clps_readl(SYSFLGx) & SYSFLG_UTXFF) barrier(); clps_writel(c, UARTDRx); }   static inline void flush(void) { while (clps_readl(SYSFLGx) & SYSFLG_UBUSY) barrier(); }   步骤六: 经过上面的出错过程,编译基本上没有什么问题了,现在开始调试: (1)直接编译成uImage,通过uboot加载引导,但出现乱码: 发现已经进入了/init/main.c的start_kernel函数了,因为一旦我在start_kernel开始处加入while(1);他就死在此处,不会输出任何东西了,所以我就准备用AXD直接调试Linux未压缩的内核/arch/arm/boot/Image(它是elf格式vmlinux的二进制文件,没有经过任何压缩),我将此文件用axd下载到0x30008000的地址,并且将r0=0,r1=194,然后将pc移到0x30008000开始运行,刚开始位于0x30008000处的函数就是/arch/arm/kernel/head.s中的78行的stext函数,这个就是内核入口函数,呵呵!! 今天移植的第二天了,本来在ADS上调试发现是在 __turn_mmu_on: mov r0, r0 mcr p15, 0, r0, c1, c0, 0 @ write control reg mrc p15, 0, r3, c0, c0, 0 @ read id reg mov r3, r3 mov r3, r3 mov pc, r13 这段程序飞掉了,看来是在开MMU后飞掉的,但自己又觉得是ADS ICE出问题了,于是我就换了jlink和另外一块MBT1.0的板子来调试,这次一下就都过去了,很快就到了start_kernel函数,太激动了啊,于是我赶紧将内核镜像直接做成uImage行式,直接用uboot来引导它,呵呵,果然一下什么都好了,看来已经移植成功了: Starting kernel ...   Linux version 2.6.26 ([email protected]) (gcc version 3.4.1) #30 Sat Jul 18 14:41:36 CST 2009 CPU: ARM720T [41807202] revision 2 (ARMv4T), cr=0000217f Machine: 4020 board Memory policy: ECC disabled, Data cache writeback Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 8128 Kernel command line: root=/dev/nfs rw nfsroot=192.168.0.3:/nfs ip=192.168.0.2:192.168.0.3:192.168.0.1:255.255.255.0::eth0:off console=ttyS0,115200 init=/linuxrc Trying to install interrupt handler for IRQ0 Trying to install interrupt handler for IRQ1 Trying to install interrupt handler for IRQ2 Trying to install interrupt handler for IRQ3 Trying to install interrupt handler for IRQ4 Trying to install interrupt handler for IRQ5 Trying to install interrupt handler for IRQ6 Trying to install interrupt handler for IRQ7 Trying to install interrupt handler for IRQ8 Trying to install interrupt handler for IRQ9 Trying to install interrupt handler for IRQ10 Trying to install interrupt handler for IRQ11 Trying to install interrupt handler for IRQ12 Trying to install interrupt handler for IRQ13 Trying to install interrupt handler for IRQ14 Trying to install interrupt handler for IRQ15 Trying to install interrupt handler for IRQ16 Trying to install interrupt handler for IRQ17 Trying to install interrupt handler for IRQ18 Trying to install interrupt handler for IRQ19 Trying to install interrupt handler for IRQ20 Trying to install interrupt handler for IRQ21 Trying to install interrupt handler for IRQ22 Trying to install interrupt handler for IRQ23 Trying to install interrupt handler for IRQ24 Trying to install interrupt handler for IRQ25 Trying to install interrupt handler for IRQ26 Trying to install interrupt handler for IRQ27 Trying to install interrupt handler for IRQ28 Trying to install interrupt handler for IRQ29 Trying to install interrupt handler for IRQ30 Trying to install interrupt handler for IRQ31 PID hash table entries: 128 (order: 7, 512 bytes) Console: colour dummy device 80x30 Dentry cache hash table entries: 4096 (order: 2, 16384 bytes) Inode-cache hash table entries: 2048 (order: 1, 8192 bytes) Memory: 32MB = 32MB total Memory: 31248KB available (1012K code, 104K data, 64K init) SLUB: Genslabs=12, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 Mount-cache hash table entries: 512 CPU: Testing write buffer coherency: ok platform_device_register sep4020_fb_set_platdata msgmni has been set to 61 Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled serial8250.0: ttyS0 at MMIO 0x10005000 (irq = 24) is a 16450 console [ttyS0] enabled serial8250.0: ttyS1 at MMIO 0x10006000 (irq = 23) is a 16450 serial8250.0: ttyS2 at MMIO 0x10007000 (irq = 22) is a 16450 serial8250.0: ttyS3 at MMIO 0x10008000 (irq = 21) is a 16450 mice: PS/2 mouse device common for all mice Freeing init memory: 64K Failed to execute /linuxrc.  Attempting defaults... Kernel panic - not syncing: No init found.  Try passing init= option to kernel.   这个中间会出现 Trying to install interrupt handler for IRQ0 Trying to install interrupt handler for IRQ1 Trying to install interrupt handler for IRQ2 Trying to install interrupt handler for IRQ3 Trying to install interrupt handler for IRQ4 Trying to install interrupt handler for IRQ5 Trying to install interrupt handler for IRQ6 Trying to install interrupt handler for IRQ7 Trying to install interrupt handler for IRQ8 Trying to install interrupt handler for IRQ9 Trying to install interrupt handler for IRQ10 Trying to install interrupt handler for IRQ11 Trying to install interrupt handler for IRQ12 Trying to install interrupt handler for IRQ13 Trying to install interrupt handler for IRQ14 Trying to install interrupt handler for IRQ15 Trying to install interrupt handler for IRQ16 Trying to install interrupt handler for IRQ17 Trying to install interrupt handler for IRQ18 Trying to install interrupt handler for IRQ19 Trying to install interrupt handler for IRQ20 Trying to install interrupt handler for IRQ21 Trying to install interrupt handler for IRQ22 Trying to install interrupt handler for IRQ23 Trying to install interrupt handler for IRQ24 Trying to install interrupt handler for IRQ25 Trying to install interrupt handler for IRQ26 Trying to install interrupt handler for IRQ27 Trying to install interrupt handler for IRQ28 Trying to install interrupt handler for IRQ29 Trying to install interrupt handler for IRQ30 Trying to install interrupt handler for IRQ31 这个问题,这是由于在/arch/arm/mach-sep4020/irq.c中 void __init sep4020_init_irq(void) { unsigned int i; unsigned long flags; local_save_flags(flags); *(RP)(INTC_IER_V) = 0XFFFFFFFF; *(RP)(INTC_IMR_V) = 0XFFFFFFFF; *(RP)(INTC_IPLR_V) = 0X0; local_irq_restore(flags); printk("sep4020_init_irq(void)\n"); for(i = 0; i < NR_IRQS; i++) { set_irq_handler(i, handle_level_irq);        set_irq_chip(i, &sep4020_chip);        set_irq_flags(i, IRQF_VALID | IRQF_PROBE);        } // __raw_writel(0, INTC_IMR_V); } 函数中set_irq_handler(i, handle_level_irq);这句应该放在 set_irq_chip(i, &sep4020_chip);        set_irq_flags(i, IRQF_VALID | IRQF_PROBE); 这两句话后面才行的:现在的结果是 Starting kernel ... Uncompressing Linux....................................... done, booting the kernel. Linux version 2.6.26 ([email protected]) (gcc version 3.4.1) #35 Sat Jul 18 15:50:34 CST 2009
setup_arch(&command_line);
CPU: ARM720T [41807202] revision 2 (ARMv4T), cr=0000217f
Machine: 4020 board
Memory policy: ECC disabled, Data cache writeback
mm_init_owner(&init_mm, &init_task);
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 8128
page_alloc_init();
Kernel command line: root=/dev/nfs rw nfsroot=192.168.0.3:/nfs ip=192.168.0.2:192.168.0.3:192.168.0.1:255.255.255.0::eth0:off console=ttyS0,115200 init=/linuxrc
trap_init();
init_IRQ();
sep4020_init_irq(void)
PID hash table entries: 128 (order: 7, 512 bytes)
init_timers();
time_init();
console_init();
Console: colour dummy device 80x30
Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
Memory: 32MB = 32MB total
Memory: 31248KB available (1012K code, 104K data, 68K init)
SLUB: Genslabs=12, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
rest_init();
platform_device_register sep4020_fb_set_platdata
msgmni has been set to 61
Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled
serial8250.0: ttyS0 at MMIO 0x10005000 (irq = 24) is a 16450
console [ttyS0] enabled
serial8250.0: ttyS1 at MMIO 0x10006000 (irq = 23) is a 16450
serial8250.0: ttyS2 at MMIO 0x10007000 (irq = 22) is a 16450
serial8250.0: ttyS3 at MMIO 0x10008000 (irq = 21) is a 16450
mice: PS/2 mouse device common for all mice
Freeing init memory: 68K
Failed to execute /linuxrc.  Attempting defaults...
Kernel panic - not syncing: No init found.  Try passing init= option to kernel.
  到这一步,移植就算结束了吧,呵呵
相关阅读 更多 +
排行榜 更多 +
浴血混战官方下载

浴血混战官方下载

飞行射击 下载
检票员模拟器免广告下载

检票员模拟器免广告下载

模拟经营 下载
最终前哨最终版手机版下载

最终前哨最终版手机版下载

休闲益智 下载