当前位置: 首页 > news >正文

xx-准备工作

通过repo把imx6ull的sdk拉下来,主要包含kerneltoolchainubootbuildroot几个东西。

环境配置

在~/.bashrc中加入一下内容:

export PATH=$PATH:/mnt/2Thdd/wds/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin
export ARCH=arm
export CROSS_COMPILE=arm-buildroot-linux-gnueabihf-

保存后,source ~/.bashrc一下,使上面导出的环境变量在当前终端生效。

编译内核

进入内核目录后,依次执行:

make mrproper
make 100ask_imx6ull_defconfig
make zImage -j12
#如果使用CLion阅读内核代码可以替换为
bear -- make zImage -j12 # bear如果未安装则apt安装之
make dtbs

解释下:

  • make mrproper
    深度清理内核编译目录,内核Makefile常用的清理目标有:

    • clean
      删除大多数编译生成的文件(如.o文件、.cmd文件、内核映像等),但保留配置文件(.config)和构建系统需要的文件。
    • mrproper
      彻底清理,删除所有编译产物以及配置文件(.config),使源码目录恢复到初始状态。
    • distclean
      在 mrproper 基础上额外清理编辑器/补丁残留文件,进行最彻底的清理。
    • modules_clean
      仅删除已编译的内核模块(.ko),保留其他编译文件。
  • make 100ask_imx6ull_defconfig
    生成指定配置文件,配置文件按照不同的架构分类保存,通常是在arch/xxx/configs/目录下,其中xxx表示芯片架构,比如imx6ull属于arm的32位架构,所以xxx对应arm,如果是rk3568芯片,则是arm的64位架构,对应arm64

  • make zImage -j12
    生成压缩的可启动内核映像,这个过程是先编译内核生成非压缩的vmlinux,然后使用gzip之类算法将它压缩后,添加自解压头和引导代码,生成一个可直接由系统引导加载器(如uboot)加载的镜像文件。生成的压缩镜像位于arch/xxx/boot/下。对于嵌入式设备,如果对启动时间不太敏感,但是关心存储介质大小,想尽可能用小的存储介质(省钱),那么压缩内核镜像是一个好的方案。

  • bear -- make zImage -j12
    如果不是用CLion这类支持编译数据库的IDE,则不须要这样执行编译,这一步是借助bear(Build Ear)这个工具生成编译数据库文件compile_commands.json

  • make dtbs
    生成设备树文件,这里由于目标是dbts,它会将环境变量ARCH(上面一节export的)对应架构的所有设备树文件.dts编译为与之对应的.dtb。设备树文件通常位于arch/xxx/boot/dts目录下。

编译,安装内核模块

make modules -j12
make INSTALL_MOD_PATH=/mnt/2Thdd/wds/staging_dir modules_install

这一步是编译内核模块,并且将生成的内核模块.ko文件安装在指定的目录,方便统一传输到开发板上进行测试。如果不安装,内核模块会分散存储在各个模块源码目录里面,不方便查看和管理。

http://www.sczhlp.com/news/10519/

相关文章:

  • 月份选择每个月不能重复
  • 基于MATLAB实现的随机森林算法对共享单车签入签出数量进行预测
  • 8 月考试
  • .net MVC4中提示Newtonsoft.Json, Version=4.5.0.0
  • MySQL 并发控制和日志
  • 基于幅度的和差测角程序
  • ZR 25 summer D7T1 题解 | 树上问题,dp
  • EditText如何设置
  • 关于 git reset --hard 引发的代码故障(附故障原因及解决方案)
  • 【典型案例】利用高光谱遥感技术进行稀有矿产勘探 - ENVI
  • 学 STM32 第一步:入门工具怎么选?避免新手常见误区
  • Flutter 布局控件使用详解 - 指南
  • LHA6958D是ADS8588的代替料
  • 惠普笔记本电脑开机黑屏,一直响三长两短的滴滴声
  • selinux
  • 【转】Windows Server 系统的桌面上显示 此电脑 图标
  • hj_2025_0812
  • CF2062G Permutation Factory 题解
  • NBD(Network Block Device)简介及基本使用
  • 2024年12月齐鲁弱校联考
  • SpingBoot分段输出日志并自动删除
  • GLM4.5V视觉模型小试牛刀
  • 牛x,这也许是Coze(字节)平替,AIFlowy:企业级AI应用开发平台
  • Petrozavodsk Summer 2024. Day 2. K-ontest
  • pygame小游戏飞机大战_6敌人开火
  • Git 如何正确回滚代码?常见回滚操作对比,适用不同的场景
  • 嵌入式数据库_sqlite-duckdb
  • 抱歉!Java面试标准答案最不重要
  • PyCharm安装教程(附安装包)超详细下载安装激活教程(新手零基础安装指南)
  • maven配置阿里云镜像加速