README for XFree86 on NetBSD : Kernel Support for X
Previous: Running X
Next: Rebuilding the XFree86 Distribution

7. Kernel Support for X

To make sure X support is enabled under NetBSD, the following line must be in your config file in /sys/arch/i386/conf:

options XSERVER, UCONSOLE

7.1. Console drivers

The server supports the standard NetBSD/i386 console drivers: pccons, pcvt and wscons (in pcvt compatibility mode). They are detected at runtime and no configuration of the server itself is required.

The pccons driver is the most widely tested and is the console driver contained in the NetBSD binary distribution's kernels.

The pcvt console driver is bundled with NetBSD. The pcvt X mode is compatible with the pccons driver X mode. It offers several virtual consoles and international keyboard support. In order to use this driver, change the line:

device pc0 at isa? port "IO_KBD" irq 1

to

device vt0 at isa? port "IO_KBD" irq 1

in your kernel config file, and rebuild and install your kernel.

XFree86 will also run with the wscons console driver in NetBSD 1.4. For now, it uses the pcvt compatibility mode, so be sure to have the lines:

options         WSDISPLAY_COMPAT_PCVT           # emulate some ioctls
options         WSDISPLAY_COMPAT_SYSCONS        # emulate some ioctls
options         WSDISPLAY_COMPAT_USL		# VT handling
options         WSDISPLAY_COMPAT_RAWKBD         # can get raw scancodes
in your kernel configuration file if you're using wscons. Refer to the wscons(4) and wsmouse(4) manual pages for informations on how to configure wscons into the kernel.

7.2. Aperture Driver

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:

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.

7.3. MIT-SHM

NetBSD 1.0 and later supports System V shared memory. If XFree86 detects this support in your kernel, it will support the MIT-SHM extension.

To add support for system V shared memory to your kernel add the lines:

 # System V-like IPC
 options         SYSVMSG
 options         SYSVSEM
 options         SYSVSHM

to your kernel config file.


README for XFree86 on NetBSD : Kernel Support for X
Previous: Running X
Next: Rebuilding the XFree86 Distribution