pve远程连接 spcie_proxmox折腾 篇一:解决j3455直通iommu分组问题,PVE内核编译教程...
更新:
2020.02.22更新內(nèi)核pve-kernel-5.3.18-2,常規(guī)更新,今后不會一有新版本就更新了,估計(jì)大版本更新再編譯新內(nèi)核了,每一次都挺折騰的,而且編譯出的內(nèi)核有bug恢復(fù)起來挺麻煩鏈接?提取碼: 6cfx 12.13更新內(nèi)核pve-kernel-5.3.13.1,常規(guī)更新。鏈接?提取碼: wc6n 12月6日更新內(nèi)核pve-kernel-5.3.10.1 基于5.3版本內(nèi)核的promox-ve6.1-2已經(jīng)release了,5.3版本內(nèi)核可以擺脫5.0版本內(nèi)核獨(dú)立使用了。鏈接?提取碼: 7ngi 11月14日更新 內(nèi)核5.3.7-1,一不小心跟著官方源碼跑到比正式版前面很多了,而5.0版本的Ubuntu源碼被我刪了,懶得再下,所以干脆編譯了這個版本,大家可以先行嘗試,或者等待官方更新到5.3內(nèi)核版本后再使用鏈接?提取碼: nn91 9月4日更新pve內(nèi)核 5.0.21-2鏈接提取碼: zcyv
本文教程內(nèi)容是解決華擎J3455主板在PVE下開啟IOMMU不能分組的問題,解決辦法是編譯PVE內(nèi)核,打上特制的ACS_override補(bǔ)丁并安裝。
提醒:安裝內(nèi)核有宿主系統(tǒng)崩潰的風(fēng)險(xiǎn),請務(wù)必先進(jìn)行備份。
詳情我將寫一篇LVM下安裝的PVE利用snapshot創(chuàng)建快照實(shí)現(xiàn)宿主機(jī)備份與還原的帖子教程。
首先是常規(guī)的pve操作內(nèi)容,請用root用戶,包括編譯部分也要用root用戶編譯,老外的建議,不清楚為什么。
1.開啟IOMMU分組功能。
編輯 /etc/default/grub,將以下部分修改如下:
GRUB_CMDLINE_LINUX_DEFAULT="quiet?intel_iommu=on pcie_acs_override=downstream"
amd的cpu請將intel_iommu=on 改為 amd_iommu=on
然后是修改/etc/modules文件, 添加如下內(nèi)容:
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
然后執(zhí)行
update-initramfs -u -k all
再執(zhí)行
dmesg | grep -e DMAR -e IOMMU -e AMD-Vi
查看是否開啟了IOMMU,如果有 IOMMU, Directed I/O or Interrupt Remapping is enabled之類的字樣那么說明IOMMU開啟了,這部分網(wǎng)上教程很多,我就不贅述了。
2.編譯內(nèi)核
當(dāng)然由于編譯過程較漫長,如有必要我可以提供pve6.0的5.0.18-1版本的已修改內(nèi)核。廢話不多說,開始進(jìn)入教程:
1).首先需要編譯環(huán)境,建議宿主機(jī)就老老實(shí)實(shí)宿主機(jī),不要在pve系統(tǒng)里直接編譯,用其他機(jī)器或者開個虛擬機(jī)。Ubuntu和Debian都行,我用的是Debian buster。至少需要100G的空間,用以存放編譯PVE內(nèi)核的源碼和編譯過程文件。
2) .安裝編譯所需軟件,由于摸索過程中安裝的軟件太多了,下面列的不一定全,請嘗試的小伙伴如果在編譯過程報(bào)錯,請回帖反饋給我,我來查查看是什么軟件忘記寫上來了
apt install git nano screen patch fakeroot build-essential devscripts libncurses5 libncurses5-dev libssl-dev bc flex bison libelf-dev libaudit-dev libgtk2.0-dev libperl-dev libperl-dev asciidoc xmlto gnupg gnupg2 rsync lintian debhelper libdw-dev libnuma-dev libiberty-dev libslang2-dev debhelper git-core lintian build-essential automake autoconf libtool sphinx-common dh-python
3) .獲取pve-kernel源碼,因?yàn)槲冶救司W(wǎng)絡(luò)不好,我花了幾天時(shí)間從pve的git站拖到了國內(nèi)的gitee,如果同志們的網(wǎng)絡(luò)好的話,可用嘗試用pve自己的源碼git
git clone git://git.proxmox.com/git/pve-kernel.git
或者用下面的我轉(zhuǎn)到gitee的(國內(nèi)的代碼托管網(wǎng)站,不過可能有bug,我自己pull內(nèi)核源碼有時(shí)候拉不下來)
git clone git://gitee.com/hahach/pve-kernel.git
以上兩個2選1 clone即可
4).這一步最關(guān)鍵 進(jìn)入pve-kernel目錄,進(jìn)入patches/kernel目錄,修改“0003-pci-Enable-overrides-for-missing-ACS-capabilities-4..patch”這個patch文件,未來其他版本的可能不是這個名字,但是一定會包含ACS 這個關(guān)鍵詞
將以下部分進(jìn)行修改
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -194,6 +194,106 @@ static int __init pci_apply_final_quirks(void)
改為
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -194,6 +194,105 @@ static int __init pci_apply_final_quirks(void)
如果熟悉patch格式的應(yīng)該看得明白,我可以解釋下,這里是把106改為105了,因?yàn)橄旅婢唧w的補(bǔ)丁內(nèi)容會刪減一行
接下來是關(guān)鍵的部分,作如下修改:
+ if (!pci_is_pcie(dev) ||
+ pci_find_ext_capability(dev, PCI_EXT_CAP_ID_ACS))
改為
+ if (!pci_is_pcie(dev))
注意別漏了加上的小括號
5).可以開始編譯了
cd pev-kernel
make
這里需要下載linux內(nèi)核源碼,大約2g,需要很長時(shí)間,請耐心等待,另外編譯過程很智能,不需要make命令加線程,過程中會自動多線程。我j3455主板,debian虛擬機(jī)給了3核,下載加編譯用了6小時(shí),僅供參考。
6).如果順利那么會在pve-kernel目錄得到4個deb文件
root@debian:~/pve-kernel# ll *.deb
-rw-r--r-- 1 root root 1286948 8月 2 22:31 linux-tools-5.0_5.0.18-1_amd64.deb
-rw-r--r-- 1 root root 4907164 8月 2 22:31 linux-tools-5.0-dbgsym_5.0.18-1_amd64.deb
-rw-r--r-- 1 root root 9576432 8月 2 22:31 pve-headers-5.0.18-1-pve_5.0.18-1_amd64.deb
-rw-r--r-- 1 root root 54006332 8月 2 22:34 pve-kernel-5.0.18-1-pve_5.0.18-1_amd64.deb
將以上4個deb文件一同傳到pve的root目錄下。
7).以防萬一,做好系統(tǒng)備份或者快照,zfs文件系統(tǒng)我不會,請自行查詢資料,我會寫一篇lvm文件系統(tǒng)下的pve系統(tǒng)備份攻略,詳見我的另外一個帖子,因?yàn)榈燃壍蜎]法發(fā)帖子鏈接,湊合看吧:PVE在LVM文件系統(tǒng)下利用snapshot進(jìn)行備份與還原
8).弄完系統(tǒng)備份后可以開始安裝型內(nèi)核了。
運(yùn)行
dpkg -i *.deb
安裝內(nèi)核,等待安裝結(jié)束,重啟即可。
重啟后即可發(fā)現(xiàn)如下圖,IOMMU分組全都打斷了,每一個硬件一個分組,不過直通的時(shí)候有個問題需要注意
每一個PCIE id 只能一同直通,不能分別直通。例如我的82576網(wǎng)卡是 04:00.01和04:00.02,都是04:00,只能一起直通
12.13更新內(nèi)核pve-kernel-5.3.13.1,常規(guī)更新。鏈接,提取碼: wc6n
12月6日更新內(nèi)核pve-kernel-5.3.10.1 基于5.3版本內(nèi)核的promox-ve6.1-2已經(jīng)release了,5.3版本內(nèi)核可以擺脫5.0版本內(nèi)核獨(dú)立使用了。鏈接,提取碼: 7ngi
11月14日更新 內(nèi)核5.3.7-1,一不小心跟著官方源碼跑到比正式版前面很多了,而5.0版本的Ubuntu源碼被我刪了,懶得再下,所以干脆編譯了這個版本,大家可以先行嘗試,或者等待官方更新到5.3內(nèi)核版本后再使用鏈接, 提取碼: nn91
9月4日更新pve內(nèi)核 5.0.21-2鏈接,提取碼: zcyv
總結(jié)
以上是生活随笔為你收集整理的pve远程连接 spcie_proxmox折腾 篇一:解决j3455直通iommu分组问题,PVE内核编译教程...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 去重之后统计条数_BOPET:12的普通
- 下一篇: alpinestars与丹尼斯_骑行靴|