亲手编译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的交叉编译环境已经建立起来了
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值