linux2.6.32.2移植问题集锦

来源:互联网 发布:sql语言培训中心 编辑:程序博客网 时间:2024/06/04 19:05

1.当把内核烧入nand后画面卡在Booting Linux ...Copy linux kernel from 0x00240000 to 0x30008000, size =0x00200000 ... Copy Kernel to SDRAM done,NOW, BootingLinux......UncompressingLinux......................done, booting the kernel.

卡在这里不动了。

分析:由于刚启动就卡住,初步推断推断是机器码不匹配造成的,跟踪源码

MACHINE_START(FZ2440, "FZ2440 development board")

#define MACHINE_START(_type,_name)\
static const struct machine_desc __mach_desc_##_type\
 __used \
 __attribute__((__section__(".arch.info.init"))) = {\
.nr = MACH_TYPE_##_type, \
.name = _name,
#define MACHINE_END \
};

在arch\arm\tools目录下mach-types文件中有

# machine_is_xxx CONFIG_xxxx MACH_TYPE_xxxnumber

fz2440       MACH_FZ2440FZ2440               168

在uboot中找到开发板机器码为168,以此将此处修改为168

在arch\arm\mach-s3c2440目录下Kconfig文件中有

config MACH_FZ2440
bool "FZ2440 development board"
select CPU_S3C2440
select EEPROM_AT24
select LEDS_TRIGGER_BACKLIGHT
select SND_S3C24XX_SOC_S3C24XX_UDA134X
select S3C_DEV_NAND
select S3C_DEV_USB_HOST
help
 Say Y here to select support for the MINI2440. Is a 10cm x 10cm board
 available via various sources. It can come with a 3.5" or 7" touch LCD.

由以上代码知MACHINE_START宏将参数FZ2440转换为MACH_FZ2440找到其对应的机器码。

2.按照网上教程编译内核后,将生成zImage烧入开发板中,出现Failed to execute /linuxrc.  Attempting defaults...
Kernel panic - not syncing: No init found.  Try passing init= option to kernel.

此问题使我纠结了好几天,网上查资料说出现的原因一般是根文件系统有点问题,笔者的根文件系统是开发板自带的,由于笔者是菜鸟,是不匹配还是

内核移植的问题让人迷茫,玩了两晚上游戏,今晚突然心血来潮,仔细对内核分区信息严格按照开发板中代码复制,make后

mount: mounting tmpfs on /dev/shm failed: Invalid argument
hwclock: settimeofday() failed: Invalid argument
[01/Jan/1970:00:00:13 +0000] boa: server version Boa/0.94.13
[01/Jan/1970:00:00:13 +0000] boa: server built Mar 26 2009 at 15:28:42.
[01/Jan/1970:00:00:13 +0000] boa: starting server pid=712, port 80
                        
open device leds: No such file or directory
Try to bring eth0 interface up......ifconfig: SIOCGIFFLAGS: No such device
ifconfig: SIOCSIFHWADDR: No such device
ifconfig: SIOCSIFADDR: No such device
route: SIOCADDRT: No such process
Done
Please press Enter to activate this console.

尽然启动起来了,内核移植工作暂时告一段落。

原创粉丝点击