ubuntu下使用yocto制作龙芯文件系统

2023-11-04

一、下载yocto代码

  1. poky下载得到poky
  2. openembedded配方下载得到meta-openembedded目录
  3. MIPS架构配方下载得到meta-img目录
git clone git://git.yoctoproject.org/poky
git clone git://git.openembedded.org/meta-openembedded
git clone https://github.com/MIPS/meta-img.git

二、代码切换分支
根据自己的版本选择适合自己的分支,这里由于meta-img只有morty分支,一般poky和meta-openembedded都会切换为morty分支,但是由于项目需求morty分支不满足,所以目前我的poky和meta-openembedded都是sumo分支,meta-img选择master分支。

三、目录放置
我们把meta-openembedded和meta-img放到poky目录下,目录结构如下图所示:
在这里插入图片描述
四、安装yocto编译环境

sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat libsdl1.2-dev xterm

五、构建自己的cpu机器
在meta-img/conf/machine目录下有多重mips架构的机器,其中和龙芯2k1000最接近的是mips64r2el-n32,所以我们参考qemumips64r2el-n32.conf来编写2k1000.conf,文件如下:

#@TYPE: Machine
#@NAME: qemumips64r2el-n32
#@DESCRIPTION: MIPS 64r2, Little Endian, Hard Float, n32

#我们不需要qemu所以把下面两行注释掉
#require conf/machine/include/qemu.inc
#require conf/machine/include/qemuboot-mips.inc
require conf/machine/include/tune-mips64r2.inc
require mips-common.inc

DEFAULTTUNE = "mips64r2el-n32"

#我们不需要跑qemu所以把下面两行注释掉
# runqemu extra options
#QB_CPU = "-cpu MIPS64R2-generic"

#我们需要制作下面做多种格式文件系统
IMAGE_FSTYPES+=" cpio.gz cpio tar.gz jffs2 ext2 ext3 ext4"

这样子我们2k1000的机器就做好了。

六、选择不编译内核
由于yocto会自动编译内核,但是目前yocto的内核编译都不成功,因为龙芯的代码没有传到linux.org上,我们也可以自己做一个源,或者选择本地工程,但是比较复杂,所以这里选择不编译内核。我们从2k1000的机器文件中也可以看到,他编译内核是因为 require mips-common.inc 这个语句,这个文件在conf/machine/mips-common.inc,我们把里面一些关键信息注释就可以不编译内核了

# Include file for parameters common to many MIPS platforms

#KERNEL_IMAGETYPE = "vmlinux"
#KERNEL_ALT_IMAGETYPE = "vmlinux.bin"

SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1"

# This disables gobject-introspection which needs fixing for some
# targets. If you need to use that package, remove this line.
#MACHINE_FEATURES_BACKFILL_CONSIDERED = "qemu-usermode"

#PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"

七、开始编译
编译过程也就是运行两条命令:

MACHINE='loongson2k1000' source oe-init-build-env build 
bitbake core-image-minimal

如下图所示:
在这里插入图片描述

八、编译错误处理
当我们执行source oe-init-build-env build命令后,会在当前目录创建一个build目录,我们要在build/conf/bblayers.conf目录下添加 openembedded配方和MIPS架构配方,添加后如下所示,:

# POKY_BBLAYERS_CONF_VERSION is increased each time build/conf/bblayers.conf
# changes incompatibly
POKY_BBLAYERS_CONF_VERSION = "2"

BBPATH = "${TOPDIR}"
BBFILES ?= ""
BSPDIR := "${@os.path.abspath(os.path.dirname(d.getVar('FILE', True)) + '/../..')}"

BBLAYERS ?= " \
		${BSPDIR}/meta \
		${BSPDIR}/meta-poky \
		${BSPDIR}/meta-yocto-bsp \
		${BSPDIR}/meta-openembedded/meta-oe \
		${BSPDIR}/meta-openembedded/meta-python \
		${BSPDIR}/meta-openembedded/meta-networking \
		${BSPDIR}/meta-openembedded/meta-initramfs \
		${BSPDIR}/meta-openembedded/meta-multimedia \
		${BSPDIR}/meta-openembedded/meta-filesystems \
		${BSPDIR}/meta-img \
 "

这样子编译还会宝下面的错误:
在这里插入图片描述
我们只要把报错的文件删除就可以了。这样子就可以成功编译全部了。

