unable to load Desktop Manager for VNC on a FreeBSD installation on a Cloud VPS

Hello I have struggled to install the Desktop Manager for VNC viewing on a FreeBSD installation that is running via a Cloud VPS.

I have installed and uninstalled tightVNC, my latest understanding is to use X11vnc. I got the server working and was able to connect but the command startX loaded a fatal error saying that no screen detected. I tried a few things and I decided to take advantage of the forums not to make this a lost cause and perhaps save me from having to delve in too deep, ie. learn every drop of the sequence of the source code of FreeBSD.

Thank you for your help and hopefully this is not so complicated.
 
Could you post the output of /var/log/Xorg.0.log?
 
[ 616.372]
X.Org X Server 1.20.8
X Protocol Version 11, Revision 0
[ 616.372] Build Operating System: FreeBSD 12.1-RELEASE-p8 amd64
[ 616.372] Current Operating System: FreeBSD sixpiece 12.1-RELEASE-p6 FreeBSD
12.1-RELEASE-p6 GENERIC amd64
[ 616.372] Build Date: 22 August 2020 04:20:50AM
[ 616.372]
[ 616.372] Current version of pixman: 0.40.0
[ 616.372] Before reporting problems, check http://wiki.x.org
to make sure that you have the latest version.
[ 616.372] Markers: (--) probed, (**) from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[ 616.373] (==) Log file: "/var/log/Xorg.0.log", Time: Mon Sep 7 06:02:46 202
0
[ 616.373] (==) Using system config directory "/usr/local/share/X11/xorg.conf.
d"
[ 616.373] (==) No Layout section. Using the first Screen section.
[ 616.373] (==) No screen section available. Using defaults.
[ 616.373] (**) |-->Screen "Default Screen Section" (0)
[ 616.373] (**) | |-->Monitor "<default monitor>"
[ 616.373] (==) No monitor specified for screen "Default Screen Section".
Using a default monitor configuration.
[ 616.373] (==) Automatically adding devices
[ 616.373] (==) Automatically enabling devices
[ 616.374] (==) Not automatically adding GPU devices
[ 616.374] (==) Max clients allowed: 256, resource mask: 0x1fffff
[ 616.374] (==) FontPath set to:
/usr/local/share/fonts/misc/,
/usr/local/share/fonts/TTF/,
/usr/local/share/fonts/OTF/,
/usr/local/share/fonts/Type1/,
/usr/local/share/fonts/100dpi/,
/usr/local/share/fonts/75dpi/,
catalogue:/usr/local/etc/X11/fontpath.d
[ 616.374] (==) ModulePath set to "/usr/local/lib/xorg/modules"
[ 616.374] (II) The server relies on udev to provide the list of input devices
.
If no devices become available, reconfigure udev or disable AutoAddDevic
es.
[ 616.374] (II) Loader magic: 0x42e020
[ 616.374] (II) Module ABI versions:
[ 616.374] X.Org ANSI C Emulation: 0.4
[ 616.374] X.Org Video Driver: 24.1
[ 616.374] X.Org XInput driver : 24.1

[ 616.374] X.Org Server Extension : 10.0
[ 616.374] (--) PCI:*(0@0:2:0) 1013:00b8:1af4:1100 rev 0, Mem @ 0xfc000000/335
54432, 0xfebd0000/4096, BIOS @ 0x????????/65536
[ 616.374] (II) LoadModule: "glx"
[ 616.374] (II) Loading /usr/local/lib/xorg/modules/extensions/libglx.so
[ 616.376] (II) Module glx: vendor="X.Org Foundation"
[ 616.376] compiled for 1.20.8, module version = 1.0.0
[ 616.376] ABI class: X.Org Server Extension, version 10.0
[ 616.376] (==) Matched cirrus as autoconfigured driver 0
[ 616.376] (==) Matched modesetting as autoconfigured driver 1
[ 616.376] (==) Matched scfb as autoconfigured driver 2
[ 616.376] (==) Matched vesa as autoconfigured driver 3
[ 616.376] (==) Assigned the driver to the xf86ConfigLayout
[ 616.376] (II) LoadModule: "cirrus"
[ 616.376] (WW) Warning, couldn't open module cirrus
[ 616.376] (EE) Failed to load module "cirrus" (module does not exist, 0)
[ 616.376] (II) LoadModule: "modesetting"
[ 616.376] (II) Loading /usr/local/lib/xorg/modules/drivers/modesetting_drv.so
[ 616.376] (II) Module modesetting: vendor="X.Org Foundation"
[ 616.376] compiled for 1.20.8, module version = 1.20.8
[ 616.376] Module class: X.Org Video Driver
[ 616.376] ABI class: X.Org Video Driver, version 24.1
[ 616.376] (II) LoadModule: "scfb"

