QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 968|回复: 2

请教高手:编译uClinux时出错

[复制链接]
发表于 2005-9-24 10:41:49 | 显示全部楼层 |阅读模式
按下列步骤编译uClinux-dist-20041215.tar.gz + S3C44B0

1   在linux-2.4.x/arch/armnommu/vmlinux-armv.lds.in文件中找到以下行:

*(got) /* Global Offset table */

在其之后添加如下语句:



romfs_data = .;

romfs.o

romfs_data_end = .;

注意,等号两边都要有空格。



l         在vendors/Samsung/4510B/Makefile 文件中添加image目标的第三行,增加一条语句:arm-elf-ld -r -o $(ROOTDIR)/$(LINUXDIR)/romfs.o -b binary $(ROMFSIMG)

如下为增加之后:



image:

[ -d $(IMAGEDIR) ] || mkdir -p $(IMAGEDIR)

genromfs -v -V "ROMdisk" -f $(ROMFSIMG) -d $(ROMFSDIR)

arm-elf-ld –r –o /root/uclinux/uClinux-dist/linux-2.4.x/romfs.o –b binary /root/uclinux/uClinux-dist/images/romfs.img

(/root/uclinux是我存放uClinux-dist的目录)



l         修改linux-2.4.x/drivers/char/serial_samsung.c, 找到uart_config数组,把如下项:

{ "S3C4510B", 1, 0}, /* Samsung S3C4510B uart support */

修改为:

{ "S3C4510B", 128, 0}, /* Samsung S3C4510B uart support */



l         执行make menuconfig

此处设置成S3C44B0X



l         修改config/.config,注释掉CONFIG_USER_OLD_PASSWORDS



l         执行make dep



l         执行make lib_only



l         执行make user_only



l         执行make romfs



l         修改linux-2.4.x/arch/armnommu/mach-S3C44B0X/arch.c

将23行的S3C44B0X改为S3C44B0

在代码末尾添加”}”



修改linux-2.4.x/arch/armnommu/kernel/head-armv.S

将206行以及439行的S3C44B0X改为S3C44B0



l         执行make


以上均通过, 到执行make时遇到了问题,出错提示为:
/usr/local/bin/arm-elf-ld.real: cannot open romfs.o: ?????????
原来是在内核linux-2.4.x下没有romfs.o这个文件,那么这个文件从何而来, 怎么产生的呢?
 楼主| 发表于 2005-9-24 11:31:41 | 显示全部楼层
呵呵,矫正好了.
办法是重新再编译一次! :-(  
回复

使用道具 举报

 楼主| 发表于 2005-10-6 17:24:21 | 显示全部楼层
在make romfs后必须进行
make image(生成romfs.o文件)
然后 make
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-3 02:34 , Processed in 0.097911 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

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