`

嵌入式linux应用开发完全手册学习笔记二(嵌入式linux开发环境搭建)

阅读更多

嵌入式linux开发环境搭建

 

硬件环境构建

 

主机与目标板结合的交叉开发模式

在主机编辑、编译软件,然后在目标板上运行和验证程序

 

目标板s3c6410(下周入手)

 

进行嵌入式linux开发时一般步骤

1 在主机上编译bootloader通过jtag烧入开发板

  通常选用具有串口传输、网络传输、烧写flash功能的bootloader

2 在主机上编译嵌入式linux内核,通过bootlader烧入开发板或直接启动

  内核应支持网络文件系统(nfs),即将应用程序放在主机上,单板启动嵌入

  式linux内核后,通过网络来获取程序,然后运行

3 在主机上编译各类应用程序,开发板启动内核后通过nfs运行它们,验证

  后再烧入开发板

 

 

软件环境构建

 

1虚拟机安装

2虚拟机安装linux

 vmware有四种连接方式

    网桥网络birdged 

    网络地址翻译网络(nat)

    仅为主机网络(host-only)

    客户网络

 如果接上网线,可使用网桥网络

 如果没有接网线,可以使用nat网络,在windows和linux 间进行通信

 

安装、配置、启动ftp、ssh和nfs服务

ssh

http://blog.csdn.net/retacn_yue/article/details/8454927

nfs

http://blog.csdn.net/retacn_yue/article/details/8454842

tftp

http://blog.csdn.net/retacn_yue/article/details/8454909

 

基本的开发环境

 

安装交叉编译工具链

常用的三种方法:

1 分步编译和安装交叉编译人具链所需要的库和源代码

2 通过crosstool脚本工具来实现一次编译生成交叉编译工具链

3 下载已编译好的工具链

  

使用crosstool-0.43制作交叉编译工具链

下载crosstool-0.43

官网地址:http://kegel.com/crosstool/

地址http://kegel.com/crosstool/crosstool-0.43.tar.gz 

 

解压文件

[root@localhost crosstool-0.43]# tar -xzvf crosstool-0.43.tar.gz 

 

其他资源

binutils-2.16.1.tar.gz  glibc-2.3.2.tar.gz

gcc-3.3.6.tar.bz2       glibc-linuxthreads-2.3.2.tar.bz2

gcc-4.1.0.tar.bz2       linux-2.6.18.tar.gz

gdb-6.5.tar.bz2         linux-libc-headers-2.6.12.0.tar.bz2

 

在/home/retacn/downloads目录下解压

 

 

建立角本文件

[root@localhost crosstool-0.43]# cd /home/retacn/crosstool-0.43

[root@localhost crosstool-0.43]# cp demo-arm.sh arm.sh

[root@localhost crosstool-0.43]# vi arm.sh 

内容如下:

#!/bin/sh

# This script has one line for each known working toolchain

# for this architecture.  Uncomment the one you want.

# Generated by generate-demo.pl from buildlogs/all.dats.txt

 

set -ex

#修改此处

TARBALLS_DIR=/home/retacn/downloads

RESULT_TOP=/home/retacn/crosstool

 

export TARBALLS_DIR RESULT_TOP

GCC_LANGUAGES="c,c++"

export GCC_LANGUAGES

 

# Really, you should do the mkdir before running this,

# and chown /opt/crosstool to yourself so you don't need to run as root.

mkdir -p $RESULT_TOP

 

#eval `cat arm.dat gcc-2.95.3-glibc-2.1.3.dat` sh all.sh --notest

#eval `cat arm.dat gcc-2.95.3-glibc-2.2.2.dat` sh all.sh --notest

#eval `cat arm.dat gcc-2.95.3-glibc-2.2.5.dat` sh all.sh --notest

#eval `cat arm.dat gcc-3.2.3-glibc-2.2.5.dat` sh all.sh --notest

#eval `cat arm.dat gcc-3.2.3-glibc-2.3.2.dat` sh all.sh --notest

#eval `cat arm.dat gcc-3.2.3-glibc-2.3.2-tls.dat` sh all.sh --notest

#eval `cat arm.dat gcc-3.3.6-glibc-2.2.2.dat` sh all.sh --notest

#eval `cat arm.dat gcc-3.3.6-glibc-2.2.5.dat` sh all.sh --notest

#eval `cat arm.dat gcc-3.3.6-glibc-2.3.2.dat` sh all.sh --notest

#eval `cat arm.dat gcc-3.3.6-glibc-2.3.2-tls.dat` sh all.sh --notest

#eval `cat arm.dat gcc-3.4.5-glibc-2.2.2.dat` sh all.sh --notest

#eval `cat arm.dat gcc-3.4.5-glibc-2.2.5.dat` sh all.sh --notest

#eval `cat arm.dat gcc-3.4.5-glibc-2.3.2.dat` sh all.sh --notest

#eval `cat arm.dat gcc-3.4.5-glibc-2.3.2-tls.dat` sh all.sh --notest

#eval `cat arm.dat gcc-3.4.5-glibc-2.3.5.dat` sh all.sh --notest

#eval `cat arm.dat gcc-3.4.5-glibc-2.3.5-tls.dat` sh all.sh --notest

#eval `cat arm.dat gcc-3.4.5-glibc-2.3.6.dat` sh all.sh --notest

#eval `cat arm.dat gcc-3.4.5-glibc-2.3.6-tls.dat` sh all.sh --notest

#eval `cat arm.dat gcc-4.0.2-glibc-2.2.2.dat` sh all.sh --notest

#eval `cat arm.dat gcc-4.0.2-glibc-2.3.2.dat` sh all.sh --notest

#eval `cat arm.dat gcc-4.0.2-glibc-2.3.2-tls.dat` sh all.sh --notest

#eval `cat arm.dat gcc-4.0.2-glibc-2.3.5.dat` sh all.sh --notest

#eval `cat arm.dat gcc-4.0.2-glibc-2.3.5-tls.dat` sh all.sh --notest

#eval `cat arm.dat gcc-4.0.2-glibc-2.3.6.dat` sh all.sh --notest

#eval `cat arm.dat gcc-4.0.2-glibc-2.3.6-tls.dat` sh all.sh --notest

#eval `cat arm.dat gcc-4.1.0-glibc-2.2.2.dat` sh all.sh --notest

#eval `cat arm.dat gcc-4.1.0-glibc-2.3.2.dat` sh all.sh --notest

#eval `cat arm.dat gcc-4.1.0-glibc-2.3.2-tls.dat` sh all.sh --notest

eval `cat arm.dat gcc-4.1.1-glibc-2.3.2.dat` sh all.sh --notest --gdb

 

echo Done.

 

 

 

建立配置文件

1

[root@localhost crosstool-0.43]# vi arm.dat

 

修改内容如下:

KERNELCONFIG=`pwd`/arm.config

#表示编译出来的工具样式

TARGET=arm-linux

TARGET_CFLAGS="-O"

[root@localhost crosstool-0.43]# vi gcc-4.1.1-glibc-2.3.2.dat

 

修改内容如下:

BINUTILS_DIR=binutils-2.16.1

GCC_CORE_DIR=gcc-3.3.6

GCC_DIR=gcc-4.1.1

GLIBC_DIR=glibc-2.3.2

#定义版本

LINUX_DIR=linux-2.6.18

LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0

GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2

GDB_DIR=gdb-6.5

 

执行角本

[root@localhost retacn]# mkdir crosstool

[root@localhost retacn]# chmod 777 crosstool

[root@localhost retacn]# chmod 777 crosstool-0.43

[root@localhost retacn]# su - retacn

[retacn@localhost retacn]# ./arm.sh

 

 

在环境变量path中添加路径

export PATH=/home/retacn/crosstool/gcc-4.1.1-glibc-2.3.2/arm-linux/bin:$PATH

使环境变量生效

source /etc/profile

 

最后在/home/retacn/crosstool下生成新的交叉编译工具

可以使用以下命令进行测试

arm-linux-gcc -v

 

 

 

 

编译出现错误

chmod: changing permissions of `/home/retacn/crosstool-0.43/config.guess': 

 

