# Forcing kernel to output to a specific screen at boot?

## big_gie

Hi all,

I have a machine with many graphic output. There is an integrated matrox card, two GTX 580 and one GT 210. I use the 210 for driving 2 monitors, and the two GTX for GP-GPU. The matrox is not used.

The thing is, every console output happens on the matrox. So with the monitors plugged to the 210, I can't see the bios nor the kernel booting. Once X start, my xorg.conf points to the right configuration so the 2 monitors work.

I tried disabling the matrox in the bios, but it only disable it, it does not push the output to the monitors...

I can live with bios not showing up and manually plug a monitor into the matrox for bios configuration. But I'd like to be able to see the boot process, choose a kernel in grub, access a terminal, etc.

Any idea? Maybe the kernel's "console=" argument? How to find the right one?

Thanks!

----------

## eccerr0r

If you can't see GRUB output, then the issue lies totally in your BIOS...

Most BIOS has an option to tell which video card to initialize first, make sure you set it to an offboard card.  Though still strange it will still use it though it's disabled in BIOS...

I'm not sure what the kernel would do if you compiled in drivers for fbcon/KMS for a specific board, and hoping it'd ignore the other boards for console usage... hmm...

----------

## big_gie

Thanks for your input.

This is what I though when I received the machine. There should be an options in the bios about which card. But the only option I've found was to disable the integrated one. But disabling it does not make the discrete cards show something.

I might try a bios update...

----------

## jfp

I have no idea if the following helps or not... I have never worked with a system which has more that one graphics card.

This kernel config option "sounds like" it might apply.

```
Map the console to the primary display device (FRAMEBUFFER_CONSOLE_DETECT_PRIMARY)

CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY:

If this option is selected, the framebuffer console will

automatically select the primary display device (if the architecture

supports this feature). Otherwise, the framebuffer console will

always select the first framebuffer driver that is loaded. The latter

is the default behavior.

You can always override the automatic selection of the primary device

by using the fbcon=map: boot option.

If unsure, select n.

Symbol: FRAMEBUFFER_CONSOLE_DETECT_PRIMARY [=n]

Type : boolean

Prompt: Map the console to the primary display device

Defined at drivers/video/console/Kconfig:99

Depends on: HAS_IOMEM [=y] && VT [=y] && FRAMEBUFFER_CONSOLE [=y]

Location:

-> Device Drivers

-> Graphics support

-> Console display driver support

-> Framebuffer Console support (FRAMEBUFFER_CONSOLE [=y])

Selected by: DRM_KMS_HELPER [=n] && HAS_IOMEM [=y] && DRM [=n] && FRAMEBUFFER_CONSOLE [=y]
```

http://www.mjmwired.net/kernel/Documentation/fb/fbcon.txt Which says:

```
3. fbcon=map:<0123>

95   

96           This is an interesting option. It tells which driver gets mapped to

97           which console. The value '0123' is a sequence that gets repeated until

98           the total length is 64 which is the number of consoles available. In

99           the above example, it is expanded to 012301230123... and the mapping

100           will be:

101   

102         tty | 1 2 3 4 5 6 7 8 9 ...

103         fb  | 0 1 2 3 0 1 2 3 0 ...

104   

105         ('cat /proc/fb' should tell you what the fb numbers are)

106   

107      One side effect that may be useful is using a map value that exceeds

108      the number of loaded fb drivers. For example, if only one driver is

109      available, fb0, adding fbcon=map:1 tells fbcon not to take over the

110      console.

111   

112      Later on, when you want to map the console the to the framebuffer

113      device, you can use the con2fbmap utility.

```

----------

## Aquous

I have a set-up with 2 monitors with the one I'd like to be primary set as secondary in the BIOS. I've managed to get Linux to output to the desired screen by adding:

```
fbcon=map:0
```

to the kernel command line. If that doesn't do the trick for you, try a higher number than 0. You should eventually get it right.

----------

