[vfio-users] Boot using second GPU?
Rokas Kupstys
rokups at zoho.com
Fri Aug 5 07:34:47 UTC 2016
I think i got half-way there.. My primary gpu is at 0000:01:00.0 and
secondary on 0000:06:00.0. I used following xorg config:
Section "Device"
Identifier "Device0"
Driver "radeon"
VendorName "AMD Corporation"
BoardName "AMD Secondary"
BusID "PCI:6:0:0"
EndSection
After booting 0000:06:00.0 was still bound to vfio-pci (im yet to sort
it out why as i removed modprobe configs and kernel parameters) and i
ran following script to bind gpu to correct driver:
#!/bin/bash
unbind() {
dev=$1
if [ -e /sys/bus/pci/devices/${dev}/driver ]; then
echo "${dev}" > /sys/bus/pci/devices/${dev}/driver/unbind
while [ -e /sys/bus/pci/devices/${dev}/driver ]; do
sleep 0.1
done
fi
}
bind() {
dev=$1
driver=$2
vendor=$(cat /sys/bus/pci/devices/${dev}/vendor)
device=$(cat /sys/bus/pci/devices/${dev}/device)
echo "${vendor} ${device}" > /sys/bus/pci/drivers/${driver}/new_id
echo "$dev" > /sys/bus/pci/drivers/${driver}/bind
}
unbind "0000:06:00.0"
bind "0000:06:00.0" "radeon"
#unbind "0000:01:00.0"
After restarting sddm.service (display manager) i could switch to
secondary gpu and log in to desktop. All worked. Problem is i can not
unbind 0000:01:00.0 so i could pass-through it. Attempt to unbind driver
resulted in display freezing. Even secondary gpu froze.
Rokas Kupstys
On 2016.08.05 04:55, Nicolas Roy-Renaud wrote:
> That's something you should fix in the BIOS. The boot GPU is special
> because the motherboard has to use it to display things such as POST
> messages and such, so it's already "tainted" by the time the kernel
> gets a hold of it. I had to put my guest GPU on my motherboard's
> second PCI slot because of that (can't change the boot GPU in the BIOS
> settings), which is pretty unconveinient because it blocks access to
> most of my sata ports.
>
> If there's a way to cleanly pass the boot GPU to a VM, I don't know
> about it. I'd be interested to know too, however.
>
> - Nicolas
>
> On 2016-08-04 13:59, Rokas Kupstys wrote:
>> Hey is it possible to make kernel use GPU other than one that is in
>> first slot? If so - how?
>>
>> I have multiple PCIe slots but only first can run at max speed so i
>> would like to use it for VGA passthrough. However if i put powerful GPU
>> into the first slot - linux boots using that GPU. I would like to make
>> kernel use GPU in slot 3. So result should be bios and bootloader
>> running on gpu in slot #1, but kernel should use gpu in slot #3. I tried
>> binding first gpu to vfio-pci driver hoping kernel would use next
>> available gpu. That did not work, i could see one line with systemd
>> version in low-res console (normally its high-res). I also tryed
>> fbcon=map:1234 (not exactly being sure what im doing) but that yielded
>> black screen. Not sure what else i could try.
>>
>
> _______________________________________________
> vfio-users mailing list
> vfio-users at redhat.com
> https://www.redhat.com/mailman/listinfo/vfio-users
>
More information about the vfio-users
mailing list