本节主要包括(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

#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编译和移植(完整版)相关推荐

  1. 移植完整版RT-Thread到GD32F4XX(详细)

    主要参考文档:rt-thread-master\rt-thread-master\bsp\gd32\docs\GD32系列BSP制作教程.md GD32F4xx_Firmware_Library_Us ...

  2. 一天一阔阔儿ZYNQ的linux移植完整版(Linux环境搭建以及内核编译)

    虚拟机UBUNTU12.04 64bit 701N 芯片是7020clg400 XILINX的交叉编译器安装 主要就是安装出现的一些问题,方法总结: 主要涉及的问题是,ubuntu12.04 64位系 ...

  3. ubuntu18.04 ros melodic Autoware1.14源码编译安装(完整版,全过程)

    一.安装NVIDIA驱动 查看推荐显卡 ubuntu-drivers devices 找到recommended推荐的版本 本机是470版本 sudo apt-get install nvidia-d ...

  4. Qgis3.2编译移植成功文档完整版

    Qgis3.2编译移植成功文档完整版 1.1平台环境 VS2015 + QT5.9.2 + Cmake + OSGEO4W 具体环境搭建,参考博客https://blog.csdn.net/xiong ...

  5. Termux安装完整版Linux(Ubuntu)详细步骤

    一.Termux 1.Termux简介 Termux是 Android 平台上的一个终端模拟器,之所以称它为"模拟器"而非"虚拟机",是因为它并非像 PC 端的 ...

  6. 在32位Ubuntu 10.04上编译Android 2.3

    在32位Ubuntu 10.04上编译Android 2.3 http://www.ylmf.net/ubuntu/tips/2011021722700.html 本人在Ubuntu 10.04系统 ...

  7. Ubuntu 12.04 下编译Android 4.0.3

    在Ubuntu 12.04 下编译了Android 4.0.3发现了一大堆错误,网上找了一堆的更改源码啊,Android.mk的解决方法,虽然可以编译成功,但都有点坑爹的成分,为了不误人子弟就分享出来 ...

  8. 6001. mavlink 编译与移植

    mavlink 编译与移植 1 源码下载 git clone https://github.com/mavlink/mavlink.git --recursive 2 源码配置编译 2.1 配置生成c ...

  9. 在Ubuntu Server14.04上编译Android6.0源码

    此前编译过Android4.4的源码,但是现在Android都到了7.0的版本,不禁让我感叹Google的步伐真心难跟上,趁这周周末时间比较充裕,于是在过去的24小时里,毅然花了9个小时编译了一把An ...

最新文章

  1. Exchange2007中创建收件人对象、通讯组和地址列表和客户端访问
  2. JS 将负数转化为正数
  3. 用python随机画多个圆_Python Pygame随机绘制不重叠的圆圈
  4. MFC中的控件是怎么实现的呢?一个按钮就是一个窗口?还是所有按钮画在一个分层窗口上再叠
  5. c#web服务器 虚拟目录,C#建立自己的Web服务器
  6. 使用loadrunner的vb vuser写脚本 运行报错:vbascriptext.dll -25277 -25240
  7. 如何查看hadoop是32位还是64位
  8. SAP License:不如把碎片时间拿来学SAP吧
  9. Qt5 QtQuick系列----QtQuick的Secne Graph剖析(1)
  10. 《Python编程初学者指南》——第1章 启程:Game Over程序 1.1 剖析Game Over程序
  11. Spring框架学习---Spring Framework下篇
  12. android+反编译加广告,追书神器Android版,反编译去广告基本教程
  13. 笔记本电脑没有外放声音,但是插上耳机有声音的问题解决方法
  14. tp link无线路由器怎么设置
  15. odoo社区版审批流
  16. 数据库中,DDL,DQL,DML,DCL是什么意思?
  17. pcf8591c语言编程,ADDA系列PCF8591的驱动程序
  18. ABP开发框架的总体介绍
  19. 生活随记-冬天的馈赠
  20. 【算法-枚举】熄灯问题 通俗详细的解题叙述(OpenJudege-2811)

热门文章

  1. 微信小程序——button添加背景图片
  2. 各种协议报头解析(以太网,IP,TCP,UDP报头)
  3. 【趣味案例】用python制作全国身份证号验证及查询系统
  4. 【Android TV 开发】-->Leanback 库简介
  5. 学好一宁喜欢的 Arthas SM 命令, 做好葱油饼
  6. python 分割字串_在Python中分割,连结和连结字串
  7. java 新手入门电子书_java基础知识(适合新手入门).pdf
  8. opencv null pointer (null name string) in cvNamedWindow
  9. 如何在计算机安装本地磁盘e,本地硬盘安装Win7旗舰版系统的详细教程
  10. 给所有入门程序员的建议(1)--句句是诤言 希望大家认真读完