[ 616.376] (II) Loading /usr/local/lib/xorg/modules/drivers/scfb_drv.so
[ 616.376] (II) Module scfb: vendor="X.Org Foundation"
[ 616.376] compiled for 1.20.8, module version = 0.0.5
[ 616.376] ABI class: X.Org Video Driver, version 24.1
[ 616.376] (II) LoadModule: "vesa"
[ 616.376] (II) Loading /usr/local/lib/xorg/modules/drivers/vesa_drv.so
[ 616.376] (II) Module vesa: vendor="X.Org Foundation"
[ 616.376] compiled for 1.20.8, module version = 2.4.0
[ 616.376] Module class: X.Org Video Driver
[ 616.376] ABI class: X.Org Video Driver, version 24.1
[ 616.376] (II) modesetting: Driver for Modesetting Kernel Drivers: kms
[ 616.376] (II) scfb: driver for wsdisplay framebuffer: scfb
[ 616.376] (II) VESA: driver for VESA chipsets: vesa
[ 616.376] (--) Using syscons driver with X support (version 2.0)
[ 616.377] (--) using VT number 9

[ 616.378] (EE) open /dev/dri/card0: No such file or directory
[ 616.378] (WW) Falling back to old probe method for modesetting
[ 616.378] (EE) open /dev/dri/card0: No such file or directory
[ 616.378] (WW) Falling back to old probe method for scfb
[ 616.378] scfb trace: probe start
[ 616.378] scfb trace: probe done
[ 616.378] (WW) VGA arbiter: cannot open kernel arbiter, no multi-card support
[ 616.378] (EE) Screen 0 deleted because of no matching config section.
[ 616.378] (II) UnloadModule: "modesetting"
[ 616.378] (II) Loading sub module "vbe"
[ 616.378] (II) LoadModule: "vbe"
[ 616.378] (II) Loading /usr/local/lib/xorg/modules/libvbe.so
[ 616.378] (II) Module vbe: vendor="X.Org Foundation"
[ 616.378] compiled for 1.20.8, module version = 1.1.0
[ 616.378] ABI class: X.Org Video Driver, version 24.1
[ 616.378] (II) Loading sub module "int10"
[ 616.378] (II) LoadModule: "int10"
[ 616.378] (II) Loading /usr/local/lib/xorg/modules/libint10.so
[ 616.378] (II) Module int10: vendor="X.Org Foundation"
[ 616.378] compiled for 1.20.8, module version = 1.0.0
[ 616.378] ABI class: X.Org Video Driver, version 24.1
[ 616.378] (II) VESA(0): initializing int10
[ 616.379] (II) VESA(0): Primary V_BIOS segment is: 0xc000
[ 616.379] (II) VESA(0): VESA BIOS detected
[ 616.379] (II) VESA(0): VESA VBE Version 3.0
[ 616.379] (II) VESA(0): VESA VBE Total Mem: 4096 kB
[ 616.379] (II) VESA(0): VESA VBE OEM: SeaBIOS VBE(C) 2011
[ 616.379] (II) VESA(0): VESA VBE OEM Software Rev: 0.0
[ 616.379] (II) VESA(0): VESA VBE OEM Vendor: SeaBIOS Developers
[ 616.379] (II) VESA(0): VESA VBE OEM Product: SeaBIOS VBE Adapter

Fatal server error:
[ 616.386] (EE) no screens found(EE)
[ 616.386] (EE)
Please consult the The X.Org Foundation support
at http://wiki.x.org
for help.
[ 616.386] (EE) Please also check the log file at "/var/log/Xorg.0.log" for ad
ditional information.
[ 616.386] (EE)
[ 616.387] (EE) Server terminated with error (1). Closing log file.

I think I have to read the section more closely on the Xwindow system... for virtual consoles, etc.., https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/x-config.html . I already got the vnc to work with Fedora but I decided to keep the FreeBSD server running and I don't necessarily need many more servers at the moment... the other was more automatic and in general I have configured desktop manager for arch linux... on my own desktop in a virtualization console..., etc..
 
What about pciconf -lv? Does that cloud VPS provider use KVM or Xen?
 
KVM

