On 16.01.11 11:44, Martin Husemann wrote: > On Sat, Jan 15, 2011 at 10:26:13PM +0100, Christoph Egger wrote: >> >> Hi! >> >> I have a machine with two PCI graphic cards: >> 1x Radeon HD 4200 >> 1x Radeon HD 5600 >> >> Starting X fails with the error message >> "Primary device is not PCI" >> >> Per discussion with macallen@ I implemented >> pci_device_is_boot_vga() in libpciaccess >> which uses a new ioctl(). > > Can you please explain what X is trying to tell you with that message > and how "this is the vga device used as console by the os" is related to > the answer? I wonder if the question more should be "this vga device > has been initialized by the firmware already", and maybe your patch only > happens to work on your machine by luck.
According to pcictl dump the firmware enables the Radeon HD4200 but not the Radeon HD5600. While X is probing the pci devices the driver enables all pci vga devices. That is why checking for the 'firmware enabled' one fails. When a second pci vga device is found the pci probing code is not able to decide which one to use. In /var/log/X.org both Radeon devices are enlisted but none has been selected as the primary one. X then quits with the message "Primary device is not PCI" Per discussion with macallen@ I implemented pci_device_is_boot_vga() and that works. > What happens if you boot your machine with a serial console (assuming for > the sake of argument it would have a serial port)? That machine is a laptop and has no serial console. Christoph