英伟达Jetson Agx Orin更换开机Logo

首先,你需要已经有一套可烧录的Jetson Agx Orin SDK,现在只是想要替换英伟达的默认开机Logo。

通过搜索发现rootfs目录下是有几张英伟达的图片,但是更换后发现开机logo并没有改变,只能改变进入ubuntu系统时的logo。

通过AI搜索我们知道,需要源码编译UEFI固件。

但是我们发现可烧录的SDK里并没有源码,因此我们需要自己从网上找资源,接下来我来详细记录下操作步骤。

参考Build with docker · NVIDIA/edk2-nvidia Wiki · GitHub

首先我们要有一台宿主机,我这边用的Ubuntu22虚拟机,先安装docker,需要重新登录一下

复制代码
sudo apt install docker.io
sudo usermod -a -G docker ${USER}
# Log out, log back in

接着配置edk2_docker

复制代码
export EDK2_DEV_IMAGE="ghcr.io/tianocore/containers/ubuntu-22-dev:latest"
export EDK2_USER_ARGS="-v \"${HOME}\":\"${HOME}\" -e EDK2_DOCKER_USER_HOME=\"${HOME}\""
export EDK2_BUILD_ROOT="/build"
export EDK2_BUILDROOT_ARGS="-v \"${EDK2_BUILD_ROOT}\":\"${EDK2_BUILD_ROOT}\""
alias edk2_docker="docker run -it --rm -w \"$(pwd)\" ${EDK2_BUILDROOT_ARGS} ${EDK2_USER_ARGS} \"${EDK2_DEV_IMAGE}\""

配置完毕可以试试看有没有成功,输出hello即为成功

复制代码
edk2_docker echo hello

接下来拉取源码

复制代码
sudo mkdir -p /build
sudo chown -R ${USER}:${USER} /build
cd /build

edk2_docker init_edkrepo_conf
edk2_docker edkrepo manifest-repos add nvidia https://github.com/NVIDIA/edk2-edkrepo-manifest.git main nvidia

edk2_docker edkrepo clone <workspace> NVIDIA-Platforms <combo>
/*示例*/
edk2_docker edkrepo clone nvidia-uefi NVIDIA-Platforms main

/*我使用的*/
edk2_docker edkrepo clone nvidia-uefi-r36.4.3 NVIDIA-Platforms r36.4.3

源码拉取后,我们去替换下源码中的logo,里面有3张,全部替换,由于图片有要求 ,最好按下边的方式进行转换,我一开始随意用的图片结果变成黑屏。

复制代码
cd /build/nvidia-uefi-r36.4.3
convert mylogo.png -resize 640x480  -background white -gravity center -extent 640x480  -strip BMP3:nvidiagray480.bmp
convert mylogo.png -resize 1280x720 -background white -gravity center -extent 1280x720 -strip BMP3:nvidiagray720.bmp
convert mylogo.png -resize 1920x1080 -background white -gravity center -extent 1920x1080 -strip BMP3:nvidiagray1080.bmp
cp nvidiagray480.bmp  edk2-nvidia/Silicon/NVIDIA/Assets/
cp nvidiagray720.bmp  edk2-nvidia/Silicon/NVIDIA/Assets/
cp nvidiagray1080.bmp edk2-nvidia/Silicon/NVIDIA/Assets/

logo替换后就是源码编译了,这个过程有可能会出现一些报错,可以看后边的解决方案

复制代码
edk2_docker edk2-nvidia/Platform/NVIDIA/Jetson/build.sh

正常情况下编译完成后,会在/build/nvidia-uefi-r36.4.3/images下生成uefi_Jetson_RELEASE.bin,用它去替换SDK里bootloader下的uefi_jetson.bin即可,然后就可以进行烧录了。

报错汇总(个人经历,仅供参考)

1.源码拉取报错

在拉取代码时由于github网络问题,总是拉取不成功,强制GIT使用HTTP/1.1后成功

复制代码
git config --global http.version HTTP/1.1
edk2_docker git config --global http.version HTTP/1.1

2.edk2_docker edk2-nvidia/Platform/NVIDIA/Jetson/build.sh提示找不到,但实际是有的

复制代码
改用edk2_docker bash -lc "cd $(pwd) && bash edk2-nvidia/Platform/NVIDIA/Jetson/build.sh"

3.报edk2-nvidia/Silicon/NVIDIA/scripts/prepare_stuart.sh: line 29: venv/bin/activate: No such file or directory

复制代码
查看路径确实不对,使用软链接调整

ln -sfn local/bin venv/bin
edk2_docker bash -lc "cd $(pwd) && bash edk2-nvidia/Platform/NVIDIA/Jetson/build.sh"

4.报错ModuleNotFoundError: No module named 'kconfiglib'

复制代码
需要补这个包,最稳妥的是装到workspace 自己的 venv 里

edk2_docker bash -lc '
cd '"$(pwd)"' &&
if [ -f venv/bin/activate ]; then
  . venv/bin/activate
else
  . venv/local/bin/activate
fi &&
python -m pip install --upgrade pip &&
python -m pip install kconfiglib==14.1.0 &&
python -c "import kconfiglib; print(kconfiglib.__file__)" &&
bash edk2-nvidia/Platform/NVIDIA/Jetson/build.sh
'

5.还有报错,查了下原因

复制代码
使用下述指令

edk2_docker bash -lc '
cd '"$(pwd)"' &&
unset PYTHONNOUSERSITE &&
export PYTHONPATH="$HOME/.local/lib/python3.10/site-packages${PYTHONPATH:+:$PYTHONPATH}" &&
/opt/venv/bin/python3 -c "import sys, kconfiglib; print(sys.executable); print(kconfiglib.__file__)" &&
bash edk2-nvidia/Platform/NVIDIA/Jetson/build.sh
'

至此没有再报错,生成了UEFI固件。

相关推荐
代码AC不AC2 小时前
【Linux】线程池
linux·线程池
FREEDOM_X3 小时前
Linux 多线程编程——总结
java·linux·运维·ubuntu
筱羽_筱羽5 小时前
跟着“Ubuntu18.04/20.04编译Linux5.10.76+Xenomai-3.2.1+IgH”教程遇到的问题
linux·运维·ubuntu
ShineWinsu6 小时前
对于Linux:基于UDP实现简单聊天室功能
linux·c++·面试·udp·笔试·进程·简单聊天室
zoipuus6 小时前
上传repo仓库到自己的gitlab
linux·gitlab·shell·全志·tina
IT大白鼠6 小时前
CVE-2026-7531 Azure Linux MariaDB PQC 内存破坏漏洞详解
linux·mariadb·azure·cve-2026-7531
无忧.芙桃6 小时前
线程同步与线程互斥(上)
linux·运维·操作系统·运维开发
HAPPY酷7 小时前
【ROS2】16G 内存笔记本跑 ROS2 仿真?VMware 虚拟机“保姆级”配置指南 (R9 7940HX + RTX 4060)
java·linux·ide·windows·pycharm
donoot16 小时前
Linux系统下图书馆级电子书全自动标准化分类整理完整实施方案
大数据·linux·运维·电子书管理
Felix-lxd17 小时前
Ubuntu 22.04 配置 Nginx
linux·nginx·ubuntu