Trident 18.12 install fails when xorg cannot find screen & xorg server stops SOLVED


#1

Attempting to install Trident 18.12 on HP xw9400 Using 18.12-U2 dated Jan 29, 2019.

The install fails when xorg reports it cannot find “screen0.” The xorg server terminates with a Fatal server error: (EE) no screens found. It exits to the login prompt (login:) with “no device found.” Sometimes it exits to the loader prompt.

Video card is a nVidia GTX 1060, but I have also tried installing with a GTX 1050 and an FX3500.

I also tried installing to a less exotic HP xw6200 but received the same result.

What I know is I do not have a video chip on the motherboard. Thus I do not have the “Optimus problem” or the problem of having to disable any built-in video chip to prevent conflict with the GPU.

I have looked at https://forums.freebsd.org/threads/ee-no-devices-detected-ee-no-screens-found-ee.56483/ but the the original poster already had FreeBSD installed on a system with a GPU built-in to the motherboard and was directed to change BIOS settings to enable an add-on video card.

I have looked at https://forums.freebsd.org/threads/ee-no-devices-detected-ee-no-screens-found-ee.56483/ but the original poster but the original poster was using a driver too new for his nVidia graphics card. That is not my problem.

I have looked at BETA-02 is out now at Post #17 where the user says:

“Alright, trying to do an install using beta2 but it fails on locating any (Xorg) screens. With TrueOS install it takes two tries I think before it detects the screens connected to the nvidia card. I think the issue is there is a vesa card on the m/b which it tries before moving on to nvidia. I cannot disable it only tell BIOS the external card has priority.” He suggests he has vesa built into the motherboard."
Rod Meyers replied “on telegram, it appears nvidia has issues.”

======== Output of pciconf ======================
#pciconf -lvv | grep -C 4 -a VGA
vgapci0@pci1:88:0:0: class=0x030000 card=0x11d71028 chip=0x1c0310de rev=0xa1 hdr=0x00
vendor = ‘NVIDIA Corporation’
device = ‘GP106 [GeForce GTX 1060 6GB]’
class = display
subclass = VGA
hdac1@pci1:88:0:1: class=0x040300 card=0x11d71028 chip=0x10f110de rev=0xa1 hdr=0x00
vendor = ‘NVIDIA Corporation’
device = ‘GP106 High Definition Audio Controller’
class = multimedia

======== Excerpts from dmesg ===================

FreeBSD 13.0-CURRENT GENERIC-NODEBUG amd64
FreeBSD clang version 7.0.1 (branches/release_70 348686) (based on LLVM 7.0.1)
VT(vga): resolution 640x480
CPU: Quad-Core AMD Opteron™ Processor 2380 (2500.06-MHz K8-class CPU)
real memory = 68720525312 (65537 MB)
avail memory = 66876284928 (63778 MB)
ACPI APIC Table:
FreeBSD/SMP: Multiprocessor System Detected: 8 CPUs
FreeBSD/SMP: 2 package(s) x 4 core(s)
. . .
arc4random: no preloaded entropy cache
Firmware Warning (ACPI): 32/64X length mismatch in FADT/Pm1aEventBlock: 32/16 (20181031/tbfadt-748)
Firmware Warning (ACPI): Optional FADT field Pm2ControlBlock has valid Length but zero Address: 0x0000000000000000/0x1 (20181031/tbfadt-796)
Firmware Warning (ACPI): 32/64X length mismatch in FADT/Gpe0Block: 64/32 (20181031/tbfadt-748)
Firmware Warning (ACPI): Invalid length for FADT/Pm1aEventBlock: 16, using default 32 (20181031/tbfadt-850)
. . .
[ath_hal] loaded
module_register_init: MOD_LOAD (vesa, 0xffffffff81149b70, 0) error 19
kbd1 at kbdmux0
nexus0
vtvga0: on motherboard <======= This is not true. There is no video chip on MB.
. . .
vgapci0: port 0x2000-0x207f mem 0xe2000000-0xe2ffffff,0xd0000000-0xdfffffff,0xe0000000-0xe1ffffff irq 41 at device 0.0 numa-domain 1 on pci8
vgapci0: Boot video device
hdac1: <NVIDIA (0x10f1) HDA Controller> mem 0xe3000000-0xe3003fff irq 42 at device 0.1 numa-domain 1 on pci8
. . .
nfe0 down
nfe1 down

=========== End Excerpts from dmesg ==================

After locating and installing the ethernet drivers nfe0 and nfe1, the install begins to evaluate and create xorg.conf. However, the installation ends and reports:

