imx6 板卡移植官方yocto版本(2_定制系统)
- 上一节中已经讲述了如何去构建编译环境,这一节讲一下如何定制专属于自己板卡的系统。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_定制系统)相关推荐
- imx6 板卡移植官方yocto版本(1_安装环境)
玩imx6板卡也有两年了,之前由于各种原因(主要是懒),一直用的是官方的LTIB版本,这里必须要吐槽一下这个LTIB,各种错误百出,而且严重挑系统,硬是将我从CentOS阵营搞到Ubuntu社区.最近 ...
- 在s5pv210开发板上移植官方2101310版本的uboot
uboot官方标准uboot移植 解决烧录运行问题: 输出错误信息分析:第一个SD checksum Error是第一顺序启动设备SD0(iNand)启动时校验和失败打印出来的:第二个SD chec ...
- 安卓8.0 android系统,谷歌安卓8.0重磅来袭!国产定制系统有必要马上适配吗?
8月末,万众期待的Android 8.0终于正式发布了,而广大用户最关心的问题莫过于自己的手机能否吃上奥利奥了. 其实就目前来说,国外的Android和国内的安卓可以视作是两个不同的生态圈,大部分国产 ...
- YOCTO项目介绍:通过提供模版、工具和方法帮助开发者创建基于linux内核的定制系统
目录 YOCTO项目介绍 配置内核 build配套 Yocto ,是一个开源社区.它通过提供模版.工具和方法帮助开发者创建基于linux内核的定制系统,支持ARM, PPC, MIPS, x86 (3 ...
- Linux学习笔记---移植官方linux步骤(一)
使用的开发板是正点原子IMX6U-MINI EMMC512M的开发板,这个板子也是移植的NXP官方linux,所以这里就直接从NXP官方的linux移植. 这里所说的移植,其实不是自己编写驱动文件等 ...
- Spring官方各种版本下载以及Spring简介
Spring下载与简介 Spring下载 博主这里整理了官方Spring框架最新jar包下载链接以及maven依赖(持续更新,最终更新日期:2020-5-5): 需要的可以直接点击下载: spring ...
- Linux学习笔记---移植官方linux步骤(二)
目录 修改网络驱动 修改 LAN8720 的复位 以及网络时钟 引脚驱动 修改fec1和fec2节点pinctrl-0属性 修改LAN8720A的PHY地址 修改 fec_main.c 文件 配置 L ...
- Linux学习笔记---移植官方uboot步骤(二)
在上一篇 Linux学习笔记---移植官方uboot步骤(一) 自己的uboot已经编译成功了,接下来继续移植LCD驱动和网络驱动. 修改LCD驱动 修改配置参数 打开my_uboot/board/f ...
- Linux学习笔记---移植官方uboot步骤(一)
目录 编写shell脚本 修改MakeFile文件 重命名shell脚本 添加默认配置文件 修改默认配置文件 准备需要的板级文件夹 重命名.C文件 修改Makefile 修改imximage.cfg配 ...
最新文章
- 北京python培训班价格-北京Python培训班,为什么Python超适合小白学习
- (转载)Hadoop2.7.1配置
- 3D数学 向量和矩阵
- 一张图,看懂阿里云的“飞天”史
- nodejs mysql备份_node.js实现备份mysql数据库功能
- 【牛客 - 315B】 勇气获得机(二叉树性质,思维,知识点,tricks)
- Head first servlet and jsp学习笔记
- 卷起来了!DeepMind发布媲美普通程序员的AlphaCode,同日OpenAI神经数学证明器拿下奥数题...
- leetcode链表题
- 移动端页面按手机屏幕分辨率自动缩放的js
- 原版98启动盘镜像.img_装机技巧系列(二):系统安装之Windows 10启动盘制作
- Codeforces Round #192 (Div. 1) A. Purification 贪心
- Linux 文件拓展名及文件解压方式
- var conf=confirm(确定要删除吗?);_微信查看谁删除了4种方法
- 验证手机号码的JS方法
- python科研向论文检索篇——提取PDF文字以供全文信息检索
- 手把手 从零开始学习JAVA(入门基础)
- 读《摄影测量与遥感概论》有感
- 使用cephadm搭建ceph(octopus)过程
- CoreDNS 1.9.0 openEuler 21.09 测试报告