一、下载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.incDEFAULTTUNE = "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

ubuntu下使用yocto制作龙芯文件系统相关推荐

  1. Ubuntu下kinect v2制作数据集

    Ubuntu下kinect v2制作数据集 1.下载kinectv2-dataset_make git clone https://github.com/MRwangmaomao/KinectV2_d ...

  2. 在x86平台制作龙芯版debian 10系统(mips64el)

    OS: ubuntu 18.04 使用debootstrap制作根文件系统会分成两个阶段.第一阶段是,使用debootstrap命令来下载软件包. 第二阶段是安装软件包. 安装debootstap 等 ...

  3. Ubuntu下录制并制作Gif图片

    1.背景 如果你看了我的文章,那么很庆幸,你将学会在Ubuntu下录制Gif图片 ; 大多数应该和我一样, 在开发Android 的时候,需要弄个效果图 , 但是在Ubuntu下,就没有windows ...

  4. 龙芯Fedora21平台制作docker镜像,并且解决vi乱码问题

    http://ask.loongnix.org/?/article/81 实验环境   本文的实验都是在龙芯3A3000机器上. 操作系统是loongnix(Fedora21)20170726版本, ...

  5. 龙芯Fedora21平台制作feodra21-loongson-app docker镜像

    http://ask.loongnix.org/?/article/86 在按照本文的方式制作镜像之前,首先要先创建基础镜像feodra21-apache-php-mysql,可以参考: http:/ ...

  6. 龙芯3号_中国芯崛起!新一代龙芯3号发布,国产CPU有望比肩世界先进水平

    原标题:中国芯崛起!新一代龙芯3号发布,国产CPU有望比肩世界先进水平 天下网商记者 黄天然 "中国芯"又获重大突破. 12月24日,龙芯中科发布了自主研发的新一代通用处理器(CP ...

  7. 基于龙芯+国产FPGA 的VPX以太网交换板设计(三)

            调试与测试是本系统设计实现的重要环节.单板调试主要包括各单元电路和接口 的调试,主要通过查看信号波形和运行软件对每个功能进行测试.本章将设计一系列 的调试和测试方案来验证电路设计的正确 ...

  8. [Cnbeta]龙芯处理器性能怎么样

    龙芯处理器性能怎么样?下一代CPU同频性能可达英特尔90% 在高性能处理器领域,英特尔是天花顶一般的存在(先不算地位特殊的IBM公司),国内发展CPU处理器的公司很多,绝大多数实力跟英特尔相比都差很远 ...

  9. 申威、龙芯、海光等六大国产芯片前景分析,谁有扛鼎之力?

    芯片是底层硬件基础设施的核心,也是智能设备的心脏,人们愈发意识到芯片对于各行各业发展的重要意义,也对国内的芯片厂商投入了更多关注度. 经过多年发展,目前我国已有超过14万家芯片相关企业,其中申威.龙芯 ...

最新文章

  1. InnoDB 存储引擎中的表锁和行锁详解
  2. 一份史上最全的深度学习资料,包括国内外顶尖学校课程以及顶会论文集
  3. 怎么让div显示一行,其余的隐藏。
  4. springboot+mongodb
  5. 图论(六)图的两种表示方法
  6. 在windows上安装OpenCV
  7. 经典的java程序_Java经典程序
  8. 机器人总动员拟人后_WALL·E 机器人总动员——又是一部让名字耽误的高分电影...
  9. linux vi编辑器 Ctrl s,Linux命令-----vi/vim编辑器
  10. Scala学习第一篇
  11. python调试_Python 调试
  12. 推一个知乎学弱猹的公众号
  13. nginx IP 80跳转443
  14. OSG绘制空间凹多边形以及透明效果的实现
  15. Java常用的开发软件下载地址以及问题解决
  16. fiddler手机下载证书提示No root certificate was found. Have you enabled HTTPS traff 解决方法 及手机配置代理后无网络问题
  17. (附源码)计算机毕业设计SSM游泳馆管理平台
  18. LaTex(1):使用在线表格生成器工具生成LaTex表格
  19. JavaScript定时器与清除定时器
  20. 小学生信息与未来 2022 题解

热门文章

  1. PHP函数调用及循环体内定义大型变量效率的研究
  2. 解决过帐时提示“无法获取内部公司交易记录的帐户”
  3. IBM走鹃险胜Cray Jaguar 连任世界最快超级计算机
  4. Oracle的一些资料
  5. flutter: 建树流程
  6. 堆内存 和 栈内存的简单理解 (未完待续~)
  7. java怎样读取数据库表中字段的数据类型?
  8. 由浅至深 谈谈.NET混淆原理(三)-- 流程混淆
  9. 【python】匿名函数与装饰器
  10. 比postman好用10倍的接口调试工具ApiPost