• 上一节中已经讲述了如何去构建编译环境,这一节讲一下如何定制专属于自己板卡的系统。1.配置linux内核官方repo下来的yocto项目里配置了多个内核可选,我们可以在yocto目录下/source/meta-fsl-arm/recipes-kernel/linux中找到,配置的三个内核如下:linux-fslc_3.8.bb-->kernelmainline(fromkernel.org)linux-imx_2.6.35.3.bb-->kernelfromFSL,
  • 上一节中已经讲述了如何去构建编译环境,这一节讲一下如何定制专属于自己板卡的系统。

    1. 配置linux内核

    官方repo下来的yocto项目里配置了多个内核可选,我们可以在yocto目录下/source/meta-fsl-arm/recipes-kernel/linux 中找到,配置的三个内核如下:

    linux-fslc_3.8.bb --> kernel mainline (from kernel.org)

    linux-imx_2.6.35.3.bb --> kernel from FSL, for imx5x and imx28

    linux-imx_3.0.35.bb--> kernel from FSL for imx6

    我的板子是imx6的,因此我选的是linux-imx6,如果你用的是高版本的yocto,那内核可能跟我的不一样,不过配置没有什么大的变化。

    内核的arch/arm/configs目录下有一些默认的配置可选,yocto也有自己的配置可用,现在讲一下自定义配置内核。

    //首先创建一个配置xxxx_defconfig

    $ cp xxx_defconfigmeta-fsl-arm/recipes-kernel/linux/linux-imx-3.0.35/mx6//这里要对应你yocto版本的目录

    $ bitbake -c cleansstate linux-imx
    //清理一下之前编译的状态

    $ bitbake linux-imx
    //编译内核

    $ bitbake fsl-image-gui //编译整个工程,不是必须的

    2. 使用menuconfig配置具体项

    $ bitbake -c menuconfig linux-imx

    $ cp tmp/work/imx6qsabresd-poky-linux-gnueabi/linux-imx/3.0.35-r33.10/git/.config ../sources/meta-fsl-arm/recipes-kernel/linux/linux-imx-
    3.0.35/mx6/defconfig

    $ bitbake -c cleansstate linux-imx

    $ bitbake fsl-image-gui

    3. 如果想用linux主线版本的最新内核,可以通过改配置conf/local.conf,不一定支持,而且有危险(主要是BUG没人测试)

    PREFERRED_PROVIDER_virtual/kernel = "linux-fslc"

    4. 用yocto不太适合开发(主要是脚本啥的太智能,找半天麻烦),此时我们编译的工具链就有作用了。当执行完bitbake
    meta-toolchain后

    工具链就生成脚本了,看下面:

    $ ls tmp/deploy/sdk/poky-eglibc-x86_64-arm-toolchain-1.4.1.sh

    tmp/deploy/sdk/poky-eglibc-x86_64-arm-toolchain-1.4.1.sh //前提你编译没出错,版本不一定跟我的一样

    现在安装一下:

    $ source poky-eglibc-x86_64-arm-toolchain-1.4.1.sh

    [sudo] password for daiane:

    Enter target directory for SDK (default: /opt/poky/1.4.1):

    You are about to install the SDK to "/opt/poky/1.4.1". Proceed[Y/n]?y

    Extracting SDK...done

    Setting it up...done

    SDK has been successfully set up and is ready to be used.

    测试一下,随便写一个helloworld程序:

    $ arm-poky-linux-gnueabi-gcc helloworld.c -o hello

    $ ls

    hello helloworld.c

    $ ./hello

    -bash: ./hello: cannot execute binary file
    //肯定报错

    $ file hello

    hello: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.16, not stripped

    5. 用导出的工具链编译导出的内核

    $ source /opt/poky/1.4.1/environment-setup-armv7a-vfp-neon-poky-linux-gnueabi
    //导出环境变量,也可以写入/etc/bash.bashrc文件

    $ cd linux-imx

    $ export ARCH=arm

    $ export CROSS_COMPILE=$TARGET_PREFIX

    $ unset LDFLAGS

    $ make imx6_defconfig

    $ make uImage 
    //也可以使用zImage,路径在/arch/arm/boot目录下

    6. 编译busybox,制作文件系统

    $ source /opt/poky/1.4.1/environment-setup-armv7a-vfp-neon-poky-linux-gnueabi
    //导出环境变量,也可以写入/etc/bash.bashrc文件

    $ cd busybox1.2 
    //busybox我是从官网下载的,版本自己决定

    $ export ARCH=arm

    $ export CROSS_COMPILE=$TARGET_PREFIX

    $ unset LDFLAGS

    $ make menuconfig 
    //定义自己需要的命令,不懂的请参考busybox配置 
    $ make&;&;make install 
    7. 将制作好的内核与文件系统通过网口或者U盘测试一下是否可用。

以上是imx6 板卡移植官方yocto版本(2_定制系统)的内容,更多 板卡 移植 定制 版本 官方 系统 Yocto IMX6 的内容,请您使用右上方搜索功能获取相关信息。

