README for XFree86 on FreeBSD : Rebuilding Kernels for X
Previous: Running X
Next: Building X Clients

## 6. Rebuilding Kernels for X

The GENERIC FreeBSD kernels support XFree86 without any modifications required. You do not need to make any changes to the GENERIC kernel or any kernel configuration which is a superset.

For a general description of BSD kernel configuration get smm.02.config.ps.Z. It is a ready-to-print postscript copy of the kernel configuration chapter from the system maintainers manual.

If you do decide to reduce your kernel configuration file, do not remove the line below (in `/sys/arch/i386/conf`). It is required for X support:

> `

>      options		UCONSOLE		#X Console support

> `

The generic FreeBSD kernels are configured by default with the syscons driver. To configure your kernel similarly it should have a line like this in `/usr/src/sys/i386/conf/GENERIC`:

> `

>      device		sc0	at isa? port "IO_KBD" tty irq 1 vector scintr

> `

The number of virtual consoles can be set using the MAXCONS option:

> `

>      options		"MAXCONS=4"		#4 virtual consoles

> `

Otherwise, the default without a line like this is 16. You must have more VTs than gettys as described in the end of section 3, and 4 is a reasonable minimum.

The server supports two console drivers: syscons and pcvt. The syscons driver is the default in FreeBSD 1.1.5 and higher. They are detected at runtime and no configuration of the server itself is required.

If you intend to use pcvt as the console driver, be sure to include the following option in your kernel configuration file.

> `

>      options		XSERVER			#Xserver

> `

The number of virtual consoles in pcvt can be set using the following option:

> `

>      options		"PCVT_NSCREENS=10"	#10 virtual consoles

> `

The bus mouse driver and the PS/2 mouse driver may not be included, or may be included but disabled in your kernel. If you intend to use these mice, verify the following lines in the kernel configuration file:

> `

>      device		mse0	at isa? port 0x23c tty irq 5 vector mseintr
>      device		psm0	at isa? port "IO_KBD" conflicts tty irq 12 vector psmintr

> `

The `mse0` device is for the bus mouse and the `psm` device is for the PS/2 mouse. Your bus mouse interface card may allow you to change IRQ and the port address. Please refer to the manual of the bus mouse and the manual page for `mse(4)` for details. There is no provision to change IRQ and the port address of the PS/2 mouse.

The XFree86 servers include support for the MIT-SHM extension. The GENERIC kernel does not support this, so if you want to make use of this, you will need a kernel configured with SYSV shared memory support. To do this, add the following line to your kernel config file:

> `

>      options		SYSVSHM			# System V shared memory
>      options		SYSVSEM			# System V semaphores
>      options		SYSVMSG			# System V message queues

> `

If you are using a SoundBlaster 16 on IRQ 2 (9), then you need a patch for sb16_dsp.c. Otherwise a kernel configured with the SoundBlaster driver will claim interrupt 9 doesn't exist and X server will lock up.

S3 cards and serial port COM 4 cannot be installed together on a system because the I/O port addresses overlap.

README for XFree86 on FreeBSD : Rebuilding Kernels for X
Previous: Running X
Next: Building X Clients