首页 > 代码库 > ubuntu 步步为营之uclinux编译和移植(完整版)

ubuntu 步步为营之uclinux编译和移植(完整版)

本节主要包含(ubuntu10.04)

一,linux下的经常使用压缩解压缩命令

二,环境建立

三,内核编译

四,移植


一,linux下的经常使用压缩解压缩命令

在linux下常见的压缩文件格式有tar   gzip    zip   bzip2    compress等

首先对于tar格式的,压缩和解压缩方式例如以下

.tar 解压  #tar -xvf file1.tar               压缩 #tar -cvf file1.tar 

.tar.gz 解压  #tar -zxvf file1.tar         压缩 #tar -zcvf file1.tar 

.tar.bz 解压  #tar -jxvf file1.tar         压缩 #tar -jcvf file1.tar 

对于gzip格式的,压缩和解压缩方式例如以下

 .gz后缀的  解压  #gzip  -d  file1.gz        压缩 #gzip file1

对于zip格式的,压缩和解压缩方式例如以下

 .zip后缀的  解压  #uzip    file1.zip       压缩 #zip file.zip file1 file2   file3

对于bzip2格式的,压缩和解压缩方式例如以下

.bz2          解压  #bunzip2 file.bz2       压缩 #bzip2 *



二,环境建立

首先要把交叉工具设置好(具体见上一篇文章,嵌入式开发环境建立)

别人提供的(

uClinux,下载地址:http://www.uclinux.org/pub/uClinux/dist/uClinux-dist-20051110.tar.gz
交叉编译环境:http://www.uclinux.org/pub/uClinux/uclinux-elf-tools/arm-elf-tools-20030314.sh

我用的是天祥提供的arm-elf-tools

把光盘代码中的软件arm-elf-tools-20040427.sh 复制到
linux 的根文件夹下运行./ arm-elf-tools-20040427.sh 结果出现+43错误

(有人说#chmod 777 arm-elf-tools-20040427.sh后再运行就不出错不知道没试过

解决的方法:

#tail -n+43 arm-elf-tools-20040427.sh >> 1.tar.gz

#tar -zxvf  1.tar.gz

运行之后,在控制台中输入 arm-elf-gcc –v

假设成功安装了就会出现版本比如2.95.3

查看安装在了那里

#which arm-elf-gcc 

检查是否将路径增加PATH的方法:
echo $PATH

应该能看到我们的编译工具所在的路径


然后准备好uclinux内核,我这里用的是2.4

我是直接放到了home/wenzer/share目录下这个目录是和windows共享的

所以比較方便

解压
#tar xvzf uClinux2.4.tar.gz

然后等待编译

三,内核编译

进到我们刚解压的目录下,须要改动个文件

#cd uClinux-dist
#make mrproper

等待》。。。

(我的出现了一个错误被忽略了说缺少relase我忽略了这个提示)
改动文件1

#vi linux2.4.x/arch/armnommu/vmlinux-armv.lds.in


在__sto__kallsyms = ,;
*(.got)后面加上:
romfs_data = http://www.mamicode.com/.;
romfa.o
romfs_data.end = .;
然后wq退出
这一步假设不做,编译的时候会出错(等号两边都必须有空格)。


(4510须要改动makefile

#vi vendors/Samsung/4510B/Makefile

在genromfs -v -V "ROMdisk" -f $(ROMFSIMG) -d $(ROMFSDIR)的下一行增加
arm-elf-ld -r -o $(ROOTDIR)/$(LINUXDIR)/romfs.o -b binary $(ROMFSIMG)
然后wq保存退出

)

#make menuconfig

出错了

>> Unable to find the Ncurses libraries.
>>
>> You must have Ncurses installed in order
>> to use ‘make menuconfig‘

解决方法:

运行命令: sudo apt-get install ncurses-dev 就可以!

(ncurses 用于make menuconfig界面显示

继续又一次make试试ok了进入了配置界面

四,移植

我把移植分成了四段,前三段配置最后一段生成镜像文件
第一段:
选择公司和产品

退出保存
中间会问你要不要IIC啊之类的一路回车无论
等待...
第二段:
配置界面出现
配置系统

保存退出
第三段
配置界面三出现

应用程序和busybox
第四段
生成镜像
 #make dep
 #make lib_only
这一步会出错须要安装软件
#apt-get install bison
又一次#make lib_only

接下来
 #vi config/.config
然后将"CONFIG_USER_OLD_PASSWORDS=y"凝视掉"#CONFIG_USER_OLD_PASSWORDS=y"

 #make user_only
 #make romfs
 #make image
假设这一步提示错误,无论他继续运行下一步
 #make
这样就会在/image下生成我们想要的文件
。ram结尾的能够直接在ram中执行
image.rom是能够自解压的正是我们须要的烧写到flash中


ubuntu 步步为营之uclinux编译和移植(完整版)