1、mkimage的使用(u-boot-2008.10/tools/mkimage)
首先./mkimage 运行或者 将mkimage 拷贝到 /bin 目录下面
法一:
#mkimage -n 'linux-2.6.14' -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008000 -d zImage zImage.img
tftp 0x31000000 zImage.img
法二:
#mkimage -n 'linux-2.6.14' -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008040 -d zImage zImage.img
tftp 0x30008000 zImage.img
2、使用友善编译好的内核,启动时LCD有显示输出,而中断没有显示
MACH_TYPE_MINI2440 均为1999 没有问题
最后查出是由于uboot中include/configs/mini2440.h中少了以下三个配置
//把信息传入linux核心的TAG定义: 103 #define CONFIG_SETUP_MEMORY_TAGS /* 向内核传递内存分布信息 如果没有定义这个参数,则uboot参数必须加入men=内存大小*/ 104 #define CONFIG_INITRD_TAG 105 #define CONFIG_CMDLINE_TAG /* 向内核传递命令行参数 设置bootargs出入内核必须 */
4、内核nfs启动
nfs 31000000 192.168.1.10:/opt/FriendlyARM/mini2440/rootfs_qtopia_qt4/zImage.img
bootm 31000000
#define CONFIG_BOOTCOMMAND "tftp 31000000 zImage.img; bootm 31000000"
5、bootargs设置 nfs启动
(1)修改 变量
setenv bootargs noinitrd root=/dev/nfs rw nfsroot=192.168.1.10:/opt/FriendlyARM/mini2440/rootfs_qtopia_qt4 ip=192.168.1.11:192.168.1.10:255.255.255.0 console=ttySAC0,115200 init=/linuxrc mem=64M
(2)设置 CONFIG_BOOTARGS
#define CONFIG_BOOTARGS "noinitrd root=/dev/nfs rw nfsroot=192.168.1.10:/opt/FriendlyARM/mini2440/rootfs_qtopia_qt4 \
ip=192.168.1.11:192.168.1.10:255.255.255.0 console=ttySAC0,115200 init=/linuxrc mem=64M"