本文介绍了在虚拟机上SAIL-IMX7D Linux开发环境搭建与内核编译,搭建开发环境时要注意编译器版本,安装完编译器后设置环境变量,以便之后编译内核。 主机平台:ubuntu14.04.5 目标平台:SAIL-IMX7D核心板 虚拟机:VMware-workstantion-full-12.5.5 编译工具链:gcc-linaro-arm-linux-gnueabihf- 1 Linux开发环境搭建 1.1安装编译器 IMX7DLinux系统常用编译器的版本是gcc-linaro-arm-linux-gnueabihf-4.9。 编译器的安装包在/光盘/linux/交叉编译器/中, gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux.tar.xz压缩包是交叉编译器安装包。将安装包拷贝到Ubuntu的/dianyu 目录下。 如果Ubuntu没有/dianyu目录,可以使用 #mkdir /dianyu 创建一个新目录。修改 /dianyu 权限,命令: #chmod 777/dianyu 在Ubuntu中新建目录/usr/local/arm,命令 #mkdir-p /usr/local/arm。 将gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux.tar.xz解压缩到/usr/local/arm,命令 #tar xvf/dianyu/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux.tar.xz -C /usr/local/arm 如图所示: 上述命令执行完成后,即可完成编译器安装。同时设置一下环境变量,执行命令: #export PATH=/usr/local/arm/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/bin/ PATH 1.2设置、升级开发环境依赖库 将 /光盘/通用工具/工具脚本 中setup-package-install.sh文件拷贝到Ubuntu中的 /dianyu 目录下,如图所示: 修改/setup-package-install.sh权限,命令#chmod 777 setup-package-install.sh 命令: #./setup-package-install.sh ,如图所示: 报错,bash: ./setup-package-install.sh: /bin/sh^M: bad interpreter: Nosuch file or directory执行visetup-package-install.sh,回车 将每行后面的^M删掉(若不报错可直接进行下一步)。删完后保存退出。 重新执行./setup-package-install.sh 选择Y,回车,如图所示: 这里直接回车,默认是Yes。如图所示: 正在从源服务器下载配置环境的安装包。如图所示: 安装完成后,如图所示: 若安装失败,则输入命令:# apt-get update 然后再重新输入命令:#./setup-package-install.sh 进行安装。 2 IMX7D内核编译 将/光盘/linux/源代码/sail-imx7d-linux-4.1.15.tar.gz 拷贝到Ubuntu系统中的/dianyu 目录中。 在终端中执行命令:#cd /dianyu 然后执行解压缩命令:#tar zxvf sail-imx7d-linux-4.1.15.tar.gz,将sail-imx7d-linux-4.1.15.tar.gz解压缩到 /dianyu 目录下。解压工作完成后,在 /dianyu目录下自动生成 sail-imx7d-linux-4.1.15 目录。sail-imx7d-linux-4.1.15 目录就是linux内核源码了。 使用命令#cd sail-imx7d-linux-4.1.15 进入sail-imx7d-linux-4.1.15目录 执行清理编译产生的中间文件。命令:#make clean 编译内核。命令:#make zImageZIMAGE_LOADADDR=0x10008000 如图所示: 正在编译,如下图所示: 编译报错(如果不报错,可跳过此步,若出现其他错误,请自行百度),如下图所示: 报错提示为缺少lzop,命令apt-get install lzop,安装lzop,如下图所示: 安装完成后,重新编译内核,成功,如下图所示: 编译dts。命令:#makesail-imx7d.dtb,如下图所示: 编译成功如图所示: 其中zImage、sail-imx7d.dtb即为linux系统下的内核源码。 3总结 搭建linux开发环境时主要的问题是/setup-package-install.sh文件,首先是权限问题,更改其权限为777,其次是在拷贝到虚拟机里时会在每一行后面多出^M,只有使用vi打开才能看到。配置好环境变量后,编译内核源码一般不会出现问题,若出现问题则根据实际情况寻找解决办法。
|