![字体变小](http://blog.hexun.com/img/xiao.gif)
![字体变大](http://blog.hexun.com/img/da.gif)
解压uClinux
cd /usr/src/uClinux-dist/
tar zxvf /root/uClinux/uClinux-dist-20040408.tar.gz
vi /usr/src/uClinux-dist/linux-2.4.x/arch/armnommu/vmlinux-armv.lds.in
在65行*
(.got) /* Global offset table */
下面加入三行
romfs_data = .;
romfs.o
romfs_data_end = .;
保存退出
vi /usr/src/uClinux-dist/vendors/Samsung/4510B/Makefile
在65行
genromfs -v -V "ROMdisk" -f $(ROMFSIMG) -d $(ROMFSDIR)
下面加入一行
arm-elf-ld -r -o $(ROOTDIR)/$(LINUXDIR)/romfs.o -b binary $(ROMFSIMG)
开始编译
make menuconfig/xconfig 随便
│ │ (Samsung/4510B) Vendor/Product │ │
│ │ (linux-2.4.x) Kernel Version │ │
│ │ (uClibc) Libc Version │ │
│ │ [ ] Default all settings (lose changes) │ │
│ │ [ ] Customize Kernel Settings │ │
│ │ [ ] Customize Vendor/User Settings │ │
│ │ [ ] Update Default Vendor Settings │ │
保存退出
make dep
make lib_only
编译user_only之前先修改 /usr/src/uClinux-dist/config/.config文件
将25行
CONFIG_USER_OLD_PASSWORDS=y
注释掉,
接着删除掉/usr/src/uClinux-dist/user/boa/src下的所由.o的文件
rm -rf /usr/src/uClinux-dist/user/boa/src/*.o
否则会在编译时会产生一个错误
make user_only
make romfs
make
此时遇到错误就编辑一下init.c
vi linux-2.4.x/arch/armnommu/mm/init.c
将662行的
!machine_is_ta7v() &&
注释掉,
然后再make
make image
要建立uClinux-ARM的交叉编译环境就只要再从http://www.uclinux.org/pub/uClinux/arm-elf-tools/
上下载ARM交叉编译器:arm-elf-tools-20030314.sh就行了
./arm-elf-tools-20030314.sh
这个命令会在开发主机上自动建立一个uClinux-ARM的交叉编译环境。
[root@YuChou uClinux-dist]# arm-elf-gcc -v
Reading specs from /usr/local/lib/gcc-lib/arm-elf/2.95.3/specs
gcc version 2.95.3 20010315 (release)(ColdFire patches - 20010318 from http://fiddes.net/coldfire/)(uClinux XIP and shared lib patches from http://www.snapgear.com/)
这样,uClinux-ARM的交叉编译环境已经建立起来了