环境准备
硬件环境
- 鲲鹏服务器
- W6800 显卡,需要确保系统内可以检测到显卡,确保如下命令回显不为空,如果系统内检测不到显卡,需要检查显卡供电,或联系BMC团队人员定位
lspci -vt |grep W6800
软件环境
- 操作系统:openEuler 22.03 (LTS-SP2),系统安装时选择安装系统工具、开发工具。
- 确保网络连通,可以正常访问源,下载工具。
软件准备
工具安装
- 关闭源的SSL验证
sed -i '$a sslverify=false' /etc/yum.conf
- 更新缓存
yum clean all
yum makecache
- 安装工具
yum install -y make dpkg dpkg-devel openssl openssl-devel ncurses ncurses-devel bison flex bc
libdrm build elfutils-libelf-devel patch make gcc
内核适配
下载固件及内核源码
显卡固件:
https://mirrors.edge.kernel.org/pub/linux/kernel/firmware/linux-firmware-20210919.tar.gz
内核源码:
https://gitee.com/openeuler/kernel/repository/archive/5.10.0-60.18.0.zip
更新固件
将固件压缩包上传到服务器自定目录(此处以/home/目录为例)
cd /home/
tar -xvf linux-firmware-20210919.tar.gz
# 更新固件,当前EulerOS上没有固件文件夹,需要手动创建。
mkdir -p /usr/lib/firmware/amdgpu
cp -ar linux-firmware-20210919/amdgpu/* /usr/lib/firmware/amdgpu/
内核源码准备
将下载好的内核源码压缩包上传至服务器的/usr/src/kernels/目录,并解压
cd /usr/src/kernels
# 解压内核源码
unzip 5.10.0-60.18.0.zip
合入内核补丁
注:内核patch在文末,拷贝patch内容到本地,保存为文件(文本格式):0003.enable_AMD6800_for_kernel_5.10.0.patch
如果保存的patch无法合入,可以从附件中获取patch文件。
合入patch命令如下:
cd /usr/src/kernels/kernel-5.10.0-60.18.0
patch -p1 < 0003.enable_AMD6800_for_kernel_5.10.0.patch
修改内核代码。
patch 代码不足以支撑启动显卡的图形化,需要做一些修改,分别执行以下命令
cd /usr/src/kernels/kernel-5.10.0-60.18.0/
sed -i 's/depends\ on\ DRM_AMD_DC\ &&\ X86/depends\ on\ DRM_AMD_DC/g' drivers/gpu/drm/amd/display/Kconfig
sed -i '55i ifdef CONFIG_X86' drivers/gpu/drm/amd/display/dc/dcn30/Makefile
sed -i '66i endif' drivers/gpu/drm/amd/display/dc/dcn30/Makefile
修改.config文件
将附件中的config文件拷贝到内核源码目录,并重命名为 .config
cd /usr/src/kernels/kernel-5.10.0-60.18.0
mv config .config
编译并安装内核
cd /usr/src/kernels/kernel-5.10.0-60.18.0
make -j
make modules_install -j
make install
如果在执行make install指令时出现以下报错:
Error! Bad return status for module build on kernel: 5.10.0 (aarch64)
Consult /var/lib/dkms/kmod-kvdo/8.1.0.316-1/build/make.log for more information.
则需要在执行指令yum remove dkms后,重新执行make install
grub2-mkconfig -o /boot/efi/EFI/openEuler/grub.cfg
grub2-set-default 'openEuler (5.10.0) 22.03 (LTS-SP2)'
重启使新内核生效
reboot
系统重启后,输入以下指令,当回显为5.10.0表明已成功切换至新编译的内核
uname -r