VOGONS


First post, by 386SX

User metadata
Rank l33t
Rank
l33t

Hello,

I'm trying this P4M890 based mainboard with a modern Linux lxde ubuntu o.s. and it incredibly works even with latest 5.10.x kernel. The graphic part works but it default seems to load the vesa module and it's sort of enough for web browser and office usage. I've seen then that there was a Openchrome driver back in its days still in the packages repositories and I tried installing it into the previous 5.4.x hwe kernel and incredibly it seems to work into 18.04.5 ubuntu distribution with the Xorg log actually writing many many lines into it. I can't see many differences into the LXDE GUI but I suppose the video decoding is working cause I've noticed lower cpu usage running an H264 test video. There's some warning about the lack of the DRI into the Xorg log. I read that the only mesa drivers supporting the S3 Unichrome was the unichrome-dri updated until 2018 for ArchLinux and it seems to requires DRI1 driver model that I suppose is outdated and not installed anymore.
Is there a way to install this DRI1 driver (unichrome_dri.so) even with a modern 18.04 o.s.? Do I have to switch to ArchLinux to try OpenGL into this machine? I don't understand if this can be done or I've to go back to some ancient Ubuntu version.
Thanks

Last edited by 386SX on 2021-02-02, 20:07. Edited 1 time in total.

Reply 1 of 23, by matze79

User metadata
Rank l33t
Rank
l33t

DRI does not work since Ubuntu 14 or 13.
No Chance.

I would go for a additional Video Card.
My Athlon 64 also has S3 UniChrome and it sucks much.

https://www.retrokits.de - blog, retro projects, hdd clicker, diy soundcards etc
https://www.retroianer.de - german retro computer board

Reply 2 of 23, by megatron-uk

User metadata
Rank Oldbie
Rank
Oldbie

Doubtful. The driver (is it a kernel dri driver or an X11 driver?) Will almost certainly be compiled for a specific kernel and/or version of x.org or xfree86. Trying to import it into something current will almost certainly not work. I'd hazard a guess that there will be loads of symbols that won't resolve due to deprecation or removal.

It's a bit like trying to add a driver compiled for the win98 SDK in to a win7 system.

My collection database and technical wiki:
https://www.target-earth.net

Reply 3 of 23, by winuser_pl

User metadata
Rank Member
Rank
Member

If I was you I'd try to compile it by myself (if src code is available of course).

PC1: Highscreen => FIC PA-2005, 64 MB EDO RAM, Pentium MMX 200, S3 Virge + Voodoo 2 8 MB
PC2: AOpen => GA-586SG, 512 MB SDRAM, AMD K6-2 400 MHz, Geforce 2 MX 400

Reply 4 of 23, by 386SX

User metadata
Rank l33t
Rank
l33t

Thanks both for the answers. The driver would still be on https://archlinux.org/packages/community/x86_ … /unichrome-dri/ ArchLinux files and seems was updated until 2018.
The Xorg 2D driver I loaded instead is this one still on the ubuntu sources:

