您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > 在Ubuntu下建立交叉编译环境并编译UBoot和Linux内核
1在Ubuntu下建立交叉编译环境并编译UBoot和Linux内核luweixuan一、实验环境:Ubuntu12.0432位系统二、准备的软件包:1.arm-2012.09-63-arm-none-eabi.bin(baremetalcompilertoolchain)裸机交叉编译工具链软件,主要用来编译Uboot或者裸机环境下的应用程序。其实质为:SourceryCodeBenchLite2012.09-63软件包。下载地址:(LinaroGCC),是基于开源代码的ARMV7A体系结构(ARMCortex-A8&Cortex-A9processors)的系统开发工具链软件,用来编译Linux系统内核和运行于Linux系统下的应用程序。下载地址:(compilertoolchainforARMGNU/Linux)基于ARMGNU/Linux下的交叉编译环境包,主要用来编译Linux系统内核和运行于Linux系统下的应用程序。其实质为:SourceryCodeBenchLite2012.03-57forARMGNU/Linux软件包。此软件包是可选安装的。下载地址为:(socfpagaSDCardimage)包含已经编译好的应用于CV5系统的SD卡启动镜像文件的包。其下载地址:(UbootSrc)已经移植好的Uboot源码包。其下载地址:(Linuxkernel)已经移植好的Linux系统源码包。其下载地址:三、实现步骤1.安装裸机交叉编译工具链软件(baremetalcompilertoolchain)下载arm-2012.09-63-arm-none-eabi.bin在终端进入到文件包所在位置,使用以下指令安装工具链软件(注:$USER替换为当前用户名):sudodpkg-reconfigure-plowdashls-lh/bin/sh#在出现的询问中选择no(否)sudomkdir-p/usr/local/codebench_2012_09_63sudochown$USER.users/usr/local/codebench_2012_09_63/echoexportPATH=/usr/local/codebench_2012_09_63/bin:\$PATH~/CodeBench_setup_linux.sh/bin/sharm-2012.09-63-arm-none-eabi.bin2执行以上命令后会出现类似Windows的安装界面,在界面里请选择安装软件到上面建立的文件夹(/usr/local/codebench_2012_09_63);Next后选择添加本路径到PATH环境变量;NEXT后选择不生成链接选项;而后就会安装裸机交叉编译工具链,而可执行文件会在/usr/local/codebench_2012_09_63/bin路径下。使用arm-none-eabi-gcc-v命令来测试裸机交叉编译工具链是否正常使用。注:关于路径会有BUG,就是软件安装选择择添加本路径到PATH变量,但是执行的时候没法找到交叉编译工具链,因此请手动打开/etc/profile文件,在文件最后添加一行:exportPATH=/usr/local/codebench_2012_09_63/bin:$PATH,即可。使用source/etc/profile使更改生效。2.安装LinaroGCC下载gcc-linaro-arm.tar.bz2解压工具包,并把工具包的bin文件夹的路径加入到PATH环境变量中,也即在/etc/profile文件最后一行加入:exportPATH=/.../....../gcc-linaro-arm-linux-gnueabihf-4.7-2012.11-20121123_linux/bin:$PATH。使用source/etc/profile使更改生效。然后使用arm-linux-gnueabihf-gcc-v命令测试LinaroGCC是否正常使用。3.(选装)为ARMGNU/Linux生成的版本为2012.03-57的交叉编译工具链下载arm-2012.03-57-arm-none-linux-gnueabi.bin在终端进入到文件包所在位置,使用以下指令安装工具链软件(注:$USER替换为当前用户名):sudodpkg-reconfigure-plowdashls-lh/bin/sh#在出现的询问中选择no(否)sudomkdir-p/usr/local/codebench_2012_03-57_linuxsudochown$USER.users/usr/local/codebench_2012_03-57_linux/echoexportPATH=/usr/local/codebench_2012_03-57_linux/bin:\$PATH~/CodeBench_setup.sh/bin/sharm-2012.03-57-arm-none-linux-gnueabi.bin执行以上命令后会出现类似Windows的安装界面,在界面里请选择安装软件到上面建立的文件夹(/usr/local/codebench_2012_03-57_linux/);Next后选择添加本路径到PATH环境变量;NEXT后选择不生成链接选项;而后就会安装裸机交叉编译工具链,而可执行文件会在/usr/local/codebench_2012_03-57_linux/bin路径下。使用arm-none-linux-guneabi-gcc-v命令来测试裸机交叉编译工具链是否正常使用。注:关于路径会有BUG,就是软件安装选择择添加本路径到PATH变量,但是执行的时候没法找到交叉编译工具链,因此请手动打开/etc/profile文件,在文件最后添加一行:exportPATH=/usr/local/codebench_2012_03-57_linux/bin:$PATH,即可。使用source/etc/profile使更改生效。4.烧写SD卡下载linux-socfpga-13.02-bin.tar.gz使用以下指令解开压缩包3tarxvzflinux-socfpga-13.02-bin.tar.gz进入到所解压出来的文件夹下,使用以下指令烧写镜像文件到SD卡里:sudodcflddif=sd_image.binof=/dev/sdd#使用你的SD硬件名替换sdd或者在Windows系统下使用Win32DiskImager软件进行镜像的烧写。5.编译u-boot、Preloader和工具mkimage下载u-boot-altera-2012.10.tgz使用以下制定解压缩源码包tarxvzfu-boot-altera-2012.10.tgz再一次确认arm-none-eabi-gcc正常,不正常参考步骤1。运行以下指令编译u-boot和mkimagecdu-boot-altera-2012.10exportCROSS_COMPILE=arm-none-eabi-./MAKEALLsocfpga_cyclone5编译将得到u-boot.img文件和mkimage工具,你可以使用以下指令将u-boot.img烧写到SD卡的第三个分区:sudoddif=u-boot.imgof=/dev/sdd3bs=64kseek=4并将mkimage工具所在的路径加入到系统环境变量PATH中,以便编译内核中使用此工具,此工具处在源码包的u-boot-bringup/tools路径下。6.编译Linux系统内核此步骤需要LinaroGCC和mkimage工具的支持,确保以上工具编译好并可以使用。下载linux-altera-3.7.tgz解压缩源码包:tarxvzflinux-altera-3.7.tgz确定arm-linux-gnueabihf-gcc和mkimage工具可以使用;使用以下指令开始编译Linux系统内核exportARCH=armmakesocfpga_defconfig(optionaltomakechangestokernelconfiguration)makemenuconfigexportCROSS_COMPILE=arm-linux-gnueabihf-makeuImageLOADADDR=0x8000#LOADADDR将被mkimage工具使用,指示内核进入的地址将在arch/arm/boot目录下生成Linux系统内核镜像文件uImage。把此文件拷贝到你的SD卡里:cparch/arm/boot/uImage/media/4459-058E/
本文标题:在Ubuntu下建立交叉编译环境并编译UBoot和Linux内核
链接地址:https://www.777doc.com/doc-6182522 .html