编译pve内核
① PVE内核在ARM64下安装及编译
以下命令在linux root下进行
1.apt-getinstall gnupg2 wget –y
2.加入Proxmox 软件包源
wget -qO -http://download.proxmox.com/debian/proxmox-ve-release-6.x.gpg | sudo apt-key add echo "deb http://download.proxmox.com/debian/pve buster pve-no-subscription " | sudotee /etc/apt/sources.list.d/buster-pvetest.list
3.apt-getupdate
4.安装编译环境
apt-get install build-essentialasciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch unzipzlib1g-dev libc6-dev subversion flex uglifyjs p7zip p7zip-full msmtp libssl-devtexinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automakelibtool autopoint device-tree-compiler screen
apt-get install python3-dev python3-sphinx lintian bc bison libdw-devlibiberty-dev libnuma-dev libslang2-dev lz4 rsync libpve-common-perl dh-make docbook5-xml
若是出现libncurses5-dev安装依赖错误,用aptitude安装即可解决
5. Git pve内核源码
git clonegit://git.proxmox.com/git/pve-kernel.git
6. 修改Makefile文件
23行内容 KERNEL_ARCH=x86和之后 修改成如下图所示:
7. 在pve-kernel/debian/rules.d文件目录下生成文件arm64.mk,内容如下
KERNEL_BUILD_ARCH = arm64
KERNEL_HEADER_ARCH = $(KERNEL_BUILD_ARCH)
KERNEL_BUILD_IMAGE = Image
KERNEL_IMAGE_PATH =arch/$(KERNEL_BUILD_ARCH)/boot/${KERNEL_BUILD_IMAGE}
KERNEL_INSTALL_FILE = vmlinuz
8. 修改pve-kernel/debian/rules文件,将rysnc中的tools修改成source,修改结果如下图所示
9. Make all
10.最终编译成功后会生成四个文件包,使用dpkg -i命令安装四个deb包,即可完成pve内核的安装。
linux-tools-{KERNEL_VER}_arm64.deb
linux-tools-5.0-dbgsym_{KERNEL_VER}_arm64.deb
pve-headers-{KERNEL_VER}_arm64.deb
pve-kernel-{KERNEL_VER}_arm64.deb
② 普化群晖将其改造成正常磁盘布局及编译源码打开kernel message
普化群晖将其改造成正常磁盘布局及编译源码打开kernel message的方法主要包括以下步骤:
调整磁盘布局:
- 扩展启动分区:将原有的32MB启动分区扩展为1GB,以便容纳更多的启动信息和日志。
- 调整镜像存储空间:将镜像空间从50GB减小至20GB,以优化存储空间的使用。
- 磁盘分区调整:识别和重建可用存储空间,确保磁盘布局符合常规标准。
编译源码与内核调整:
- 准备编译环境:确保能在console上直接观察群晖的输出,便于调试。利用SSH等远程访问工具接入不同的终端。
- 编译内核:根据需要重新编译内核,以包含正确的设备支持。这可能涉及修改内核配置文件,选择适当的驱动和模块。
- 确保GRUB兼容性:在编译内核后,确保GRUB的device map与镜像文件兼容,以避免启动问题。
打开kernel message:
- 配置内核日志:在内核编译过程中,确保启用了内核日志功能。这通常涉及在内核配置文件中启用相关的日志选项。
- 查看日志:在系统启动后,可以通过console或日志文件查看内核输出的消息,以便进行调试和问题排查。
使用PVE环境优化镜像:
- 创建或编辑镜像:在PVE环境中创建或编辑群晖镜像,将镜像存储在本地文件系统以提高灵活性。
- 管理RAID:使用mdadm等工具管理RAID,确保存储系统的可靠性和性能。
解决启动问题:
- 绕过非原生分区检查:在改造过程中,可能需要绕过群晖的非原生分区检查,以避免启动失败。
- 重建存储区:如果遇到存储区重建问题,需要根据具体情况进行修复或重建。
多系统集成:
- 探索其他操作系统集成:考虑将其他操作系统如Deepin、Windows Server等集成到群晖环境中,使用GRUB2的Windows版或NTBOOT等工具实现多系统引导。
请注意,以上步骤涉及的技术操作较为复杂,且可能因具体环境和需求而有所不同。在实际操作中,建议详细记录每一步的操作和配置,以便在出现问题时进行排查和修复。同时,确保在进行任何修改之前备份重要数据,以防数据丢失。
③ 【教程】PVE下uhd630核显直通HDMI输出 以NUC9为例
在PVE下为NUC9的uhd630核显实现直通HDMI输出的教程如下:
准备阶段:
- 更改源:删除或注释掉原有的源,替换为推荐的源。
- 更新系统:确保PVE系统是最新的,以便兼容后续操作。
启用IOMMU:
- 修改GRUB配置:编辑/etc/default/grub文件,启用IOMMU支持,并更新GRUB配置以使其生效。
屏蔽驱动:
- 编辑配置文件:添加内容以加载相应的内核模块,屏蔽不必要的驱动。
配置VFIO:
- 识别设备ID:找到需要直通的uhd630核显的设备ID。
- 添加直通组:将找到的设备ID添加到VFIO直通组中。
防止显卡错误:
- 添加配置选项:在PVE或虚拟机配置中添加特定选项,以防止Windows 10中出现显卡代码43错误,以及防止VM死机。
信任设备:
- 允许不安全中断:更新配置以信任直通设备,并允许其产生的不安全中断。
更新内核并重启:
- 重启PVE:完成上述配置后,更新内核并重启PVE系统。
虚拟机配置:
- 修改虚拟机设置:在虚拟机的配置中,注意args参数和hostpci0的设置。
- 下载ROM文件:根据需要下载并配置ROM文件。
- 设置VGA为none:由于已经设置了legacyigd=1,因此VGA设置必须为none。
解决声卡问题:
- 手动添加声卡:虽然可能找不到声卡,但可以直接手动在hostpci0下面添加声卡设备。
注意: 直通雷电口目前无法使用,这是一个遗留问题。 确保按照步骤正确操作,以避免配置错误导致的系统不稳定或设备无法正常工作。