本节主要包含(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. SEXTANTE中调用任意C++控制台程序的简单例子

    在sextante中单纯利用python或者调用sextante已有算法进行自定义开发,很多情况下速度不咋给力,同样的操作调用QGIS的C++插件比用sextante里的算法要快,有时候快的 还不止一 ...

  2. C. Robot(BFS)

    C. Robot Time Limit: 3000ms Case Time Limit: 3000ms Memory Limit: 262144KB 64-bit integer IO format: ...

  3. Linux下Samba的配置

    前言: 为了实现windows 和 Linux以及其它操作系统之间的资源共享,软件商推出nfs 和samba两种解决方案.因为市场上缺乏象pc-nfs那样的client工具,使得Linux和windo ...

  4. SQLServer 跨服务器查询的两个办法

    网上搜了跨服务器查询的办法,大概就是Linked Server(预存连接方式并保证连接能力)和OpenDataSource(写在语句中,可移植性强).根据使用函数的不同,性能差别显而易见...虽然很简 ...

  5. MySQL 触发器的定义

    -- Insert DELIMITER $$ USE `testdatabase`$$ DROP TRIGGER /*!50032 IF EXISTS */ `Trigger_XXX_INSERT`$ ...

  6. CSS3旋转图片效果收集

    火狐中文网图片效果: [http://i.firefoxchina.cn/?www.firefoxchina.cn] .news-img-wrapper:hover img {     transfo ...

  7. 原创+部分引用啦:C# Winform界面中的分隔线问题

    C sharp 中Winform中的控件很多,一个小小的问题居然会绕上一个小弯子,做界面的时候, 你需要在界面上弄一条分隔线,把相关的功能分隔开来,结果原来在其它 IDE编辑器里很容易实现的这个功能, ...

  8. 在Lambda表达式中使用循环变量

    在C#5.0之前,如果在foreach循环中的lambda表达式里使用循环变量,那么你会发现一些意想不到的现象,例子如下: , , , }; var actions = new List<Act ...

  9. OpenCV——CvSeq动态结构序列

    动态结构序列CvSeq是所有OpenCV动态数据结构的基础. 分为两类: 稠密序列 稀疏序列 (1) 稠密序列都派生自CvSeq,他们用来代表可扩展的一维数组 - 向量.栈.队列和双端队列.数据间不存 ...

  10. 13年山东省赛 The number of steps(概率dp水题)

    转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud The number of steps Time Limit: 1 Sec  Me ...