Operation not permitted

GLIBC_ADDON_OPTIONS not set, so guessing addons from GLIBCTHREADS_FILENAME and 

 

GLIBCCRYPT_FILENAME

/home/retacn/crosstool-0.43/crosstool.sh: line 110: bison: command not found

crosstool: You don't have bison installed.

 

[root@localhost ~]# yum install bison       <----------------语法分析器

 

chmod: changing permissions of `/home/retacn/crosstool-0.43/config.guess': 

 

Operation not permitted

GLIBC_ADDON_OPTIONS not set, so guessing addons from GLIBCTHREADS_FILENAME and 

 

GLIBCCRYPT_FILENAME

/home/retacn/crosstool-0.43/crosstool.sh: line 111: flex: command not found

crosstool: You don't have flex installed

 

[root@localhost ~]# yum install flex       <----------------词法分析器

 

S3C2440芯片没有硬件浮点数(hardfloat),很多软件只能采用软件浮点数(softfloat)

 

的编译器编译,恰巧现在高版本的u-boot只能采用支持softfloat的交叉编译器编译,否则

 

会在编译结束前的链接那一步出现不支持softfloat的错误。

        解决办法:

        要解决这个错误的唯一办法就是采用支持softfloat的交叉编译器编译uboot。下面

 

来说一下制作softfloat的具体过程。

        和上述制作交叉编译器过程一样,不同之处:1.修改arm.dat内容如下,参考arm-

 

softfloat.dat内容修改。

KERNELCONFIG=`pwd`/arm.config

TARGET=arm-softfloat-linux

TARGET_CFLAGS="-O"

GCC_EXTRA_CONFIG="--with-float=soft"

GLIBC_EXTRA_CONFIG="--without-fp"

        编译完之后,会在/opt/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-

 

linux/bin生成支持softfloat的交叉编译器,如下所示。

arm-softfloat-linux-addr2line arm-softfloat-linux-g++ arm-softfloat-linux-ld     

 

  arm-softfloat-linux-size              arm-softfloat-linux-ar         arm-

 

softfloat-linux-gcc        arm-softfloat-linux-nm  arm-softfloat-linux-strings 

 

arm-softfloat-linux-as         arm-softfloat-linux-gcc-3.4.5        arm-

 

softfloat-linux-objcopy     arm-softfloat-linux-strip

 

arm-softfloat-linux-c++      arm-softfloat-linux-gccbug     arm-softfloat-linux

 

-objdump  fix-embedded-paths  arm-softfloat-linux-c++filt    arm-softfloat-

 

linux-gcov       arm-softfloat-linux-ranlib arm-softfloat-linux-cpp        arm-

 

softfloat-linux-gprof      arm-softfloat-linux-readelf

 

 

 

make[1]: *** [configure-gdb] 错误1

RED HAT系列如果出现No curses/termcap library found提示,

你需要安装:

termcap-11.0.1-16.noarch.rpm

libtermcap-devel-2.0.8-35.i386.rpm

ncurses-5.3-4.i386.rpm

[root@localhost Server]# rpm -ivh libtermcap-devel-2.0.8-46.1.i386.rpm 

[root@localhost Server]# rpm -ivh termcap-5.5-1.20060701.1.noarch.rpm 

[root@localhost Server]# rpm -ivh ncurses-5.5-24.20060715.i386.rpm 

 

分享到:
评论

相关推荐

    嵌入式Linux应用开发完全手册.rar

    嵌入式Linux应用开发完全手册,非影印PDF,每一个字都可以复制 嵌入式Linux应用开发完全手册,非影印PDF,每一个字都可以复制 嵌入式Linux应用开发完全手册,非影印PDF,每一个字都可以复制 嵌入式Linux应用开发完全...

    嵌入式Linux应用开发完全手册V4.0_韦东山全系列视频文档-IMX6ULL开发板.docx

    嵌入式Linux应用开发需要了解嵌入式系统的硬件架构、Linux操作系统的基本概念和嵌入式应用开发的设计模式等。 知识点2:开发环境搭建 嵌入式Linux应用开发需要搭建一个合适的开发环境,包括编译器、调试器、代码...

    《嵌入式Linux应用开发完全手册》2.pdf

    《嵌入式Linux应用开发完全手册》是一本详细介绍了嵌入式Linux系统开发全过程的技术书籍。作者韦东山通过该书向读者展示了如何从底层硬件支持到上层GUI应用的构建,涵盖了Linux操作系统的安装与使用、编程基础知识、...

    嵌入式Linux应用开发完全手册韦东山完整版

    总之,《嵌入式Linux应用开发完全手册》是一本内容丰富、实用性强的参考书,对于想深入理解嵌入式Linux系统并进行应用开发的读者来说,是不可或缺的学习资源。通过阅读这本书,开发者能够掌握嵌入式Linux系统的核心...

    [嵌入式Linux应用开发完全手册].有目录.z05

    这个是我在网上收集的 韦东山的《嵌入式Linux应用开发完全手册》的pdf版,有目录。网上有很多这本书的pdf文件,但都是复印版的,在pdf文件中没有目录,而这本书有。 请依次下载完 [嵌入式Linux应用开发完全手册].有...

    《嵌入式Linux应用开发完全手册》韦东山光盘.iso

    《嵌入式Linux应用开发完全手册》韦东山光盘.iso《嵌入式Linux应用开发完全手册》韦东山光盘.iso

    基于I.MX6ULL的嵌入式linux应用开发完全手册

    ### 基于I.MX6ULL的嵌入式Linux应用开发完全手册 #### 标题解析 **基于I.MX6ULL的嵌入式Linux应用开发完全手册**:此标题明确指出了手册的主要内容是关于如何在I.MX6ULL平台上进行嵌入式Linux的应用开发。I.MX6ULL...

    《嵌入式Linux应用开发完全手册》1-14章.pdf

    《嵌入式Linux应用开发完全手册》是韦东山编著的一本专门针对嵌入式Linux系统开发的教程书籍。本书详细介绍了从嵌入式Linux系统的底层支持到上层GUI应用开发的全过程,旨在为读者提供一个系统性的学习路径,让初学者...

    嵌入式Linux应用开发完全手册(韦东山)

    韦东山老师的《嵌入式Linux应用开发完全手册》电子版

    嵌入式Linux应用开发完全手册PDF.part1

    《嵌入式Linux应用开发完全手册》全面... 《嵌入式Linux应用开发完全手册》由浅入深,循序渐进,适合刚接触嵌入式Linux的初学者学习,也可作为大、中专院校嵌入式相关专业本科生、研究生的教材。非常适合新手入门!

    嵌入式Linux应用开发完全手册(配套实验光盘).part12.rar

    嵌入式Linux应用开发完全手册(配套实验光盘),包含书本中的所有软件(共14个分卷,每个50M,请下载完后就可以解压)

    《嵌入式Linux应用开发完全手册》韦东山光盘1.iso

    《嵌入式Linux应用开发完全手册》韦东山光盘.iso

    嵌入式Linux应用完全开发手册--韦东山

    《嵌入式Linux应用完全开发手册--韦东山》是一本深入探讨嵌入式系统中Linux应用开发的专业书籍。本书由韦东山撰写,旨在帮助读者掌握在嵌入式平台上利用Linux进行应用程序开发的全面技能。书中涵盖了从基础概念到...

    嵌入式Linux应用开发完全手册

    第1篇 嵌入式Linux开发环境构建篇 第1章 嵌入式Linux开发概述 第2章 嵌入式Linux开发环境构建 ...第5篇 嵌入式Linux系统应用开发篇 第25章 嵌入式GUI开发 第26章 基于X的GUI开发 第27章 Linux应用程序调试技术 参考文献

    名师韦东山嵌入式Linux应用开发最新完全手册

    《名师韦东山嵌入式Linux应用开发最新完全手册》是一部深入浅出的教程,旨在帮助读者掌握嵌入式Linux应用开发的核心技能。该手册由知名讲师韦东山编写,以其丰富的教学经验和深入的技术理解,为学习者提供了一条通向...

    嵌入式Linux应用开发完全手册.part4

    《嵌入式Linux应用开发完全手册》全面介绍了嵌入式Linux系统开发过程中,从底层系统支持到上层GUI应用的方方面面,内容涵盖Linux操作系统的安装及相关工具的使用、配置,嵌入式编程所需要的基础知识(交叉编译工具的...

    嵌入式Linux应用开发完全手册光盘

    嵌入式Linux应用开发完全手册

Global site tag (gtag.js) - Google Analytics