-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
parameter 'x-pci-stub-device-id' expects an int64 value or range #2
Comments
What is your output of |
Output before error: After error: Weird thing about it - the LnkSta Speed is downgraded from 8GT/s to 2.5 GT/s . is this normal?
|
It says Can you show me the output of the following: GPU_PCI_ADDRESS=01:00.0
GPU_IDS=$(optirun lspci -n -s "${GPU_PCI_ADDRESS}" | grep -oP "\w+:\w+" | tail -1)
GPU_VENDOR_ID=$(echo "${GPU_IDS}" | cut -d ":" -f1)
GPU_DEVICE_ID=$(echo "${GPU_IDS}" | cut -d ":" -f2)
GPU_SS_IDS=$(optirun lspci -vnn -d "${GPU_IDS}" | grep "Subsystem:" | grep -oP "\w+:\w+")
GPU_SS_VENDOR_ID=$(echo "${GPU_SS_IDS}" | cut -d ":" -f1)
GPU_SS_DEVICE_ID=$(echo "${GPU_SS_IDS}" | cut -d ":" -f2)
echo "GPU_PCI_ADDRESS: ${GPU_PCI_ADDRESS}"
echo "GPU_IDS: $GPU_IDS"
echo "GPU_VENDOR_ID: $GPU_VENDOR_ID"
echo "GPU_DEVICE_ID: $GPU_DEVICE_ID"
echo "GPU_SS_IDS: $GPU_SS_IDS"
echo "GPU_SS_VENDOR_ID: $GPU_SS_VENDOR_ID"
echo "GPU_SS_DEVICE_ID: $GPU_SS_DEVICE_ID" and also of: GPU_PCI_ADDRESS=01:00.0
if sudo which optirun &> /dev/null && sudo optirun echo>/dev/null ; then
USE_BUMBLEBEE=true
OPTIRUN_PREFIX="optirun "
else
USE_BUMBLEBEE=false
OPTIRUN_PREFIX=""
fi
GPU_IDS=$(sudo ${OPTIRUN_PREFIX}lspci -n -s "${GPU_PCI_ADDRESS}" | grep -oP "\w+:\w+" | tail -1)
GPU_VENDOR_ID=$(echo "${GPU_IDS}" | cut -d ":" -f1)
GPU_DEVICE_ID=$(echo "${GPU_IDS}" | cut -d ":" -f2)
GPU_SS_IDS=$(sudo ${OPTIRUN_PREFIX}lspci -vnn -d "${GPU_IDS}" | grep "Subsystem:" | grep -oP "\w+:\w+")
GPU_SS_VENDOR_ID=$(echo "${GPU_SS_IDS}" | cut -d ":" -f1)
GPU_SS_DEVICE_ID=$(echo "${GPU_SS_IDS}" | cut -d ":" -f2)
echo "GPU_PCI_ADDRESS: ${GPU_PCI_ADDRESS}"
echo "GPU_IDS: $GPU_IDS"
echo "GPU_VENDOR_ID: $GPU_VENDOR_ID"
echo "GPU_DEVICE_ID: $GPU_DEVICE_ID"
echo "GPU_SS_IDS: $GPU_SS_IDS"
echo "GPU_SS_VENDOR_ID: $GPU_SS_VENDOR_ID"
echo "GPU_SS_DEVICE_ID: $GPU_SS_DEVICE_ID"
echo "OPTIRUN_PREFIX: $OPTIRUN_PREFIX"
echo "LSPCI_OUTPUT: $(sudo ${OPTIRUN_PREFIX}lspci -vnn -d ${GPU_IDS})" |
Did you run these before getting the error? Because the output looks perfectly fine. Can you run these after getting the error? |
The problem is that this line is missing:
or at least that is the symptom... Because of that, the script can't extract the subsystem vendor id and the subsystem device id which are both required in this line. I am not sure why the Subsystem line is missing. Maybe there are deeper issues with your system? Have you checked I have only tested the script on a fresh installation of Fedora 29 btw. Maybe you made some changes to the system that my scripts can't compensate for yet. Edit: As a dirty workaround you could try to set the subsystem IDs manually by replacing
with
|
I have just pushed a major update, adding support for Fedora 30 and some other changes. Maybe you can give it another shot now. |
Thanks! I don't think it would be possible for me to test |
Hello, So I ran into this same issue, this happened also on my Lenovo device (P50), what I saw is that if the card is reset or turned on/off or passed through then released, the subsystem line disappears until you reboot the device. One of the solutions is to check if the subsystem even exist, when running lspci, and then saving those values for that computer in a file (you can try matching those ids with the uuid of the device in case there are some hardware changes in the future). Edit: turning off/on the card with bbswitch might bring back that value, but not always. |
What GPU does your laptop have? |
A Quadro M2000M. I found that when passing the dGPU and then releasing it makes the subsystem disappear.
Here is how it looks like post-passing it and releasing it. (Ubuntu here) However with my tests with bbswitch, if I turn off and then on the card with bbswitch, I do get the subsystemids back, but I cannot pass it to the vm again somehow (this also breaks HDMI Audio device as it will stay disabled until I reboot or reset the pcie device, which will also result in a loss of subsystemid). So what kills subsystemid from showing: (from my experience)
As I only have this laptop, I do not know if any other laptop have this issue, so far in this thread 2 Lenovo laptops show the same symptoms. |
Okay in that case I'm not sure. If it was an AMD GPU I would have said that it might be the reset bug in which case the vendor-reset project may have helped. But I suppose it doesn't apply to Nvidia GPUs. This issue is hard for me to debug as I don't have a laptop with a Quadro. But if we can somehow pin-point it further we could jump on the related mailing list and ask the developers themselves. |
After running sudo ./start-vm.sh and exiting once, trying to start the vm again using sudo ./start-vm.sh results in the following error:
qemu-system-x86_64: -device vfio-pci,host=01:00.0,bus=root.1,addr=00.0,x-pci-sub-device-id=0x,x-pci-sub-vendor-id=0x,multifunction=on,romfile=/home/samkg/Documents/MobilePassThrough/vm-files/vbios-roms/vbios.rom: Parameter 'x-pci-sub-device-id' expects an int64 value or range
Doing a sudo reboot seems to fix it, but it is annoying to not be able to start up the vm multiple times in succession.
Is there any known fix for this?
The text was updated successfully, but these errors were encountered: