• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    解析Linux内核与设备树的编译和烧写

    一、准备材料

    可以根据自己的需要准备相应材料:

    开发环境:VMware

    操作系统:ubuntu

    开发版:湃兔i2S-6UB

    二、下载Linux内核文件

    之前下载过UBoot文件的朋友应该知道,在每个开发版的资料里都有相应的文件,没有的可以找购买开发版的店家要。

    下载完成后将文件拷贝到linux系统下进行解压,解压后会的目录如下图所示:

    注意:编译时一定要在当前路径下才能编译

    三、编译

    1、清理项目工程

    make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean

    2、设置默认配置文件

    make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- i2som_imx6_defconfig

    编译完成后会生成“.config”,如下图所示:

    注意:湃兔的默认配置文件是“i2som_imx6_defconfig”,不同厂商的默认配置文件有所不同,可与根据相应的资料查看。如湃兔官网的说明,如下图所示

    3.编译生成kernrl文件

    make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage

    4.编译生成.dtb文件

    make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- dtbs

    注意:到这里内核与设备树的编译就算完成了,如果细心的小伙伴就会发现,为啥我的命令会长一些。每个指令中都用“ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-”,这是设置编译器为交叉编译器。为了使编译指令简介一些,可以在Makefile文件中添加ARCH和CROSS_COMPILE的配置,以后就可以编译时就可以省掉命令中的“ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-”部分,如下图所示:

    5.生成文件的路径

    zImage:/arch/arm/boot/目录下

    dtb:/arch/arm/boot/dts目录下

    四、通过TFTp烧写zImage与.dtb文件

    1.将zImage和.dtb文件放入tftp服务器中

    2.进入开发版UBoot的命令行,配置TFTP服务地址

    setenv serverip 192.168.1.99

    saveenv 

    3.下载zImage文件

    tftp 80800000 zImage

    4.下载.dtb文件

    tftp 83000000 i2c6ulxb-i2s6ull-emmc.dtb

    5.启动加载zImage和dtb文件

    bootz 80800000 - 83000000

    6.验证是否成功

    烧写完成后,在kernel启动时会打印编译的时间,如果时间是没问题则说明成功了,启动信息如下图所示:

    五、常见问题

    1.编译生成zImage时可能会出现的错误如下图所示:

    这个错误主要是开发环境未安装‘lzop'工具,只需安装一下从新编译即可

    sudo apt-get install lzop

    2.启动时卡死在“Starting kernel ...”,如下图所示:

    不知道是我手里的开发有问题还是怎么回事,只要编译是不如改动其他文件一般不会有配置错误,所以遇到这种情况多重新试几次即可。

    3.如图能启动系统,湃兔的开发版还可以通过替换文件进行更新,进入开发版的系统后之心一下操作

    mkdir /mnt/linux/

    umount /mnt/linux/

    mount /dev/mmcblk1p1 /mnt/linux/

    cp i2c6ulxb-i2s6ull-emmc.dtb /mnt/linux/zImage-i2c6ulxb-i2s6ull-emmc.dtb; sync

    umount /mnt/linux

    reboot

    官方教程如下图所示:

    4.启动后会发现不能正常启动,这是因为没有根文件导致的

    以上就是解析Linux内核与设备树的编译和烧写的详细内容,更多关于Linux内核与设备树的编译和烧写的资料请关注脚本之家其它相关文章!

    上一篇:浅谈Linux信号机制
    下一篇:详解Tomcat常用的过滤器
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    解析Linux内核与设备树的编译和烧写 解析,Linux,内核,与,设备,