Làm cách nào để tôi kích hoạt thiết bị KVM thông qua Linux?


13

Tôi có bo mạch chủ MSI-GD65 Gaming và Intel i7 4790. VT-D được bật trong phần Tính năng CPU của bios.

Tôi đang chạy Ubuntu 14.04.1 LTS và khi tôi thử và tháo thiết bị, tôi nhận được thông báo sau:

# virsh gật đầu-tách pci_0000_00_1f_2

lỗi: Không thể tách thiết bị pci_0000_00_1f_2 Lỗi: Hoạt động không được hỗ trợ: cả việc gán thiết bị VFIO và KVM hiện không được hỗ trợ trên hệ thống này

Dmesg bao gồm một số thông tin về IOMMU nhưng tôi không thể biết điều này có nghĩa là VT-D đã được bật chưa

$ dmesg | grep -i iommu

[0.027450] dmar: IOMMU 0: fed90000 reg_base_addr ver 1: 0 nắp c0000020660462 ECAP f0101a
[0,027455] dmar: IOMMU 1: reg_base_addr fed91000 ver 1: 0 nắp d2008020660462 ECAP f010da
[0,027521] IOAPIC id 8 dưới cơ sở DRHD 0xfed91000 IOMMU 1

Ai đó có thể tư vấn những gì tôi cần làm để kích hoạt VT-D trên hệ thống này và chuyển qua các thiết bị PCI cho khách KVM không?


Bạn đã thực hiện một động cơ đầy đủ sau khi kích hoạt VT và VT-d?
dyasny

Câu trả lời:


11

Giải pháp cho vấn đề này là kích hoạt IOMMU trong các tham số khởi động GRUB của bạn.

Bạn có thể làm điều này bằng cách đặt các mục sau trong / etc / default / grub

GRUB_CMDLINE_LINUX_DEFAULT = "intel_iommu = bật"

Nếu bạn đang sử dụng bộ xử lý AMD, bạn nên thêm amd_iommu=onvào các tham số khởi động thay thế

GRUB_CMDLINE_LINUX_DEFAULT = "giật gân yên tĩnh amd_iommu = on"

Sau đó chạy update-grubvà khởi động lại

Liên kết này đã giúp tôi khá nhiều: https://www.centos.org/forums/viewtopic.php?f=47&t=48115

Xem thêm: https://pve.proxmox.com/wiki/Pci_passthrough

Điều này đã lảng tránh tôi phần nào vì tôi tin rằng iommu là một giải pháp thay thế AMD cho VT-D.


Và nếu điều này không hoạt động, CPU của bạn có thể không hỗ trợ VT-D hoặc AMD-VI (câu hỏi làm cho rõ ràng - tôi sẽ đăng ở đây cho người khác)
ndemou

5

Thêm vào câu trả lời của Anonymouslemming: Dường như có một lỗi trong Ubuntu (18.04 đối với tôi), khiến cài đặt cho GRUB_CMDLINE_LINUX_DEFAULT trong / etc / default / grub bị bỏ qua.

Nó có thể được sửa bằng cách nhận xét GRUB_CMDLINE_LINUX_DEFAULT trong /etc/default/grub.d/50-curtin-sinstall.cfg

https://bugs.launchpad.net/ubfox/+source/grub2/+orms/1569567


1

Bạn dường như có các yêu cầu phần cứng vì một mô-đun khác đang sử dụng nó (IOAPIC) Trong trường hợp này, bạn chỉ cần thiết lập phần mềm kết thúc.

Có vẻ như bạn cần đảm bảo rằng bạn đã cài đặt tất cả các điều kiện tiên quyết để hỗ trợ cho việc tháo rời thiết bị phù hợp. Có vẻ như bạn chưa cài đặt chúng hoặc chúng không được thiết lập.

Bạn cần cài đặt và khởi tạo các thư viện và mô-đun hạt nhân thích hợp trước khi bạn cố gắng sử dụng chúng trong trường hợp như thế này. Đây sẽ là các tiện ích hệ thống "máy chủ" khác nhau và các mô-đun hạt nhân cho thiết lập KVM của bạn.

Bạn cần đọc phần hướng dẫn về cách thiết lập phù hợp giải pháp KVM phù hợp của bạn và làm theo các bước đó trước khi bạn cố gắng chạy các tiện ích. Họ không chỉ đơn giản là thiết lập trong lần khởi chạy đầu tiên chỉ vì các gói cần thiết đã được cài đặt.

Xin lưu ý rằng, nếu thiết bị được đề cập được nhúng trong bo mạch chủ, về mặt kỹ thuật, nó có thể không phải là thiết bị PCI, mà là thiết bị được gắn PCI. Các thiết bị này thực sự được gắn bằng các phương tiện khác, nhưng được ánh xạ vào không gian BIOS PCI bằng BIOS của chúng. Chúng có thể hoặc không thể tương thích với thiết bị tách rời, tùy thuộc vào các khía cạnh khác nhau về cách chúng được gắn vào hệ thống.

Ngoài ra, bạn không thể tách rời các thiết bị phụ mà không tách rời các thiết bị mẹ, nếu trình điều khiển của chúng phụ thuộc lẫn nhau. Bạn chỉ có thể tách rời các thiết bị có độ chắc chắn tuyệt đối mà thiết bị mẹ của chúng là bộ điều khiển PCI, Cầu PCI hoặc một số bộ điều khiển Bus hoặc cầu được hỗ trợ khác


Cảm ơn vì thông tin. Tôi đoán câu hỏi của tôi nên bao gồm "Tôi có thể tìm tài liệu để thực hiện việc này trong KVM ở đâu" để cụ thể hơn.
Ẩn danh

0

Tôi đang ở trên centos7

Tôi đã gặp lỗi này dẫn tôi đến đây nhưng vấn đề của tôi không nằm ở việc cập nhật (trong trường hợp của tôi) vim /etc/sysconfig/grubvà thêm intel_iommu=onvào cuối dòng choGRUB_CMDLINE_LINUX

Tôi đã phải chạy lệnh này

grub2-mkconfig -o /boot/grub2/grub.cfg

sau đó khởi động lại

lưu ý: Tuy nhiên tôi cũng đã chạy grub2-mkconfig với khởi động lại trước lệnh trên và điều đó không làm gì cho tôi từ những gì tôi thấy.

tham khảo: https://ormszilla.redhat.com/show_orms.cgi?id=1269446

Nhận xét 11 và 12

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.