IMX6ULL学习手册之内核编译

Uboot

何为Uboot?

​ 1.Uboot是一个复杂的裸机程序。

​ 2.Uboot是一个bootloader,用于启动Linux系统,主要是用来初始化DDR的,引导linux内核的启动,因为Linux是运行在DDR中的。但是IMX是个例外。

​ Uboot是通用的,支持多种架构。

Uboot的源码获取

​ 1.Uboot有一个源码官网,但是你的芯片是由不同的生产商设计的,但是那么多版本的芯片肯定不在Uboot官网,就需要在生产商官网上寻找。其中IMX芯片就需要去NXP官网找。(缺点支持烧,某一款具体芯片的驱动不完善,由SOC的NXP去制作)

​ 2.SOC厂商会从uboot官网下载某个版本。然后在这个版本上加入相应的SOC以及驱动。定制版的uboot。NXP官方的I.MX6ULL的EBK板子

​ 3.做开发版的厂商,野火会参考NXP的那个版本。开发版必然会与官方板子不一样,因此开发版厂商优惠修改SOC厂商做好的uboot,以适应自己的板子。

Uboot编译

拿到开发版的uboot源码以后

pintitus@ubuntu:~/IMX6ULL/uboot$ export CROSS_COMPILE=arm-linux-gnueabihf-
pintitus@ubuntu:~/IMX6ULL/uboot$ export ARCH=arm
pintitus@ubuntu:~/IMX6ULL/uboot$ make mx6ul_14x14_ddr3_arm2_emmc_defconfig
pintitus@ubuntu:~/IMX6ULL/uboot$ make

就可以编译成功了。

IMX6ULL学习手册之内核编译_第1张图片

uboot编译成功以后会升成u-boot.bin文件,它不能直接放到SD卡里。必须向u-boot添加头部信息。Uboot编译后悔通过/tools/mkimage软件添加头部信息(6ul是这样的)

烧录过程

​ 首先要向将linux下载到ddr中,就见文件imx替换到fireware中。其次要讲linux烧到板子里(file/boot),所以也要拷贝imx

G:\BaiduDownload\mfgtools-release\Profiles\Linux\OS Firmware\firmware
G:\BaiduDownload\mfgtools-release\Profiles\Linux\OS Firmware\files

将imx工具替换到

Kernel

内核编译

编译源码,获取Linux内核源码解压以后

​ 1.make xxx_defconfig

​ 关于xxx_defconfig文件在configs目录中寻找。目的是将开发板的相关配置配置,相当于改开发板设置好的menuconfig。

​ 2.修改Makefile

​ -->ARCH = arm

​ -->CROSS_COMPILE=arm-linux-gnueabihf-

​ 3.make j10

​ j10代表使用10个线程进行编译,如果不用j10,那么就默认在一个线程中编译,速度就非常慢。

成功以后就能拿到uImage在./arch/arm/boot中

设备树编译

make dtbs以后找到设备树文件的二进制dtb

imx6ull-14x14-evk-emmc.dtbshell

ke dtbs以后找到设备树文件的二进制dtb

imx6ull-14x14-evk-emmc.dtbshell

你可能感兴趣的:(IMX6ULL学习手册)