centos7 配置coreboot编译环境 以及编译问题解决

news/2024/12/22 21:33:10/

需要的配置 (有的资源在国外可能需要翻墙)
操作系统: centos7.9

参考文章

coreboot源码分析之编译和运行coreboot - 知乎

//coreboot编译总说明
https://www.coreboot.org/Build_HOWTO#Requirements

https://poe.com/ChatGPT

注意: 因为github不稳定 所以gitee为主

1. 下载coreboot源码

#切换下home目录
cd /home
#克隆下coreboot源码
git clone https://gitee.com/coreboot/coreboot.git#下载完成后 查看状态 并切换到 coreboot4.6
cd coreboot
git status
git checkout 4.6

2. 使用corebot自带功能 配置菜单

#执行命令
make menuconfig
或者
make nconfig
提示 curses.h:No such file or directory 的话

查找资料得知,最小系统不支持图形显示造成的
解决: yum install ncurses-devel ncurses

提示下面这个的话 按照提示安装 对应的安装包即可

ERROR: Missing tool: Please install 'm4'. (eg sudo apt-get install m4)
ERROR: Missing tool: Please install 'bison'. (eg sudo apt-get install bison)
ERROR: Missing tool: Please install 'flex'. (eg sudo apt-get install flex)
ERROR: Missing tool: Please install 'zlib (zlib1g-dev or zlib-devel)'. (eg sudo apt-get install zlib1g-dev (zlib1g-dev or zlib-devel))

正常情况下 会显示 菜单界面 (键盘左右上下可以控制菜单)

直接save保存下 会生成 /home/coreboot/.config文件

3.编译 coreboot toolchain

虽然我们 host 上有安装 gcc, 但是 coreboot 官方强烈推荐使用 coreboot 自带的交叉编译工具。

make crossgcc-i386#会自动执行下载资源
出现报错的话, 有的因为墙的 原因下载不了, 需要手动下载(google或者百度) 并保存到 固定目录中这个网站里面可能有你需要的苦 https://ftp.jaist.ac.jp/pub/
https://sources.openwrt.org/libelf-0.8.13.tar.gz下载的东西保存到这个目录 
/home/coreboot/util/crossgcc/tarballs/


4. 等待crossgcc编辑完成

因为要编译各种平台的,所以这个过程很漫长, 基本上要1个小时多, 特别是卡在 gcc 的编译 一定要耐心的等待

#出现下面这个话 说明安装编译工具成功  You can now run i386-elf cross GCC from /home/coreboot/util/crossgcc/xgcc.
Welcome to the coreboot cross toolchain builder v1.50 (October 15th, 2017)Building toolchain using 1 thread(s).Downloading and verifing tarballs ... * acpica-unix2-20161222.tar.gz (cached)... hash verified (73e57d4d558c9bc831165c71adbff577b526f256)
Downloaded tarballs ... ok
Unpacking and patching ... * acpica-unix2-20161222.tar.gzo acpica-unix2-20161222_iasl.patch
Unpacked and patched ... ok
Building packages ... 
Building IASL v20161222 for host ... ok
Packages built ... ok
Copied EDK2 tools template ... ok
Cleaning up temporary files... ok

目录下文件如下


5. 导入第三方blobs (真机下可能需要, 这个步骤模拟或者虚拟机或许不用)

去coreboot官网 或者 git上获取需要的 blobs库

#切换目录
cd /home/coreboot/3rdparty/blobs/
#用git下载
git clone https://gitee.com/coreboot/blobs#官网的话在这个网址瞎子
https://www.coreboot.org/downloads.html

6. make 出固件 coreboot.rom

#回到coreboot目录并make下
cd /home/coreboot
make

之后会执行各种东西, 最后的话出现如下文字 说明编译成功

It is possible to perform either the write action or the CBFS add/remove actions on every section listed above.
To see the image's read-only sections as well, rerun with the -w option.
    CBFSPRINT  coreboot.rom