[ 56.624] (II) LoadModule: "openchrome"
[ 56.667] (II) Loading /usr/lib/xorg/modules/drivers/openchrome_drv.so
[ 56.788] (II) Module openchrome: vendor="https://www.freedesktop.org/wiki/Openchrome/"
[ 56.788] compiled for 1.19.5, module version = 0.6.0
[ 56.788] Module class: X.Org Video Driver
[ 56.788] ABI class: X.Org Video Driver, version 23.0
[ 56.788] (II) LoadModule: "modesetting"
[ 56.788] (II) Loading /usr/lib/xorg/modules/drivers/modesetting_drv.so
[ 56.944] (II) Module modesetting: vendor="X.Org Foundation"
[ 56.944] compiled for 1.19.6, module version = 1.19.6
[ 56.944] Module class: X.Org Video Driver
[ 56.944] ABI class: X.Org Video Driver, version 23.0
[ 56.944] (II) LoadModule: "fbdev"
[ 56.945] (II) Loading /usr/lib/xorg/modules/drivers/fbdev_drv.so
[ 57.077] (II) Module fbdev: vendor="X.Org Foundation"
[ 57.078] compiled for 1.19.3, module version = 0.4.4
[ 57.078] Module class: X.Org Video Driver
[ 57.078] ABI class: X.Org Video Driver, version 23.0
[ 57.078] (II) LoadModule: "vesa"
[ 57.078] (II) Loading /usr/lib/xorg/modules/drivers/vesa_drv.so
[ 57.175] (II) Module vesa: vendor="X.Org Foundation"
[ 57.175] compiled for 1.19.3, module version = 2.3.4
[ 57.175] Module class: X.Org Video Driver
[ 57.175] ABI class: X.Org Video Driver, version 23.0
[ 57.175] (II) OPENCHROME: Driver for VIA Chrome chipsets: CLE266,
KM400 / KM400A / KN400 / P4M800, K8M800 / K8N800,
PM800 / PN800 / PM880 / CN333 / CN400, P4M800 Pro / VN800 / CN700,
CX700 / VX700, P4M890 / VN890 / CN800, K8M890 / K8N890,
P4M900 / VN896 / CN896, VX800 / VX820, VX855 / VX875, VX900
[ 57.175] (II) modesetting: Driver for Modesetting Kernel Drivers: kms
[ 57.175] (II) FBDEV: driver for framebuffer: fbdev
[ 57.175] (II) VESA: driver for VESA chipsets: vesa
[ 57.223] (!!) VIA Technologies does not support this driver in any way.
[ 57.223] (!!) For support, please refer to https://www.freedesktop.org/wiki/Openchrome/.
[ 57.223] (!!) (openchrome 0.6.0 release)
[ 57.223] (WW) Falling back to old probe method for modesetting
[ 57.224] (EE) open /dev/dri/card0: No such file or directory
[ 57.224] (WW) Falling back to old probe method for fbdev
[ 57.224] (II) Loading sub module "fbdevhw"
[ 57.224] (II) LoadModule: "fbdevhw"
[ 57.224] (II) Loading /usr/lib/xorg/modules/libfbdevhw.so
[ 57.258] (II) Module fbdevhw: vendor="X.Org Foundation"
[ 57.258] compiled for 1.19.6, module version = 0.0.2
[ 57.258] ABI class: X.Org Video Driver, version 23.0
[ 57.258] (WW) Falling back to old probe method for vesa
[ 57.259] (II) CHROME(0): viaPreInit
[ 57.259] (II) CHROME(0): VIAGetRec
[ 57.259] (--) CHROME(0): Chipset: P4M890 / VN890 / CN800
[ 57.259] (--) CHROME(0): Chipset revision: 0
[ 57.459] (EE) CHROME(0): [drm] Failed to open DRM device for pci:0000:01:00.0: No such file or directory
[ 57.524] (II) Loading sub module "vgahw"
[ 57.524] (II) LoadModule: "vgahw"
[ 57.524] (II) Loading /usr/lib/xorg/modules/libvgahw.so
[ 57.559] (II) Module vgahw: vendor="X.Org Foundation"
[ 57.559] compiled for 1.19.6, module version = 0.1.0
[ 57.559] ABI class: X.Org Video Driver, version 23.0
[ 57.559] (--) CHROME(0): Probed amount of VideoRAM = 65536 kB
[ 57.559] (II) CHROME(0): Entered viaMapMMIO.
[ 57.559] (--) CHROME(0): Mapping MMIO at address ... with size 52 KB.
[ 57.560] (--) CHROME(0): Mapping 2D Host BitBLT space at address .. with size 2048 KB.
[ 57.560] (--) CHROME(0): Mapping the frame buffer at address .. with size 65536 KB.
[ 57.560] (--) CHROME(0): Frame buffer start address: .., free start: 0x0 end: ..
[ 57.560] (II) CHROME(0): Entered viaMMIOEnable.
[ 57.560] (II) CHROME(0): Exiting viaMMIOEnable.
[ 57.560] (II) CHROME(0): vgaHWGetIOBase: hwp->IOBase is ..
[ 57.560] (II) CHROME(0): Exiting viaMapMMIO.
[ 57.560] (II) CHROME(0): Creating default Display subsection in Screen section
"Default Screen Section" for depth/fbbpp 24/32
[ 57.560] (==) CHROME(0): Depth 24, (--) framebuffer bpp 32
[ 57.560] (==) CHROME(0): RGB weight 888
[ 57.560] (==) CHROME(0): Default visual is TrueColor
[ 57.561] (II) CHROME(0): VIASetupDefaultOptions - Setting up default chipset options.
[ 57.561] (==) CHROME(0): Shadow framebuffer is disabled.
[ 57.561] (==) CHROME(0): Hardware acceleration is enabled.
[ 57.561] (==) CHROME(0): Using EXA acceleration architecture.
[ 57.561] (==) CHROME(0): EXA composite acceleration enabled.
[ 57.561] (==) CHROME(0): EXA scratch area size is 4096 kB.
[ 57.561] (==) CHROME(0): Using hardware two-color cursors and software full-color cursors.
[ 57.561] (==) CHROME(0): GPU virtual command queue will be enabled.
[ 57.561] (==) CHROME(0): DRI IRQ will be enabled if DRI is enabled.
[ 57.561] (==) CHROME(0): AGP DMA will be enabled if DRI is enabled.
[ 57.561] (==) CHROME(0): AGP DMA will be used for 2D acceleration.
[ 57.561] (==) CHROME(0): PCI DMA will not be used for XV image transfer if DRI is enabled.
[ 57.561] (==) CHROME(0): Xv Bandwidth check is enabled.
[ 57.561] (==) CHROME(0): Will not impose a limit on video RAM reserved for DRI.
[ 57.561] (==) CHROME(0): Will try to allocate 32768 kB of AGP memory.
[ 57.561] (==) CHROME(0): TV dotCrawl is disabled.
[ 57.561] (==) CHROME(0): TV deflicker is set to 0.
[ 57.561] (==) CHROME(0): No default TV type is set.
[ 57.561] (==) CHROME(0): No default TV output signal type is set.
[ 57.561] (==) CHROME(0): Will not print VGA registers.
[ 57.561] (==) CHROME(0): Will not scan I2C buses.
[ 57.561] (II) CHROME(0): Detected MemClk 7
[ 57.561] (II) CHROME(0): ViaGetMemoryBandwidth. Memory type: 7

