I upgraded from Xen 4.1.2 to 4.2 and it was highly recommended that I upgrade from the XM toolkit to the XL toolkit. I was afraid of doing this because of the highly delacate nature of VGA-Passthrough. I found out that you can switch back and forth between XM and XL pretty easily. After verifying that XM VGA-Passthrough worked, I created an XL configuration. I had another machine that I used to test non-passthrough XL configurations, so I knew how to migrate the network configuration. I updated my VM config file to the (slightly) new format.
When I tried to start the VM, it wouldn't work. It would not pass through my PCI USB controller card. The error reminded me of a previous issue I had. In December of 2011, when I was trying to get the PCI passthrough of my USB controller card to work, I found a posting about an error in one of the XM Python scripts. I used the error message to find the exact script in question. When you pass through a PCI (not PCI Express) card, you need to pass through every sibling device. This means every PCI card on the same PCI bus needs to be assignable. The code that gave you a friendly error message when a sibling PCI device was not assignable had a bug in the logic. It followed the PCI tree up to the top, but it forgot to exclude the top. The top of the tree was 00:00:00. There was no way I could make that device assignable. Since the script was written in Python, I just commended out the "detection code" and my PCI USB controller started working. Flash forward and I'm having a similar error with the XL stack. Since XL was written in C, there is no way for me to edit a py file to fix the problem. I don't feel confident enough to modify and recompile the program. This is where I stopped for now.
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.