[Nouveau] Separate TTYs on a Single Dual Head G94 Card

Shahab Vahedi shahab.vahedi at gmail.com
Fri Jan 27 15:52:58 UTC 2023


I have two monitors attached to my G94 graphic card. One is connected
through the HDMI output and the other through DVI. When the kernel
fully boots to its virtual console (getty), both monitors duplicate
the same output. Please see [0] for the log and setup.

I'd like to assign separate TTYs to these monitors. Say tty1 on the
first monitor and tty2 on the second. Is there anyway to do this?

I've done a little bit of research and to me it looks like if I
could end up with two framebuffers (/dev/fb{0,1}) per output, then
maybe there's a chance:

A) pass fbcon=map:01 as kernel parameter
B) or maybe use an old "con2fb.c" [1] program from [2]

Is there anyway, with or without a second framebuffer, to get
these two monitors show separate outputs? If not, given the
current design of nouveau/kernel/libdrm, is it feasible to add
such feature? If yes, I like to work on it as a hobby project
with the community support hopefully [3].

Just to be clear, I'm looking for a solution that doesn't involve
X/Wayland, or adding a second graphic card.

Cheers,
Shahab

[0]
$ dmesg
  ...
  nouveau 0000:01:00.0: vgaarb: deactivate vga console
  Console: switching to colour dummy device 80x25
  nouveau 0000:01:00.0: NVIDIA G94 (094380a1)
  nouveau 0000:01:00.0: bios: version 62.94.6a.00.12
  nouveau 0000:01:00.0: fb: 512 MiB GDDR3
  nouveau 0000:01:00.0: DRM: VRAM: 512 MiB
  nouveau 0000:01:00.0: DRM: GART: 1048576 MiB
  nouveau 0000:01:00.0: DRM: TMDS table version 2.0
  nouveau 0000:01:00.0: DRM: DCB version 4.0
  nouveau 0000:01:00.0: DRM: DCB outp 00: 04000310 00000028
  nouveau 0000:01:00.0: DRM: DCB outp 01: 02011300 00000028
  nouveau 0000:01:00.0: DRM: DCB outp 02: 01011302 00000030
  nouveau 0000:01:00.0: DRM: DCB outp 03: 02022332 00020010
  nouveau 0000:01:00.0: DRM: DCB conn 00: 00000000
  nouveau 0000:01:00.0: DRM: DCB conn 01: 00001130
  nouveau 0000:01:00.0: DRM: DCB conn 02: 00002261
  nouveau 0000:01:00.0: DRM: MM: using CRYPT for buffer copies
  nouveau 0000:01:00.0: DRM: allocated 1680x1050 fb: 0x70000, bo 0000000033b61dde
  fbcon: nouveaudrmfb (fb0) is primary device
  Console: switching to colour frame buffer device 210x65
  nouveau 0000:01:00.0: [drm] fb0: nouveaudrmfb frame buffer device
  [drm] Initialized nouveau 1.3.1 20120801 for 0000:01:00.0 on minor 0
  ...

$ ls /dev/fb*
  /dev/fb0

$ cat /proc/fb
  0 nouveaudrmfb

[1]
https://dafyddcrosby.com/dual-framebuffers/con2fb.c

[2]
https://dafyddcrosby.com/dual-framebuffers/

[3]
https://nouveau.freedesktop.org/IntroductoryCourse.html


More information about the Nouveau mailing list