QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1048|回复: 1

4510B移植2.6.11.8出现问题

[复制链接]
发表于 2005-9-19 15:16:34 | 显示全部楼层 |阅读模式
4510B移植2.6.11.8出现问题

4510B移植linux2.6.11.8出错,请求帮助
我按照这里得 http://bbs.edw.com.cn/dispbbs.asp?B...id=46160&skin=1
得一些步骤改得
但没有修改这里:

修改linux-2.6.x/arch/armnommu/arch/kernel/vmlinux-lds, 添加romfs.o
78 *(.got) /* Global offset table */
79
80 romfs_start = .;
81 romfs.o
82 romfs_end = .;

修改linux-2.6.x/arch/armnommu/kernel/setup.c,添加变量romfs_start,romfs_end及设置default_command_line
64 extern int _stext, _text, _etext, _edata, _end;
65 extern int romfs_start,romfs_end;

682 char *from = default_command_line;
683 sprintf(default_command_line, "root=/dev/ram0 initrd=0x%08lx,%ldk keepinitrd", (unsigned

long)&romfs_start,((unsigned long)&romfs_end - (unsigned long)&romfs_start)>>10);


结果出现下面得错误:

make -C tools/ucfront
make[1]: Entering directory `/root/uClinux-dist-test/tools/ucfront'
make[1]: `ucfront' is up to date.
make[1]: Leaving directory `/root/uClinux-dist-test/tools/ucfront'
ln -sf /root/uClinux-dist-test/tools/ucfront/ucfront tools/ucfront-gcc
ln -sf /root/uClinux-dist-test/tools/ucfront/ucfront tools/ucfront-g++
make ARCH=arm CROSS_COMPILE=arm-uclinux- -C linux-2.6.x || exit 1
make[1]: Entering directory `/root/uClinux-dist-test/linux-2.6.x'
CHK include/linux/version.h
CC arch/arm/kernel/asm-offsets.s
In file included from arch/arm/kernel/asm-offsets.c:13:
include/linux/sched.h: In function `arch_pick_mmap_layout':
include/linux/sched.h:1174: error: `TASK_UNMAPPED_BASE' undeclared (first use in this function)
include/linux/sched.h:1174: error: (Each undeclared identifier is reported only once
include/linux/sched.h:1174: error: for each function it appears in.)
make[2]: *** [arch/arm/kernel/asm-offsets.s] Error 1
make[1]: *** [arch/arm/kernel/asm-offsets.s] Error 2
make[1]: Leaving directory `/root/uClinux-dist-test/linux-2.6.x'
make: *** [linux] Error 1


请问各位这是什么错误?请求各位帮忙
发表于 2005-9-19 15:53:31 | 显示全部楼层
我不知你的问题怎么解决,但我有更为简单的解决办法,至少我用起来没问题,至于有什么缺点,各位可以指正。
1、把生成的romfs.img用bin2c生成一个C文件,比如名字叫:romfs_data.c,文件里的数组名叫:romfs_data,放到与blkmem.c同一个目录
2、替换blkmem.c中:extern romfs_data[]为#include "romfs_data.c"
3、编译内核
bin2c在2.6内核里的script目录里(好象是,在家里做的,现在忘了,源码要编译),使用方法:bin2c romfs_data < romfs.img > romfs_data.c
每次改变了romfs_data.c,记住touch 一下blkmem.c。

其实这个方法跟改链接配置文件差不多。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-3 04:15 , Processed in 0.035949 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表