|
按下列步骤编译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这个文件,那么这个文件从何而来, 怎么产生的呢? |
|