前言
去年在朋友推荐下买了这台灵车,虽然物超所值,但一直由于种种原因,没能把资源充分利用上。
首当其冲的就是没有办法使用 Ubuntu 以及 原装的 UOS 以外的操作系统;倒也不是不能安装,只是会出现无限重启的 Bug(又或者是 Feature)。
为了充分利用资源,计划安装 PVE,但当时一直没有发现可用的 PVE/ARM64 镜像。
但在今天...事情有了转机。
PVE/ARM64 安装镜像:Proxmox Port Mirrors
安装 Ubuntu 无法进入系统的解决方案
系统启动时需要添加以下内核参数:
initcall_blacklist=hisi_ddrc_pmu_module_init
参考资料:龙息百科/华为擎云 W510
安装 PVE 显卡无法驱动的解决方案
更新至 Debian/bookworm 后,显卡无法正常启动,画面会卡死在以下日志附近:
[ 15.009974] input: HDA ATI HDMI HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:00.0/0000:01:00.1/sound/card1/input8
[ 15.024610] [drm] radeon kernel modesetting enabled.
[ 15.030008] radeon 0000:01:00.0: SI support disabled by module param
[ 15.080559] [drm] amdgpu kernel modesetting enabled.
通过 SSH 排查得知显卡固件无法正常加载,见以下日志。
[ 15.531744] si_cp: Failed to load firmware "radeon/OLAND_me.bin"
[ 15.531748] [drm:si_init [radeon]] *ERROR* Failed to load firmware!
[ 15.552948] radeon 0000:01:00.0: Fatal error during GPU init
可知问题与 radeon 驱动中的 si 功能有关。
解决方案
查阅文档可知,radeon 驱动提供了 si_support 的参数,禁用该功能即可:
radeon.si_support=0
持久化保存则需要编辑 /etc/default/grub 中的 GRUB_CMDLINE_LINUX_DEFAULT 并更新 grub。
参考资料:amdgpu-driver-is-not-in-use
注:需要使用文本界面安装,显示不太正常,但 It works!
安装 PVE 无限重启的解决方案
需要修改 bootloader-id 为 Ubuntu 才能正常启动。
# 注意修改为自己所使用的硬盘
grub-install --bootloader-id=ubuntu /dev/nvme0n1
参考资料:龙息百科/华为擎云 W510
参考:一些不影响运行的报错
[ 5.086884] ACPI: IORT: [Firmware Bug]: [map (____ptrval____)] conflicting mapping for input ID 0x7c00
[ 5.096183] ACPI: IORT: [Firmware Bug]: applying workaround.
...
[ 5.131905] ACPI CPPC: Failed to ioremap PCC comm region mem for 0
[ 5.138100] PCCT PCCT: Channel not found for idx: 0
[ 5.142966] ACPI CPPC: Failed to find PCC channel for subspace 0
[ 5.148980] PCCT PCCT: Channel not found for idx: 0
...
[ 11.256294] cma: cma_alloc: reserved: alloc failed, req-size: 1024 pages, ret: -12
[ 11.265617] hisi_sas_v3_hw 0000:74:04.0: 16 hw queues
...
[ 15.232502] hisi_dma 0000:7b:00.0: enabling device (0000 -> 0002)
[ 15.240745] hisi_sec2 0000:76:00.0: enabling device (0000 -> 0002)
[ 15.241114] hisi_sec2 0000:76:00.0: failed to enable IOPF feature! ret = -ENODEV
[ 15.256449] hisi_sec2 0000:76:00.0: fail to alloc uacce (-22)
[ 15.257476] arm_spe_pmu arm,spe-v1: profiling buffer inaccessible. Try passing "kpti=off" on the kernel command line
[ 15.261279] sbsa-gwdt sbsa-gwdt.0: Initialized with 10s timeout @ 100000000 Hz, action=0.
[ 15.266387] Adding 8388604k swap on /dev/mapper/pve-swap. Priority:-2 extents:1 across:8388604k SSFS
[ 15.274919] arm_spe_pmu: probe of arm,spe-v1 failed with error -1
[ 15.307905] cma: cma_alloc: reserved: alloc failed, req-size: 37 pages, ret: -12
[ 15.316331] cma: cma_alloc: reserved: alloc failed, req-size: 37 pages, ret: -12
[ 15.316351] cma: cma_alloc: reserved: alloc failed, req-size: 37 pages, ret: -12
[ 15.316372] cma: cma_alloc: reserved: alloc failed, req-size: 37 pages, ret: -12
[ 15.316388] cma: cma_alloc: reserved: alloc failed, req-size: 37 pages, ret: -12
[ 15.316405] cma: cma_alloc: reserved: alloc failed, req-size: 37 pages, ret: -12
[ 15.316425] cma: cma_alloc: reserved: alloc failed, req-size: 37 pages, ret: -12
[ 15.316441] cma: cma_alloc: reserved: alloc failed, req-size: 37 pages, ret: -12
[ 15.316459] cma: cma_alloc: reserved: alloc failed, req-size: 37 pages, ret: -12
[ 15.321160] hisi_sec2 0000:76:00.0: fail to init sec mem
[ 15.334350] mc: Linux media interface: v0.10
[ 15.341574] hisi_sec2 0000:76:00.0: Failed to probe!
[ 15.342009] hisi_sec2: probe of 0000:76:00.0 failed with error -110