Kernel paic -not syncing: Attempted to kill init!---- linux2.6.32.移植到TQ2440

这篇文章重点在于探讨移植linux2.6.32和busybox到TQ2440开发板上可能出现的问题分析

对于移植过程,请按照指导书上的内容按部就班操作

问题1. 卡死

描述  文件系统不能加载

Copy linux kernel from 0x00200000 to 0x30008000, size = 0x00200000 ... Copy Kernel to SDRAM done,NOW, Booting Linux......
Uncompressing Linux................................................................................................................................. done, booting the kernel.,

然后,在此处卡死了


可能的解决方案:

查看Uboot传递的参数,可能是bootargs参数错误,比如root=/dev/mtdblockx  x的值不对,比如文件系统rootfstype=yaffs2 内容书写错误

问题2:  Kernel panic

描述:文件系统加载成功后

Free init memory :140k

Kernel paic -not syncing: Attempted to kill init!,然后卡死

Kernel paic -not syncing: Attempted to kill init!---- linux2.6.32.移植到TQ2440_第1张图片

可能的解决方法:

1. 在内核编译时候,注意打开对EABI,OABI的支持,2440的指导文档上着重提到了这一点

2. 查看busybox的属性

your  rootfs   #readelf /bin/busybox -A

  Tag_CPU_name: "4T"
  Tag_CPU_arch: v4T
  Tag_ARM_ISA_use: Yes
  Tag_THUMB_ISA_use: Thumb-1
  Tag_ABI_PCS_wchar_t: 4
  Tag_ABI_FP_denormal: Needed
  Tag_ABI_FP_exceptions: Needed
  Tag_ABI_FP_number_model: IEEE 754
  Tag_ABI_align8_needed: Yes
  Tag_ABI_enum_size: int

看支持的CPU架构Tag_CPU_arch是否为V4T,因为S3C2440是V4T的,一些编译器版本比如codesourrce出品的arm-2009q1是默认支持armv5t的

如果显示的 CPU架构是Tag_CPU_arch: xxx   xxx不为V4T

请修改busybox的Makefile

#vi Makefile

设置工具链

修改

CC=$(CROSS_COPILE)gcc

CC=$(CROSS_COPILE)gcc -march=armv4t

 

‍问题3: 不能进控制台

描述

一直打印

cant'open /dev/s3c2410_serial: No such file or director

可能的解决方案

修改 etc/inittab

#vi /etc/inittab

‍s3c2410_serial::askfirst:/bin/sh修改为

console::askfirst:/bin/sh



你可能感兴趣的:(linux,kill,gcc,FP,makefile,编译器)