(EE) Fatal server error:
(EE) no screens found
. . .
(EE) Server terminated with error (1) Closing log file.

========== Contents of /tmp/xorg.log ==========
.Org X Server 1.18.4
Release Date: 2016-07-19
[ 262.670] X Protocol Version 11, Revision 0
[ 262.670] Build Operating System: FreeBSD 13.0-CURRENT amd64
[ 262.670] Current Operating System: FreeBSD 13.0-CURRENT FreeBSD 13.0-CURRENT GENERIC-NODEBUG amd64
[ 262.670] Build Date: 24 January 2019 12:08:11AM
[ 262.670]
[ 262.730] Current version of pixman: 0.34.0
[ 262.730] Before reporting problems, check http://wiki.x.org
to make sure that you have the latest version.
[ 262.970] Markers: (–) probed, () from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[ 262.970] (++) Log file: “/tmp/xorg.log”, Time: Sat Feb 2 22:01:59 2019
[ 264.457] (++) Using config file: “/tmp/xorg.conf”
[ 264.457] (==) Using system config directory “/usr/local/share/X11/xorg.conf.d”
[ 265.064] (==) ServerLayout “XFree86 Configured”
[ 265.088] (
) |–>Screen “Screen0” (0)
[ 265.088] () | |–>Monitor “”
[ 265.203] (
) | |–>Device “Card0”
[ 265.203] (==) No monitor specified for screen “Screen0”.
Using a default monitor configuration.
[ 265.203] (==) Automatically adding devices
[ 265.203] (==) Automatically enabling devices
[ 265.203] (==) Not automatically adding GPU devices
[ 265.229] (==) Max clients allowed: 256, resource mask: 0x1fffff
[ 265.229] (WW) The directory “/usr/local/share/fonts/misc/” does not exist.
[ 265.229] Entry deleted from font path.
[ 265.229] (WW) The directory “/usr/local/share/fonts/Type1/” does not exist.
[ 265.229] Entry deleted from font path.
[ 265.229] (WW) The directory “/usr/local/share/fonts/100dpi/” does not exist.
[ 265.229] Entry deleted from font path.
[ 265.229] (WW) The directory “/usr/local/share/fonts/75dpi/” does not exist.
[ 265.229] Entry deleted from font path.
[ 265.229] (==) FontPath set to:
/usr/local/share/fonts/TTF/,
/usr/local/share/fonts/OTF/
[ 265.229] (==) ModulePath set to “/usr/local/lib/xorg/modules”
[ 265.229] (II) The server relies on devd to provide the list of input devices.
If no devices become available, reconfigure devd or disable AutoAddDevices.
[ 265.258] (II) Loader magic: 0x41b010
[ 265.258] (II) Module ABI versions:
[ 265.258] X.Org ANSI C Emulation: 0.4
[ 265.258] X.Org Video Driver: 20.0
[ 265.258] X.Org XInput driver : 22.1
[ 265.258] X.Org Server Extension : 9.0
[ 265.331] (–) PCI:*(1:88:0:0) 10de:1c03:1028:11d7 rev 161, Mem @ 0xe2000000/16777216, 0xd0000000/268435456, 0xe0000000/33554432, I/O @ 0x00002000/128, BIOS @ 0x???/65536
[ 265.402] (II) LoadModule: “glx”
[ 265.504] (II) Loading /usr/local/lib/xorg/modules/extensions/libglx.so
[ 269.666] (II) Module glx: vendor=“X.Org Foundation”
[ 269.666] compiled for 1.18.4, module version = 1.0.0
[ 269.666] ABI class: X.Org Server Extension, version 9.0
[ 269.686] (==) AIGLX enabled
[ 269.703] (II) LoadModule: “vesa”
[ 269.703] (II) Loading /usr/local/lib/xorg/modules/drivers/vesa_drv.so
[ 269.823] (II) Module vesa: vendor=“X.Org Foundation”
[ 269.823] compiled for 1.18.4, module version = 2.4.0
[ 269.823] Module class: X.Org Video Driver
[ 269.823] ABI class: X.Org Video Driver, version 20.0
[ 269.922] (II) VESA: driver for VESA chipsets: vesa
[ 269.922] (–) Using syscons driver with X support (version 2.0)
[ 269.922] (–) using VT number 2

[ 269.924] (EE) No devices detected.
[ 269.924] (EE)
Fatal server error:
[ 269.924] (EE) no screens found(EE)
[ 269.924] (EE) Please consult the The X.Org Foundation support at http://wiki.x.org for help.
[ 269.924] (EE) Please also check the log file at “/tmp/xorg.log” for additional information.
[ 269.974] (EE) Server terminated with error (1). Closing log file.

