Hello, very long-time FreeBSD user here, but not in several years due to job requirements.
As a hobby and to remember the good old times, I've revived an old HP/Compaq nc8430 notebook to put FreeBSD 13 on it. 32 bits because the Centrino Duo CPU inside doesn't grok 64 bits code (FBSD loader tells me "CPU doesn't support long" when I try booting 64 bits)
Long story short: install went smoothly but for the sake of me I can't make Xorg work.
The laptop has an ATI Mobility Radeon X1600 GPU. I've followed the handbook carefully: installed drm-kmod, made radeonkms load from /boot/loader.conf, installed xf86-video-ati and created a conf file for Xorg that loads the "radeon" driver.
Well, boot is OK, I can see the display switching to a higher character density mode so the kernel module loads OK. But when I run xinit, I get nothing but a totally blank screen. Everything looks fine in /var/log/Xorg.0.log, the GPU is correctly detected and so are the geometry and resolution of the LCD panel from what I see.
The X server seems completely stuck. If I run xdpyinfo from a shell (over SSH) after setting the DISPLAY variable to :0, it just hangs. So the black screen isn't the only problem as it seems. The X server is hung.
Could someone please help an old FreeBSDer trying to get back into the game? I really didn't expect X-window to be so troublesome on old hardware like this :-(
Thanks in advance for any help.
EDIT 29-Mar-2023: sometimes I get a black screen with a not moving mouse cursor and a white text rectangular cursor in the top left corner.
And the Xorg.0.log ends abruptly with:
Just before anyone asks, this same machine runs Windows 7 happily, so I don't suspect a graphics h/w issue.
END EDIT
EDIT 30-Mar-2023: I've done a few things:
- boot from GhostBSD 10.1 (last release with 32b support), which apparently is based on FreeBSD 10.1: boots OK, brings up the GUI environment without a hitch, using the Radeon stuff (the kernel module and firmware file have slightly different names though)
- installed FreeBSD 13.1 fresh on a spare disk, just did the basic module + Xorg config: no go, same problem
- tried truss Xorg: seems to run OK, not hung until I run a client (e.g. xclock): client's window appears as an empty white rectangle, remains even when I kill xlock and then Xorg is stuck. Just running xdpyinfo before doesn't cause it to lock up (and returns sensible info). So it's really when something is actually displayed
I'll be moving up the FreeBSD releases to find out whether this broke and when. Really confused here.
END EDIT
More info :
As a hobby and to remember the good old times, I've revived an old HP/Compaq nc8430 notebook to put FreeBSD 13 on it. 32 bits because the Centrino Duo CPU inside doesn't grok 64 bits code (FBSD loader tells me "CPU doesn't support long" when I try booting 64 bits)
Long story short: install went smoothly but for the sake of me I can't make Xorg work.
The laptop has an ATI Mobility Radeon X1600 GPU. I've followed the handbook carefully: installed drm-kmod, made radeonkms load from /boot/loader.conf, installed xf86-video-ati and created a conf file for Xorg that loads the "radeon" driver.
Well, boot is OK, I can see the display switching to a higher character density mode so the kernel module loads OK. But when I run xinit, I get nothing but a totally blank screen. Everything looks fine in /var/log/Xorg.0.log, the GPU is correctly detected and so are the geometry and resolution of the LCD panel from what I see.
The X server seems completely stuck. If I run xdpyinfo from a shell (over SSH) after setting the DISPLAY variable to :0, it just hangs. So the black screen isn't the only problem as it seems. The X server is hung.
Could someone please help an old FreeBSDer trying to get back into the game? I really didn't expect X-window to be so troublesome on old hardware like this :-(
Thanks in advance for any help.
EDIT 29-Mar-2023: sometimes I get a black screen with a not moving mouse cursor and a white text rectangular cursor in the top left corner.
And the Xorg.0.log ends abruptly with:
[ 57.388] (II) modeset(0): Damage tracking initialized
[ 57.388] (II) modeset(0): Setting screen physical size to 338 x 211
Just before anyone asks, this same machine runs Windows 7 happily, so I don't suspect a graphics h/w issue.
END EDIT
EDIT 30-Mar-2023: I've done a few things:
- boot from GhostBSD 10.1 (last release with 32b support), which apparently is based on FreeBSD 10.1: boots OK, brings up the GUI environment without a hitch, using the Radeon stuff (the kernel module and firmware file have slightly different names though)
- installed FreeBSD 13.1 fresh on a spare disk, just did the basic module + Xorg config: no go, same problem
- tried truss Xorg: seems to run OK, not hung until I run a client (e.g. xclock): client's window appears as an empty white rectangle, remains even when I kill xlock and then Xorg is stuck. Just running xdpyinfo before doesn't cause it to lock up (and returns sensible info). So it's really when something is actually displayed
I'll be moving up the FreeBSD releases to find out whether this broke and when. Really confused here.
END EDIT
More info :
Code:
# kldstat
Id Refs Address Size Name
1 30 0x800000 1831324 kernel
2 1 0x21600000 182000 radeonkms.ko
3 2 0x21800000 81000 drm.ko
4 5 0x21782000 28000 linuxkpi.ko
5 2 0x217aa000 4000 backlight.ko
6 3 0x217ae000 8000 linuxkpi_gplv2.ko
7 4 0x217b6000 9000 dmabuf.ko
8 1 0x217bf000 11000 ttm.ko
9 1 0x217d0000 3000 radeon_R520_cp_bin.ko
10 1 0x217d3000 6000 acpi_wmi.ko
11 1 0x217d9000 3000 mac_ntpd.ko
Code:
# pciconf -lv|grep -B4 VGA
vgapci0@pci0:1:0:0: class=0x030000 rev=0x00 hdr=0x00 vendor=0x1002 device=0x71c5 subvendor=0x103c subdevice=0x30a3
vendor = 'Advanced Micro Devices, Inc. [AMD/ATI]'
device = 'RV530/M56-P [Mobility Radeon X1600]'
class = display
subclass = VGA
Code:
# dmesg
...
[drm] initializing kernel modesetting (RV530 0x1002:0x71C5 0x103C:0x30A3 0x00).
[drm ERROR :radeon_atombios_init] Unable to find PCI I/O BAR; using MMIO for ATOM IIO
ATOM BIOS: HP
[drm] Generation 2 PCI interface, using max accessible memory
drmn0: VRAM: 256M 0x0000000000000000 - 0x000000000FFFFFFF (256M used)
drmn0: GTT: 512M 0x0000000010000000 - 0x000000002FFFFFFF
[drm] Detected VRAM RAM=256M, BAR=256M
[drm] RAM width 128bits DDR
[TTM] Zone kernel: Available graphics memory: 1755356 KiB
[TTM] Initializing pool allocator
[drm] radeon: 256M of VRAM memory ready
[drm] radeon: 512M of GTT memory ready.
[drm] GART: num cpu pages 131072, num gpu pages 131072
[drm] radeon: power management initialized
[drm] radeon: 1 quad pipes, 2 z pipes initialized.
[drm] PCIE GART of 512M enabled (table at 0x0000000000040000).
drmn0: WB enabled
drmn0: fence driver on ring 0 use gpu addr 0x0000000010000000
drmn0: radeon: MSI limited to 32-bit
drmn0: radeon: using MSI.
[drm] radeon: irq initialized.
[drm] Loading R500 Microcode
drmn0: successfully loaded firmware image 'radeon/R520_cp.bin'
[drm] radeon: ring at 0x0000000010001000
[drm] ring test succeeded in 0 usecs
[drm] ib test succeeded in 0 usecs
[drm] Radeon Display Connectors
[drm] Connector 0:
[drm] VGA-1
[drm] DDC: 0x7e40 0x7e40 0x7e44 0x7e44 0x7e48 0x7e48 0x7e4c 0x7e4c
[drm] Encoders:
[drm] CRT1: INTERNAL_KLDSCP_DAC1
[drm] Connector 1:
[drm] LVDS-1
[drm] DDC: 0x7e50 0x7e50 0x7e54 0x7e54 0x7e58 0x7e58 0x7e5c 0x7e5c
[drm] Encoders:
[drm] LCD1: INTERNAL_LVTM1
[drm] Connector 2:
[drm] SVIDEO-1
[drm] Encoders:
[drm] TV1: INTERNAL_KLDSCP_DAC2
[drm] Connector 3:
[drm] DVI-I-1
[drm] HPD1
[drm] DDC: 0x7e60 0x7e60 0x7e64 0x7e64 0x7e68 0x7e68 0x7e6c 0x7e6c
[drm] Encoders:
[drm] DFP1: INTERNAL_KLDSCP_TMDS1
[drm] fb mappable at 0xE00C0000
[drm] vram apper at 0xE0000000
[drm] size 4096000
[drm] fb depth is 24
[drm] pitch is 5120
VT: Replacing driver "vga" with new "fb".
start FB_INFO:
type=11 height=800 width=1280 depth=32
pbase=0xe00c0000 vbase=0x22000000
name=drmn0 flags=0x0 stride=5120 bpp=32
end FB_INFO
[drm] Initialized radeon 2.50.0 20080528 for drmn0 on minor 0
...
# cat /usr/local/etc/X11/xorg.conf.d/20-radeon.conf
Section "Device"
Identifier "Card0"
Driver "radeon"
EndSection
Code:
# cat /var/log/Xorg.0.log
...
[ 155.905] (--) PCI:*(1@0:0:0) 1002:71c5:103c:30a3 rev 0, Mem @ 0xe0000000/268435456, 0xf4600000/65536, I/O @ 0x00004000/256, BIOS @ 0x????????/65536
[ 155.906] (II) LoadModule: "glx"
[ 155.918] (II) Loading /usr/local/lib/xorg/modules/extensions/libglx.so
[ 155.978] (II) Module glx: vendor="X.Org Foundation"
[ 155.978] compiled for 1.21.1.4, module version = 1.0.0
[ 155.978] ABI class: X.Org Server Extension, version 10.0
[ 155.993] (==) Matched ati as autoconfigured driver 0
[ 155.993] (==) Matched modesetting as autoconfigured driver 1
[ 155.993] (==) Matched scfb as autoconfigured driver 2
[ 155.993] (==) Matched vesa as autoconfigured driver 3
[ 155.993] (==) Assigned the driver to the xf86ConfigLayout
[ 155.993] (II) LoadModule: "ati"
[ 155.993] (II) Loading /usr/local/lib/xorg/modules/drivers/ati_drv.so
[ 155.996] (II) Module ati: vendor="X.Org Foundation"
[ 155.996] compiled for 1.21.1.4, module version = 19.1.0
[ 155.996] Module class: X.Org Video Driver
[ 155.996] ABI class: X.Org Video Driver, version 25.2
[ 156.006] (II) LoadModule: "radeon"
[ 156.006] (II) Loading /usr/local/lib/xorg/modules/drivers/radeon_drv.so
[ 156.092] (II) Module radeon: vendor="X.Org Foundation"
[ 156.092] compiled for 1.21.1.4, module version = 19.1.0
[ 156.092] Module class: X.Org Video Driver
[ 156.092] ABI class: X.Org Video Driver, version 25.2
[ 156.092] (II) LoadModule: "modesetting"
[ 156.092] (II) Loading /usr/local/lib/xorg/modules/drivers/modesetting_drv.so
[ 156.104] (II) Module modesetting: vendor="X.Org Foundation"
[ 156.104] compiled for 1.21.1.4, module version = 1.21.1
[ 156.104] Module class: X.Org Video Driver
[ 156.104] ABI class: X.Org Video Driver, version 25.2
[ 156.105] (II) LoadModule: "scfb"
[ 156.105] (II) Loading /usr/local/lib/xorg/modules/drivers/scfb_drv.so
[ 156.111] (II) Module scfb: vendor="X.Org Foundation"
[ 156.111] compiled for 1.21.1.4, module version = 0.0.5
[ 156.111] ABI class: X.Org Video Driver, version 25.2
[ 156.111] (II) LoadModule: "vesa"
[ 156.111] (II) Loading /usr/local/lib/xorg/modules/drivers/vesa_drv.so
[ 156.115] (II) Module vesa: vendor="X.Org Foundation"
[ 156.115] compiled for 1.21.1.4, module version = 2.5.0
[ 156.115] Module class: X.Org Video Driver
[ 156.115] ABI class: X.Org Video Driver, version 25.2
[ 156.115] (II) RADEON: Driver for ATI/AMD Radeon chipsets:
ATI Radeon Mobility X600 (M24), ATI FireMV 2400,
...
REDWOOD, ATI Mobility Radeon Graphics, CEDAR, ATI FirePro 2270,
ATI Radeon HD 5450, CAYMAN, AMD Radeon HD 6900 Series,
AMD Radeon HD 6900M Series, Mobility Radeon HD 6000 Series, BARTS,
AMD Radeon HD 6800 Series, AMD Radeon HD 6700 Series, TURKS, CAICOS,
ARUBA, TAHITI, PITCAIRN, VERDE, OLAND, HAINAN, BONAIRE, KABINI,
MULLINS, KAVERI, HAWAII
[ 156.127] (II) modesetting: Driver for Modesetting Kernel Drivers: kms
[ 156.127] (II) scfb: driver for wsdisplay framebuffer: scfb
[ 156.127] (II) VESA: driver for VESA chipsets: vesa
[ 156.127] (--) Using syscons driver with X support (version 2.0)
[ 156.127] (--) using VT number 9
[ 156.137] (II) [KMS] Kernel modesetting enabled.
[ 156.138] (WW) Falling back to old probe method for modesetting
[ 156.138] (WW) Falling back to old probe method for scfb
[ 156.138] scfb trace: probe start
[ 156.138] scfb trace: probe done
[ 156.138] (WW) VGA arbiter: cannot open kernel arbiter, no multi-card support
[ 156.138] (II) RADEON(0): Creating default Display subsection in Screen section
"Default Screen Section" for depth/fbbpp 24/32
[ 156.139] (==) RADEON(0): Depth 24, (--) framebuffer bpp 32
[ 156.139] (II) RADEON(0): Pixel depth = 24 bits stored in 4 bytes (32 bpp pixmaps)
[ 156.139] (==) RADEON(0): Default visual is TrueColor
[ 156.139] (==) RADEON(0): RGB weight 888
[ 156.139] (II) RADEON(0): Using 8 bits per RGB (8 bit DAC)
[ 156.139] (--) RADEON(0): Chipset: "ATI Mobility Radeon X1600" (ChipID = 0x71c5)
[ 156.140] (II) Loading sub module "fb"
[ 156.140] (II) LoadModule: "fb"
[ 156.140] (II) Module "fb" already built-in
[ 156.140] (II) Loading sub module "dri2"
[ 156.140] (II) LoadModule: "dri2"
[ 156.140] (II) Module "dri2" already built-in
[ 156.140] (II) Loading sub module "exa"
[ 156.140] (II) LoadModule: "exa"
[ 156.141] (II) Loading /usr/local/lib/xorg/modules/libexa.so
[ 156.167] (II) Module exa: vendor="X.Org Foundation"
[ 156.167] compiled for 1.21.1.4, module version = 2.6.0
[ 156.167] ABI class: X.Org Video Driver, version 25.2
[ 156.167] (II) RADEON(0): KMS Color Tiling: enabled
[ 156.167] (II) RADEON(0): KMS Color Tiling 2D: disabled
[ 156.167] (==) RADEON(0): TearFree property default: auto
[ 156.167] (II) RADEON(0): KMS Pageflipping: enabled
[ 156.167] (II) RADEON(0): SwapBuffers wait for vsync: enabled
[ 156.211] (II) RADEON(0): Output VGA-0 has no monitor section
[ 156.212] (II) RADEON(0): Output LVDS has no monitor section
[ 156.228] (II) RADEON(0): Output S-video has no monitor section
[ 156.229] (II) RADEON(0): Output DVI-0 has no monitor section
[ 156.229] (WW) RADEON(0): 4 ZaphodHeads crtcs unavailable. Some outputs will stay off.
[ 156.246] (II) RADEON(0): EDID for output VGA-0
[ 156.246] (II) RADEON(0): EDID for output LVDS
[ 156.246] (II) RADEON(0): Manufacturer: AUO Model: 2074 Serial#: 0
[ 156.246] (II) RADEON(0): Year: 2005 Week: 1
[ 156.246] (II) RADEON(0): EDID Version: 1.3
[ 156.246] (II) RADEON(0): Digital Display Input
[ 156.246] (II) RADEON(0): Max Image Size [cm]: horiz.: 33 vert.: 21
[ 156.246] (II) RADEON(0): Gamma: 2.20
[ 156.246] (II) RADEON(0): No DPMS capabilities specified
[ 156.246] (II) RADEON(0): Supported color encodings: RGB 4:4:4 YCrCb 4:4:4
[ 156.246] (II) RADEON(0): First detailed timing is preferred mode
[ 156.247] (II) RADEON(0): redX: 0.590 redY: 0.345 greenX: 0.315 greenY: 0.555
[ 156.247] (II) RADEON(0): blueX: 0.155 blueY: 0.155 whiteX: 0.313 whiteY: 0.329
[ 156.247] (II) RADEON(0): Manufacturer's mask: 0
[ 156.247] (II) RADEON(0): Supported detailed timing:
[ 156.247] (II) RADEON(0): clock: 71.1 MHz Image Size: 331 x 207 mm
[ 156.247] (II) RADEON(0): h_active: 1280 h_sync: 1328 h_sync_end 1360 h_blank_end 1440 h_border: 0
[ 156.247] (II) RADEON(0): v_active: 800 v_sync: 803 v_sync_end 809 v_blanking: 823 v_border: 0
[ 156.247] (II) RADEON(0): Unknown vendor-specific block f
[ 156.247] (II) RADEON(0): AUO
[ 156.247] (II) RADEON(0): B154EW02 V0
[ 156.247] (II) RADEON(0): EDID (in hex):
[ 156.247] (II) RADEON(0): 00ffffffffffff0006af742000000000
[ 156.247] (II) RADEON(0): 010f0103802115780a1cf59758508e27
[ 156.247] (II) RADEON(0): 27505400000001010101010101010101
[ 156.247] (II) RADEON(0): 010101010101c71b00a0502017303020
[ 156.247] (II) RADEON(0): 36004bcf100000180000000f00000000
[ 156.247] (II) RADEON(0): 00000000000000000020000000fe0041
[ 156.247] (II) RADEON(0): 554f0a202020202020202020000000fe
[ 156.247] (II) RADEON(0): 004231353445573032205630200a00ac
[ 156.248] (II) RADEON(0): Printing probed modes for output LVDS
[ 156.248] (II) RADEON(0): Modeline "1280x800"x60.0 71.11 1280 1328 1360 1440 800 803 809 823 -hsync -vsync (49.4 kHz eP)
[ 156.248] (II) RADEON(0): Modeline "1280x720"x60.0 74.65 1280 1344 1472 1664 720 723 728 748 -hsync +vsync (44.9 kHz)
[ 156.248] (II) RADEON(0): Modeline "1152x768"x59.9 71.95 1152 1216 1328 1504 768 771 781 798 -hsync +vsync (47.8 kHz)
[ 156.248] (II) RADEON(0): Modeline "1024x768"x59.9 63.53 1024 1072 1176 1328 768 771 775 798 -hsync +vsync (47.8 kHz)
[ 156.248] (II) RADEON(0): Modeline "800x600"x60.0 38.31 800 832 912 1024 600 603 607 624 -hsync +vsync (37.4 kHz)
[ 156.248] (II) RADEON(0): Modeline "848x480"x59.9 31.65 848 872 952 1056 480 483 493 500 -hsync +vsync (30.0 kHz)
[ 156.248] (II) RADEON(0): Modeline "720x480"x59.9 26.85 720 744 808 896 480 483 493 500 -hsync +vsync (30.0 kHz)
[ 156.248] (II) RADEON(0): Modeline "640x480"x59.9 23.98 640 664 720 800 480 483 487 500 -hsync +vsync (30.0 kHz)
[ 156.264] (II) RADEON(0): EDID for output S-video
[ 156.264] (II) RADEON(0): EDID for output DVI-0
[ 156.264] (II) RADEON(0): Output VGA-0 disconnected
[ 156.264] (II) RADEON(0): Output LVDS connected
[ 156.264] (II) RADEON(0): Output S-video disconnected
[ 156.264] (II) RADEON(0): Output DVI-0 disconnected
[ 156.264] (II) RADEON(0): Using exact sizes for initial modes
[ 156.264] (II) RADEON(0): Output LVDS using initial mode 1280x800 +0+0
[ 156.264] (II) RADEON(0): mem size init: gart size :1fdff000 vram size: s:10000000 visible:fb58000
[ 156.264] (II) RADEON(0): EXA: Driver will allow EXA pixmaps in VRAM
[ 156.265] (==) RADEON(0): DPI set to (96, 96)
[ 156.265] (==) RADEON(0): Using gamma correction (1.0, 1.0, 1.0)
[ 156.265] (II) Loading sub module "ramdac"
[ 156.265] (II) LoadModule: "ramdac"
[ 156.265] (II) Module "ramdac" already built-in
[ 156.265] (II) UnloadModule: "modesetting"
[ 156.265] (II) Unloading modesetting
[ 156.265] (II) UnloadModule: "scfb"
[ 156.265] (II) Unloading scfb
[ 156.265] (II) UnloadModule: "vesa"
[ 156.265] (II) Unloading vesa
[ 156.272] (II) RADEON(0): [DRI2] Setup complete
[ 156.272] (II) RADEON(0): [DRI2] DRI driver: r300
[ 156.272] (II) RADEON(0): [DRI2] VDPAU driver: r300
[ 156.272] (II) RADEON(0): Front buffer size: 4000K
[ 156.272] (II) RADEON(0): VRAM usage limit set to 228009K
[ 156.280] (==) RADEON(0): DRI3 disabled
[ 156.280] (==) RADEON(0): Backing store enabled
[ 156.280] (II) RADEON(0): Direct rendering enabled
[ 156.280] (II) RADEON(0): Render acceleration enabled for R300/R400/R500 type cards.
[ 156.280] (II) EXA(0): Driver allocated offscreen pixmaps
[ 156.280] (II) EXA(0): Driver registered support for the following operations:
[ 156.280] (II) Solid
[ 156.280] (II) Copy
[ 156.280] (II) Composite (RENDER acceleration)
[ 156.280] (II) UploadToScreen
[ 156.280] (II) DownloadFromScreen
[ 156.280] (II) RADEON(0): Acceleration enabled
[ 156.280] (==) RADEON(0): DPMS enabled
[ 156.280] (==) RADEON(0): Silken mouse enabled
[ 156.299] (II) RADEON(0): Set up textured video
[ 156.305] (II) RADEON(0): [XvMC] Associated with Radeon Textured Video.
[ 156.305] (II) RADEON(0): [XvMC] Extension initialized.
[ 156.308] (II) Initializing extension Generic Event Extension
[ 156.310] (II) Initializing extension SHAPE
[ 156.311] (II) Initializing extension MIT-SHM
[ 156.312] (II) Initializing extension XInputExtension
[ 156.314] (II) Initializing extension XTEST
[ 156.315] (II) Initializing extension BIG-REQUESTS
[ 156.316] (II) Initializing extension SYNC
[ 156.318] (II) Initializing extension XKEYBOARD
[ 156.319] (II) Initializing extension XC-MISC
[ 156.320] (II) Initializing extension SECURITY
[ 156.321] (II) Initializing extension XFIXES
[ 156.323] (II) Initializing extension RENDER
[ 156.324] (II) Initializing extension RANDR
[ 156.327] (II) Initializing extension COMPOSITE
[ 156.329] (II) Initializing extension DAMAGE
[ 156.331] (II) Initializing extension MIT-SCREEN-SAVER
[ 156.332] (II) Initializing extension DOUBLE-BUFFER
[ 156.333] (II) Initializing extension RECORD
[ 156.334] (II) Initializing extension DPMS
[ 156.335] (II) Initializing extension Present
[ 156.336] (II) Initializing extension DRI3
[ 156.336] (II) Initializing extension X-Resource
[ 156.337] (II) Initializing extension XVideo
[ 156.339] (II) Initializing extension XVideo-MotionCompensation
[ 156.340] (II) Initializing extension GLX
[ 158.201] (II) AIGLX: Loaded and initialized r300
[ 158.201] (II) GLX: Initialized DRI2 GL provider for screen 0
[ 158.201] (II) Initializing extension XFree86-VidModeExtension
[ 158.202] (II) Initializing extension XFree86-DGA
[ 158.203] (II) Initializing extension XFree86-DRI
[ 158.203] (II) Initializing extension DRI2
[ 158.204] (II) RADEON(0): Setting screen physical size to 338 x 211
[ 158.832] (II) config/udev: Adding input device System mouse (/dev/input/event0)
[ 158.832] (**) System mouse: Applying InputClass "libinput pointer catchall"
[ 158.832] (II) LoadModule: "libinput"
...