imx6 板卡移植官方yocto版本(2_定制系统)相关推荐

  1. imx6 板卡移植官方yocto版本(1_安装环境)

    玩imx6板卡也有两年了,之前由于各种原因(主要是懒),一直用的是官方的LTIB版本,这里必须要吐槽一下这个LTIB,各种错误百出,而且严重挑系统,硬是将我从CentOS阵营搞到Ubuntu社区.最近 ...

  2. 在s5pv210开发板上移植官方2101310版本的uboot

    uboot官方标准uboot移植  解决烧录运行问题: 输出错误信息分析:第一个SD checksum Error是第一顺序启动设备SD0(iNand)启动时校验和失败打印出来的:第二个SD chec ...

  3. 安卓8.0 android系统,谷歌安卓8.0重磅来袭!国产定制系统有必要马上适配吗?

    8月末,万众期待的Android 8.0终于正式发布了,而广大用户最关心的问题莫过于自己的手机能否吃上奥利奥了. 其实就目前来说,国外的Android和国内的安卓可以视作是两个不同的生态圈,大部分国产 ...

  4. YOCTO项目介绍:通过提供模版、工具和方法帮助开发者创建基于linux内核的定制系统

    目录 YOCTO项目介绍 配置内核 build配套 Yocto ,是一个开源社区.它通过提供模版.工具和方法帮助开发者创建基于linux内核的定制系统,支持ARM, PPC, MIPS, x86 (3 ...

  5. Linux学习笔记---移植官方linux步骤(一)

    使用的开发板是正点原子IMX6U-MINI  EMMC512M的开发板,这个板子也是移植的NXP官方linux,所以这里就直接从NXP官方的linux移植. 这里所说的移植,其实不是自己编写驱动文件等 ...

  6. Spring官方各种版本下载以及Spring简介

    Spring下载与简介 Spring下载 博主这里整理了官方Spring框架最新jar包下载链接以及maven依赖(持续更新,最终更新日期:2020-5-5): 需要的可以直接点击下载: spring ...

  7. Linux学习笔记---移植官方linux步骤(二)

    目录 修改网络驱动 修改 LAN8720 的复位 以及网络时钟 引脚驱动 修改fec1和fec2节点pinctrl-0属性 修改LAN8720A的PHY地址 修改 fec_main.c 文件 配置 L ...

  8. Linux学习笔记---移植官方uboot步骤(二)

    在上一篇 Linux学习笔记---移植官方uboot步骤(一) 自己的uboot已经编译成功了,接下来继续移植LCD驱动和网络驱动. 修改LCD驱动 修改配置参数 打开my_uboot/board/f ...

  9. Linux学习笔记---移植官方uboot步骤(一)

    目录 编写shell脚本 修改MakeFile文件 重命名shell脚本 添加默认配置文件 修改默认配置文件 准备需要的板级文件夹 重命名.C文件 修改Makefile 修改imximage.cfg配 ...

最新文章

  1. 北京python培训班价格-北京Python培训班,为什么Python超适合小白学习
  2. (转载)Hadoop2.7.1配置
  3. 3D数学 向量和矩阵
  4. 一张图,看懂阿里云的“飞天”史
  5. nodejs mysql备份_node.js实现备份mysql数据库功能
  6. 【牛客 - 315B】 勇气获得机(二叉树性质,思维,知识点,tricks)
  7. Head first servlet and jsp学习笔记
  8. 卷起来了!DeepMind发布媲美普通程序员的AlphaCode,同日OpenAI神经数学证明器拿下奥数题...
  9. leetcode链表题
  10. 移动端页面按手机屏幕分辨率自动缩放的js
  11. 原版98启动盘镜像.img_装机技巧系列(二):系统安装之Windows 10启动盘制作
  12. Codeforces Round #192 (Div. 1) A. Purification 贪心
  13. Linux 文件拓展名及文件解压方式
  14. var conf=confirm(确定要删除吗?);_微信查看谁删除了4种方法
  15. 验证手机号码的JS方法
  16. python科研向论文检索篇——提取PDF文字以供全文信息检索
  17. 手把手 从零开始学习JAVA(入门基础)
  18. 读《摄影测量与遥感概论》有感
  19. 使用cephadm搭建ceph(octopus)过程
  20. CoreDNS 1.9.0 openEuler 21.09 测试报告

热门文章

  1. 8个我希望早点意识到的学生思维
  2. spring框架学习(三)junit单元测试
  3. 粗浅看 java反射机制
  4. Spring - Java/J2EE Application Framework 应用框架
  5. OpenCV中Mat类的图像如何设置ROI
  6. 降维(二)----Laplacian Eigenmaps
  7. 浅谈线程池(上):线程池的作用及CLR线程池
  8. Scala基础教程(一):简介、环境安装
  9. matlab R2014a添加路径
  10. 为什么说ReasonReact是编写React的最佳方式?