本节主要包含(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. Git 笔记一 Git简介

    git 笔记一 什么是版本控制 所谓版本控制就是记录对文件的修改记录,这样以后就能回退到需要的 版本.比如你对一段代码进行了几次修改,有几次修改不想要了,如果 使用了版本控制,就可以回退到未做这些修改 ...

  2. Oracle-nomount/mount/open

    通常所说的Oracle Server主要由两个部分组成:Instance和Database.Instance是指一组后台进程(在Windows上是一组线程)和一块共享内存区域:Database是指存储 ...

  3. Masonry的一些使用。

    除了等距的有问题(懒得改了),其他用过挺正常的,我自己也是刚使用,有问题还请海涵. 地址:http://pan.baidu.com/s/1boyxu8Z

  4. AC自动机(模板)

    #include <cstdio> #include <cstring> #include <iostream> #include <cstdlib> ...

  5. session问题和JSP

    session问题和JSP 07. 五 / J2EE / 没有评论   一.Session开发中遇到的问题1.内存中的Session非常多,怎么办?2.用户在购物中.服务器停掉了该web应用(或者重新 ...

  6. RBAC 基于角色的权限管理的简单实现

    1.什么是权限管理,权限管理就是对后台功能的细分,和对不同工作人员划分不同的工作的管理 RBAC是如何实现的,通过对不同控制器和控制器不同方法的限制,实现的管理. 要实现RBAC需要三张表,一张用户表 ...

  7. Spring HibernateTemplate的使用

    Spring HibernateTemplate的使用 2008-03-25 11:38 2020人阅读 评论(0) 收藏 举报 springbeanhibernatesessiondaoclass ...

  8. win8系统intellij输入中文问题

    用上新的intellij,不过在输入汉字时出现后面的被删除,网上找了,没有找到解决方案,只有自己解决了,感觉如果是intellij不兼容win8,那么就不能用intellij,那对于习惯了intell ...

  9. PHP 中 AJAX 中文乱码解决

    最近,在用PHP做一个AJAX功能时,出现了中文乱码.在网上搜索了一上,很多是有说不过试过都不行,我页面的的编码是UTF-8的,MYSQL中也是UTF-8的.以前在.NET中也遇到这样的问题,但只是在 ...

  10. poj 3318 Matrix Multiplication

    http://poj.org/problem?id=3318 矩阵A*矩阵B是否等于矩阵C #include <cstdio> #include <cstring> #incl ...