Name                           Offset     Type           Size   Comp
cbfs master header             0x0        cbfs header        32 none
fallback/romstage              0x80       stage           82500 none
cpu_microcode_blob.bin         0x14340    microcode       25600 none
fallback/ramstage              0x1a7c0    stage           98822 none
config                         0x32a00    raw               338 none
revision                       0x32bc0    raw               559 none
cmos_layout.bin                0x32e40    cmos_layout      1228 none
pci8086,0102.rom               0x33380    optionrom       65536 none
fallback/dsdt.aml              0x43400    raw              9869 none
fallback/payload               0x45b00    simple_elf      68228 LZMA (130028 decompressed)
payload_config                 0x56600    raw              1593 none
payload_revision               0x56c80    raw               275 none
(empty)                        0x56e00    null           559576 none
bootblock                      0xdf800    bootblock        1968 none
    HOSTCC     cbfstool/ifwitool.o
    HOSTCC     cbfstool/ifwitool (link)

并在 /home/coreboot/build/ 目录下生成了 coreboot.rom 


http://www.ppmy.cn/news/1144800.html

相关文章

【C++设计模式之组合模式:结构型】分析及示例

简介 组合模式是一种结构型设计模式,它能够将对象组合成树形结构以表示“整体-部分”的层次结构,并且能够使用相同的方式处理单个对象和组合对象。组合模式使得客户端可以一致地处理单个对象和组合对象,无需关心具体的对象类型。 组合模式将对…

【C++杂货铺】一文带你走进RBTree

文章目录 一、红黑树的概念二、红黑树的性质三、红黑树结点的定义四、红黑树的插入操作4.1 情况一:uncle 存在且为红4.2 情况二:uncle 不存在4.3 情况三:uncle 存在且为黑4.4 插入完整源码 五、红黑树的验证六、红黑树与 AVL 树的比较七、结语…

HDMI协议介绍(五)--Audio

基础知识 I2S(inter-IC sound bus)飞利浦公司制定的标准,既规定了硬件接口规范,也规定了数字音频数据格式。 硬件接口规范 I2S接口有3个主要信号: 时钟信号 Serial Clock 串行时钟SCK,也叫位时钟(BCLK)&…

考试中心|学习资料|学习情况|纯净无广|在线组卷刷题

土著刷题Plus专业版v1.2版本已全面对其个人版功能,完全满足学员培训/刷题考察全套流程,提供完整的服务流程。接下来将主要介绍一下这一版的新功能 考试中心 满足培训机构/刷题组织者考察刷题用户的管理需求,【围绕考试展开】,提供…

Kubernetes革命:云原生时代的应用编排和自动化

文章目录 什么是Kubernetes以及为何它备受欢迎?云原生应用和K8s的关系Kubernetes的核心概念:Pods、Services、ReplicaSets等部署、扩展和管理应用程序的自动化容器编排的演进:Docker到Kubernetes实际用例:企业如何受益于K8s的应用…

代理IP与Socks5代理在多领域的卓越应用

随着数字化时代的到来,网络工程师在跨界电商、爬虫、出海业务、网络安全和游戏等多个领域中扮演着至关重要的角色。在这些领域中,代理IP与Socks5代理技术已经成为网络工程师的得力助手,本文将深入探讨它们在技术世界中的卓越应用。 1. 跨界电…

软件测试工具有什么作用?有哪些好用的测试工具推荐?

软件测试工具是现代软件测试中不可或缺的重要组成部分,指的是一系列在软件开发过程中使用的工具,用于帮助测试人员进行测试活动,提高测试效率,减少测试成本。选择并使用合适的软件测试工具,可提高软件质量和效率。 一…

Java实现添加文字水印、图片水印功能实战

java实现给图片添加水印实现步骤: 获取原图片对象信息(本地图片或网络图片) 添加水印(设置水印颜色、字体、坐标等) 处理输出目标图片 一、java实现给图片添加文字水印 1.获取原图片对象信息 第一步:…