Ubuntu12.04 制作Smart210的编译环境

去年一月份做的笔记,一直没有发表,现在在找工作,才发觉自己的工作习惯不太好,笔记的话最好还是能够发出来,大家一起阅读,交流这样才能提升的快些,在这里很是感谢那些在CSDN,51CTO,和cnblog里分享自己成果的大牛们。学习的很多东西都是在这些大牛的启发下学习,并掌握的。我也会陆陆续续地把自己工作中用到的知识点分门别类地整理出来,给后来者提供一些方便。关键点都已标出,若还有不解之处,欢迎留言,大家讨论。

1)将光盘 Linux 目录中的 arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz 复制到 /opt/tmp

#sudo cp /mnt/hgfs/ubuntu_window/arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz  /opt/tmp

ubuntu_window 为共享文件夹

#tar xvzf arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz –C /

注意: C 后面有个空格,并且 C 是大写的,它是英文单词“ Change”的第一个字母,在此

是改变目录的意思。执行该命令,将把 arm-linux-gcc 安装 /opt/FriendlyARM/toolschain/4.5.1
目录。

2) 把编译器路径加入系统环境变量,运行命令#gedit /root/.bashrc编辑
/root/.bashrc 文件, 注意“ bashrc ”前面有一个“ . ”,修改最后一行为
export

PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin
注意路径一定要写对,否则将不会有效。如图,保存退出。

export PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin

重启,或者注销。使以上设置生效,在命令行输入arm-linux-gcc –v,会出现如下信息,这说明交叉编译环境已经成功安装。

3)解压安装源代码及其他工具

解压安装开发学习过程所用到的全部源代码以及其他一些小工具,这包括:

- Linux 内核源代码

- Qtopia-2.2.0 平台源代码(分为 x86 和 arm 平台两个版本)

- arm-qt-extended-4.4.3 平台源代码(也就是 Qtopia4, 分为 x86 和 arm 两个版本)

- QtE-4.8.5 平台源代码(arm 版本)

- busybox-1.17 源代码

-
Linux 编程示例源代码

-
目标文件系统目 录

-
目标文件系统映象制作工具(包括 yaffs2 和 UBIFS)

- 图形界面的
Linux logo 制作工具 logomaker

注意:所有的源代码和工具都是通过解压方式安装的,所有的源代码均使用统一的编译器

arm-linux-gcc-4.5.1 编译

A)解压安装源代码

首先创建工作目录/opt/FriendlyARM/mini210/linux

在命令行执行#mkdir –p /opt/FriendlyARM/mini210/linux

后面步骤的所有源代码都会解压安装到此目录中:

(1)准备好
Linux 源代码包

在Ubuntu系统中/tmp 目录中创建一个临时目录/tmp/linux

#mkdir /tmp/linux

把光盘中
linux 目录中的所有文件都复制到/tmp/linux 目录中

