ubuntu 步步为营之uclinux编译和移植(完整版)
来源:互联网 发布:mysql 客户端 编辑:程序博客网 时间:2024/06/05 13:35
本节主要包括(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 = .;
romfa.o
romfs_data.end = .;
然后wq退出
这一步如果不做,编译的时候会出错(等号两边都必须有空格)。
(4510需要修改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了进入了配置界面
四,移植
#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下生成我们想要的文件
- ubuntu 步步为营之uclinux编译和移植(完整版)
- ubuntu 步步为营之入门篇(完整版)
- ubuntu 步步为营之嵌入式开发环境搭建(完整版)
- ubuntu 步步为营之BOA移植
- Ubuntu 8.04 下uClinux的编译和skyeye仿真(转)
- Ubuntu 8.04 下uClinux的编译和skyeye仿真
- Ubuntu 8.04 下uClinux的编译和skyeye仿真
- uClinux学习笔记之一 Ubuntu 8.04 下uClinux的编译和skyeye仿真
- uClinux移植和分析(1)
- uClinux移植和分析(2)
- uClinux移植和分析(1)
- uClinux移植和分析(2)
- uClinux移植和分析(1)
- uClinux移植和分析(2)
- Linux移植之旅一(ucLinux简介)
- 移植uClinux
- ubuntu下编译uclinux skyeye上运行
- ubuntu 步步为营之C编程初步
- Javascript 常用脚本
- stamps
- 使用Jacob批量转换word为txt、pdf、xps、html、xml等文档
- PHP 语言结构(Language constructs)和函数的区别
- [面试问答] 面试常问的40个问题 附带经典答案!
- ubuntu 步步为营之uclinux编译和移植(完整版)
- HTTP 416 错误 – 所请求的范围无法满足 (Requested Range not satisfiable)
- 整数类型
- from ibatis2.x to mybatis 3.x
- Linux下Bash的操作环境相关,issue,motd,login shell,non-login shell,source,stty,set
- SYBASE 有用网址
- WIFI-Robot Car无线智能远程遥控小车
- 职场法则二十条
- Linux-2.6.28内核移植及Yaffs文件系统制作 for FL2440(一)