But there're even some warning or errors..

[ 57.459] (EE) CHROME(0): [drm] Failed to open DRM device for pci:0000:01:00.0: No such file or directory

[ 58.407] (WW) CHROME(0): [XvMC] Cannot use XvMC without DRI!

[ 58.441] (EE) AIGLX: reverting to software rendering

I know it'd be much easier to switch to any other AMD card that has a good ready to use driver for any card after the Radeon, but I didn't find the Unichrome to be "that bad" in Windows ME all considered.. I got 4000 points on 3DMark2000 and rendering quality was quite good. I thought it could be a good retro igpu for old games. But I can't install obviously such old distributions. Maybe only archlinux still support that driver.

Last edited by 386SX on 2021-02-02, 19:55. Edited 2 times in total.

Reply 5 of 23, by megatron-uk

User metadata
Rank Oldbie
Rank
Oldbie

If you want decent performance in Linux then you really need something with opengl support and xvmc, vdpau or similar. An old geforce would probably be your best bet.

Looks like the missing kernel driver interface means your performance is going to be crippled. I suspect that's as good as it's going to get.

My collection database and technical wiki:
https://www.target-earth.net

Reply 6 of 23, by mr.cat

User metadata
Rank Member
Rank
Member

I don't know if Gentoo has an ebuild available, but if they do it might be worth looking into. You don't have to actually use Gentoo to make use of it, just see what the ebuild does and imitate.
I guess the Arch stuff will do much the same though.

EDIT: Gentoo repos can be viewed here. An ebuild is simply a set of instructions, which will automatically fetch and install patches etc. and compile the package.

Last edited by mr.cat on 2021-02-02, 22:52. Edited 1 time in total.

Reply 7 of 23, by 386SX

User metadata
Rank l33t
Rank
l33t
megatron-uk wrote on 2021-02-02, 19:47:

If you want decent performance in Linux then you really need something with opengl support and xvmc, vdpau or similar. An old geforce would probably be your best bet.