九、优化结构和添加脚本

  1. 把downloads从build目录中更改到build外的同级目录,这样子不用每次删除build后都要重新下载。
  2. 添加脚本替换build目录下的两个conf文件
  3. 使用脚本一键编译loongson2k1000平台

下面这个链接可以下载我构建好的yocto:
https://download.csdn.net/download/sinat_22338935/20087662

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ubuntu下使用yocto制作龙芯文件系统 的相关文章

  • buildroot VS yocto

    翻译自Buildroot vs OpenEmbedded or Yocto Project A Four Hands Discussion 2016 pdf Buildroot 和 yocto的对比 对比内容 xff1a xff08 1 x
  • ubuntu下使用yocto制作龙芯文件系统

    一 下载yocto代码 poky下载得到poky openembedded配方下载得到meta openembedded目录 MIPS架构配方下载得到meta img目录 git clone git git yoctoproject org
  • 如何在 Yocto 设置中启用eglfs 插件?使用 yocto+meta-qt5 进行 Riotboard

    最近我只是使用 fsl community bsp 和 meta qt5 层来生成交叉工具链和 rootfs 我使用 bitbake meta toolchain qt5 和 bitbake fsl image multimedia ful
  • Yocto 中支持 PHP 的 Apache2

    我正在使用 Yocto 创建一个包含 apache2 的构建 但我很难添加 php 支持 我之前运行过它 阅读 去年 但从那时起 meta openembedded 中的meta webserver 层发生了变化 来自元网络服务器中的自述文
  • 如何使用 Yocto 生成适用于 Windows 的工具链?

    关于我的最后一个问题我问如何获得 Qt 工具链 我在 Linux 主机上尝试过 它可以工作 现在我需要知道如何使该工具链在 Windows 平台上工作 或者我需要什么 Yocto 设置来生成 Qt Windows SDK 安装程序 Woul
  • 如何在 yocto 中编译基本的 c 文件

    我正在 yocto 上工作 我想在 yocto 中编译一些 C 文件并将生成的二进制文件安装到外部文件系统 在此之前 我尝试创建一个单独的记录并从中编译 C 代码 我无法编译它 我不确定是否理解这个问题 因为它不够精确 在配方树中包含 C
  • 如何配置 yocto 使用最新的 git 提交?

    我是一个很懒的人 在处理硬件 软件项目时 软件会永久更改 在这个开发阶段 更改配方中的提交 恢复标签是非常令人讨厌的 我希望 Yocto 获取最新的 git 提交 这可能 如何做到这一点 我的示例食谱 SUMMARY my test SEC
  • 在 yocto 中为 Python 应用程序编写配方

    我有一个简单的 python 应用程序 它的作用是 从 GPS 获取信息 解析信息 将其存储在 InfluxDB 中 包装要求 certifi 2018 4 16 chardet 3 0 4 idna 2 6 influxdb 5 0 0
  • 为什么 Yocto rootfs 中包含软件包?

    我正在从 Yocto Sumo 升级到 Yocto Dunfell 在此过程中 有相当多的软件包被添加到 rootfs 中 这些软件包以前不存在 而且我也没有使用过 我想知道为什么要添加它们 哪个依赖项会触发它们被添加 在 Yocto 的早
  • 配方还产生需要包装的本地输出

    我有一个配方 可以成功调用遗留构建命令来交叉编译目标 作为副作用 它会生成一些在构建中使用的自定义本机工具 我想将这些工具转化为 tools native包允许其他食谱依赖主包来访问工件 并使用 tools native包以进一步处理这些工
  • 将特定标头添加到 bitbake wget fetcher

    我需要设置一个特定的标头以使用以下命令从资源中获取存档wgetfetcher 类似于 wget header PRIVATE ACCESS TOKEN blablablablabla https some resource 如何使用该获取器
  • 如何更改基于 autotools 的 Bitbake 配方的安装路径?

    我有一个基于自动工具的 BitBake 配方 我想将其安装在其中 usr local bin和安装的库 usr local lib 代替 usr bin and usr lib 这是默认目标目录 这是其中的一部分autotools bbcl
  • bitbake SRC_URI 文件://

    如果我在本地目录中有一个 tarball helloworld tar gz 比如 home user tarballs 我怎样才能从该目录中获取我的 bitbake 配方 我的 helloworld bb 是 SECTION exampl
  • 为定制 RISC-V imafd SOC 移植 Linux

    我正在尝试构建一个 yocto演示 coreip cli我的自定义 risc v SOC 的图像仅支持imafd指示 对于 Bitbake 使用的交叉工具链的编译 我尝试更改 openembedded core 层中的 cross binu
  • 仅使用 Yocto/bitbake 快速重建设备树?

    因此 每次修改设备树时 我通常会更改自定义配方中的 dts 并重建映像 重建需要很长时间 因为它会重建整个内核 然后需要构建镜像 最后部署到目标设备 我是否缺少任何仅重建设备树的技巧 UPDATE 我已将 g0hl1n 的答案标记为正确答案
  • 如何指定使用 bitbake/yocto 构建哪个内核

    我正在努力使用 yocto daisy 生成新的 BSP 当我构建图像时 我收到以下警告 NOTE Resolving any missing task queue dependencies NOTE multiple providers
  • Yocto 构建上的 JAVA 安装错误

    我在 Poky Linux 系统上安装 Java 时遇到了很多麻烦 我正在使用 Yocto 构建我的系统 配置如下 本地配置文件 MACHINE intel corei7 64 DISTRO poky PACKAGE CLASSES pac
  • 有没有办法在不修改 Yocto 的情况下为机器 ID 创建链接?

    我正在运行使用 Yocto Zeus 3 0 0 构建的 Linux 4 14 149 我正在运行只读文件系统 最近发现一个问题 我的 UID etc machine id 每次启动都会发生变化 这个问题的结果 https superuse
  • Yocto Dunfell 错误“没有可用的食谱”,单个自定义元层中的多台机器

    我维护一个与 Dunfell 兼容的自定义 Yocto 元层 它支持基于 Microchip SAMA5D27 处理器的板 我在这一层中有几个 bbappend 文件 它们仅适用于来自 meta atmel 和其他 Microchip 特定
  • 通过元层覆盖 Yocto 类

    感谢您的时间和支持 我计划使用 swupdate 进行更新 因此 我需要创建一个额外的分区来存储恢复分区 poky meta classes image live bbclass 是创建分区并刷新根文件系统的类 我已更新上述文件以再创建一个

