- 论坛徽章:
- 0
|
首先描述一下需求,要将MontaVista Linux for IXP425的内核移植到一个主芯片是IXP425BD的板子上面。这套MVL曾经成功地运行在一套基于IXP425的板子上,这次是要迁移到一款全新的硬件上。
首先使用原来可以成功运行的kernel配置进行配置,我使用的是MVL3.0,其内核版本是2.4.18。
注:由于两款硬件的SDRAM大小不同,以前的SDRAM是256M,新硬件的SDRAM是128M,因此修改配置文件中的kernel cmdline,内容如下:
- console=ttyS0,115200 root=/dev/ram rw ip=off mem=128M@0x00000000 initrd=0x00800000,8M
复制代码
然后执行一下命令:
- make ixdp425_config
- make oldconfig
- make dep
- make zImage
复制代码
成功,得到vmlinux和zImage,用file命令检查vmlinux文件,显示:
- file vmlinux
- vmlinux: ELF 32-bit MSB executable, ARM, Version 1 (ARM), statically linked, not stripped
复制代码
确认为可以在ARM上执行的文件。然后连接硬件,启动到RedBoot系统,执行以下命令:
- RedBoot> load -r -v -b 0x11600000 zImage
- Using default protocol (TFTP)
- |
- Raw file loaded 0x11600000-0x116ada3f, assumed entry at 0x11600000
- RedBoot> fis list
- Name FLASH addr Mem addr Length Entry point
- RedBoot 0x50000000 0x50000000 0x00060000 0x00000000
- RedBoot config 0x50FC0000 0x50FC0000 0x00001000 0x00000000
- FIS directory 0x50FE0000 0x50FE0000 0x00020000 0x00000000
- mac 0x50060000 0x10000000 0x00020000 0x10000000
- zimage 0x50080000 0x11600000 0x00100000 0x11600000
- ramdisk 0x50180000 0x10800000 0x00600000 0x10800000
- param 0x505E0000 0x00100000 0x00020000 0x10800000
- RedBoot> go 0x11600000
- Uncompressing Linux.................................................. done, boot
- ing the kernel.
复制代码
到此,系统就没有反映了。
网上搜索了一下,发现有三种情况遇到此问题:
1、一部分同仁们在cmdline中的console定义错误,将ttyS0写成了tty0,这样将输出定向到了标准终端,而不是串口;
2、一部分同仁在省级到2.6.10以上内核时还是错误的定义了console输出,2.6.10后的串口名据说变成ttySC0了,我也没试过2.6.10的内核;
3、还有一部分人在升级到2.6.10后,使用一个叫做skyeye的工具模拟,好像那样会牵扯到一个memory.h和lubbock.c中的关于内存基地址的定义问题,需要修改基地址中的0xa0000000为0xc00000000。
以上三种情况均与我不同,因此暂时还是一筹莫展!
如果有哪位兄弟碰到过类似情况,或者有什么思路,还望赐教!
[ 本帖最后由 Jobs.AE@ 于 2006-1-13 11:20 编辑 ] |
|