完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
准备源码包(prepare source code pacakge)
3.0.35版本代码(3.0.35 version code)u-boot源码(u-boot source code) 文件名:u-boot-2009.08--svn*.tar.xz name of file:u-boot-2009.08--svn*.tar.xz kernel源码(kernel source code) 文件名:linux-3.0.35--svn*.tar.xz name of file:linux-3.0.35--svn*.tar.xz 交叉编译工具 (cross compifer tool) 文件名:gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12.tar.bz2 name of file:gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12.tar.bz2 配置编译环境(configuration of compifer environment) 准备源码(prepare source code)准备源码包 (prepare source code package) 1)创建工作目录 create working directory 创建 ~/my-imx6 作为工作目录 create ~/my-imx6 as working directory $ mkdir ~/my-imx6 创建 ~/my-imx6/02_source/imx_3.0.35_4.1.0 作为源码目录 create ~/my-imx6/02_source/imx_3.0.35_4.1.0 as source code directory $ mkdir ~/my-imx6/02_source/imx_3.0.35_4.1.0 -p 创建 ~/my-imx6/03_tools 作为工具目录 create ~/my-imx6/03_tools as tool directory $ mkdir ~/my-imx6/03_tools -p 2)复制源码包到开发主机中 copy source code package to the development host 这一步骤自己采取相应的方式进行。 do it in this step in your own way。 提示:这里将网盘中“02_源码”复制到Linux开发主机的“~/my-imx6/02_source/imx_3.0.35_4.1.0”,将网盘中“03_工具/toolchain”复制到Linux开发主机的“~/my-imx6/03_tools”。 tip:this step is to copy “02_source code”from network disk to “~/my-imx6/02_source/imx_3.0.35_4.1.0”in development host,and copy “03_tool/toolchain”to “~/my-imx6/03_tools”。in development host 解压源码包 (decompress source code package) 1)解压u-boot源码和内核源码 decompress u-boot source code and kernel source code $ cd ~/my-imx6/02_source/imx_3.0.35_4.1.0 $ tar xf u-boot-2009.08--svn*.tar.xz $ tar xf linux-3.0.35--svn*.tar.xz 2)解压交叉编译工具 decompress cross compiler tool $ cd ~/my-imx6/03_tools/ $ tar jxf gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12.tar.bz2 开发环境配置(development environment configuration)安装需要的包 (install package needed) 1)更新源列表 list of updated source $ sudo apt-get update 更新完成后如下图所示: after update,it will look like below: 2)安装aptitude包管理工具和ia32-libs install aptitude package management tool and ia32-libs 提示:如果编译主机的Linux是32位的,可以跳过此步骤。 tips:if Linux of compiler host is 32bit,you can skip this step。
install aptitude package management tool $ sudo apt-get –y install aptitude
install ia32-libs with aptitude $ sudo aptitude –y install ia32-libs 提示:下图为安装过aptitude和ia32-libs后,再次执行安装命令的截图。 tips:following is the screenshots with re-execution of installation command after installation of aptitude and ia32-libs is finished。 3)安装mkimage工具 install mkimage tool $ sudo apt-get -y install uboot-mkimage 提示:下图为安装过mkimage工具后,再次执行安装命令的截图。 tips:following is the screenshots with re-execution of installation command after installation of mkimage tool is finished。 4)安装ncurses-dev install ncurses-dev 说明:make menuconfig对其具有依赖性质。 instruction:make menuconfig is dependent on it。 $ sudo aptitude -y install ncurses-dev 提示:下图为安装过ncurses-dev工具后,再次执行安装命令的截图。 配置MY-IMX6编译的环境变量 (configure environment variables of MY-IMX6 compilation)tips:following is the screenshots with re-execution of installation command after installation of ncurses-dev tool is finished。 1)将平台信息写入到一个新的配置文件 write platform information to a new configured file $ echo "export ARCH=arm" > ~/my-imx6/03_tools/myimx6_3035_build_env 2)将交叉编译工具链路径写入到配置文件 write compiler tool chain path to configured file
enter cross compiler tool directory $ cd ~/my-imx6/03_tools/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/
write path to configured file $ sed -i "$a IMX6_GCC462_PATH=$PWD" ~/my-imx6/03_tools/myimx6_3035_build_env
write cross compiler tool to configured file $ sed -i "$a export CROSS_COMPILE=$IMX6_GCC462_PATH/arm-none-linux-gnueabi-" ~/my-imx6/03_tools/myimx6_3035_build_env 3)查看配置文件 view configured file $ cat ~/my-imx6/03_tools/myimx6_3035_build_env 4)附图 figures 注意:如果在某一步操作错误,则需要删除 ~/my-imx6/03_tools/myimx6_3035_build_env 文件,并重新按照本小节操作。 note:if an error occurs in any step, need to delect ~/my-imx6/03_tools/myimx6_3035_build_env ,and operate again all steps of this segment。 编译u-boot(compile u-boot) 进入u-boot源码目录(enter u-boot source code directory) $ cd ~/my-imx6/02_source/imx_3.0.35_4.1.0/u-boot-2009.08/ 使配置文件生效(validate configured file)
execute source command $ source ~/my-imx6/03_tools/myimx6_3035_build_env
view compiler configuration $ echo $ARCH $ echo $CROSS_COMPILE 提示:可看到ARCH和CROSS_COMPILE被设置 tips:you can see that ARCH和CROSS_COMPILE is configured
verify cross compiler tool configuration $${CROSS_COMPILE}gcc –v 提示:执行命令后可以看到终端显示出交叉编译工具的版本信息。如下图: tips:you can see version information of cross compiler tool shown on terminal after execution of command.as below: 清除u-boot配置(remove u-boot configuration) $ make distclean u-boot配置(u-boot configuration)
evaluation board and its corresponding u-boot compiler configuration:
MYIMX6EK200-6Qxx-1G configuration example: $ make myimx6ek200_6q_config 编译(compilation)
execute compilation $ make 提示:这里为了提高编译速度,在make后面加了“-j4”。这里编译的Linux主机是双核4线程的,所以“-j”后面用了4,也就是采用4线程编译。“-j”后面的数字可以根据系统资源分配,但是不应该超过编译主机最大支持的线程数。 Tips:To speed up the compilation,add "-j4" after make.The Linux host used to compile is dual-core ,4 threads .So "-j" is followed by 4, which takes 4 threads to compile. The number behind "-j" is allocated based on system resources,but It should not exceed the maximum threads the host support。
complete compilation 提示:u-boot编译过程大概需要几分钟时间。 tips:u-boot compilation process will take a few minustes or so。 目标文件(target file) 编译完成后通过ls命令即可看到编译得到的目标文件u-boot.bin you can get the compiled file u-boot.bin with ls command after compilation $ ls 编译内核(compile kernel) 进入内核源码目录(enter kernel source directory) $ cd ~/my-imx6/02_source/imx_3.0.35_4.1.0/linux-3.0.35/ 使配置文件生效(validate configured file)
execute source command $ source ~/my-imx6/03_tools/myimx6_3035_build_env
view compiler configuration $ echo $ARCH $ echo $CROSS_COMPILE 提示:可看到ARCH和CROSS_COMPILE被设置 tips:you can see that ARCH和CROSS_COMPILE is configured
verify cross compiler tool configuration $ ${CROSS_COMPILE}gcc –v 提示:执行命令后可以看到终端显示出交叉编译工具的版本信息。如下图: tips:you can see version information of cross compiler tool shown on terminal after execution of command.as below: 准备配置内核(prepare for kernel configuration)
remove kernel configuration $ make distclean
generated.config file 说明:MY-IMX6-EK200系列评估板及MY-IMX6-EK314系列评估板使用的配置文件是myimx6_defconfig instructions:configuration files used for MY-IMX6-EK200 seires of evaluation board and MY-IMX6-EK314 series of evaluation board is myimx6_defconfig $ make myimx6_defconfig 编译内核(compile kernel)
compile uImage $ make uImage 说明:截图中使用了4线程编译。 instruction:4 threads compilation is used in the screenshots。
complete compilation
target file arch/arm/boot/uImage即为编译得到的目标文件,使用ls命令可查看文件信息。 arch/arm/boot/uImage is the target file through compilation,you can view the file information with ls command。 $ ls arch/arm/boot/uImage –la 编译模块(compile module)
compile $ make 说明:截图中使用了4线程编译。 instruction:4 threads compilation is used in the screenshots。
complete compilation
target file 编译完成后各模块的.ko文件位于代码所在的目录,通过find命令可以找出编译完成的模块,参考命令如下: .ko file of each module is in the directory where code is located after compilation ,you can find the module compiled with find command after compilation,refering command as below: $ find -name *.ko Linux应用程序编译(Linux application compilation) 编写应用程序(write application) 1) 创建应用程序目录 create application directory $ mkdir ~/my-imx6/02_source/application/ -p $ cd ~/my-imx6/02_source/application/ 2) 编写应用程序(这里以hello.c为例) write application(here take hello.c as example 创建 hello.c 文件写入以下代码并保存: create hello.c and write following code and save:
int main(int argc, char **argv) { printf("Hello, MYZR!n"); return; } 3) 查看代码 view code $ cat hello.c 使编译配置文件生效(validate compiler configured file)
execute source command $ source ~/my-imx6/03_tools/myimx6_3035_build_env
view compiler configuration $ echo $ARCH $ echo $CROSS_COMPILE 提示:可看到ARCH和CROSS_COMPILE被设置 tips:you can see that ARCH和CROSS_COMPILE is configured
verify cross compiler tool configuration $ ${CROSS_COMPILE}gcc –v 提示:执行命令后可以看到终端显示出交叉编译工具的版本信息。如下图: tips:you can see version information of cross compiler tool shown on terminal after execution of command.as below: 编译应用程序 (compile application) 2) 编译 compile $ ${CROSS_COMPILE}gcc hello.c -o hello.out 注意:上面的命令有包含“$”号,即“${CROSS_COMPILE}gcc”,是引用我们source时产生的环境变量。 note:the above commands contain charater“$”,e.g“${CROSS_COMPILE}gcc”,which is the environment variable generated when referring to our source。 3) 查看目标文件类型 view type of target file $ file hello.out 可以看到目标文件 hello.out 的属性。 you can get the property of target file hello.out。 文件系统(file system) 文件系统说明(file system instruction) 文件系统包位于网盘对应的镜像文件夹中。支持的文件系统类型及下载方式可参照《MY-IMX6 烧录指导》。 file system package is located in image file folder in the network disk。as to type of file system supported and way of download please refer to《MY-IMX6 buring guide》。 解压文件系统到编译主机(decompress file system to compiler host) 1)创建文件系统的目录并进入 create directory of file system and enter $ mkdir ~/my-imx6/04_rootfs/ -p $ cd ~/my-imx6/04_rootfs/ 2)将文件系统复制到~/my-imx6/04_rootfs/目录 copy file system to ~/my-imx6/04_rootfs/directory 这一步骤自己采取相应的方式进行 this step ***ould be done in your own way 3)解压文件系统到指定目录 decompress file system to specified directory $ mkdir rootfs $ sudo tar jxf rootfs-linux.tar.bz2 -C rootfs 添加应用到文件系统(add application to file system) $ cp ~/my-imx6/02_source/application/hello.out rootfs/app_test/ 5)重新打包文件系统 re-pakcage file system $ rm -rf rootfs-linux.tar.bz2 $ cd rootfs/ $ sudo tar cjf ../rootfs-linux.tar.bz2 * 添加模块到文件系统(add module to file system) 准备需要模块的.ko文件,其它请参照“添加应用到文件系统”。 prepare .ko file of module needed,as to other operations please refer to“add application to file system”。 |
||
相关推荐
|
||
787 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-mfgtools烧录流程介绍之烧写所需镜像
888 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-mfgtools烧录流程之烧写方法
608 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-内核编译之初次编译
905 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-内核源代码的目录结构和文件说明
821 浏览 0 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 00:28 , Processed in 0.611643 second(s), Total 64, Slave 46 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号