随机推荐

  • 记一次从日立G400划一个LUN给dg数据库

    从日立G400划一个1T的lun 映像路径给DG主机 cat proc scsi scsi 为不重启主机识别设备 echo gt sys class scsi host host1 scan echo gt sys class scsi h
  • 等保合规2022系列

    2022等保合规指南 第一篇 四个核心问答 帮你读懂 等保 等级保护制度在我国已经推广了近20年了 如下图 从等保制度的逐渐成熟 到整个制度被上升到法律高度 无一不证明了网络安全是我国网络强国战略的重要组成部分 而网络安全等级保护是落实网络
  • STM32启动文件分析(startup_stm32f10x_md.s)

    初始化堆栈 初始化栈指针 SP 初始化栈指针 SP 向量表的设置 配置系统时钟进入main 一般而言 系统上电后第一个执行的是由汇编所编写的启动文件 其主要工作为一下五部分 初始化堆栈指针SP initial sp 初始化PC指针 令其 R
  • 逻辑漏洞之越权、支付漏洞

    目录 逻辑漏洞 Web安全渗透三大核心方向 输入输出 登录体系 权限认证 业务逻辑漏洞分类 1 登录体系安全 暴力破解 cookie安全 加密测试 登录验证绕过 任意注册 2 业务一致性安全 手机号篡改 邮箱和用户名更改 订单ID更改 商品
  • Linux操作系统入门

    Linux操作系统入门 一 入门概述 我们为什么要学习Linux linux诞生了这么多年 以前还喊着如何能取代windows系统 现在这个口号已经小多了 任何事物发展都有其局限性都有其天花板 就如同在国内再搞一个社交软件取代腾讯一样 想想
  • Hadoop3x高可用集群配置手册

    集群规划 本次安装拟使用的各软件版本如下 CentOS 7 6 Zookeeper 3 6 3 Hadoop 3 2 2 Hive 3 1 2 Spark 3 0 2 Sqoop 1 4 7 MySQL 8 0 21 机器规划 机器名称 z
  • CentOS7下python开发环境配置

    https blog csdn net nicomy2018 article details 78617976 configure prefix usr local
  • 内网DNS域名解析 blocky服务

    此片文章为DNS内网解析部署文档 简单实用 解决企业内部web服务IP地址访问问题 企业内部如果不启用域名DNS服务 服务器就只能通过IP进行访问了 除了传统的bind解决方案 推荐一个新的DNS解决方案 blocky blocky 的Gi
  • Oracle listagg去重distinct的三种方式总结

    一 简介 最近在工作中 在写oracle统计查询的时候 遇到listagg聚合函数分组聚合之后出现很多重复数据的问题 于是研究了一下listagg去重的几种方法 以下通过实例讲解三种实现listagg去重的方法 二 方法 首先还原lista
  • 封装继承多态理解

    1 封装的概念 在面向对象中封装是指隐藏对象的属性和实现的细节 仅对外提供公共访问方式 是一种信息隐藏技术 在java c 中通过关键字private protected和public实现封装 封装实际上使用方法将类的数据隐藏起来 控制用户
  • 【python之经验模态分解EMD实现】PyEMD库的安装和导入EMD, Visualisation问题解决方法[完整可运行]

    现有的导入问题 目前网上的办法 直接导入 from PyEMD import EMD Visualisation 是有问题的 可能会出现 在 init py init py 中找不到引用 Visualisation 的报错 原因似乎是现在导
  • Handler相关知识点

    目录 一 主线程为什么没有被loop阻塞 二 Message对象创建的方式有哪些 区别 三 一个线程可以有几个Handler 几个Looper 几个MessageQueue对象 四 Handler导致的内存泄露原因及其解决方案 五 子线程中
  • 如何写一篇给天使投资人看的《商业计划书》?

    转自 https www sohu com a 164233213 259030 笔者遇到过形形色色的创业者 总体来说 创业者要么把写商业计划书想的太简单 要么就是想得太难 很少有创业者去实实在在地了解商业计划书的写法和内在逻辑 1 商业计
  • 分享一个Xshell注册码

    Xshell简单介绍 百度 Xshell 1 是一个强大的安全终端模拟软件 它支持SSH1 SSH2 以及Microsoft Windows 平台的TELNET 协议 Xshell 通过互联网到远程主机的安全连接以及它创新性的设计和特色帮助
  • http和缓存有关的状态码

    200 OK from cache 是浏览器没有跟服务器确认 直接用了浏览器缓存 而 304 Not Modified 是浏览器和服务器多确认了一次缓存有效性 再用的缓存 200 from cache 是速度最快的 因为不需要访问远程服务器
  • 求一个向量变换为另一个向量的矩阵_线性代数32——线性变换及对应矩阵

    线性变换这个词在线性代数中经常被提及 每个线性变换的背后都有一个矩阵 矩阵的概念比较直观 相比之下 线性变换就显得抽象了 抛开矩阵 我们从变换的角度讨论投影 通过T变换 使平面内的一个向量投影到一条直线上 T就像一个函数 给定一个输入向量
  • EasyGBS国标GB28181视频平台添加针对H.265视频流的告警信息

    EasyGBS国标视频云服务支持设备 平台通过国标GB28181协议注册接入 可实现视频的实时监控直播 录像 检索与回看 语音对讲 云存储 告警 平台级联等功能 平台支持将接入的视频流进行全终端 全平台分发 分发的视频流包括RTSP RTM
  • 基于深度学习的服装图像分类与检索

    摘要 面对海量的服装图像数据 如果使用人工进行服装图像的语义属性标注以用于分类和检索 则需要花费大量的人力和时间 而且语义属性并不能完全表达服装图像中的丰富信息 造成检索效果不佳 针对服装图像对多个属性同时进行分类和识别的要求 构建了基于多
  • iOS证书添加设备UDID,运行自定义基座(图文)

    登录苹果开发者账户 Apple Developer 进入账户 进入第二项证书设置 选择设备设置 点击添加新设备 在这里填写设备信息 注册新设备 在这里查看自己的证书 点击对应证书 进入证书页面 点击右边蓝色编辑按钮 选择对应设备 注册的新设
  • ubuntu下使用yocto制作龙芯文件系统

    一 下载yocto代码 poky下载得到poky openembedded配方下载得到meta openembedded目录 MIPS架构配方下载得到meta img目录 git clone git git yoctoproject org