Shahab Vahedi
2023-Jan-27 15:52 UTC
[Nouveau] Separate TTYs on a Single Dual Head G94 Card
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