Three screens, two cards (onboard+Nvidia). Last one stays black but with a cursor.

I have two computer screens and one TV.
My Nvidia card has two ports (HDMI + VGA), connected to my computer screens. My motherboard has a HDMI port connected to my TV.
I want to use the TV as a third screen to watch videos from my computer (works on Linux)

First I did this and it worked for the two computer screens, but not the TV :
Code:
Section "Device"
        Identifier "Card0"
        Driver  "nvidia"
        BusID "PCI:1:0:0"
EndSection
Then I added a section and changed the BusID line to match the Xorg chapter of the handbook, but that was worse (didn't work on my computer screens)
Code:
Section "Device"
        Identifier "Card0"
        Driver  "nvidia"
        BusID "pci0:1:0:0"
EndSection
Section "Device"
       Identifier "Card1"
       Driver  "intel"
       BusID "pci0:0:2:0"
EndSection
(commenting the second section did nothing so I assume it's the BusID format)
Now I have two sections but the first format : both computer screens work together, but the TV is not shown in the Displays widget. Its screen is black, but with a cursor, like when you first do startx to verify Xorg works. So it seems it is detected and connected to Xorg, but not in the graphical tool to move screens around, etc (I'm on Mate, but also have XFCE)
Here are the two cards :
Code:
vgapci1@pci0:0:2:0:     class=0x030000 rev=0x09 hdr=0x00 vendor=0x8086 device=0x0162 subvendor=0x8086 subdevice=0x2032
    vendor     = 'Intel Corporation'
    device     = 'IvyBridge GT2 [HD Graphics 4000]'
    class      = display
--
vgapci0@pci0:1:0:0:     class=0x030000 rev=0xa1 hdr=0x00 vendor=0x10de device=0x0fc6 subvendor=0x1462 subdevice=0x8a96
    vendor     = 'NVIDIA Corporation'
    device     = 'GK107 [GeForce GTX 650]'
    class      = display
Any ideas? :)
 
Here it is : Xorg.0.log

Is it bad? / Well, my motherboard is no spring chicken either :p
Base Board Information
Manufacturer: Intel Corporation
Product Name: DH77EB
Version: AAG39073-304
Serial Number: XXXX
Asset Tag:
Features:
Board is a hosting board
Board is replaceable
Location In Chassis: Not Specified
Chassis Handle: 0x0003
Type: Motherboard
Contained Object Handles: 0
EDIT:
Well , looking at it more closely again I see a few things that don't seem good :

No device specified for screen "Default Screen Section"
I guess I may need to create a Xorg.conf file or run xorg -configure?
(!!) More than one possible primary device found
I saw that one before (that is why I did card0 and card1, to indicate the primary one), I guess solving the one above would solve this one as well?
[ 4545.973] (II) LoadModule: "intel"
[ 4545.973] (WW) Warning, couldn't open module intel
[ 4545.973] (EE) Failed to load module "intel" (module does not exist, 0)
Should I install the old one, or use a newer one?
(WW) VGA arbiter: cannot open kernel arbiter, no multi-card support
Do I need to recompile the kernel to enable this? The handbook chapter on Xorg didn't mention anything like that as far as I remember.
 
Should I install the old one, or use a newer one?
You used in your 20-nvidia.conf:
Code:
Section "Device"
	Identifier "Card1"
	Driver	"intel"
	BusID "PCI:0:0:2"
EndSection
Try instead:
Code:
Section "Device"
	Identifier "Card1"
#	Driver	"intel"
	BusID "PCI:0:0:2"
EndSection
The Xorg modesetting(4) will most likely be loaded automatically, having the same effect as:
Code:
Section "Device"
	Identifier "Card1"
	Driver	"modesetting"
	BusID "PCI:0:0:2"
EndSection

You probably could even remove this whole "Device" Section and the modesetting will also be loaded automatically.
If any troubles post the Xorg log file.

To work, this presumes you have also specified kld_list="i915kms ..." in your rc.conf, where ... is substituted with an appropriate entry for your Nvidia GeForce GTX 650.

___
(that is why I did card0 and card1, to indicate the primary one)
Card0 and Card1 are (just) unique identifiers; you used the BusID correctly to specify which Xorg driver should be used for which specific graphics card; unfortunately, as you've noticed, the specified intel Xorg driver couldn't be loaded because it's not installed. The Xorg "default" modesetting driver should function as the driver for your intel [HD Graphics 4000].
 
Thank you for the detailed answer, unfortunately it didn't work, it's still the same : black screen on the TV, with an un-blinking cursor in the top left.

I see two things that may be related in my Xorg.0.log :
[ 15.537] (!!) More than one possible primary device found
[ 15.537] (--) PCI: (0@0:2:0) 8086:0162:8086:2032 rev 9, Mem @ 0xf7400000/4194304, 0xd0000000/268435456, I/O @ 0x0000f000/64, BIOS @ 0x????????/65536
[ 15.537] (--) PCI: (1@0:0:0) 10de:0fc6:1462:8a96 rev 161, Mem @ 0xf6000000/16777216, 0xe0000000/268435456, 0xf0000000/33554432, I/O @ 0x0000e000/128, BIOS @ 0x????????/65536
That seems to be the only mention of the Intel onboard card in the file.
[ 15.579] (WW) VGA arbiter: cannot open kernel arbiter, no multi-card support
[ 15.579] (II) NVIDIA(0): Creating default Display subsection in Screen section
"Default Screen Section" for depth/fbbpp 24/32
Could this be a problem? Or is it more of a notice/debug line?
 
Should I just try to install the old intel driver, to see if it works better? (although I don't see how it would improve the issue above, it seems driver-agnostic)
 
message #4:
Code:
Section "Device"
	Identifier "Card1"
	Driver	"intel"
	BusID "PCI:0:0:2"
EndSection
You seem to have inadvertently changed the BusID into the one above:

Rich (BB code):
  [....]
Section "Device"
       Identifier "Card1"
       Driver  "intel"
       BusID "pci0:0:2:0"
EndSection
(commenting the second section did nothing so I assume it's the BusID format)
Now I have two sections but the first format : both computer screens work together, but the TV is not shown in the Displays widget. Its screen is black, but with a cursor, like when you first do startx to verify Xorg works. So it seems it is detected and connected to Xorg, but not in the graphical tool to move screens around, etc (I'm on Mate, but also have XFCE)
Here are the two cards :
Rich (BB code):
vgapci1@pci0:0:2:0:     class=0x030000 rev=0x09 hdr=0x00 vendor=0x8086 device=0x0162 subvendor=0x8086 subdevice=0x2032
    vendor     = 'Intel Corporation'
    device     = 'IvyBridge GT2 [HD Graphics 4000]'
    class      = display
Any ideas? :)

[...] I see two things that may be related in my Xorg.0.log :
Rich (BB code):
[ 15.537] (!!) More than one possible primary device found
[ 15.537] (--) PCI: (0@0:2:0) 8086:0162:8086:2032 rev 9, Mem @ 0xf7400000/4194304, 0xd0000000/268435456, I/O @ 0x0000f000/64, BIOS @ 0x????????/65536

According to pciconf(8) and xorg.conf(5), respectively:
Rich (BB code):
[...] Selectors identify a PCI device by its ad-
       dress in	PCI config space and can take one of the following forms:

	     •	 pcidomain:bus:device:function
Rich (BB code):
       BusID  "bus-id"
          This  specifies  the  bus     location  of  the graphics card.  For
          PCI/AGP cards, the bus-id    string has the form PCI:bus@domain:de-
          vice:function (e.g., "PCI:1@0:0:0" might be appropriate  for  an
          AGP  card). The "@domain"    part can be left out for PCI domain 0.
Thus, the pciconf output vgapci1@pci0:0:2:0: translates[*] to:
BusID "PCI:0@0:2:0" (long form)
or
BusID "PCI:0:2:0" (short form)

(The different notation in the Handbook likely works as well but, I can't find that documented in the man pages, and I haven't tried it.)


From your Xorg log file I see that you are on 14.1-RELEASE; this will become EoL as of tomorrow (see: Supported FreeBSD releases).

The 'problem' that you are facing is that normally you'd be advised to upgrade to 14.2-RELEASE. However, as also the the quarter will end tomorrow, and Q2 begins, all the packages on the remote FreeBSD servers will be (re)build against 14.2-RELEASE (this takes time, my guess is that within a week it will be completed). For almost all packages this won't hardly matter but, for a very small number of packages containing kernel modules like the package graphics/drm-61-kmod (containing the i915kms driver) it is rather essential (on 14.2-RELEASE instead of drm-61-kmod-6.1.128.1401000_2 you need drm-61-kmod-6.1.128.1402000_2). When all packages have been build against 14.2-RELEASE you can upgrade conventionally.

If you upgrade to 14.2-RELEASE now, you'd have to either build that very small number of packages containing kernel modules you actually need, like drm-{515|61}-kmod[**] or set up the kmods repository (see: Possible solution to the drm-kmod kernel mismatch after upgrade from Bapt).

Let me emphasize: these extra efforts for the 'kmods kernel modules' (very few relevant packages) will disappear when (with respect to 14.2-RELEASE) all packages have been rebuild against 14.2-RELEASE. Then you can use the latest or quarterly repsitories as usual; until this issue might appear again when 14.3-RELEASE will be released.

If you'd like to try using the drm-61-kmod on behalf of your mobo_HDMI-TV connection, you could consider waiting for a week before upgrading to 14.2-RELEASE; I presume you want to upgrade anyway as running an unsupported 14.1-RELEASE is not really what you want.

However, you could also consider trying the old Xorg intel driver (contained in x11-drivers/xf86-video-intel)[***]; that might work as your intel GPU is not of a very recent date. For that you do not have to take the extra effort of getting a specific version tailored to 14.1-RELEASE or 14.2-RELEASE (because there just aren't any tailored ones).

Generally when testing such a non-trivial setup of graphics cards and drivers disable your display manager (like Lightdm) (comment out in rc.conf), boot into a virtual console to the command line see if everything seems to work (check 'kldload-ed' drivers), and start X manually.
___
[*]
Or in 'symbolic letters' (note the different order of 'domain' in the sequence): vgapci1@pciW:X:Y:Z: to
BusID "PCI:X@W:Y:Z" (long form)
or
BusID "PCI:X:Y:Z" (short form)

[**]
On 14.2-RELEASE, with 'kmods' set up, on latest (quarterly differs slightly obviously) repository :
Code:
# pkg search '^drm-(515|61)-kmod' | sort
drm-515-kmod-5.15.160.1401000_3 DRM drivers modules
drm-515-kmod-5.15.160.1402000_3 DRM drivers modules
drm-61-kmod-6.1.128.1401000_2  DRM drivers modules
drm-61-kmod-6.1.128.1402000_2  DRM drivers modules

[***]
UMS (User Mode Setting) Xorg drivers are for some time now not longer being developed—they are being phased out when all development effort is concentrated on KMS (Kernel Mode Setting) drivers. This XOrg intel driver uses UMS and therefore it doesn't need to work with a DRM-KMS counterpart. Contrary to using the Xorg modesetting(4) that does need a DRM-KMS counterpart as for example i915kms contained in graphics/drm-61-kmod
 
Man, you really rock for seeing this, I would have never spotted it :)

Unfortunately it didn't solve it :p I still have the black tv screen with an unblinking cursor, and my Xorg.0.log looks very similar to me.

I wonder about this section though :
[ 41.892] (==) No Layout section. Using the first Screen section.
[ 41.892] (==) No screen section available. Using defaults.
[ 41.892] (**) |-->Screen "Default Screen Section" (0)
[ 41.892] (**) | |-->Monitor "<default monitor>"
[ 41.892] (==) No device specified for screen "Default Screen Section".
Using the first device section listed.
[ 41.892] (**) | |-->Device "Card0"
[ 41.892] (**) | |-->GPUDevice "Card1"
[ 41.892] (==) No monitor specified for screen "Default Screen Section".
Using a default monitor configuration.
Do you think it would be a good idea to declare a Default Screen Section or it is useless?
Another thing I wonder is why the Nvidia card is considered "Device" while the Intel onboard graphics is considered "GPUDevice"? Shouldn't it be the other way around?

For reference here is my 20-nvidia.conf
Section "Device"
Identifier "Card0"
Driver "nvidia"
BusID "PCI:1:0:0"
EndSection
Section "Device"
Identifier "Card1"
Driver "modesetting"
BusID "PCI:0:2:0"
EndSection

Thank you for your detailed explanation about the upgrade :) I really don't mind waiting a week or two to upgrade to 14.2; until I solve this screen thing I've gone back to Linux as my daily driver anyway (currently using my TV as speakers, and it is nicer if I want to watch a movie :p)
 
Back
Top