Step0. 我用的是在WinXp下 VisualBox + Fedaro9
Step1. 下载源码和交叉编译工具
下载工具包arm-elf-tools-20030314.sh;uClinux内核uClinux-dist-20040408.tar.gz
tar xvzf uClinux-dist-20040408.tar.gz 解压缩到Linux根目录
chmod 755 arm-elf-tools-20030314.sh
./arm-elf-tools-20030314.sh
或者做为压缩包安装:先制作压缩包
tail -n+43 arm-elf-tools-20030314.sh >> 1.tar.gz
复制压缩包到根目录
sudo cp 1.tar.gz /
解包
sudo tar zxvf 1.tar.gz
(安装完成)
Step2.编译uClinux内核
cd uClinux-dist
make mrproper
vim linux2.4.x/arch/armnommu/vmlinux-armv.lds.in
在65行*
(.got) /* Global offset table */
下面加入三行
romfs_data = .;
romfs.o
romfs_data_end = .;
保存退出
vim /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
选择Samsung; 5410B; 2.4.x; uClibc; 然后退出,提示选yes。
make dep
make lib_only
vim config/.config
将25行
CONFIG_USER_OLD_PASSWORDS=y
注释掉
make user_only
make romfs
make
有错误需要编辑init.c
vim linux-2.4.x/arch/armnommu/mm/init.c
将662行的
!machine_is_ta7v() && --->//!machine_is_ta7v()&&
注释掉,再make或者make linux
有时候会提示找不到romfs.o文件,可以在linux/2.4.x/romfs/下找到。cp到uC下就可以了。
make image
make
就会在image/ 目录下得到uClinux的可执行文件的镜像了,共三个文件:image.ram, image.rom, romfs.img
image.ram时值结下载到Ram执行的文件。image.rom是一个zImage文件,也就是自解压内核,由于他使用了gzip将内核压缩过,所以比较小。这个image文件可以烧写到Flash的0x1000的位置,而不能直接下载到Ram并执行。
文章评论(0条评论)
登录后参与讨论