By default NetBSD 0.9C and higher include the BSD 4.4 kernel security
feature that disable access to the /dev/mem
device when in
multi-users mode. But XFree86 servers can take advantage (or require)
linear access to the display memory.
Moset recent accelerated servers require linear memory access, some other can take advantage of it, but do not require it.
There are two ways to allow XFree86 to access linear memory:
The first way is to disable the kernel security feature by adding `option INSECURE' in the kernel configuration file and build a new kernel.
The second way is to install the aperture driver: You can get the aperture driver sources from ftp://ftp.netbsd.org/pub/NetBSD/arch/i386/apNetBSD.shar.
How to activate it is highly dependent from your exact operating system version:
Add the following lines to the end of /etc/rc.local
:
KERNDIR=/usr/X11R6/lib/X11/kernel
if [ -f ${KERNDIR}/ap.o ]; then
modload -o ${KERNDIR}/ap -e ap -p ${KERNDIR}/apinstall ${KERNDIR}/ap.o
fi
Add the following line to /etc/lkm.conf
:
/usr/X11R6/lib/X11/kernel/ap.o - ap /usr/X11R6/lib/X11/kernel/apinstall -
The lkm.conf
format changed in 1.2G.
Add the following line to /etc/lkm.conf
:
/usr/X11R6/lib/X11/kernel/ap.o - ap /usr/X11R6/lib/X11/kernel/apinstall - -AFTERMOUNT
Reboot your system. XFree86 will auto-detect the aperture driver if available.
Warning: if you boot another kernel than /netbsd
or
/bsd
,
loadable kernel modules can crash your system. Always boot in
single user mode when you want to run another kernel.
Caveat: the aperture driver only allows one access at a time (so that the system is in the same security state once X is launched). This means that if you run multiple servers on multiples VT, only the first one will have linear memory access. Use 'option INSECURE' if you need more that one X server at a time.