sudo cp -r /mnt/hgfs/ubuntu_window/* /tmp/linux

说明:
这样做是为了统一下面的操作步骤,其实你可以使用其他目录,也可以直接从光盘解压安装。

(2)解压安装
Linux
内核源代码

在工作目录/opt/FriendlyARM/mini210/linux 中执行:

#cd /opt/FriendlyARM/mini210/linux

#sudo
tar xvzf /tmp/linux/linux-3.0.8-20141105.tgz

将创建生成 linux-3.0.8
目录,里面包含了完整的内核源代码

说明:
20141105 是我们的发行更新日期标志,请以光盘中实际日期尾缀为准。

(3)解压安装目标文件系统

执行以下命令:

#cd /opt/FriendlyARM/mini210/linux

#sudo tar xvzf /tmp/linux/rootfs_qtopia_qt4-20141212.tgz

将创建生成 rootfs_qtopia_qt4
目录

说明:
20141212 是我们的发行更新日期标志,请以光盘中实际日期尾缀为准。

(4)解压安装嵌入式图形系统
qtopia 源代码

在工作目录/opt/FriendlyARM/mini210/linux 中执行:

#cd /opt/FriendlyARM/mini210/linux

#tar
xvzf /tmp/linux/x86-qtopia-20100420.tar.gz

#tar
xvzf /tmp/linux/arm-qtopia-20101105.tar.gz

将创建
x86-qtopia 和 arm-qtopia 两个目录,并内含相应的全部源代码。

说明:
x86-qtopia 和 arm-qtopia 后面或许会有日期尾缀, 它是我们的发行或更新日期标志,请以光盘中实际日期尾缀为准。 源代码包中也包含了嵌入式浏览器 konquor 的源代码。

(5)解压安装嵌入式图形系统
qt-extended-4.4.3 源代码在工作目录/opt/FriendlyARM/mini210/linux 中执行:

#cd /opt/FriendlyARM/mini210/linux#tar
xvzf /tmp/linux/x86-qt-extended-4.4.3-20101003.tgz

#tar
xvzf /tmp/linux/arm-qt-extended-4.4.3-20101105.tgz

将创建
x86-qt-extended-4.4.3 和 arm-qt-extended-4.4.3 两个目录,并内含相应的全部源代码。

说明:
x86-qt-extended-4.4.3 和 arm-qt-extended-4.4.3 后面或许会有日期尾缀, 它是我们的发行或更新日期标志,请以光盘中实际日期尾缀为准。

(6)解压安装
QtE-4.8.5 源代码

在工作目录/opt/FriendlyARM/mini210/linux 中执行:

#cd /opt/FriendlyARM/mini210/linux

#tar
xvzf /tmp/linux/arm-qte-4.8.5-20131207.tar.gz

(7)解压安装
busybox 源代码

Busybox 是一个轻型的 linux 命令工具集,在此使用的是 busybox-1.13.3 版本。用户可以从其官方网站下载最新版本(http://www.busybox.net)。

在工作目录/opt/FriendlyARM/mini210/linux
中执行:

#cd
/opt/FriendlyARM/mini210/linux

#tar
xvzf /tmp/linux/busybox-1.17.2-20101120.tgz

将创建
busybox-1.17.2 目录,内含相应版本的全部源代码。

说明:
为了方便用户编译使用,我们做了一个缺省的配置文件 fa.config。

(8)解压安装
Linux 示例程序执行以下命令:

#cd /opt/FriendlyARM/mini210/linux

#tar
xvzf /tmp/linux/examples-mini210-20120912.tgz

将创建
examples 目录,并包含初学 linux 编程代码示例。

说明:
20120912 是我们的发行更新日期标志,请以光盘中实际日期尾缀为准。 examples 目录中的代码均为友善之臂自主开发,并全部以源代码方式提供,它们都是一些基于命令行的小程序。

B)解压创建目标文件系统

执行以下命令:

#cd /opt/FriendlyARM/mini210/linux

#tar xvzf /tmp/linux/rootfs_qtopia_qt4-20141212.tgz

将创建 rootfs_qtopia_qt4 目录,该目录和目标板上使用的文件系统内容是完全一致的。

说明:该文件系统包含了前面你所看到的
qtopia-2.2.0, Qtopia4 和 QtE-4.8.5 测试软件等, busybox,还有常用的命令行工具等

C)解压创建文件系统映像工具

要把目标文件系统全部写入开发板中,一般还需要先把目标文件系统目录制作成单个的映像文件以便烧写或者复制, Linux内核启动时,一般会根据命令行参数挂在不同格式的系统,比如 yaffs2, ubifs, ext2 等。在此需要使用
mkyaffs2image-128M
mkyaffs2image-mlc2 这两个工具。

mkyaffs2image-128M 工具适用于 SLC NAND flash,而
mkyaffs2image-mlc2 工具适用于MLC NAND flash,它们都用来压制 yaffs2 格式的映像文件。

先将光盘
Android 目录中的 mktools-YYYYMMDD.tar.gz 文件拷贝到ubuntu 的/tmp 目录下,执行以下命令安装 mktools 工具链:

#tar xvzf /tmp/mktools-YYYYMMDD.tar.gz –C /(注: YYYYMMDD 替换为实际的日期)将会在/usr/sbin
目录下创建生成相应的工具集。

注意: C 是大写的, C 后面有个空格, C 是改变解压安装目录的意思说明: 如果你以前安装过 mini2440 或者 mini6410 使用的 mkyaffs2image 系列工具,它们将会被覆盖,请不必担心,它们功能都是相同的。

D)解压安装LogoMaker(非必需,可跳过)

LogoMaker 是友善之臂开发的一个 Linux Logo 简易制作工具,网上有很多资料介绍如何使用命令行的工具把 bmp, jpg, png 等格式的图片转换为 Linux Logo 文件,在此我们设计了一个图形化的版本,它是基于 Fedora9 开发。执行以下命令:

#tar xvzf /tmp/linux/logomaker.tgz –C /

注意: C 是大写的, C 后面有个空格, C 是改变解压安装目录的意思说明:执行以上命令, LogoMaker 将会被安装到/usr/sbin 目录下,它只有一个文件,安装完之后在命令行输入
logomaker 时

提示错误./logomaker: error while loading shared libraries: libjpeg.so.62: cannot open shared object file: No such
file or directory 找不到libjpeg的动态链接文件。

解决方法:sudo apt-get install libjpeg62-dev

不过在ubuntu下使用会出现生成的图片为0字节,为了解决这个方法先sudo apt-get install netpbm 安装netpbm。再次使用logomaker还是出现0字节的现象,放弃使用logomaker,

直接使用netpbm的命令行工具。

  pngtopnm open_show.png > temp.ppm

  ppmquant 224 temp.ppm >temp2.ppm

  pnmnoraw temp2.ppm > logo_linux_clut224.ppm

E)配置和编译内核

Linux 内核与 Android 内核使用的是同一份源码,但是配置不同,使用以下命令编译内核。

#cd /opt/FriendlyARM/mini210/linux/linux-3.0.8

#sudo cp mini210_linux_defconfig .config
;注意
config 前面有个”.”

#sudo
make menuconfig

你可以执行
make menuconfig 对配置进行修改,修改完成后,输出 make 进行编译:

#make最后会在 arch/arm/boot 目录下生成 zImage,将它替换掉 SD 卡 images/Linux/下的 zImage 烧写到开发板即可。

[email protected]:/opt/FriendlyARM/mini210/linux/linux-3.0.8$
sudo make menuconfig  HOSTCC  scripts/basic/fixdep

HOSTCC  scripts/kconfig/conf.o

*** Unable to find the ncurses libraries or the

*** required header files.

*** ‘make menuconfig‘ requires the ncurses libraries.

***

*** Install ncurses (ncurses-devel) and try again.

***

make[1]: *** [scripts/kconfig/dochecklxdialog] 错误 1

make: *** [menuconfig] 错误 2

安装

sudo apt-get install libncurses5-dev

正在读取软件包列表... 完成

正在分析软件包的依赖关系树

正在读取状态信息... 完成

将会安装下列额外的软件包:

libtinfo-dev

建议安装的软件包:

ncurses-doc

下列【新】软件包将被安装:

libncurses5-dev libtinfo-dev

升级了 0 个软件包,新安装了 2 个软件包,要卸载 0 个软件包,有 707 个软件包未被升级。

需要下载 312 kB 的软件包。

解压缩后会消耗掉 1,334 kB 的额外空间。

您希望继续执行吗?[Y/n]y

【警告】:下列软件包不能通过验证!

libtinfo-dev libncurses5-dev

不经验证就安装这些软件包吗?[y/N] Y

获取:1 http://mirrors.163.com/ubuntu/ precise/main libtinfo-dev i386 5.9-4 [93.5 kB]

获取:2 http://mirrors.163.com/ubuntu/ precise/main libncurses5-dev i386 5.9-4 [218 kB]

下载 312 kB,耗时 1秒 (288 kB/s)

Selecting previously unselected package libtinfo-dev.

(正在读取数据库 ... 系统当前共安装有 144800 个文件和目录。)

正在解压缩 libtinfo-dev (从 .../libtinfo-dev_5.9-4_i386.deb) ...

Selecting previously unselected package libncurses5-dev.

正在解压缩 libncurses5-dev (从 .../libncurses5-dev_5.9-4_i386.deb) ...

正在设置 libtinfo-dev (5.9-4) ...

正在设置 libncurses5-dev (5.9-4) ...


[email protected]:/opt/FriendlyARM/mini210/linux/linux-3.0.8$ sudo make

[sudo] password for lyun:

make: arm-linux-gcc:命令未找到

CHK     include/linux/version.h

CHK     include/generated/utsrelease.h

make[1]: “include/generated/mach-types.h”是最新的。

CC      kernel/bounds.s

/bin/sh: 1: arm-linux-gcc: not found

make[1]: *** [kernel/bounds.s] 错误 127

make: *** [prepare0] 错误 2

直接使用root进行make 少很多问题。所以一下操作均在root下执行

解决方法:

1.先打开一个超级用户权限的shell:

命令:sudo –s

2.在当前shell下,设置环境变量:

命令:gedit /etc/profile

在文件末端加上 export PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin,并保存。

3. 执行source /etc/profile    这是避免重新启动ubuntu而又使刚刚修改的环境变量生效的方法。

F)配置和编译busybox

一般从官方网站下载的 busybox 源代码,需要根据所需重新配置一下,才可以编译使用,

我们已经做好了一个缺省的配置文件: fa.config,无论是 2440 和 6410 我们均使用了此配置,通过它编译出的 busybox 可以满足绝大部分的需要,进入 busybox 源代码目录

/opt/FriendlyARM/mini210/linux/busybox-1.17.2  执行:

#cp fa.config .config

#make

稍等一会,即可在当前目录编译生成
busybox 目标文件,它和开发板预装的是一样的,一

般 busybox
是不需要更新的。

G)制作目标版文件系统映像
使用 mkyaffs2image-128M mkyaffs2image-mlc2 工具,可以把目标文件系统目录制作成
yaffs2 格式的映像文件,两个工具的区别是: mkyaffs2image-128M工具适用于 SLC NAND flash,
而 mkyaffs2image-mlc2 工具适用于 MLC NAND flash。
要将 Linux 文件系统制作成 yaffs2 格式的烧写文件,输入以下命令即可:
1) 制作适用于 SLC NAND Flash 的映象文件:
#cd /opt/FriendlyARM/mini210/linux/
#mkyaffs2image-128M rootfs_mini210 rootfs_qtopia_qt4.img
2) 制作适用于 MLC NAND Flash 的映象文件:
#cd /opt/FriendlyARM/mini210/linux/
#mkyaffs2image-mlc2 rootfs_mini210 rootfs_qtopia_qt4-mlc2.img
rootfs_mini210为实际的文件系统
将生成的 rootfs_qtopia_qt4.img rootfs_qtopia_qt4-mlc2.img 替换掉 SD 卡 images/Linux/   下的同名文件烧写到开发板即可。
时间: 2024-11-10 14:06:44

Ubuntu12.04 制作Smart210的编译环境的相关文章

ubuntu12.04平台下a80编译环境搭建

如果出现unable to locate package ,则用sudo apt-get update 安装JDK6 下面开始安装jdk: 在网上查的一些资料上都是把jdk安装在/usr/lib/jvm/jdk下面,也有安装在/opt下的,我在这里介绍的就是把它安装在了/opt下, 终端下进入你存放jdk-6u45-linux-x64.bin $sudo chmod 777 jdk-6u45-linux-x64.bin $ sudo -s  ./jdk-6u45-linux-x64.bin  /

【Android】Ubuntu 16.04搭建Android开发编译环境

一. 通用Android环境和工具配置 1. 系统更新升级 sudo apt-get update sudo apt-get upgrade 2. 配置ntlmaps代理上网环境(本公司网络需要代理) sudo apt-get update sudo apt-get install ntlmaps Parent proxy:cnkusisal Parent proxy port:8080 NT Windows domain:wkscn 以后如果需要重新配置ntlmaps可以用下面命令: sudo

Ubuntu16.04配置Android5.0编译环境

1.安装jdk7 Ubuntu16.04的安装源已经默认没有openjdk7了,所以要自己手动添加仓库,如下: $ sudo add-apt-repository ppa:openjdk-r/ppa $ sudo apt-get update 安装openjdk-7-jdk $ sudo apt-get install openjdk-7-jdk openjdk-7-jre 如果安装成功之后还是不能用可能有多个版本,执行如下命令选择正确的版本:$ sudo update-alternatives

ubuntu12.04下chromium的编译与运行

在查看了ubuntu的debian rules,重新配置chromium GYP_GENERATORS=make GYP_DEFINES="disable_sse2=1 use_third_party_translations=1 werror= sysroot= disable_nacl=1 linux_use_gold_binary=0 linux_use_gold_flags=0 enable_webrtc=1 logging_like_official_build=1 target_ar

Ubuntu12.04安装配置Nginx Tomcat环境

1.安装Nginx apt-get install nginx 然后访问http://localhost 显示 2.安装Tomcat 1)安装jdk 下载jdk1.8.0 在usr/lib目录下创建jvm文件夹 在里面解压jdk  sudo vim /etc/environment 在environment中修改PATH,追加JDK路径,添加CLASSPATH与JAVA_HOME后如下: PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bi

ubuntu 14.04搭建android编译环境

按照我的文章:http://blog.csdn.net/zangcf/article/details/23566999在ubuntu 14.04上搭建android编译环境,编译过程会出以下两个错误: 1,Can't locateSwitch.pm in @INC (you may need to install the Switch module) (@INC contains:/etc/perl /usr/local/lib/perl/5.18.2 /usr/local/share/perl

[odroid-pc] ubuntu12.04 64bit 修改GCC4.6至GCC4.4

参考:http://blog.csdn.net/nseven/article/details/8288603 之前用的默认的ubuntu12.04默认的gcc编译源代码,结果在用gdb调试的时候出现了cannot find the bounds of the current ...的错误 查看网上的资料,可能的原因是gcc版本应该用gcc4.4 现在将ubuntu版本改变再次尝试. 1. 查看gcc版本和g++版本 gcc -v g++ -v 2. 安装gcc和g++ 4.4版本 sudo ap

ubuntu12.04 安装android sdk /ndk/源码 编译环境

做android已经近5年了,期间android的各种环境都自己配过,自己是个想法比较多的人,各自神奇到想法都有,包括写博客,但是一直是没有具体落实...想法再多,不去努力实现也只能是想法了,今天准备从写博客这个小事开始做起,磨练自己到,不废话了,直接进入主题: 一.JDK(下载并安装jdk),注意事项如下: a.32位需要下32的,64位的也注意是下载64位的: b.配置环境变量: $ sudo gedit /etc/profile           在文件的末尾加上如下内容:       

ubuntu12.04下安卓编译环境搭建总结

前言: 因为工作需要,经常要编译安卓下的动态库,公司有已经搭建好环境的服务器,但是第一自己想自己搭建一下了解一个整个过程,另外,公司的服务器也经常出现问 题,导致编译不了,所以就想自己搭建环境.开始是在公司自己的电脑上装了一个unbuntu的虚拟机,然后在网上找了一个攻略,开始搭建环境.但是一直卡 在源码下载那一块,每次源码下载都出错,如后面问题1所描述.断断续续,都是工作之余抽空弄一弄,但是始终下载不成功,我以为是公司网络的问题,网络不稳 定,所以下载老失败.本来想多试几次,想想总有一次会下载