ubuntu 14.04 编译yocto源码--环境配置篇

ubuntu 14.04 编译yocto源码

1. 环境安装

  1. ubuntu 14.04

  2. yocto依赖工具链

    sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat cpio python python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping

  3. 源码已经就位

    ./makall

2. 错误记录

2.1 bash or dash

在这里插入图片描述
在kernel编译的时候提示no such arch:
在这里插入图片描述

这里就是shell脚本语言在做字符串匹配,而且同样的code在服务器是编译通过的,所以这里主要怀疑:

  1. gcc的lib库是否没有安装;
  2. sh是否没有安装;

经确认主机上与服务器上sh有差异,主机默认安装为dash,替换后此错误通过:
在这里插入图片描述
sudo dpkg-reconfigure dash,选择no

2.2 JDK 1.8 安装

在编译到service阶段的时候出现编译错误,提示语JDK相关,在安装openjdk 1.8后可以正常编译通过,这里记录openjdk 1.8的安装过程:

  1. 替换源:

    1. 由于ubuntu中默认没有支持openjdk,所以这里需要在source.list中加入;
    2. ubuntu官网毕竟是外网,访问如同龟速,这里替换为aliyun的镜像网站;

    sudo cp sources.list sources.list.bak
    sudo vim /etc/apt/sources.list

    具体内容:

    deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse 
    deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse 
    deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse 
    deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse 
    ##测试版源
    deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse 
    ## 源码 
    deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse 
    deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse 
    deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse 
    deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse 
    ##测试版源 
    deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse 
    # Canonical 合作伙伴和附加 
    deb http://archive.canonical.com/ubuntu/ xenial partner deb http://extras.ubuntu.com/ubuntu/ xenial main
    
  2. 更新并安装jdk

    sudo apt-get install update
    sudo apt install openjdk-8-jre-headless
    sudo apt install openjdk-8-jre
    sudo apt install openjdk-8-jdk

  3. 验证:

    java -version

3.2.3 libinput 编译meson失败

  1. 出错环节:

    gcc /code/20201016sumo/build/tmp/work/aarch64-poky-linux/libinput/1.9.4-r0/build/meson-private/sanitycheckc.c -o /code/20201016sumo/build/tmp/work/aarch64-poky-linux/libinput/1.9.4-r0/build/meson-private/sanitycheckc.exe

  2. 错误信息:

    /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/4.8/…/…/…/x86_64-linux-gnu/crti.o: unrecognized relocation (0x2a) in section `.init’
    /usr/bin/ld: final link failed: Bad value
    collect2: error: ld returned 1 exit status

    1. 这里提示在链接crti.o时出错,地址不识别,这里多半认为是版本问题
    2. 将已经编译过得环境中crti.o替换到主机中,编译通过
    3. 说明是gnu lib库有差异
      1. gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3)
      2. gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.4)
  3. 处理方案:

    1. 在gnu lib中替换crti.o

3.2.4 打包ext4 image错误

  1. 错误提示:

    make_ext4fs执行时有库找不到

  2. ldd 命令查看链接库:

    20201016sumo/src/build/tools$ ldd make_ext4fs

    linux-gate.so.1 => (0xf773b000)
    libstdc++.so.6 => not found

  3. file命令查看make_ext4fs

    make_ext4fs: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, not stripped

    结合错误信息来看,默认这个库安装时64bit的,所以需要安装对应32bit的libstdc++.so.6

  4. 处理:

    sudo apt-get install lib32stdc++6

    搞定收工

3.3 总结

错误原因大多为(环境配置):

  1. 缺少某些环境或者库,例如JDK等
  2. 某些环境的版本与code依赖版本不匹配,例如openssl、libgnu等等
  3. 某些工具配置不对,例如bash等

在新的环境编译新的系统,总会遇到各式各样的环境问题,整体思路就是确认出错步骤,单步执行打印提示,逐步check即可

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: ubuntu-14.04-desktop-amd64.iso 是Ubuntu 14.04版本的桌面操作系统的镜像文件。这是一个64位的版本,适用于AMD架构的处理器。 Ubuntu 14.04Ubuntu操作系统系列的一个版本,也称为Trusty Tahr。该版本是一个长期支持(LTS)版本,提供了5年的支持。它在2014年4月发布,并在2019年4月停止了官方支持。 该桌面版的Ubuntu 14.04带有图形化用户界面,使用户可以轻松地使用操作系统。它提供了许多常用的桌面应用程序,如文本编辑器、文件管理器、网络浏览器、多媒体播放器等。此外,它还支持许多其他应用程序和可自定义的主题,用户可以根据自己的喜好进行个性化设置。 除了桌面应用程序之外,Ubuntu 14.04还提供了许多开发工具和服务,如Python、Java、GCC编译器、Apache服务器等。这使得开发人员可以在Ubuntu操作系统上进行软件开发和部署。 通过下载ubuntu-14.04-desktop-amd64.iso镜像文件,用户可以创建一个可启动的安装介质,以安装Ubuntu 14.04桌面操作系统。用户可以将该镜像文件刻录到光盘上,或者使用USB驱动器创建一个可启动的USB安装介质。 总之,ubuntu-14.04-desktop-amd64.iso是一个Ubuntu 14.04桌面操作系统的镜像文件,它可以让用户轻松安装和使用这个操作系统,并提供了丰富的桌面应用程序和开发工具。 ### 回答2: ubuntu-14.04-desktop-amd64.iso 是 Ubuntu 的一个版本。Ubuntu 是一个开源的操作系统,具有易用性和稳定性,是最流行的 Linux 发行版之一。 这个版本的 Ubuntu 是专为桌面电脑和笔记本电脑设计的,适用于使用 AMD64 架构的处理器。该版本的 Ubuntu 基于长期支持(LTS)版本,提供长达5年的更新和支持。14.04 代表了版本的发布年份和月份,即2014年的第4个月份。 ubuntu-14.04-desktop-amd64.iso 文件是一个镜像文件,可以用来创建一个可启动的 Ubuntu 安装介质,如光盘或 USB 驱动器。您可以使用该镜像文件来安装 Ubuntu 14.04 操作系统,或者作为一个独立的系统运行。 Ubuntu 14.04 Desktop 版本提供了一个直观和易用的桌面环境,名为 Unity。它具有类似于 Windows 的任务栏和开始菜单,并提供一些有用的应用程序和工具,如图形化安装程序、文本编辑器、网页浏览器、办公套件等。 安装 Ubuntu 14.04 Desktop 是一个简单的过程,只需将镜像文件刻录到光盘或将其写入 USB 驱动器,并从该介质启动计算机。然后,您可以按照安装向导的指导进行操作。 总之,ubuntu-14.04-desktop-amd64.iso 是 Ubuntu 14.04 的一个镜像文件,适用于桌面电脑和笔记本电脑,并为使用 AMD64 架构处理器的计算机提供稳定和易用的操作系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值