记ubuntu的uClinux交叉编译环境的搭建以及操作系统的引导
- 格式:pdf
- 大小:461.52 KB
- 文档页数:14
linux交叉编译环境搭建步骤在Linux系统下搭建交叉编译环境主要涉及以下几个步骤:2. 配置环境变量:将交叉编译工具链的路径添加到系统的环境变量中以便于使用。
可以在用户的`.bashrc`或`.bash_profile`文件中添加如下行:```bashexport PATH=<path_to_toolchain>/bin:$PATH```其中`<path_to_toolchain>`是指交叉编译工具链所在的路径。
3.设置目标平台的系统根目录:交叉编译时需要使用目标平台的系统库和头文件,因此需要设置目标平台的系统根目录。
可以通过以下方式设置:```bashexport SYSROOT=<path_to_sysroot>```其中`<path_to_sysroot>`是指目标平台的系统根目录。
4.编写一个简单的交叉编译项目:为了验证交叉编译环境是否搭建成功,可以编写一个简单的交叉编译项目进行测试。
例如,编写一个简单的C程序,将其交叉编译为ARM平台下的可执行文件。
```c#include <stdio.h>int maiprintf("Hello, world!\n");return 0;```将上述代码保存为`hello.c`文件。
然后,使用以下命令进行交叉编译:```basharm-linux-gnueabi-gcc -o hello hello.c```编译完成后,会生成一个名为`hello`的可执行文件。
在ARM平台上执行该可执行文件,将输出`Hello, world!`。
以上就是在Linux系统下搭建交叉编译环境的基本步骤。
根据具体的需求,可能还需要进行其他的配置和设置。
ubuntu10.04下建立交叉编译工具链(支持软浮点)全过程参考了网上的不少的资料,花了五个小时终于完成了,记录下全过程供大家分享。
用到的源码包如下,建议新手全部放在/home/usr/downloads/ 目录下。
以下操作在用户权限下进行。
=======================================================================arm-linux-gcc-3.4.1.tar.gzglibc-2.3.3.tar.gzlinux-2.6.8.tar.gzcrosstool-0.43.tar.gzbinutils-2.15.tar.gzglibc-linuxthreads-2.3.3.tar.gzbinutils-2.18.tar.gz --安装用编译一次至少要花半个小时,如果因为依赖软件没有安装中途会报错退出,只有从头再来,那样很浪费时间的。
sudo apt-get install bison flex build-essential patch libncurses5-dev由于ubuntu10.04自带的ld ,as版本太高的原因,需要安装binutils的2.18版本,然后替换系统中的2.20版本。
方法如下:$cd downloads$tar xzvf binutils-2.18.tar.gz$cd binutils-2.18$./configure --prefix=/tmp/binutils --disable-nls (-prefix后面的是生成可执行文件存放的位置可以自己定义)$make all$make install编译成功后在/tmp/binutils/bin/中就生成了ld和as程序的可执行文件重新链接/usr/bin/ld 和/usr/bin/as文件$sudo rm /usr/bin/ld /usr/bin/as //删除2.20的ld,as$sudo ln –s /tmp/binutils/bin/ld /usr/bin/$sudo ln –s /tmp/binutils/bin/as /usr/bin/然后可运行ld –v 和as –v 查看版本是否为2.18。
ubuntu下交叉编译环境构建(arm-linux-gcc-4.3.2 )及第一个linux下的c程序1.解压arm-linux-gcc-4.3.2.tgz#tar -jxvf arm-linux-gcc-4.3.2.tgz解压过程需要一段时间,解压后的文件形成了usr/local/ 文件夹,进入该文件夹,将arm文件夹拷贝到/usr/local/下# cd usr/local/#cp -rv arm /usr/local/现在交叉编译程序集都在/usr/local/arm/4.3.2/bin下面了2. 修改环境变量,把交叉编译器的路径加入到PATH。
修改/etc/bash.bashrc文件#vim /etc/bash.bashrc在最后加上:export PATH=$PATH:/usr/local/arm/4.3.2/binexport PATH(如果不能编辑,先修改相关文件的权限使用chmod命令。
)3.立即使新的环境变量生效,不用重启电脑:对应方法一:#source /root/.bashrc对应方法二:# source /etc/profile4.检查是否将路径加入到PATH:# echo $PATH显示的内容中有/usr/local/arm/bin,说明已经将交叉编译器的路径加入PATH。
至此,叉编译环境安装完成。
5. 测试是否安装成功:首先查看bin目录下可执行文件,或许不是arm-linux-gcc# /arm/4.3.2/bin/arm-none-linux-gnueabi-gcc-4.3.2 –v上面的命令会显示arm-linux-gcc信息和版本,gcc version 4.3.26 .编译Hello World程序,测试交叉工具链#include <stdio.h>int main(){printf("Hello World!\n");return 0;}执行下面的命令:# arm-linux-gcc -o hello hello.c源程序有错误的话会有提示,没有任何提示的话,就是通过了,就可以下载到ARM目标板上运行了!接着可以输入file hello的命令,查看生成的hello文件的类型,要注意的是生成的可执行文件只能在ARM体系下运行,不能在其于X86的PC机上运行。
1. 安装标准的C开发环境,由于Ubuntu 9.04 Linux安装默认是不安装的,所以需要先安装一下(如果已经安装好的话,就可以免去这一步了):$ sudo apt-get install gcc g++ libgcc1 libg++ make gdb如果上面这个安装不行,可以试试$ sudo apt-get install build-essential2. 下载arm-linux-gcc-4.3.2.tgz到任意的目录下,进入这个文件夹$ sudo tar xvzf arm-linux-gcc-4.3.2.tgz –C /注意:C 后面有个空格,并且 C 是大写的,它是英文单词“Change”的第一个字母,在此是改变目录的意思。
执行该命令,将把 arm-linux-gcc 安装到/usr/loca/arm/4.3.2 目录。
3. 修改环境变量,把交叉编译器的路径加入到PATH。
方法一:修改/etc/bash.bashrc文件(此文件只对当前用户适用)$sudo gedit /etc/bash.bashrc在最后加上export PATH=$PATH:/usr/local/arm/4.3.2/bin方法二:修改/etc/profile文件(此文件属于系统级别的环境变量,设置在里面的东西对所有用户适用):$sudo gedit /etc/profile增加路径设置,在末尾添加如下,保存/etc/profile文件:export PATH=$PATH:/usr/local/arm/4.3.2/bin方法三:修改/etc/environment文件$sudo gedit /etc/environment原文件应为PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin: /usr/games“将其改为PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/arm/4.3.2/bin"保存退出即可4. 立即使新的环境变量生效,不用重启电脑:对应方法一:$ source /root/.bashrc对应方法二:$ source /etc/profile方法三立即生效5. 检查是否将路径加入到PATH: $ echo $PATH显示内容/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr /games:/usr/local/arm/4.3.2/bin 说明已经将交叉编译器的路径加入PATH。
Ubuntu18.04安装arm-linux-gcc交叉编译器的两种⽅法(附下载地址)⽅法⼀: 我们都知道Ubuntu有⼀个专门⽤来安装软件的⼯具apt,我们可以⽤它来全⾃动安装arm-linux-gcc。
此⽅法安装的是最新版的,但是此⽅法需要FQ,否则99%会失败,这就是为什么⽹上⼤多都⽤压缩包安装的原因: ⾸先Ctrl+Alt+T弹出终端,使⽤如下命令进⾏arm-linux-gcc的安装:sudo apt-get install gcc-arm-linux-gnueabihf 使⽤如下命令进⾏arm-linux-g++的安装:sudo apt-get install g++-arm-linux-gnueabihf 如果要卸载时使⽤如下命令进⾏移除,arm-linux-gcc的卸载:sudo apt-get remove gcc-arm-linux-gnueabihf arm-linux-g++的卸载:sudo apt-get remove g++-arm-linux-gnueabihfsudo tar -xjvf /tmp/arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2 3.解压完成后,再在(/usr/local)中创建⼀个新⽬录arm,即在Terminal中输⼊以下命令:sudo mkdir /usr/local/arm 4.创建arm⽬录成功后,还需要给它解放全部权限,即在Terminal中输⼊以下命令:sudo chmod 777 /usr/local/arm 5.在解压出来的⽬录中找到并把整个arm-linux-gcc-3.4.5-glibc-2.3.6⽬录复制到刚刚建好的arm⽬录中,命令如下:sudo cp -r gcc-3.4.5-glibc-2.3.6 /usr/local/arm 6.打开(/etc/profile)配置环境变量和库变量,⽬的是以后可以在任何位置使⽤该交叉编译器,命令如下:sudo vi /etc/profile 7.⽤vi或者vim打开后,在⽂件最后添加两⾏,并输⼊以下代码:第⼀⾏是添加执⾏程序的环境变量,第⼆⾏是库⽂件的路径export PATH=$PATH:/usr/local/arm/gcc-3.4.5-glibc-2.3.6/binexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/arm/gcc-3.4.5-glibc-2.3.6/lib 8.使⽤source命令重新加载⽣效该配置⽂件source /etc/profile 9.检验是否安装成功,在 Terminal 输⼊以下命令输出版本信息:arm-linux-gcc -v 10.若有以下报错参考解决办法: 报错:bash: /usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-gcc-4.2.2: No such file or directory 解决sudo apt-get install libc6-i386 该库中包括ia32-libs, lib32z1, lib32ncurses5等等依赖。
linux学习之交叉编译环境⼀在Linux上配置交叉编译环境:1. 根据芯⽚型号确定芯⽚指令集架构,并根据该架构选择合适的交叉编译⼯具2. 将交叉编译⼯具解压,添加到环境变量。
3. 编译⽬标⽂件,并想法设法将⽬标⽂件整到开发板上,有以下⽅法:将⽬标⽂件先整到windows PC下,拷贝到U盘/SD卡然后再插⼊开发板;⽤⽀持SSH的⼯具如putty登陆板⼦linux服务器;⽤NFS实现。
⼆ Uboot:⽤来启动内核(CPU不能直接从块设备中执⾏代码): 执⾏uboot代码,在uboot中把块设备中的内核代码复制到某内存地址处,然后再执⾏这个地址,即可启动内核。
uboot代码(uboot 根⽬录的spl⽂件夹u-boot-spl.bin和uboot根⽬录下u-boot.bin)需要⽤make(makefile配置+“.config”(make menuconfig图形化配置⼯具的输出⽂件))出来。
然后分别烧录进板⼦。
三编译kernel,并将其烧写进板⼦,启动板⼦后linux的shell环境应该跑起来了。
注意烧录内核的位置和内核运⾏环境: ramdisk根⽂件系统,这个⽂件系统是存在RAM⾥的,所以你在⾥⾯写⼊东西,⼀断电就没有了。
NAND Yaffs2⽂件系统:断电后还是存在的,使⽤busybox⽤来⽣成linux⽂件系统的⼏个基本⽂件夹,然后通过打包⼯具mkyaffs2,它⽤来⽣成能直接烧录到板⼦⾥的镜像⽂件,以下都是要烧写的⽂件。
Image Name Image Type Image start offsetu-boot-spl.bin uboot0x200u-boot.bin data 0x100000env.txt env0x80000970uImage data0x200000rootfs_yaffs2.img data 0x2000000四:将⾃⼰编写的程序的可执⾏⽂件拷贝到/opt⽬录下,并拷贝所需的库⽂件到/lib下,即可通过命令⾏来运⾏⽂件了。
交叉编译环境的配置与使用交叉编译是指在一个不同的开发环境中编译程序,以在目标平台上运行。
目标平台可以是不同的硬件架构、操作系统或操作系统版本。
交叉编译可以有效地减少在目标平台上进行开发和测试的时间,尤其是在限制了资源的嵌入式系统中。
配置交叉编译环境的步骤主要包括以下几个方面:1. 选择交叉编译工具链:交叉编译工具链是包含了交叉编译器、交叉链接器和相关工具的集合。
根据目标平台的特点,可以选择使用已有的工具链,或者自己构建定制的交叉编译工具链。
常见的交叉编译工具链有Cygwin、GCC等。
3.配置交叉编译环境:在配置交叉编译环境之前,首先需要确定目标平台和目标操作系统的相关信息,例如:处理器架构、操作系统版本、库文件位置等。
然后设置环境变量,包括设置交叉编译工具链的路径、目标平台和操作系统的相关信息。
4. 编写和编译代码:在配置好交叉编译环境后,可以使用常规的编程工具,如IDE或命令行工具,编写程序代码。
在编译时,需要使用交叉编译工具链中的编译器和相关工具来进行编译。
例如,使用交叉编译工具链中的gcc来代替本机的gcc进行编译。
5.链接和生成目标文件:编译成功后,会生成目标文件,即在目标平台上可以运行的可执行文件或库文件。
在链接时,需要使用交叉链接器来链接目标文件和相关库文件。
6.在目标平台上运行:将生成的目标文件复制到目标平台上,并通过目标平台的方式运行。
例如,在嵌入式系统中,可以通过串口或其他方式加载程序并运行。
1.确定目标平台和操作系统的要求:在进行交叉编译之前,需要确保了解目标平台和操作系统的相关要求,例如处理器架构、操作系统版本、库文件位置等。
这些信息将有助于选择合适的交叉编译工具链和配置交叉编译环境。
2.编写适用于目标平台的代码:在进行交叉编译时,需要注意编写适用于目标平台的代码。
例如,需要避免使用与目标平台不兼容的库函数和系统调用,以及考虑目标平台的资源限制等。
3.调试和测试:由于交叉编译环境和目标平台的不同,可能会遇到一些问题,如编译错误、链接错误或运行错误等。
开发裸机环境之前需要先搭建其开发环境,毕竟工欲善其事必先利其器嘛。
安装步骤1、准备工具安装目录将压缩包arm-Linux-gcc-4.4.3.tar.gz存放在一个目录下,这个目录就是你等会解压缩的目录,以后这个目录就不能随便删掉了,我的存放路径是/home/aldrich/arm,如下图,记住这个路径,等会还会用到。
1. .tar.gz 和.tgz2. 解压:tar zxvf FileName.tar.gz3. 压缩:tar zcvf FileName.tar.gz DirName2、安装软件使用tar命令:tar zxvf arm-linux-gcc-4.3.2.tgz将software文件夹下的arm-linux-gcc-4.3.2.tgz解压缩安装到当前目录。
通过下图可以看到解压成功了,并且解压后的文件存放在了1. /home/aldrich/arm/arm-linux-gcc-4.3.2文件夹下,如下图所示,这个存放路径可得记住,如下图3、配置系统环境变量配置环境前先坐下普及:Ubuntu不同目录下profile与bashrc的区别/etc/profile此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行,并从/etc/profile.d目录的配置文件中搜集shell的设置。
/etc/bash.bashrc为每一个运行bash shell的用户执行此文件,当bash shell被打开时,该文件被读取。
~/.bash_profile每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次,默认情况下,他设置一些环境变量,执行用户的.bashrc文件。
~/.bashrc该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取。
~/.bash_logout当每次退出系统(退出bash shell)时,执行该文件。
linux 操作系统交叉编译环境的建立
基于linux 操作系统的应用开发环境一般是由目标系统硬件(开发板)和宿主PC 机所构成。
目标硬件开发板用于运行操作系统和系统应用软件,而
目标板所用到的操作系统的内核编译、应用程序的开发和调试则需要通过宿
主PC 机来完成(所以称为交叉编译)。
双方之间一般通过串口,并口或以太网接口建立连接关系。
但在此我建议构建如下的交叉编译环境,适合个人或研发小组使用:单独
拿出一台PC 机(PII 以上即可,就用以前淘汰的旧机器就可以),在该PC 上安装桌面的Linux 操作系统(如Red Hat Linux 8.0 及以上),可以采用默认的安装选项(注意要包含ftp 服务),这台PC 作为Linux 服务器,除管理员以外,一般不直接让其他人去操作。
将该Linux 服务器接入局域网,并新建一些合法用户,以便其他的PC 机(在此我们将其称为工作站)的合法用户能访问到Linux 服务器。
而其他的PC 机(工作站)仍然使用Windows 操作系统,原来干啥继续干啥。
需要的软件工具包括:
1、ftp 客户端程序(如Cuteftp,可到网上下载)
2、Telnet 工具(如SecureCRT,可到网上下载)。
目录前言 (2)一、安装Ubuntu 10.10 (3)二、Ubuntu 10.10的基本设置 (4)三、Ubuntu 10.10下的NFS服务器配置 (5)四、Ubuntu10.10下的“超级终端” (9)五、开发板与Ubuntu10.10共享NFS目录 (13)六、Ubuntu10.10下的交叉编译器的安装配置 (15)前言关于嵌入式LINUX开发环境主要有以下几个方案:1、直接安装 LINUX 操作系统;2、在 WINDOWS 下安装虚拟机后,再在虚拟机中安装LINXUX操作系统;3、两台电脑,一台 Linux 服务器,一台 Windows 客户端。
三种方案各有各的好处,第三种方案,这种方式适合多人同时开发。
可是需要以下设备:1台 Linux 服务器服务器,用来交叉编译 bootlaoder、内核以及应用程序等,1台 Windows 机器机器,SSH远程登陆至 Linux 服务器进行操作。
考虑到开发人员并不是那么多,也为了节省一台服务器,我们选择第一种方案:直接安装 LINUX 操作系统。
一、安装Ubuntu 10.10至于以前使用Windows XP的选手,突然让我们换装Linux系统构成双系统,会有许多麻烦,因为Linux文件系统为EXT2、EXT3等文件系统,如果我们直接安装Linux,将使Linux系统文件与原Windows XP系统文件隔离,访问起来麻烦。
而且Linux的安装很容易破坏原XP的启动,为此,我们选择Ubuntu的简单安装方式,在Windows 环境下,像安装软件一样使用WUBI安装Ubuntu 10.10,简单方便,至于具体安装步骤,网上有的是,不多罗嗦,也不是本文的重点`````至此Ubuntu 10.10算是安装结束。
二、Ubuntu 10.10的基本设置为了接下来的配置方便,这里先对Ubuntu进行一些简单的配置。
1、右键增加“以管理员身份打开“。
在终端输入sudo apt-get install nautilus-gksu,然后回车就可以了。
Ubuntu系统下arm-linux-gcc交叉编译环境搭建过程搭建所需环境Linux版本:Ubuntu 14.10交叉编译器版本:arm-linux-gcc-4.4.3资源链接何为交叉编译环境搭建交叉编译环境,即安装、配置交叉编译⼯具链。
在Ubuntu环境下编译出嵌⼊式Linux系统所需的操作系统、应⽤程序等,然后再上传到⽬标机上。
交叉编译⼯具链是为了编译、链接、处理和调试跨平台体系结构的程序代码。
对于交叉开发的⼯具链来说,在⽂件名称上加了⼀个前缀,⽤来区别本地的⼯具链。
例如,arm-linux-表⽰是对arm的交叉编译⼯具链,arm-linux-gcc表⽰是使⽤gcc的编译器。
除了体系结构相关的编译选项以外,其使⽤⽅法与Linux主机上的gcc相同,所以Linux编程技术对于嵌⼊式同样适⽤。
不过,并不是任何⼀个版本拿来都能⽤,各种软件包往往存在版本匹配问题。
例如,编译内核时需要使⽤arm-linux-gcc-4.3.3版本的交叉编译⼯具链,⽽使⽤arm-linux-gcc-3.4.1的交叉编译⼯具链,则会导致编译失败。
gcc和arm-linux-gcc的区别就是gcc是linux下的C语⾔编译器,编译出来的程序在本地执⾏,⽽arm-linux-gcc⽤来在linux下跨平台的C语⾔编译器,编译出来的程序在⽬标机(如ARM平台)上执⾏,嵌⼊式开发应使⽤嵌⼊式交叉编译⼯具链。
搭建步骤1.解压缩下载arm-linux-gcc-4.4.3.tar.gz压缩包,并将其放在/usr/local/⽬录下,使⽤解压缩命令将其解压缩⾄该⽂件夹内:tar zxvf arm-linux-gcc-4.4.3.tar.gz现在交叉编译程序集都在/usr/local/arm-linux-gcc-4.4.3/bin⽂件夹下。
2.配置环境变量配置环境变量,把交叉编译⼯具链的路径添加到环境变量PATH中去,这样就可以在任何⽬录下使⽤这些⼯具。
主机环境:ubuntu10.04 lts X64_64bit编译器:arm gnu tools for Xilinx参考网址:/zynq-tools(这个网址的内容真的需要更新了)详细步骤:以下操作均在root用户下进行,官方参考网址的东西仅是“参考”的1,下载交叉编译器在ubuntu里下载arm-2010.09-62-arm-xilinxa9-linux-gnueabi.bin安装文件,网址:https:///GNUToolchain/kbentry62,放到<myPath>/tools/中2,同步xilinx的linux kernelmkdir <myPath>/kernelcd <myPath>/kernelgit clone git:///linux-2.6-xlnx.git然后就等着吧,总共1.3G的代码,下载完毕后,cd <myPath>/kernel/ls有个新的文件夹linux-2.6-xlnx,这个就是zynq的linux kernel代码了。
需要注意的是,虽然名字里面有个2.6,但实际的kernel是3.3的,因为这个是主线版本,下载下来的是xilinxpatch的最新kernel。
说不定你同步的时候已经是3.4/3.5了。
如果你的网络不支持git,可以用http代理服务,先建立一个git-proxy.sh 文件,在里面写上:#!/bin/shexec corkscrew <name of proxy server> <port> $*然后export一下,bash> export GIT_PROXY_COMMAND="/<path>/git-proxy.sh"上面/using-git 上的方法,我的实际情况比较特殊,网络服务器还要用户名和密码,怎么办呢,稍微麻烦一点:将git-proxy.sh中的内容修改成这样滴:#!/bin/shexec corkscrew 172.16.0.252 8080 $* /disk2data/authfile然后再在git-proxy.sh同目录下建立一个authfile文件,内容为用户名:密码最后export GIT_PROXY_COMMAND="/<path>/git-proxy.sh"至此我的电脑也可以无忧无虑的git啦3,安装交叉编译器cd /<myPath>/tools/chmod 755 arm-2010.09-62-arm-xilinxa9-linux-gnueabi.bin./ arm-2010.09-62-arm-xilinxa9-linux-gnueabi.bin然后出现了安装界面,选择安装的文件夹等等,可以自己设,嫌麻烦就一路回车或者“yes”就行了。
linux交叉编译环境搭建步骤正文:在进行Linux交叉编译之前,我们需要先搭建好相应的交叉编译环境。
下面是搭建步骤的详细说明:步骤一:安装必要的软件包首先,我们需要安装一些必要的软件包,包括GCC、binutils、glibc 以及交叉编译工具链等。
可以通过包管理器来安装这些软件包,比如在Ubuntu上可以使用apt-get命令,CentOS上可以使用yum命令。
步骤二:下载交叉编译工具链接下来,我们需要下载相应的交叉编译工具链。
可以从官方网站上下载已经编译好的工具链,也可以通过源码自行编译得到。
下载好之后,将工具链解压到一个目录下。
步骤三:配置环境变量为了方便使用交叉编译工具链,我们需要将其添加到系统的环境变量中。
可以通过编辑.bashrc文件来实现,添加类似下面的内容:```shellexport CROSS_COMPILE=/path/to/cross-compiler/bin/arm-linux-export ARCH=arm```其中,/path/to/cross-compiler是你下载的交叉编译工具链的路径。
步骤四:测试交叉编译环境在配置好环境变量之后,我们可以通过简单的测试来验证交叉编译环境是否搭建成功。
比如,可以尝试编译一个简单的Hello World程序,并在目标平台上运行。
步骤五:编译其他软件当交叉编译环境搭建成功,并且测试通过之后,我们就可以使用这个环境来编译其他的软件了。
比如,可以使用交叉编译工具链来编译Linux内核、U-Boot引导程序、驱动程序等。
总结:搭建Linux交叉编译环境是进行嵌入式开发的基础工作之一。
在搭建好环境之后,我们可以使用交叉编译工具链来编译适配于目标平台的软件,从而实现在开发主机上进行开发和调试的目的。
在Ubuntu下建立交叉编译环境并编译UBoot和Linux内核luweixuan一、实验环境:Ubuntu 12.04 32位系统二、准备的软件包:(baremetal compiler toolchain)裸机交叉编译工具链软件,主要用来编译Uboot或者裸机环境下的应用程序。
其实质为:Sourcery CodeBench Lite 2012.09-63软件包。
下载地址:https:///GNUToolchain/package10928/public/arm-none-eabi/arm-2012.09-63-arm-none-eabi.bin(Linaro GCC),是基于开源代码的ARM V7A体系结构(ARM Cortex-A8 & Cortex-A9 processors)的系统开发工具链软件,用来编译Linux系统内核和运行于Linux系统下的应用程序。
下载地址:ftp:///outgoing/SoC_FPGA/ethernet_3.7/gcc-linaro-arm.tar.bz2(compiler toolchain for ARM GNU/Linux)基于ARM GNU/Linux下的交叉编译环境包,主要用来编译Linux系统内核和运行于Linux系统下的应用程序。
其实质为:Sourcery CodeBench Lite 2012.03-57 for ARM GNU/Linux软件包。
此软件包是可选安装的。
下载地址为:https:///GNUToolchain/package10382/public/arm-none-linux-gnu eabi/arm-2012.03-57-arm-none-linux-gnueabi.bin4.linux-socfpga-13.02-bin.tar.gz(socfpaga SD Card image)包含已经编译好的应用于CV5系统的SD卡启动镜像文件的包。
ubuntu 10.04 建立交叉编译环境arm-linux-gcc-4.3.21. 将arm-linux-gcc-4.3.2.tgz复制到任意路径下;2. 确保安装了标准C开发环境,一句命令搞定:sudo apt-get install build-essential libncurses5-dev;3.在终端进入arm-linux-gcc-4.3.2.tgz存放目录,再sudo tar -zxvf arm-linux-gcc-4.3.2.tgz -C /(注意大写C字母后留一个空格,这样会自动解压缩到/usr/local/4.3.2目录下)修改环境变量,使交叉编译环境生效。
我是执行如下命令:yagerya@yagerya-desktop:~$ echo $PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/gamesyagerya@yagerya-desktop:~$ sudo gedit /etc/environment原文件应为PATH="/usr/local/sbin:/usr/local/bin:/usr /sbin:/usr/bin:/sbin:/bin: /usr/games“将其改为PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin: /sbin:/bin:/usr/games:/usr/local/arm/4.3.2/bin"保存退出即可.然后注销重新登录就可使环境变量生效了。
我不推荐大家这样做,我试过了在编译内核时无论执行sudo -s后,再执行arm-linux-gcc -v也没有出现环境变量的信息,故cd /opt/FriendlyARM/mini2440后,无论make zImage或sudo make zImage 都出现无法再到arm-linux的情况!所以我推荐大家这样做:yagerya@yagerya-desktop:~$ vim ~/.profile在这个文件最后添加上自己的环境变量:export PATH=$PATH:/usr/local/arm/4.3.2/bin然后在终端执行source ~/.profile ,即可立即生效。