hostb0@pci0:0:0:0: class=0x060000 card=0x11001af4 chip=0x12378086 rev=0x02 hdr=0x00
vendor = 'Intel Corporation'
device = '440FX - 82441FX PMC [Natoma]'
class = bridge
subclass = HOST-PCI
isab0@pci0:0:1:0: class=0x060100 card=0x11001af4 chip=0x70008086 rev=0x00 hdr=0x00
vendor = 'Intel Corporation'
device = '82371SB PIIX3 ISA [Natoma/Triton II]'
class = bridge
subclass = PCI-ISA
atapci0@pci0:0:1:1: class=0x010180 card=0x11001af4 chip=0x70108086 rev=0x00 hdr=0x00
vendor = 'Intel Corporation'
device = '82371SB PIIX3 IDE [Natoma/Triton II]'
class = mass storage
subclass = ATA
uhci0@pci0:0:1:2: class=0x0c0300 card=0x11001af4 chip=0x70208086 rev=0x01 hdr=0x00
vendor = 'Intel Corporation'
device = '82371SB PIIX3 USB [Natoma/Triton II]'
class = serial bus
subclass = USB
intsmb0@pci0:0:1:3: class=0x068000 card=0x11001af4 chip=0x71138086 rev=0x03 hdr=0x00
vendor = 'Intel Corporation'
device = '82371AB/EB/MB PIIX4 ACPI'
class = bridge
vgapci0@pci0:0:2:0: class=0x030000 card=0x11001af4 chip=0x00b81013 rev=0x00 hdr=0x00
vendor = 'Cirrus Logic'
device = 'GD 5446'
class = display
subclass = VGA
virtio_pci0@pci0:0:3:0: class=0x020000 card=0x00011af4 chip=0x10001af4 rev=0x00 hdr=0x00
vendor = 'Red Hat, Inc.'
device = 'Virtio network device'
class = network
subclass = ethernet
virtio_pci1@pci0:0:4:0: class=0x010000 card=0x00021af4 chip=0x10011af4 rev=0x00 hdr=0x00
vendor = 'Red Hat, Inc.'
device = 'Virtio block device'
class = mass storage
subclass = SCSI
virtio_pci2@pci0:0:5:0: class=0x00ff00 card=0x00051af4 chip=0x10021af4 rev=0x00 hdr=0x00
vendor = 'Red Hat, Inc.'
device = 'Virtio memory balloon'
class = old
virtio_pci3@pci0:0:6:0: class=0x00ff00 card=0x00041af4 chip=0x10051af4 rev=0x00 hdr=0x00
vendor = 'Red Hat, Inc.'
device = 'Virtio RNG'
class = old
virtio_pci4@pci0:0:7:0: class=0x020000 card=0x00011af4 chip=0x10001af4 rev=0x00 hdr=0x00
vendor = 'Red Hat, Inc.'
device = 'Virtio network device'
class = network
subclass = ethernet
 
it's very intense trying to figure this out... it's too bad it cannot be plug and play... https://www.x.org/releases/X11R7.6/doc/man/man5/xorg.conf.5.xhtml#heading14

do I have to move the xorg.conf.new file? I'm a little a little scared of changing the file...

reading through this document :

(Device section) and a monitor (Monitor section) means I need to read those sections also. I have a radeon graphics card can it be given access to utilizing this device within a vnc framework?

if so , how will it detect my desktop computer vs. my laptop vs. my IPAD can it run on an ipad if I have a vnc viewer? or like a cellphone?

why does it work automatically with other Operating Systems but not free bsd?

Monitor section seems to not say much on Xorg article...

it just needs identifier everything else is optional...

The Identifier entry specifies the unique name for this graphics device. The Driver entry specifies the name of the driver to use for this graphics device. When using the loadable server, the driver module "driver" will be loaded for each active Device section. A Device section is considered active if it is referenced by an active Screen section.

a little bit of complication as far as referencing the device from the screen section and verifying that is done correctly...
 
I just ran into this same problem. With the same exact result. I'm running FreeBSD12.2 from a bhyve vm host and can connect through VNC and I get to this same part and I keep getting the error "No Screens Found."

I am using bhyve's UEFI loader, as that one appears to be the only one that supports framebuffer mode for VNC and graphical environments.

I installed everything like normal, but I leave out the i915kms kernel module [the machine is using an intel GPU, however, bhyve isn't using passthrough.]

If I try to install xorg and xfce, startx will fail on a "framebuffer mode not supported" error. It looks like xorg tries to use the modesetting driver and then fails. The virtual machine was booted using UEFI framebuffer for VNC support and framebuffer mode is not suppored by the modesetting driver [i think bhyve is using a virtual graphics card called llvmpipe].

So I generate a new xorg.conf file and set the driver the VESA. Now it fails on "No Screens Found."

I know bsd and xorg through bhyve uefi can work because I installed OS108 {graphical NetBSD} through bhyve, which boots into a graphical environment.

The Xorg log file appears to show it loading vesa, then fails with a message "V_BIOS address 0x0 out of range." Then it unloads all other xorg modules and terminates.

This does appear to be related to the UEFI loader, but how exactly is unknown to me.
 
Well NomadBSD does work through bhyve without any special configuration on the host side. I'd assume GhostBSD does also. I'm just going to have to root around in those systems to figure out what's going on.
 
I rooted around in GhostBSD and I discovered that their auto-config system works with the scfb driver when in framebuffer mode.

This is all you should need in xorg.conf when using framebuffer mode [VNC]:
(I used Xorg -configure to generate an xorg.conf.new file and changed the driver from "modesetting" to "scfb" and that worked.)

Code:
Section "Device"
    Identifier  "Card0"
    Driver      "scfb"
EndSection

This message from the freshports scfb page should be a tipoff:
This package contains the X.Org xf86-video-scfb driver.
Framebuffer access via FreeBSD syscons.

btw: DragonFlyBSD requires this same driver, but the mouse wont work without moused_enable="YES" in rc.conf. Otherwise, it performs and operates surprisingly similar to FreeBSD.

=====
I realized later that there are other virtual video cards, qemu uses a card that requires the vesa driver by default in a freebsd guest over the host's qemu built-in VNC server.
 
Last edited:
Back
Top