本节主要包含(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. Ubuntu+Apache+PHP+Mysql环境搭建(完整版)

    Ubuntu+Apache+PHP+Mysql环境搭建(完整版) 一.操作系统Ubuntu 14.04 64位,阿里云服务器 二.Apache 1.安装Apache,安装命令:sudo apt-get ...

  2. Ubuntu+Apache+PHP+Mysql环境搭建(完整版)(转)

    http://www.2cto.com/os/201505/401588.html Ubuntu+Apache+PHP+Mysql环境搭建(完整版) 一.操作系统Ubuntu 14.04 64位,阿里 ...

  3. Ubuntu常用命令速查手册-珍藏版-完整版

    sudo apt-get install 软件名 安装软件命令 sudo nautilus 打开文件(有root权限) su root 切换到“root” ls 列出当前目录文件(不包括隐含文件) l ...

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

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

  5. 第一章 Android系统的编译和移植实例

    第一章 Android系统的编译和移植实例 这一章节主要介绍了Android系统的编译和移植技术,作为建立在Linux内核的基础上的Android操作系统,它的编译和移植不论在过程还是技术方面都和嵌入 ...

  6. JPEG库在Linux系统下的编译和移植【转】

    本文转载自: 这篇文章介绍了jpeg库在Linux系统下的编译和移植,经过了亲自的验证,编译首先需要准备以下资源:jpegsrc.v6b.tar.gz(jpeg库),libtool-1.5.26.ta ...

  7. VoIP应用在Ubuntu 14.04下编译FFmpeg libX264及PJSIP

    PJSIP是一个开源的SIP协议栈.它支持多种SIP的扩展功能,可说算是最目前流行的SIP协议栈之一了.  它实现了SIP.SDP.RTP.STUN.TURN和ICE.PJSIP作为基于SIP的一个多 ...

  8. ubuntu下使用反编译apk,工具dex2jar和jd-gui

    ubuntu下使用反编译apk, 工具 1:通过apk-tool反编译出资源文件: http://code.google.com/p/android-apktool/ 2.首先使用dex2jar反编译 ...

  9. 【转】基于Ubuntu 14.04 LTS编译Android4.4.2源代码

    原文网址:http://blog.csdn.net/gobitan/article/details/24367439 基于Ubuntu 14.04 LTS编译Android4.4.2源代码       ...

随机推荐

  1. Oracle 学习笔记 19 -- 触发器和包浅析(PL/SQL)

    触发器是存放在数据库中的一种特殊类型的子程序.不能被用户直接调用,而是当特定事件或操作发生时由系统自己主动 调用执行.触发器不能接受參数.所以执行触发器就叫做触发或点火.Oracle事件指的是数据库的 ...

  2. [Regular Expressions] Find Groups of Characters, and ?:

    We'll capture groups of characters we wish to match, use quantifiers with those groups, and use refe ...

  3. attr()和prop()的区别

    引用以为一位大神的文章: http://www.365mini.com/page/jquery-prop.htm http://www.365mini.com/page/jquery-attr-vs- ...

  4. nodejs报错 events.js:72 throw er; // Unhandled 'error' event

    var http = require('http'); var handlerRequest = function(req,res){ res.end('hello');}; var webServe ...

  5. html5 拖放---(二)转

    draggable是一个枚举属性,用于指定一个标签是否可以被拖拽.有以下四种取值: true 表示此元素可拖拽 false 表示此元素不可拖拽 auto 除img和带href的标签a标签表示可拖拽外, ...

  6. PHP学习笔记三十六【try 二】

    <?php //定义一个顶级异常处理器 要定义在最上面 function my_exception($e) { echo "我是顶级异常处理:".$e->getMess ...

  7. hitTest:withEvent:方法(此方法可实现点击穿透、点击下层视图功能)

    此方法可实现点击穿透.点击下层视图功能 一. hitTest:withEvent:调用过程 iOS系统检测到手指触摸(Touch)操作时会将其放入当前活动Application的事件队列,UIAppl ...

  8. setNeedsDisplay、layoutSubViews

    UIView的setNeedsDisplay和setNeedsLayout方法.首先两个方法都是异步执行的.而setNeedsDisplay会调 用自动调用drawRect方法,这样可以拿到UIGra ...

  9. 通过AJAX和PHP,提交JQuery Mobile表单

    File name: callajax.php <?php $firstName = $_POST[firstName]; $lastName = $_POST[lastName]; echo( ...

  10. SQL Server 数据类型 Decimal介绍

    为SQL Server 数据类型,属于浮点数类型.存储数据范围是: -1038~1038-1 的固定精度和小数位的数字.一个decimal类型的数据占用了2~17个字节.decimal数据类型在SQL ...