本节主要包含(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. python学习之路-7 模块configparser/xml/shutil/subprocess以及面向对象初级入门

    本篇记录内容 模块 configparser xml shutil subprocess 面向对象 面向对象基础 面向对象编程和函数式编程对比 面向对象中对象和类的关系 面向对象之构造方法 面向对象之 ...

  2. [转]Laravel 4之路由

    Laravel 4之路由 http://dingjiannan.com/2013/laravel-routing/ Laravel 4路由是一种支持RESTful的路由体系, 基于symfony2的R ...

  3. Hacker(十)----常用入侵工具

    黑客若想攻击目标计算机,仅靠DOS命令是无法完成的,还需要一些功能强大的入侵工具,如端口扫描工具.网络嗅探工具.木马制作工具及远程控制工具等. 一.端口扫描工具 端口扫描工具有扫描端口的功能,所谓端口 ...

  4. Transition 1

    W3C标准中对css3的transition这是样描述的:“css的transition允许css的属性值在一定的时间区间内平滑地过渡.这种效果可以在鼠标单击.获得焦点.被点击或对元素任何改变中触发, ...

  5. MVC中的AppendTrailingSlash以及LowercaseUrls

    asp.net MVC是一个具有极大扩展性的框架,可以在从Url请求开始直到最终的html的渲染之间进行扩展,所以要学好还是需要了解框架的运行原理,推荐Artech. 今天我们回忆的不是MVC中的fi ...

  6. 转:Dictionary<int,string>怎么获取它的值的集合?急!急!急!

    怎么获取Dictionary<int, string>的值?我知道这个是键值对的,我知道可以根据key得到value,但关键是现在连key也不知道啊就是想让这个显示在listbox中,应该 ...

  7. 莫比乌斯反演题目泛做(为了对应smz的课件)

    题1:BZOJ2190 SDOI 2010 仪仗队 题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2190 算法讨论: 我们先来考虑一个点被 ...

  8. uva 10391 Compound Words <set>

    Compound Words You are to find all the two-word compound words in a dictionary. A two-word compound ...

  9. (转) mac 下的eclipse 配置 python 2.7

    原地址: http://marsfreewill.blogspot.it/2012/08/mac-ospythonpydeveclipse.html   在MAC OS上配置Python开发环境(Py ...

  10. 基于jQuery UI的tabs选项卡美化

    很多朋友对JS望而生畏,但听很多朋友说jQuery很简单,因此开始使用jQuery,使用之后发现,只会写简单的功能,复杂的功能还是不太会写或者总是担心自己写的有性能问题,对前端人员来说只能通过不断学习 ...