openbmc开发环境搭建 ------> 2500固件编译为例

本文详细记录了在Ubuntu 18.04上搭建Open-BMC环境的过程,包括更换国内软件源以加速下载,安装必要的软件和库,配置Git及SSH,获取并编译OpenBMC源码,以及解决编译过程中遇到的问题,如内存不足等。最终成功编译出固件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Open-BMC 初用记录

开始使用Open-BMC,此篇文章仅作为初次使用Open-BMC所记录使用过程和遇到的问题。

前言

历时一周搭建openbmc的环境,历时如此之久主要是因为走了很多弯路,刚开始用Ubuntu14.04虚拟机来搭建环境,但因为环境中的一些库什么的没有安装好,导致运行编译命令后,命令直接完毕无任何反应(😂好尴尬),因公司中领导率先用18.04搭建好了环境,同时也是因为18.04的Ubuntu的环境更新,界面更舒适一点,所以决定改用18.04的Ubuntu环境;然后根据GitHub的openbmc官方说明进行下载库、下载源码、谱配置、编译,报error的错误如下:
在这里插入图片描述
查找资料两天也没有解决掉此问题,遂从新安装虚拟机,从头开始按照网友的方法试一试,结果成功的可以进行编译,遂总结了下记录在此,可供广大网友共享;

一、环境 :Ubuntu18.04.5 - VNware Workstations 15

二、更换Ubuntu软件源为国内源

1、备份原配置文件

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

2、更改配置文件为国内源

sudo gedit /etc/apt/sources.list
用如下内容替换文件中的原内容,然后保存。(建议多添加几个源,可以选择速度快的源下载,其他源见第二栏)

# 中科大镜像源
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
# 清华镜像源
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
# 阿里镜像源
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
# 163镜像源
deb http://mirrors.163.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-backports main restricted universe multiverse

3、更新软件列表和更新软件以及build-essential

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential

build-essential软件作用:
Ubuntu缺省情况下,并没有提供C/C++的编译环境,因此还需要手动安装。但是如果单独安装gcc以及g++比较麻烦,幸运的是,Ubuntu提供了一个build-essential软件包。查看该软件包的依赖关系:

y@ubuntu:~$ apt-cache depends build-essential
build-essential
|Depends: libc6-dev
Depends:
libc6-dev
Depends: gcc
Depends: g++
Depends: make
make-guile
Depends: dpkg-dev
根据软件报名字可知,essential adj. 基本的;必要的;本质的;精华的可知是编译必要包,也就是说,安装了该软件包,编译c/c++所需要的软件包也都会被安装。因此如果想在Ubuntu中编译c/c++程序,只需要安装该软件包就可以了。

三、安装开发中必要的支持软件

OpenBmc要求的是ubutun下需要安装:

sudo apt-get install -y git build-essential libsdl1.2-dev texinfo gawk chrpath diffstat

建议安装:

sudo apt-get install -y gawk wget git-core git diffstat unzip texinfo gcc-multilib build-essential chrpath socat cpio python python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev pylint3 xterm sed cvs subversion help2man make gcc g++ desktop-file-utils libgl1-mesa-dev libglu1-mesa-dev mercurial autoconf automake groff curl lzop asciidoc npm meson ninja tree

ninja可网页搜索下载,然后解压后将ninja cp到/user/bin下即可;

四、Git配置

1、安装Git

sudo apt-get install -y git

2、配置Git

git config --global user.name xxxxxx    //配置用户名(github官网注册的用户名)
git config --global user.email xxxxxx@mail.com   //配置用户邮箱(gitub官网注册绑定的邮箱)
git config --list

3、配置SSH

不配置SSH,GitHub的URL不能下载,大文件传输通过SSH稳定;
生成SSH密钥:

ssh-keygen -t rsa -C "master@gmail.com"

一路回车
在这里插入图片描述
将key打印并复制下来

cat  ~/.ssh/id_rsa.pub

将复制下来的key添加到GitHub上

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

五、获取OpenBmc源码

git clone git@github.com:openbmc/openbmc.git

六、编译镜像

1、打开一个Terminal(快捷键Ctrl + Alt + T),cd命令切换到openbmc文件夹下;
2、查看可用编译配置
find meta-* -name local.conf.sample
在这里插入图片描述
3、生成编译配置(以2500为例)

export TEMPLATECONF=meta-aspeed/conf
TEMPLATECONF=meta-evb/meta-evb-aspeed/meta-evb-ast2500/conf
 . openbmc-env 

上述命令后路径已在build下,如果想换一个编译配置,执行如下命令删除原来的配置文件,然后在执行export TEMPLATECONF=;
4、编译
bitbake obmc-phosphor-image
至此进入了固件的编译阶段;
5、待编译完成后在 build/tmp/deploy/images/evb-ast2500/下查看*.mtd文件,即编译生成的固件

七、编译期间问题

1、进入编译后报错,fatal error: Killed signal terminated program cc1plus ninja: build stopped: subcommand等等错误,经查找是当初搭建虚拟机时因为电脑配置原因,导致内存过小,扩展了下交换内存即可通过编译;
2、扩展swap方法本人按网友方式解决,https://blog.csdn.net/qq_34160841/article/details/104856865

八、编译成功

经过一晚上的编译,早晨查看时,已经编译完成;
在这里插入图片描述
烧录到flash,在2500新硬件环境运行;
账户root,密码0penBmc(密码第一个是零不是字母o);
在这里插入图片描述
至此,开启新的征程吧~~~~~~~~~~~~!!!!!!!

----------------------------------------------------------------------Author: Vincent Song
感谢广大网友发布的相关贴子,可供参考。

参考:

https://blog.csdn.net/qq_34160841/article/details/104874108
https://blog.csdn.net/qq_34160841/article/details/104841318
https://forum.ubuntu.org.cn/viewtopic.php?t=17731
https://github.com/openbmc/openbmc
https://blog.csdn.net/qq_34160841/article/details/104856865

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值