==================== End xorg.log =================================

The process does create a minimal xorg.conf.

@ line 265.203] it reports (==) No monitor specified for screen “Screen0”.
@ line 265.229] it reports (WW) The directory “/usr/local/share/fonts/misc/” does not exist.
@ line 265.229] it (II) The server relies on devd to provide the list of input devices.
If no devices become available, reconfigure devd or disable AutoAddDevices.
@ line 269.703] it loads the vesa driver
@ line 269.924] (EE) No devices detected.
[ 269.924] (EE) Fatal server error:

Here are the complete contents of the installer’s xorg.log:

=============== Contents of xorg.log ===============================

Auto-generated X11 graphics

card/driver configuration

#===========

Created by Project Trident

#===========

DO NOT MODIFY

- Will be replaced on every bootup by trident_init service

- Place alternate X11 settings into separate file(s):

/usr/local/etc/X11/xorg.conf.d/[something].conf

OR

/usr/local/etc/X11/xorg.conf

#===========
Section “ServerLayout”
Identifier “XFree86 Configured”
Screen 0 “Screen0” 0 0
EndSection

Section “Screen”
Identifier “Screen0”
Device “Card0”
Monitor “Monitor0”
EndSection

Section “Device”
Identifier “Card0”
Driver “vesa”
BusID “88:0:0”

EndSection
================== End of Contents of xorg.log ===================

The install did not get far enough to report anything in a pc-sysinstall.log but it did create the empty file with zero bytes.

I can log in a root from the login prompt and I can read/edit/copy the files in /tmp.
I can even insert a USB thumb drive and copy the files from /tmp to the USB drive @ da1 from the # prompt with the command #mount -t msdosfs /dev/da1s1 /mnt and cp /tmp/file-name /mnt

So . . .

I wonder if there is a way to substitute a working xorg.conf file within the installation media, and restart the install from the root prompt so that install can get past the xorg failure.

Addendum:
Here is what my xorg.conf on this particular computer looks like under TrueOS 18.03:

========= xw9400 xorg.conf on TrueOS 18.03 ===================

nvidia-xconfig: X configuration file generated by nvidia-xconfig

nvidia-xconfig: version 384.59 (root@Tos999) Wed Jan 9 17:36:26 EST 2019

Section “ServerLayout”
Identifier “Layout0”
Screen 0 “Screen0”
InputDevice “Keyboard0” “CoreKeyboard”
InputDevice “Mouse0” “CorePointer”
EndSection

Section “Files”
EndSection

Section “InputDevice”
# generated from default
Identifier “Mouse0”
Driver “mouse”
Option “Protocol” “auto”
Option “Device” “/dev/sysmouse”
Option “Emulate3Buttons” “no”
Option “ZAxisMapping” “4 5”
EndSection

Section “InputDevice”
# generated from default
Identifier “Keyboard0”
Driver “keyboard”
EndSection

Section “Monitor”
Identifier “Monitor0”
VendorName “Unknown”
ModelName “Unknown”
HorizSync 28.0 - 33.0
VertRefresh 43.0 - 72.0
Option “DPMS”
EndSection

Section “Device”
Identifier “Device0”
Driver “nvidia”
VendorName “NVIDIA Corporation”
EndSection

Section “Screen”
Identifier “Screen0”
Device “Device0”
Monitor “Monitor0”
DefaultDepth 24
SubSection “Display”
Depth 24
EndSubSection
EndSection


#2

bios or efi?

did you select a driver at install, or wait?


#3

@ Rod Myers

It is BIOS, not UEFI

I was waiting, expecting the Trident Installer GUI to start where one eventually selects the GPU driver.

Thanks


#4

dual video?

if so, try and disable one

do you use telegram? --> https://t.me/ProjectTrident


#5

Not dual video. Not dual in the sense of having both a video chip on motherboard and an add-in card. Not dual in the sense of having two monitors.

There is no choice in BIOS setup dealing with video.

My setup is single GPU (nVidia GTX 1060) and a single HP L2401x monitor.

I have not used Telegram. Just Discourse.


#6

I have subscribed to Telegram & Trident discussion but have not posted this problem there.


#7

I am on Telegram noticing a similar problem where discussion states the installer reporting a “fake GPU” saying:

Ken Moore, [26.01.19 17:40]
I think the automatic device selection thing is just not getting the right device for your odd system.

