亲手编译uClinux
2012-06-02
标签: uClinux

解压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的交叉编译环境已经建立起来了

可能会用到的工具/仪表
本站简介 | 意见建议 | 免责声明 | 版权声明 | 联系我们
CopyRight@2024-2039 嵌入式资源网
蜀ICP备2021025729号