On Tue, Jan 4, 2011 at 5:34 AM, Bryan Henderson <[email protected]> wrote: >>this could probably use the HURD direct to pci backend, and some /dev/mem. > > An excellent suggestion, which saved me a lot of effort. The new x86_pci > libpciaccess backend appears to work perfectly on Linux 2.4 on x86. > > I can't confirm yet that this libpciaccess change is the only thing needed to > make current X.org work on Linux 2.4, as I am still working through other > problems building and configuring a server, but the log shows that the server > is finding the PCI video controller and talking to it to get monitor > information. > > For anyone reading this in archives, here are the details of what I did: In > current (7.6) X.org, built for Linux, libpciaccess uses sysfs to access PCI > device information, via a backend called linux_sysfs. When built for GNU > Hurd, it instead uses x86 in and out instructions, using a backend called > x86_pci. x86_pci is new in 7.6 -- 7.5 can't run on Hurd. Though x86_pci is > used only for Hurd, the code is designed to work additionally on anything that > uses GNU libc, such as Linux. It has conditional compilation to handle the > non-Hurd glibc case, and in that case uses iopl(), outb(), etc. to execute raw > I/O instructions. > > I made a one line change to C code and a one line change to the make file to > make libpciaccess use x86_pci instead of linux_sysfs when built for Linux. > That seems to be all that's needed. > > Note that this works on Linux 2.4 on x86, not Linux 2.4 in general. A > /proc/bus/pci or pciutils libpci approach would presumably work on all Linux > 2.4.
Yeah the problems with the direct to PCI backend is can possibly race against the kernel PCI routines so it might not be safe always. Going via /proc/bus/pci like the old X server code would work in some cases, however you'll quickly run into all the issues on non-x86 or domain using x86 arches that caused the headaches in the first place. Dave. _______________________________________________ [email protected]: X.Org support Archives: http://lists.freedesktop.org/archives/xorg Info: http://lists.freedesktop.org/mailman/listinfo/xorg Your subscription address: [email protected]