Ken Moore, [26.01.19 17:41]
the update itself is working fine, just the auto-setup logic is wrong because the scfb driver is now available and it is trying to use that instead (which is a different issue that I need to look into later)

Ken Moore, [26.01.19 17:43]
The drm-current-kmod package was not updated between Release and U1, so that is not causing the problem…

Ken Moore, [26.01.19 17:45]
I did fix the Intel GPU detection logic for multi-GPU systems (for NVIDIA/Intel Optimus), that might be causing the problem for you because it is now picking GPU2 instead of GPU1

Roel Neumann, [26.01.19 17:51]
I changed Card1 to Card0 in the Screen section
There are 2 sections ‘Device’
One with Identifier Card0 and one with identifier Card1.
Can I leave that?

Ken Moore, [26.01.19 17:55]
Leave the two device sections alone

Ken Moore, [26.01.19 17:55]
that is the defines for the 2 GPU’s

Ken Moore, [26.01.19 17:55]
but we want to use the first GPU for the actual screen

Ken Moore, [26.01.19 17:56]
I just committed a fix to the automatic xorg setup script to try and catch/fix this type of situation as well: https://github.com/project-trident/trident-core/blob/master/core-files/usr/local/share/trident/scripts/generate-xorg-conf.sh

Ken Moore, [26.01.19 17:56]
That will get included in the U2 update

Roel Neumann, [26.01.19 17:56]
I save xorg.conf with and rebooted.
This did the trick! :blush:

Ken Moore, [26.01.19 17:56]
yep - so that was the problem: a “fake” second GPU FAKE SECOND GPU !!!

Roel Neumann, [26.01.19 17:56]
It now starts in the graphical login window.

Ken Moore, [26.01.19 17:57]
the patch I committed should fix that automatically on later updates now


#8

This problem is SOLVED with some edits to xorg.conf and using xinit to resume the installer.

The original problem was that the install failed and ejected me to a login prompt when xorg reported “No devices detected” and “no screens found.”

When ejected, you end up at a log-in prompt (which turns out to be a good thing because you can access the console without a reboot).

At this stage of the installation, xorg.conf will be located in /tmp, and all changes will be made to /tmp/xorg.conf as the root user.

Preliminary Steps:

Log in as root. There is no password.

At the # prompt, type these commands:

cd /tmp
ee /tmp/xorg.conf

Make these Edits:

I made three changes to xorg.conf:

(1) In the section called “Screen” I inserted a line saying: Monitor “Monitor0” [Comment: I do not know that this was needed, but it does not hurt to do it.]

(2) Then I added a new section called Section “Monitor” to which I added another line: Identifier “Monitor0” then another line: EndSection

(3) Finally I went to the section labelled as Device identifying “Card0” and disabled the line BusID. (Even though the BusID was exactly correct per the output of pciconf -l | grep vga) (You can either remove the line or put a # character in front of the word “BusID” to disable it.)

Now you leave the editor by touching the [ESC] key once, then select “a. LEAVE EDITOR,” then select SAVE

Execution and Return to Installer:

Then, with thanks to Ken Moore for the command , I typed the following command at the root prompt:

xinit /usr/local/bin/trident-installer – -config ${_conf} -logfile /tmp/xorg.0.log :0

Notes about that command:

(a) Syntax must be exact. There is a double dash between the word “installer” and the word “-config”
(b) Replace the expression “${_conf}” with the path & file name of the edited xorg.conf you will be using. In the case of my repair, that file was /tmp/xorg.conf

After making these changes and restarting with the xinit command, my screen went black for about 5 mins while the DVD drive and the hard disk churned, and eventually I came to the first screen of the GUI installer.

Below I review the edits to xorg.conf:

#===========
Section “ServerLayout”
Identifier “XFree86 Configured”
Screen 0 “Screen0” 0 0
EndSection

Section “Monitor” <--------- This & the next 2 lines were added
Identifier “Monitor0”
EndSection

Section “Screen”
Identifier “Screen0”
Device “Card0”
Monitor “Monitor0” <------- I added this line
EndSection

Section “Device”
Identifier “Card0”
Driver “vesa”
# BusID “88:0:0” <-------- Disable this line with # prefix or by delete
EndSection
[/quote]

Thanks to Ken Moore for his help on this problem and his new commit that should end this particular problem that some users might otherwise have. In my case, I think my particular hardware was fooling the OS. In Ken’s case, it showed how dedicated he is to making his and his team’s new creation work for all of us.

Ian Robinson
Salem, Ohio