Linux内核在I.MX6ULL的编译运行

Linux内核在i.mx6ull的编译运行

编译Linux Kernel需要使用lzop库,所以需要安装,否则编译内核会失败!!!

sudo apt-get install lzop

在这里插入图片描述

一、Linux Kernel的编译

在Ubuntu 中创建~/imx6ull/project/alientek_linux目录存放Linux Kernel源码,将正点原子已经移植好的源码linux-imx-4.1.15-2.1.0-g49efdaa-v1.0.tar.bz2拷贝到此目录中,然后解压:

tar -vxjf linux-imx-4.1.15-2.1.0-g49efdaa-v1.0.tar.bz2

编写一个脚本,对uboot进行编译

#!/bin/sh
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- imx_v7_defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- all -j2

然后修改其可执行权限,使其可执行
在这里插入图片描述
使用该脚本进行编译

./mx6ull_alientek_emmc.sh

编译时会弹出Linux图形配置界面,这里我们不需要做任何配置,直接按两下ESC键退出,退出图像界面后会自动开始编译Linux,等待编译完成。
在这里插入图片描述
编译完成后就会在arch/arm/boot/目录下生成一个zImage文件,zImage就是我们要用的Linux镜像文件,另外也会在arch/arm/boot/dts下生成很多.dtb文件,这些.dtb就是设备树文件。
在这里插入图片描述

二、Linux 内核启动

我们将编译出来的zImage镜像文件和正点原子提供的imx6ull-14x14-emmc-7-1024x600-c.dtb设备树文件复制到tftpboot文件夹下,并修改其文件权限。

chmod 777 zImage imx6ull-14x14-emmc-7-1024x600-c.dtb

在这里插入图片描述
然后配置uboot下的网络环境变量:

=> setenv ipaddr 192.168.1.150
=> setenv ethaddr 00:04:9f:04:d2:35
=> setenv gatewayip 192.168.1.1
=> setenv netmask 255.255.255.0
=> setenv serverip 192.168.1.101
=> saveenv

设置bootcmd为使用tftp启动

=> setenv bootcmd 'tftp 80800000 zImage; tftp 83000000 imx6ull-14x14-emmc-7-1024x600-c.dtb; bootz 80800000 - 83000000'
=> saveenv

设置bootargs,控制台为uart0,根文件系统暂时使用正点原子预先烧录在emmc中的

=> setenv bootargs 'console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw'
=> saveenv

配置如下
在这里插入图片描述
然后就可以使用boot命令启动了,或者重启开发板也行
在这里插入图片描述
我们看一下开始的几行启动信息
d
可以看到,Linux版本为4.1.5,编译的主机为william@ubuntu,编译时间为Feb 7 13:28:43 CST 2020即2020年2月7日13点28分。
启动成功后,控制台输出的信息为
在这里插入图片描述
在LCD屏幕上可以看到
在这里插入图片描述
表示Linux 已经启动成功。

发布了62 篇原创文章 · 获赞 13 · 访问量 5572

猜你喜欢

转载自blog.csdn.net/qq_38113006/article/details/104208638