使用正点原子的Linux内核启动系统
一、准备
编译Linux Kernel需要使用lzop库,所以需要安装,否则编译内核会失败!!!
sudo apt-get install lzop
二、正点原子Kernel源码的获取和编译
在Ubuntu 中创建~/imx6ull/project/alientek_linux
目录存放Linux Kernel源码,将正点原子资料包里【阿尔法Linux开发板光盘资料(A盘)–> 1、例程源码 --> 3、正点原子修改后的Uboot和Linux】目录下已经移植好的源码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
编写一个脚本,对内核源码进行编译,touch imx6ull_atk_kernel_emmc.sh
#!/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
然后修改其可执行权限,使其可执行
使用该脚本进行编译
./imx6ull_atk_kernel_emmc.sh
编译时会弹出Linux图形配置界面,这里我们不需要做任何配置,直接按两下ESC键退出,退出图像界面后会自动开始编译Linux,等待编译完成。
编译完成后就会在arch/arm/boot/
目录下生成一个zImage文件,zImage就是我们要用的Linux镜像文件。
二、Linux 内核启动
我们将编译出来的zImage
镜像文件和正点原子资料包【阿尔法Linux开发板光盘资料(A盘)–> 8、开发板系统镜像 --> linux-imx-4.1.15-2.1.0-g49efdaa-v1.0】提供的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
命令启动了,或者重启开发板也行
我们看一下开始的几行启动信息
可以看到,Linux版本为4.1.5
,编译的主机为william@ubuntu
,编译时间为Feb 7 13:28:43 CST 2020
即2020年2月7日13点28分。
启动成功后,控制台输出的信息为
在LCD屏幕上可以看到
表示Linux 已经启动成功。