Looks like the missing kernel driver interface means your performance is going to be crippled. I suspect that's as good as it's going to get.

I always use LXDE cause it seems like the only GUI that works as good with any even the oldest cards I try with such simple perfect gui imho. But sure, I need much better card. With nv cards and nouveau driver I don't have many good memories unfortunately on both features compatibility and speed and I almost have only PCI-EX nv cards and almost no AMD ones..

Reply 8 of 23, by 386SX

User metadata
Rank l33t
Rank
l33t
winuser_pl wrote on 2021-02-02, 19:31:

If I was you I'd try to compile it by myself (if src code is available of course).

The source I suppose should be this: https://github.com/archlinux/svntogit-communi … x86_64/PKGBUILD

But I don't know how to actually build it (I'm used to the usual make command on the offline package.. 😁).
There's also a build package tar file at that page and inside the lib/.so file but in the code I see many references of xf86 that I suppose can't work into a modern Xorg system (I'm not much expert on linux I try to understand). 😀

Reply 9 of 23, by 386SX

User metadata
Rank l33t
Rank
l33t
mr.cat wrote on 2021-02-02, 19:51:

I don't know if Gentoo has an ebuild available, but if they do it might be worth looking into. You don't have to actually use Gentoo to make use of it, just see what the ebuild does and imitate.
I guess the Arch stuff will do much the same though.

In the archlinux page there's the lib file .so already built but I would not know how to even load it as a mesa module. Do I have to force it into the /etc/modules file? Shouldn't it depend on the mesa-dri package before loading it? Or I should recompile the old mesa dri1 complete package?

Reply 10 of 23, by megatron-uk

User metadata
Rank Oldbie
Rank
Oldbie

Looks pretty straight forward:

- A link to a versioned source tarball at: ftp://ftp.freedesktop.org/pub/mesa/olde ... r}.tar.bz2

- Configure params:

cd ${srcdir}/?esa-*
autoreconf -vfi
./configure --prefix=/usr \
--with-dri-driverdir=/usr/lib/xorg/modules/dri \
--with-dri-drivers=unichrome,i810,mach64,mga,r128,savage,sis,tdfx \
--with-gallium-drivers= \
--disable-gallium-llvm \
--enable-glx-tls \
--with-driver=dri \
--enable-xcb \
--disable-glut \
--enable-gles1 \
--enable-gles2 \
--enable-egl \
--enable-texture-float \
--disable-shared-dricore

- Install commands:

make -C ${srcdir}/?esa-*/src/mesa/drivers/dri/unichrome DESTDIR="${pkgdir}" install

I'd start off downloading the source tarball and see if the configure command works. Then move on to make after that.
How well any of this works on a modern kernel is anyones guess. I'm strictly an Nvidia on Linux person, so any experience with by-hand compiled drivers is something that I last did probably 15+ years ago.

My collection database and technical wiki:
https://www.target-earth.net

Reply 11 of 23, by matze79

User metadata
Rank l33t
Rank
l33t
megatron-uk wrote on 2021-02-02, 19:47:

If you want decent performance in Linux then you really need something with opengl support and xvmc, vdpau or similar. An old geforce would probably be your best bet.

Looks like the missing kernel driver interface means your performance is going to be crippled. I suspect that's as good as it's going to get.

Linux drops AGP support in latest Version, and nouveau too.
https://www.phoronix.com/scan.php?page=news_i … ouveau-Drop-RFC
i would not go for GeForce.

Even HD3450/HD2600 AGP was no great success for me, a lot of OpenGL Games not working anymore for me 😒

You would need a older kernel to get dri running.
But it never worked great with OpenSource Driver.
It will work much better with the VIA Drivers, which are not working on new Distributions.

Maybe a Xorg Downgrade is also needed.

https://www.retrokits.de - blog, retro projects, hdd clicker, diy soundcards etc
https://www.retroianer.de - german retro computer board

Reply 12 of 23, by megatron-uk

User metadata
Rank Oldbie
Rank
Oldbie

Wow that sucks.

Removal of AGP support, but we still have ISA soundcard drivers in the kernel... yeah, that makes sense....

My collection database and technical wiki:
https://www.target-earth.net

Reply 13 of 23, by mr.cat

User metadata
Rank Member
Rank
Member
matze79 wrote on 2021-02-02, 20:50:
You would need a older kernel to get dri running. But it never worked great with OpenSource Driver. It will work much better wi […]
Show full quote

You would need a older kernel to get dri running.
But it never worked great with OpenSource Driver.
It will work much better with the VIA Drivers, which are not working on new Distributions.

Maybe a Xorg Downgrade is also needed.

I remember that I did use OpenChrome briefly on Ubuntu 18.04, and it was ok for 2D stuff (I'm not sure if I tried any 3D, probably not).
But DRI is probably disabled for a reason in that driver, I'm guessing it's not stable enough for OpenGL so they're just trying to save the users' nerves 😁
OTOH OpenChrome's feature matrix (from 2014) does say 3D should be ok.

Reply 14 of 23, by mr.cat

User metadata
Rank Member
Rank
Member
megatron-uk wrote on 2021-02-02, 21:06:

Wow that sucks.

Removal of AGP support, but we still have ISA soundcard drivers in the kernel... yeah, that makes sense....

Well, everything that causes any extra maintenance work for the devs has to go, it seems. There's the bottom line to consider and all that u know...
However this seems a bit click-baity headline in this case.
This proposal only changes the way AGP is used, it doesn't really disable your AGP-based cards (see the comments on page 2 for a longer explanation).

Reply 15 of 23, by jtchip

User metadata
Rank Member
Rank
Member

Mesa actually removed the ability to load DRI1 drivers recently https://lists.freedesktop.org/archives/mesa-d … ber/224740.html so you'll have better luck with Ubuntu 18.04.
The DRI driver typically lives in somewhere like /usr/lib64/dri (distribution-dependent, search for another well-known driver like radeonsi_dri.so to see where they live on yours), runs in userspace and is automatically loaded by the Xorg server. However due to differences in the linked shared libraries, you can't usually use a binary from another distribution so you'll likely have to build it yourself.
If you just want to try it out, it'll probably be easier just to run an older distribution. I used to run a VIA C7 on a CN700 with Unichrome Pro on CentOS 6 as a server/NAS/HTPC. That did ship with DRI1 drivers and it did work for XvMC and probably 3D (though I don't think I ran much beyond glxgears and the visualisation in SETI@Home).
Linux graphics drivers come in several bits. You need the GART driver in kernel, on the CN700 this was in dmesg:

Linux agpgart interface v0.103
agpgart: Detected VIA VT3314 chipset
agpgart-via 0000:00:00.0: AGP aperture is 128M @ 0xe8000000

You have a openchrome DDX (2D driver) for Xorg already. If you get the DRI1 bit working, you should see something like this in Xorg.0.log:

drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 11, (OK)
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 11, (OK)
drmOpenByBusid: Searching for BusID PCI:1:0:0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 11, (OK)
drmOpenByBusid: drmOpenMinor returns 11
drmOpenByBusid: drmGetBusid reports pci:0000:01:00.0
(II) [drm] DRM interface version 1.3
(II) [drm] DRM open master succeeded.
(II) CHROME(0): [drm] Using the DRM lock SAREA also for drawables.
(II) CHROME(0): [drm] framebuffer handle = 0xf4000000
(II) CHROME(0): [drm] added 1 reserved context for kernel
(II) CHROME(0): X context handle = 0x1
(II) CHROME(0): [drm] installed DRM signal handler
(II) CHROME(0): [dri] visual configs initialized.
(II) CHROME(0): [drm] register handle = 0xfa000000
(II) CHROME(0): [drm] framebuffer handle = 0xf4000000
(II) CHROME(0): [drm] mmio Registers = 0xfa000000
(II) CHROME(0): [dri] mmio mapped.
...
(II) CHROME(0): [drm] Detected AGP vendor 0x1106, device 0x0314
(II) CHROME(0): [drm] Found AGP v3 compatible device. Trying AGP 8X mode.
(II) CHROME(0): [drm] Trying to enable AGP fast writes.
(II) CHROME(0): [drm] drmAgpEnabled succeeded
(II) CHROME(0): [drm] agpAddr = 0xe8000000
(II) CHROME(0): [drm] agpBase = (nil)
(II) CHROME(0): [drm] agpAddr = 0xe8000000
(II) CHROME(0): [drm] agpSize = 0x01e00000
(II) CHROME(0): [drm] agp physical addr = 0x00000000
(II) CHROME(0): [dri] Using AGP.
(II) CHROME(0): [drm] Using 33653728 bytes for DRM memory heap.
(II) CHROME(0): [dri] Frame buffer initialized.
(II) CHROME(0): [DRI] installation complete
(II) CHROME(0): [dri] Kernel data initialized.
(II) CHROME(0): [drm] IRQ handler installed, using IRQ 10.
(II) CHROME(0): [drm] Initialized AGP ring-buffer, size 0x200000 at AGP offset 0x1e00000.
(II) CHROME(0): direct rendering enabled
(II) CHROME(0): [Xv] Using PCI DMA for Xv image transfer.
Fulfilled via DRI at 33185280
(II) CHROME(0): Benchmarking video copy. Less time is better.
(--) CHROME(0): Timed libc YUV420 copy... 7911425. Throughput: 112.5 MiB/s.
(--) CHROME(0): Timed kernel YUV420 copy... 7994452. Throughput: 111.3 MiB/s.
(--) CHROME(0): Timed SSE YUV420 copy... 7925657. Throughput: 112.3 MiB/s.
(--) CHROME(0): Timed MMX YUV420 copy... 7898750. Throughput: 112.7 MiB/s.
(--) CHROME(0): Ditching 3DNow! YUV420 copy. Not supported by CPU.
(--) CHROME(0): Timed MMX2 YUV420 copy... 7920799. Throughput: 112.4 MiB/s.
Freed 33185280 (pool 2)
(--) CHROME(0): Using MMX YUV42X copy for video.
(II) CHROME(0): [XvMC] Registering chromeXvMC.
(II) CHROME(0): [XvMC] Initialized XvMC extension.
(II) CHROME(0): - Done

Reply 16 of 23, by schmatzler

User metadata
Rank Oldbie
Rank
Oldbie

Also, DRI1 in xorg-server had been broken for years and was only very recently fixed:

https://gitlab.freedesktop.org/xorg/xserver/- … 107#note_720229

So in order for it to work you either need a really old xorg version or wait for the next release.

In current Linux kernels DRI1 support has to be specifically compiled in, too. Slackware is still doing that, but I doubt most mainstream distros are.

"Windows 98's natural state is locked up"

Reply 17 of 23, by jtchip

User metadata
Rank Member
Rank
Member

But by the next release it may no longer be able to load DRI1 driver and some how set up glvnd instead. I guess the important bit is:

Which to me sounds like DRI1 has been broken since 1.19

The last Ubuntu release with a pre-1.19 xorg-server is 16.10, which is no longer supported, but 16.04 still is. If you want an out-of-box solution, it will have to be Ubuntu 11.10 which has mesa 7.11, the last release to ship with DRI1 drivers (assuming Ubuntu did actually package them).

Reply 18 of 23, by ragefury32

User metadata
Rank Oldbie
Rank
Oldbie

Openchrome was a bit of an experiment, and Via/S3 hasn’t done anything on the official Linux driver front since 2010. I think the only thing that was done with the S3 driver was the openchrome maintainer making tweaks to get rid of compiler warnings and use a newer header file, but other than that...eh, use an older Ubuntu build, or get a more modern non-S3 card. Those Unichrome GPUs dates back at least, what, 14 years from a company who last contributed code at least 10 years ago?

Reply 19 of 23, by 386SX

User metadata
Rank l33t
Rank
l33t

Thanks for the hints. I'm waiting for some capacitors to arrive cause I've noticed the board being unstable with Pentium D supported cpus and then I'll try as suggested to install if at least I could use lubuntu 18 or 16.04.x. But about ArchLinux and Slackware, would they support the installation of that DRI driver easily by default?
It sound cool to still use such known brand gpus into a "modern" machine. I'd buy one of those latest PCI-EX S3 cards just to see them running at their best. In Windows ME this iGPU wasn't bad at all as said for a retrogamer let's say running DX6/7 games.